<?php

namespace dgsoft\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SpecialReqDetailsType StructType
 * @package Dg
 * @subpackage Structs
 */
class DgSpecialReqDetailsType extends AbstractStructBase
{
    /**
     * The SeatRequests
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSeatRequest
     */
    public $SeatRequests;
    /**
     * The SpecialServiceRequests
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSpecialServiceRequest
     */
    public $SpecialServiceRequests;
    /**
     * The OtherServiceInformations
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeOtherServiceInformation
     */
    public $OtherServiceInformations;
    /**
     * The Remarks
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeRemark
     */
    public $Remarks;
    /**
     * The SpecialRemarks
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSpecialRemark
     */
    public $SpecialRemarks;
    /**
     * Constructor method for SpecialReqDetailsType
     * @uses DgSpecialReqDetailsType::setSeatRequests()
     * @uses DgSpecialReqDetailsType::setSpecialServiceRequests()
     * @uses DgSpecialReqDetailsType::setOtherServiceInformations()
     * @uses DgSpecialReqDetailsType::setRemarks()
     * @uses DgSpecialReqDetailsType::setSpecialRemarks()
     * @param \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSeatRequest $seatRequests
     * @param \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSpecialServiceRequest $specialServiceRequests
     * @param \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeOtherServiceInformation $otherServiceInformations
     * @param \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeRemark $remarks
     * @param \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSpecialRemark $specialRemarks
     */
    public function __construct(\dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSeatRequest $seatRequests = null, \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSpecialServiceRequest $specialServiceRequests = null, \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeOtherServiceInformation $otherServiceInformations = null, \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeRemark $remarks = null, \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSpecialRemark $specialRemarks = null)
    {
        $this
            ->setSeatRequests($seatRequests)
            ->setSpecialServiceRequests($specialServiceRequests)
            ->setOtherServiceInformations($otherServiceInformations)
            ->setRemarks($remarks)
            ->setSpecialRemarks($specialRemarks);
    }
    /**
     * Get SeatRequests value
     * @return \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSeatRequest|null
     */
    public function getSeatRequests()
    {
        return $this->SeatRequests;
    }
    /**
     * Set SeatRequests value
     * @param \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSeatRequest $seatRequests
     * @return \dgsoft\StructType\DgSpecialReqDetailsType
     */
    public function setSeatRequests(\dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSeatRequest $seatRequests = null)
    {
        $this->SeatRequests = $seatRequests;
        return $this;
    }
    /**
     * Get SpecialServiceRequests value
     * @return \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSpecialServiceRequest|null
     */
    public function getSpecialServiceRequests()
    {
        return $this->SpecialServiceRequests;
    }
    /**
     * Set SpecialServiceRequests value
     * @param \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSpecialServiceRequest $specialServiceRequests
     * @return \dgsoft\StructType\DgSpecialReqDetailsType
     */
    public function setSpecialServiceRequests(\dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSpecialServiceRequest $specialServiceRequests = null)
    {
        $this->SpecialServiceRequests = $specialServiceRequests;
        return $this;
    }
    /**
     * Get OtherServiceInformations value
     * @return \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeOtherServiceInformation|null
     */
    public function getOtherServiceInformations()
    {
        return $this->OtherServiceInformations;
    }
    /**
     * Set OtherServiceInformations value
     * @param \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeOtherServiceInformation $otherServiceInformations
     * @return \dgsoft\StructType\DgSpecialReqDetailsType
     */
    public function setOtherServiceInformations(\dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeOtherServiceInformation $otherServiceInformations = null)
    {
        $this->OtherServiceInformations = $otherServiceInformations;
        return $this;
    }
    /**
     * Get Remarks value
     * @return \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeRemark|null
     */
    public function getRemarks()
    {
        return $this->Remarks;
    }
    /**
     * Set Remarks value
     * @param \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeRemark $remarks
     * @return \dgsoft\StructType\DgSpecialReqDetailsType
     */
    public function setRemarks(\dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeRemark $remarks = null)
    {
        $this->Remarks = $remarks;
        return $this;
    }
    /**
     * Get SpecialRemarks value
     * @return \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSpecialRemark|null
     */
    public function getSpecialRemarks()
    {
        return $this->SpecialRemarks;
    }
    /**
     * Set SpecialRemarks value
     * @param \dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSpecialRemark $specialRemarks
     * @return \dgsoft\StructType\DgSpecialReqDetailsType
     */
    public function setSpecialRemarks(\dgsoft\ArrayType\DgArrayOfSpecialReqDetailsTypeSpecialRemark $specialRemarks = null)
    {
        $this->SpecialRemarks = $specialRemarks;
        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 \dgsoft\StructType\DgSpecialReqDetailsType
     */
    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__;
    }
}
