<?php

namespace dgsoft\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for IndCoverageReqsType StructType
 * @package Dg
 * @subpackage Structs
 */
class DgIndCoverageReqsType extends AbstractStructBase
{
    /**
     * The IndTripCost
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgIndCoverageReqsTypeIndTripCost
     */
    public $IndTripCost;
    /**
     * The FlightAccidentAmount
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgIndCoverageReqsTypeFlightAccidentAmount
     */
    public $FlightAccidentAmount;
    /**
     * The CoveredLuggage
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\ArrayType\DgArrayOfIndCoverageReqsTypeLuggageItem
     */
    public $CoveredLuggage;
    /**
     * The PreexistingConditions
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\ArrayType\DgArrayOfIndCoverageReqsTypePreexistingCondition
     */
    public $PreexistingConditions;
    /**
     * Constructor method for IndCoverageReqsType
     * @uses DgIndCoverageReqsType::setIndTripCost()
     * @uses DgIndCoverageReqsType::setFlightAccidentAmount()
     * @uses DgIndCoverageReqsType::setCoveredLuggage()
     * @uses DgIndCoverageReqsType::setPreexistingConditions()
     * @param \dgsoft\StructType\DgIndCoverageReqsTypeIndTripCost $indTripCost
     * @param \dgsoft\StructType\DgIndCoverageReqsTypeFlightAccidentAmount $flightAccidentAmount
     * @param \dgsoft\ArrayType\DgArrayOfIndCoverageReqsTypeLuggageItem $coveredLuggage
     * @param \dgsoft\ArrayType\DgArrayOfIndCoverageReqsTypePreexistingCondition $preexistingConditions
     */
    public function __construct(\dgsoft\StructType\DgIndCoverageReqsTypeIndTripCost $indTripCost = null, \dgsoft\StructType\DgIndCoverageReqsTypeFlightAccidentAmount $flightAccidentAmount = null, \dgsoft\ArrayType\DgArrayOfIndCoverageReqsTypeLuggageItem $coveredLuggage = null, \dgsoft\ArrayType\DgArrayOfIndCoverageReqsTypePreexistingCondition $preexistingConditions = null)
    {
        $this
            ->setIndTripCost($indTripCost)
            ->setFlightAccidentAmount($flightAccidentAmount)
            ->setCoveredLuggage($coveredLuggage)
            ->setPreexistingConditions($preexistingConditions);
    }
    /**
     * Get IndTripCost value
     * @return \dgsoft\StructType\DgIndCoverageReqsTypeIndTripCost|null
     */
    public function getIndTripCost()
    {
        return $this->IndTripCost;
    }
    /**
     * Set IndTripCost value
     * @param \dgsoft\StructType\DgIndCoverageReqsTypeIndTripCost $indTripCost
     * @return \dgsoft\StructType\DgIndCoverageReqsType
     */
    public function setIndTripCost(\dgsoft\StructType\DgIndCoverageReqsTypeIndTripCost $indTripCost = null)
    {
        $this->IndTripCost = $indTripCost;
        return $this;
    }
    /**
     * Get FlightAccidentAmount value
     * @return \dgsoft\StructType\DgIndCoverageReqsTypeFlightAccidentAmount|null
     */
    public function getFlightAccidentAmount()
    {
        return $this->FlightAccidentAmount;
    }
    /**
     * Set FlightAccidentAmount value
     * @param \dgsoft\StructType\DgIndCoverageReqsTypeFlightAccidentAmount $flightAccidentAmount
     * @return \dgsoft\StructType\DgIndCoverageReqsType
     */
    public function setFlightAccidentAmount(\dgsoft\StructType\DgIndCoverageReqsTypeFlightAccidentAmount $flightAccidentAmount = null)
    {
        $this->FlightAccidentAmount = $flightAccidentAmount;
        return $this;
    }
    /**
     * Get CoveredLuggage value
     * @return \dgsoft\ArrayType\DgArrayOfIndCoverageReqsTypeLuggageItem|null
     */
    public function getCoveredLuggage()
    {
        return $this->CoveredLuggage;
    }
    /**
     * Set CoveredLuggage value
     * @param \dgsoft\ArrayType\DgArrayOfIndCoverageReqsTypeLuggageItem $coveredLuggage
     * @return \dgsoft\StructType\DgIndCoverageReqsType
     */
    public function setCoveredLuggage(\dgsoft\ArrayType\DgArrayOfIndCoverageReqsTypeLuggageItem $coveredLuggage = null)
    {
        $this->CoveredLuggage = $coveredLuggage;
        return $this;
    }
    /**
     * Get PreexistingConditions value
     * @return \dgsoft\ArrayType\DgArrayOfIndCoverageReqsTypePreexistingCondition|null
     */
    public function getPreexistingConditions()
    {
        return $this->PreexistingConditions;
    }
    /**
     * Set PreexistingConditions value
     * @param \dgsoft\ArrayType\DgArrayOfIndCoverageReqsTypePreexistingCondition $preexistingConditions
     * @return \dgsoft\StructType\DgIndCoverageReqsType
     */
    public function setPreexistingConditions(\dgsoft\ArrayType\DgArrayOfIndCoverageReqsTypePreexistingCondition $preexistingConditions = null)
    {
        $this->PreexistingConditions = $preexistingConditions;
        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\DgIndCoverageReqsType
     */
    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__;
    }
}
