<?php

namespace Sabre\TravelItineraryRead\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for AncillaryPriceQuoteData Structs
 * @subpackage Structs
 */
class AncillaryPriceQuoteData extends AbstractStructBase
{
    /**
     * The PriceQuoteId
     * @var string
     */
    public $PriceQuoteId;
    /**
     * The ProductFeeNumber
     * @var string
     */
    public $ProductFeeNumber;
    /**
     * The ExpirationDate
     * Meta informations extracted from the WSDL
     * - documentation: A simple date type. Allows specifying a date without a year. Accepted formats: "yyyy-mm-dd" or "mm-dd"
     * - pattern:
     * (((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-9])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-30)))|(((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(
     * 1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))
     * @var string
     */
    public $ExpirationDate;
    /**
     * The LrecAssociation
     * @var int
     */
    public $LrecAssociation;
    /**
     * The PriceQuoteIdCompressed
     * @var bool
     */
    public $PriceQuoteIdCompressed;
    /**
     * Constructor method for AncillaryPriceQuoteData
     * @uses AncillaryPriceQuoteData::setPriceQuoteId()
     * @uses AncillaryPriceQuoteData::setProductFeeNumber()
     * @uses AncillaryPriceQuoteData::setExpirationDate()
     * @uses AncillaryPriceQuoteData::setLrecAssociation()
     * @uses AncillaryPriceQuoteData::setPriceQuoteIdCompressed()
     * @param string $priceQuoteId
     * @param string $productFeeNumber
     * @param string $expirationDate
     * @param int $lrecAssociation
     * @param bool $priceQuoteIdCompressed
     */
    public function __construct($priceQuoteId = null, $productFeeNumber = null, $expirationDate = null, $lrecAssociation = null, $priceQuoteIdCompressed = null)
    {
        $this
            ->setPriceQuoteId($priceQuoteId)
            ->setProductFeeNumber($productFeeNumber)
            ->setExpirationDate($expirationDate)
            ->setLrecAssociation($lrecAssociation)
            ->setPriceQuoteIdCompressed($priceQuoteIdCompressed);
    }
    /**
     * Get PriceQuoteId value
     * @return string|null
     */
    public function getPriceQuoteId()
    {
        return $this->PriceQuoteId;
    }
    /**
     * Set PriceQuoteId value
     * @param string $priceQuoteId
     * @return \Sabre\TravelItineraryRead\Structs\AncillaryPriceQuoteData
     */
    public function setPriceQuoteId($priceQuoteId = null)
    {
        $this->PriceQuoteId = $priceQuoteId;
        return $this;
    }
    /**
     * Get ProductFeeNumber value
     * @return string|null
     */
    public function getProductFeeNumber()
    {
        return $this->ProductFeeNumber;
    }
    /**
     * Set ProductFeeNumber value
     * @param string $productFeeNumber
     * @return \Sabre\TravelItineraryRead\Structs\AncillaryPriceQuoteData
     */
    public function setProductFeeNumber($productFeeNumber = null)
    {
        $this->ProductFeeNumber = $productFeeNumber;
        return $this;
    }
    /**
     * Get ExpirationDate value
     * @return string|null
     */
    public function getExpirationDate()
    {
        return $this->ExpirationDate;
    }
    /**
     * Set ExpirationDate value
     * @param string $expirationDate
     * @return \Sabre\TravelItineraryRead\Structs\AncillaryPriceQuoteData
     */
    public function setExpirationDate($expirationDate = null)
    {
        $this->ExpirationDate = $expirationDate;
        return $this;
    }
    /**
     * Get LrecAssociation value
     * @return int|null
     */
    public function getLrecAssociation()
    {
        return $this->LrecAssociation;
    }
    /**
     * Set LrecAssociation value
     * @param int $lrecAssociation
     * @return \Sabre\TravelItineraryRead\Structs\AncillaryPriceQuoteData
     */
    public function setLrecAssociation($lrecAssociation = null)
    {
        $this->LrecAssociation = $lrecAssociation;
        return $this;
    }
    /**
     * Get PriceQuoteIdCompressed value
     * @return bool|null
     */
    public function getPriceQuoteIdCompressed()
    {
        return $this->PriceQuoteIdCompressed;
    }
    /**
     * Set PriceQuoteIdCompressed value
     * @param bool $priceQuoteIdCompressed
     * @return \Sabre\TravelItineraryRead\Structs\AncillaryPriceQuoteData
     */
    public function setPriceQuoteIdCompressed($priceQuoteIdCompressed = null)
    {
        $this->PriceQuoteIdCompressed = $priceQuoteIdCompressed;
        return $this;
    }
    /**
     * Method called when an object has been exported with var_export() functions
     * It allows to return an object instantiated with the values
     * @see AbstractStructBase::__set_state()
     * @uses AbstractStructBase::__set_state()
     * @param array $array the exported values
     * @return \Sabre\TravelItineraryRead\Structs\AncillaryPriceQuoteData
     */
    public static function __set_state(array $array)
    {
        return parent::__set_state($array);
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
