<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for BizAction.Ticketing.AddSeatInventory.Lump StructType
 * @subpackage Structs
 */
class BizAction_Ticketing_AddSeatInventory_Lump extends AnyEntity
{
    /**
     * The FromSeat
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $FromSeat;
    /**
     * The Row
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Row;
    /**
     * The SeatCount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $SeatCount;
    /**
     * The ToSeat
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ToSeat;
    /**
     * Constructor method for BizAction.Ticketing.AddSeatInventory.Lump
     * @uses BizAction_Ticketing_AddSeatInventory_Lump::setFromSeat()
     * @uses BizAction_Ticketing_AddSeatInventory_Lump::setRow()
     * @uses BizAction_Ticketing_AddSeatInventory_Lump::setSeatCount()
     * @uses BizAction_Ticketing_AddSeatInventory_Lump::setToSeat()
     * @param string $fromSeat
     * @param string $row
     * @param int $seatCount
     * @param string $toSeat
     */
    public function __construct($fromSeat = null, $row = null, $seatCount = null, $toSeat = null)
    {
        $this
            ->setFromSeat($fromSeat)
            ->setRow($row)
            ->setSeatCount($seatCount)
            ->setToSeat($toSeat);
    }
    /**
     * Get FromSeat value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getFromSeat()
    {
        return isset($this->FromSeat) ? $this->FromSeat : null;
    }
    /**
     * Set FromSeat value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $fromSeat
     * @return \patest\StructType\BizAction_Ticketing_AddSeatInventory_Lump
     */
    public function setFromSeat($fromSeat = null)
    {
        // validation for constraint: string
        if (!is_null($fromSeat) && !is_string($fromSeat)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($fromSeat, true), gettype($fromSeat)), __LINE__);
        }
        if (is_null($fromSeat) || (is_array($fromSeat) && empty($fromSeat))) {
            unset($this->FromSeat);
        } else {
            $this->FromSeat = $fromSeat;
        }
        return $this;
    }
    /**
     * Get Row value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getRow()
    {
        return isset($this->Row) ? $this->Row : null;
    }
    /**
     * Set Row value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $row
     * @return \patest\StructType\BizAction_Ticketing_AddSeatInventory_Lump
     */
    public function setRow($row = null)
    {
        // validation for constraint: string
        if (!is_null($row) && !is_string($row)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($row, true), gettype($row)), __LINE__);
        }
        if (is_null($row) || (is_array($row) && empty($row))) {
            unset($this->Row);
        } else {
            $this->Row = $row;
        }
        return $this;
    }
    /**
     * Get SeatCount value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return int|null
     */
    public function getSeatCount()
    {
        return isset($this->SeatCount) ? $this->SeatCount : null;
    }
    /**
     * Set SeatCount value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param int $seatCount
     * @return \patest\StructType\BizAction_Ticketing_AddSeatInventory_Lump
     */
    public function setSeatCount($seatCount = null)
    {
        // validation for constraint: int
        if (!is_null($seatCount) && !(is_int($seatCount) || ctype_digit($seatCount))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($seatCount, true), gettype($seatCount)), __LINE__);
        }
        if (is_null($seatCount) || (is_array($seatCount) && empty($seatCount))) {
            unset($this->SeatCount);
        } else {
            $this->SeatCount = $seatCount;
        }
        return $this;
    }
    /**
     * Get ToSeat value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getToSeat()
    {
        return isset($this->ToSeat) ? $this->ToSeat : null;
    }
    /**
     * Set ToSeat value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $toSeat
     * @return \patest\StructType\BizAction_Ticketing_AddSeatInventory_Lump
     */
    public function setToSeat($toSeat = null)
    {
        // validation for constraint: string
        if (!is_null($toSeat) && !is_string($toSeat)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($toSeat, true), gettype($toSeat)), __LINE__);
        }
        if (is_null($toSeat) || (is_array($toSeat) && empty($toSeat))) {
            unset($this->ToSeat);
        } else {
            $this->ToSeat = $toSeat;
        }
        return $this;
    }
}
