<?php

namespace Sabre\EnhancedAirBook\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for FareBasis Structs
 * @subpackage Structs
 */
class FareBasis extends AbstractStructBase
{
    /**
     * The Code
     * Meta informations extracted from the WSDL
     * - documentation: "Code" is used to return the fare basis code associated with the particular price quote. | "Code" is used to return the fare basis code associated with the particular flight segment.
     * - use: optional
     * @var string
     */
    public $Code;
    /**
     * The TicketDesignator
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $TicketDesignator;
    /**
     * The ContractNumber
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $ContractNumber;
    /**
     * The CorporateID
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $CorporateID;
    /**
     * The InclusiveTour
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $InclusiveTour;
    /**
     * The FareAmount
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $FareAmount;
    /**
     * The FarePassengerType
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $FarePassengerType;
    /**
     * The FareType
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $FareType;
    /**
     * The FilingCarrier
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $FilingCarrier;
    /**
     * The GlobalInd
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $GlobalInd;
    /**
     * The TripTypeInd
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $TripTypeInd;
    /**
     * The Market
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $Market;
    /**
     * The SurfaceSegment
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $SurfaceSegment;
    /**
     * The Cabin
     * Meta informations extracted from the WSDL
     * - use: optional
     * @var string
     */
    public $Cabin;
    /**
     * Constructor method for FareBasis
     * @uses FareBasis::setCode()
     * @uses FareBasis::setTicketDesignator()
     * @uses FareBasis::setContractNumber()
     * @uses FareBasis::setCorporateID()
     * @uses FareBasis::setInclusiveTour()
     * @uses FareBasis::setFareAmount()
     * @uses FareBasis::setFarePassengerType()
     * @uses FareBasis::setFareType()
     * @uses FareBasis::setFilingCarrier()
     * @uses FareBasis::setGlobalInd()
     * @uses FareBasis::setTripTypeInd()
     * @uses FareBasis::setMarket()
     * @uses FareBasis::setSurfaceSegment()
     * @uses FareBasis::setCabin()
     * @param string $code
     * @param string $ticketDesignator
     * @param string $contractNumber
     * @param string $corporateID
     * @param string $inclusiveTour
     * @param string $fareAmount
     * @param string $farePassengerType
     * @param string $fareType
     * @param string $filingCarrier
     * @param string $globalInd
     * @param string $tripTypeInd
     * @param string $market
     * @param string $surfaceSegment
     * @param string $cabin
     */
    public function __construct($code = null, $ticketDesignator = null, $contractNumber = null, $corporateID = null, $inclusiveTour = null, $fareAmount = null, $farePassengerType = null, $fareType = null, $filingCarrier = null, $globalInd = null, $tripTypeInd = null, $market = null, $surfaceSegment = null, $cabin = null)
    {
        $this
            ->setCode($code)
            ->setTicketDesignator($ticketDesignator)
            ->setContractNumber($contractNumber)
            ->setCorporateID($corporateID)
            ->setInclusiveTour($inclusiveTour)
            ->setFareAmount($fareAmount)
            ->setFarePassengerType($farePassengerType)
            ->setFareType($fareType)
            ->setFilingCarrier($filingCarrier)
            ->setGlobalInd($globalInd)
            ->setTripTypeInd($tripTypeInd)
            ->setMarket($market)
            ->setSurfaceSegment($surfaceSegment)
            ->setCabin($cabin);
    }
    /**
     * Get Code value
     * @return string|null
     */
    public function getCode()
    {
        return $this->Code;
    }
    /**
     * Set Code value
     * @param string $code
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setCode($code = null)
    {
        $this->Code = $code;
        return $this;
    }
    /**
     * Get TicketDesignator value
     * @return string|null
     */
    public function getTicketDesignator()
    {
        return $this->TicketDesignator;
    }
    /**
     * Set TicketDesignator value
     * @param string $ticketDesignator
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setTicketDesignator($ticketDesignator = null)
    {
        $this->TicketDesignator = $ticketDesignator;
        return $this;
    }
    /**
     * Get ContractNumber value
     * @return string|null
     */
    public function getContractNumber()
    {
        return $this->ContractNumber;
    }
    /**
     * Set ContractNumber value
     * @param string $contractNumber
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setContractNumber($contractNumber = null)
    {
        $this->ContractNumber = $contractNumber;
        return $this;
    }
    /**
     * Get CorporateID value
     * @return string|null
     */
    public function getCorporateID()
    {
        return $this->CorporateID;
    }
    /**
     * Set CorporateID value
     * @param string $corporateID
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setCorporateID($corporateID = null)
    {
        $this->CorporateID = $corporateID;
        return $this;
    }
    /**
     * Get InclusiveTour value
     * @return string|null
     */
    public function getInclusiveTour()
    {
        return $this->InclusiveTour;
    }
    /**
     * Set InclusiveTour value
     * @param string $inclusiveTour
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setInclusiveTour($inclusiveTour = null)
    {
        $this->InclusiveTour = $inclusiveTour;
        return $this;
    }
    /**
     * Get FareAmount value
     * @return string|null
     */
    public function getFareAmount()
    {
        return $this->FareAmount;
    }
    /**
     * Set FareAmount value
     * @param string $fareAmount
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setFareAmount($fareAmount = null)
    {
        $this->FareAmount = $fareAmount;
        return $this;
    }
    /**
     * Get FarePassengerType value
     * @return string|null
     */
    public function getFarePassengerType()
    {
        return $this->FarePassengerType;
    }
    /**
     * Set FarePassengerType value
     * @param string $farePassengerType
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setFarePassengerType($farePassengerType = null)
    {
        $this->FarePassengerType = $farePassengerType;
        return $this;
    }
    /**
     * Get FareType value
     * @return string|null
     */
    public function getFareType()
    {
        return $this->FareType;
    }
    /**
     * Set FareType value
     * @param string $fareType
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setFareType($fareType = null)
    {
        $this->FareType = $fareType;
        return $this;
    }
    /**
     * Get FilingCarrier value
     * @return string|null
     */
    public function getFilingCarrier()
    {
        return $this->FilingCarrier;
    }
    /**
     * Set FilingCarrier value
     * @param string $filingCarrier
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setFilingCarrier($filingCarrier = null)
    {
        $this->FilingCarrier = $filingCarrier;
        return $this;
    }
    /**
     * Get GlobalInd value
     * @return string|null
     */
    public function getGlobalInd()
    {
        return $this->GlobalInd;
    }
    /**
     * Set GlobalInd value
     * @param string $globalInd
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setGlobalInd($globalInd = null)
    {
        $this->GlobalInd = $globalInd;
        return $this;
    }
    /**
     * Get TripTypeInd value
     * @return string|null
     */
    public function getTripTypeInd()
    {
        return $this->TripTypeInd;
    }
    /**
     * Set TripTypeInd value
     * @param string $tripTypeInd
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setTripTypeInd($tripTypeInd = null)
    {
        $this->TripTypeInd = $tripTypeInd;
        return $this;
    }
    /**
     * Get Market value
     * @return string|null
     */
    public function getMarket()
    {
        return $this->Market;
    }
    /**
     * Set Market value
     * @param string $market
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setMarket($market = null)
    {
        $this->Market = $market;
        return $this;
    }
    /**
     * Get SurfaceSegment value
     * @return string|null
     */
    public function getSurfaceSegment()
    {
        return $this->SurfaceSegment;
    }
    /**
     * Set SurfaceSegment value
     * @param string $surfaceSegment
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setSurfaceSegment($surfaceSegment = null)
    {
        $this->SurfaceSegment = $surfaceSegment;
        return $this;
    }
    /**
     * Get Cabin value
     * @return string|null
     */
    public function getCabin()
    {
        return $this->Cabin;
    }
    /**
     * Set Cabin value
     * @param string $cabin
     * @return \Sabre\EnhancedAirBook\Structs\FareBasis
     */
    public function setCabin($cabin = null)
    {
        $this->Cabin = $cabin;
        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\EnhancedAirBook\Structs\FareBasis
     */
    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__;
    }
}
