<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for PersonRegistrations StructType
 * @subpackage Structs
 */
class PersonRegistrations extends AbstractStructBase
{
    /**
     * The RegistrationLastSMS
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var string
     */
    public $RegistrationLastSMS;
    /**
     * The RegistrationLastTacho
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var string
     */
    public $RegistrationLastTacho;
    /**
     * The RegistrationLastSMSID
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var int
     */
    public $RegistrationLastSMSID;
    /**
     * The RegistrationLastTachoID
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var int
     */
    public $RegistrationLastTachoID;
    /**
     * Constructor method for PersonRegistrations
     * @uses PersonRegistrations::setRegistrationLastSMS()
     * @uses PersonRegistrations::setRegistrationLastTacho()
     * @uses PersonRegistrations::setRegistrationLastSMSID()
     * @uses PersonRegistrations::setRegistrationLastTachoID()
     * @param string $registrationLastSMS
     * @param string $registrationLastTacho
     * @param int $registrationLastSMSID
     * @param int $registrationLastTachoID
     */
    public function __construct($registrationLastSMS = null, $registrationLastTacho = null, $registrationLastSMSID = null, $registrationLastTachoID = null)
    {
        $this
            ->setRegistrationLastSMS($registrationLastSMS)
            ->setRegistrationLastTacho($registrationLastTacho)
            ->setRegistrationLastSMSID($registrationLastSMSID)
            ->setRegistrationLastTachoID($registrationLastTachoID);
    }
    /**
     * Get RegistrationLastSMS value
     * @return string
     */
    public function getRegistrationLastSMS()
    {
        return $this->RegistrationLastSMS;
    }
    /**
     * Set RegistrationLastSMS value
     * @param string $registrationLastSMS
     * @return \StructType\PersonRegistrations
     */
    public function setRegistrationLastSMS($registrationLastSMS = null)
    {
        // validation for constraint: string
        if (!is_null($registrationLastSMS) && !is_string($registrationLastSMS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($registrationLastSMS, true), gettype($registrationLastSMS)), __LINE__);
        }
        $this->RegistrationLastSMS = $registrationLastSMS;
        return $this;
    }
    /**
     * Get RegistrationLastTacho value
     * @return string
     */
    public function getRegistrationLastTacho()
    {
        return $this->RegistrationLastTacho;
    }
    /**
     * Set RegistrationLastTacho value
     * @param string $registrationLastTacho
     * @return \StructType\PersonRegistrations
     */
    public function setRegistrationLastTacho($registrationLastTacho = null)
    {
        // validation for constraint: string
        if (!is_null($registrationLastTacho) && !is_string($registrationLastTacho)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($registrationLastTacho, true), gettype($registrationLastTacho)), __LINE__);
        }
        $this->RegistrationLastTacho = $registrationLastTacho;
        return $this;
    }
    /**
     * Get RegistrationLastSMSID value
     * @return int
     */
    public function getRegistrationLastSMSID()
    {
        return $this->RegistrationLastSMSID;
    }
    /**
     * Set RegistrationLastSMSID value
     * @param int $registrationLastSMSID
     * @return \StructType\PersonRegistrations
     */
    public function setRegistrationLastSMSID($registrationLastSMSID = null)
    {
        // validation for constraint: int
        if (!is_null($registrationLastSMSID) && !(is_int($registrationLastSMSID) || ctype_digit($registrationLastSMSID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($registrationLastSMSID, true), gettype($registrationLastSMSID)), __LINE__);
        }
        $this->RegistrationLastSMSID = $registrationLastSMSID;
        return $this;
    }
    /**
     * Get RegistrationLastTachoID value
     * @return int
     */
    public function getRegistrationLastTachoID()
    {
        return $this->RegistrationLastTachoID;
    }
    /**
     * Set RegistrationLastTachoID value
     * @param int $registrationLastTachoID
     * @return \StructType\PersonRegistrations
     */
    public function setRegistrationLastTachoID($registrationLastTachoID = null)
    {
        // validation for constraint: int
        if (!is_null($registrationLastTachoID) && !(is_int($registrationLastTachoID) || ctype_digit($registrationLastTachoID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($registrationLastTachoID, true), gettype($registrationLastTachoID)), __LINE__);
        }
        $this->RegistrationLastTachoID = $registrationLastTachoID;
        return $this;
    }
}
