<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for BillingRates StructType
 * @subpackage Structs
 */
class BillingRates extends AbstractStructBase
{
    /**
     * The currency
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $currency;
    /**
     * The billingClass
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $billingClass;
    /**
     * The rateList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RateList
     */
    public $rateList;
    /**
     * Constructor method for BillingRates
     * @uses BillingRates::setCurrency()
     * @uses BillingRates::setBillingClass()
     * @uses BillingRates::setRateList()
     * @param \StructType\RecordRef $currency
     * @param \StructType\RecordRef $billingClass
     * @param \StructType\RateList $rateList
     */
    public function __construct(\StructType\RecordRef $currency = null, \StructType\RecordRef $billingClass = null, \StructType\RateList $rateList = null)
    {
        $this
            ->setCurrency($currency)
            ->setBillingClass($billingClass)
            ->setRateList($rateList);
    }
    /**
     * Get currency value
     * @return \StructType\RecordRef|null
     */
    public function getCurrency()
    {
        return $this->currency;
    }
    /**
     * Set currency value
     * @param \StructType\RecordRef $currency
     * @return \StructType\BillingRates
     */
    public function setCurrency(\StructType\RecordRef $currency = null)
    {
        $this->currency = $currency;
        return $this;
    }
    /**
     * Get billingClass value
     * @return \StructType\RecordRef|null
     */
    public function getBillingClass()
    {
        return $this->billingClass;
    }
    /**
     * Set billingClass value
     * @param \StructType\RecordRef $billingClass
     * @return \StructType\BillingRates
     */
    public function setBillingClass(\StructType\RecordRef $billingClass = null)
    {
        $this->billingClass = $billingClass;
        return $this;
    }
    /**
     * Get rateList value
     * @return \StructType\RateList|null
     */
    public function getRateList()
    {
        return $this->rateList;
    }
    /**
     * Set rateList value
     * @param \StructType\RateList $rateList
     * @return \StructType\BillingRates
     */
    public function setRateList(\StructType\RateList $rateList = null)
    {
        $this->rateList = $rateList;
        return $this;
    }
}
