<?php

namespace \NineDotMedia\viapost-php;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SendPostcardToSingleAddress StructType
 * @subpackage Structs
 */
class SendPostcardToSingleAddress extends AbstractStructBase
{
    /**
     * The postcardID
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $postcardID;
    /**
     * The sendNow
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $sendNow;
    /**
     * The dateToSend
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $dateToSend;
    /**
     * The emailNotification
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $emailNotification;
    /**
     * The costOfMailing
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $costOfMailing;
    /**
     * The numberOfPages
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $numberOfPages;
    /**
     * The numberOfSheets
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $numberOfSheets;
    /**
     * The loginToken
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $loginToken;
    /**
     * The name
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $name;
    /**
     * The organisation
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $organisation;
    /**
     * The street1
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $street1;
    /**
     * The street2
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $street2;
    /**
     * The street3
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $street3;
    /**
     * The postTown
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $postTown;
    /**
     * The postCode
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $postCode;
    /**
     * The acceptAddressCorrectionsStr
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $acceptAddressCorrectionsStr;
    /**
     * The firstClassStr
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $firstClassStr;
    /**
     * The costCentreStr
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $costCentreStr;
    /**
     * The affiliateGUID
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $affiliateGUID;
    /**
     * The mailingNameOverride
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $mailingNameOverride;
    /**
     * The returnMessage
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $returnMessage;
    /**
     * Constructor method for SendPostcardToSingleAddress
     * @uses SendPostcardToSingleAddress::setPostcardID()
     * @uses SendPostcardToSingleAddress::setSendNow()
     * @uses SendPostcardToSingleAddress::setDateToSend()
     * @uses SendPostcardToSingleAddress::setEmailNotification()
     * @uses SendPostcardToSingleAddress::setCostOfMailing()
     * @uses SendPostcardToSingleAddress::setNumberOfPages()
     * @uses SendPostcardToSingleAddress::setNumberOfSheets()
     * @uses SendPostcardToSingleAddress::setLoginToken()
     * @uses SendPostcardToSingleAddress::setName()
     * @uses SendPostcardToSingleAddress::setOrganisation()
     * @uses SendPostcardToSingleAddress::setStreet1()
     * @uses SendPostcardToSingleAddress::setStreet2()
     * @uses SendPostcardToSingleAddress::setStreet3()
     * @uses SendPostcardToSingleAddress::setPostTown()
     * @uses SendPostcardToSingleAddress::setPostCode()
     * @uses SendPostcardToSingleAddress::setAcceptAddressCorrectionsStr()
     * @uses SendPostcardToSingleAddress::setFirstClassStr()
     * @uses SendPostcardToSingleAddress::setCostCentreStr()
     * @uses SendPostcardToSingleAddress::setAffiliateGUID()
     * @uses SendPostcardToSingleAddress::setMailingNameOverride()
     * @uses SendPostcardToSingleAddress::setReturnMessage()
     * @param int $postcardID
     * @param bool $sendNow
     * @param string $dateToSend
     * @param bool $emailNotification
     * @param float $costOfMailing
     * @param int $numberOfPages
     * @param int $numberOfSheets
     * @param string $loginToken
     * @param string $name
     * @param string $organisation
     * @param string $street1
     * @param string $street2
     * @param string $street3
     * @param string $postTown
     * @param string $postCode
     * @param string $acceptAddressCorrectionsStr
     * @param string $firstClassStr
     * @param string $costCentreStr
     * @param string $affiliateGUID
     * @param string $mailingNameOverride
     * @param string $returnMessage
     */
    public function __construct($postcardID = null, $sendNow = null, $dateToSend = null, $emailNotification = null, $costOfMailing = null, $numberOfPages = null, $numberOfSheets = null, $loginToken = null, $name = null, $organisation = null, $street1 = null, $street2 = null, $street3 = null, $postTown = null, $postCode = null, $acceptAddressCorrectionsStr = null, $firstClassStr = null, $costCentreStr = null, $affiliateGUID = null, $mailingNameOverride = null, $returnMessage = null)
    {
        $this
            ->setPostcardID($postcardID)
            ->setSendNow($sendNow)
            ->setDateToSend($dateToSend)
            ->setEmailNotification($emailNotification)
            ->setCostOfMailing($costOfMailing)
            ->setNumberOfPages($numberOfPages)
            ->setNumberOfSheets($numberOfSheets)
            ->setLoginToken($loginToken)
            ->setName($name)
            ->setOrganisation($organisation)
            ->setStreet1($street1)
            ->setStreet2($street2)
            ->setStreet3($street3)
            ->setPostTown($postTown)
            ->setPostCode($postCode)
            ->setAcceptAddressCorrectionsStr($acceptAddressCorrectionsStr)
            ->setFirstClassStr($firstClassStr)
            ->setCostCentreStr($costCentreStr)
            ->setAffiliateGUID($affiliateGUID)
            ->setMailingNameOverride($mailingNameOverride)
            ->setReturnMessage($returnMessage);
    }
    /**
     * Get postcardID value
     * @return int
     */
    public function getPostcardID()
    {
        return $this->postcardID;
    }
    /**
     * Set postcardID value
     * @param int $postcardID
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setPostcardID($postcardID = null)
    {
        // validation for constraint: int
        if (!is_null($postcardID) && !(is_int($postcardID) || ctype_digit($postcardID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($postcardID, true), gettype($postcardID)), __LINE__);
        }
        $this->postcardID = $postcardID;
        return $this;
    }
    /**
     * Get sendNow value
     * @return bool
     */
    public function getSendNow()
    {
        return $this->sendNow;
    }
    /**
     * Set sendNow value
     * @param bool $sendNow
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setSendNow($sendNow = null)
    {
        // validation for constraint: boolean
        if (!is_null($sendNow) && !is_bool($sendNow)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($sendNow, true), gettype($sendNow)), __LINE__);
        }
        $this->sendNow = $sendNow;
        return $this;
    }
    /**
     * Get dateToSend value
     * @return string
     */
    public function getDateToSend()
    {
        return $this->dateToSend;
    }
    /**
     * Set dateToSend value
     * @param string $dateToSend
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setDateToSend($dateToSend = null)
    {
        // validation for constraint: string
        if (!is_null($dateToSend) && !is_string($dateToSend)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dateToSend, true), gettype($dateToSend)), __LINE__);
        }
        $this->dateToSend = $dateToSend;
        return $this;
    }
    /**
     * Get emailNotification value
     * @return bool
     */
    public function getEmailNotification()
    {
        return $this->emailNotification;
    }
    /**
     * Set emailNotification value
     * @param bool $emailNotification
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setEmailNotification($emailNotification = null)
    {
        // validation for constraint: boolean
        if (!is_null($emailNotification) && !is_bool($emailNotification)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($emailNotification, true), gettype($emailNotification)), __LINE__);
        }
        $this->emailNotification = $emailNotification;
        return $this;
    }
    /**
     * Get costOfMailing value
     * @return float
     */
    public function getCostOfMailing()
    {
        return $this->costOfMailing;
    }
    /**
     * Set costOfMailing value
     * @param float $costOfMailing
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setCostOfMailing($costOfMailing = null)
    {
        // validation for constraint: float
        if (!is_null($costOfMailing) && !(is_float($costOfMailing) || is_numeric($costOfMailing))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($costOfMailing, true), gettype($costOfMailing)), __LINE__);
        }
        $this->costOfMailing = $costOfMailing;
        return $this;
    }
    /**
     * Get numberOfPages value
     * @return int
     */
    public function getNumberOfPages()
    {
        return $this->numberOfPages;
    }
    /**
     * Set numberOfPages value
     * @param int $numberOfPages
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setNumberOfPages($numberOfPages = null)
    {
        // validation for constraint: int
        if (!is_null($numberOfPages) && !(is_int($numberOfPages) || ctype_digit($numberOfPages))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($numberOfPages, true), gettype($numberOfPages)), __LINE__);
        }
        $this->numberOfPages = $numberOfPages;
        return $this;
    }
    /**
     * Get numberOfSheets value
     * @return int
     */
    public function getNumberOfSheets()
    {
        return $this->numberOfSheets;
    }
    /**
     * Set numberOfSheets value
     * @param int $numberOfSheets
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setNumberOfSheets($numberOfSheets = null)
    {
        // validation for constraint: int
        if (!is_null($numberOfSheets) && !(is_int($numberOfSheets) || ctype_digit($numberOfSheets))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($numberOfSheets, true), gettype($numberOfSheets)), __LINE__);
        }
        $this->numberOfSheets = $numberOfSheets;
        return $this;
    }
    /**
     * Get loginToken value
     * @return string|null
     */
    public function getLoginToken()
    {
        return $this->loginToken;
    }
    /**
     * Set loginToken value
     * @param string $loginToken
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setLoginToken($loginToken = null)
    {
        // validation for constraint: string
        if (!is_null($loginToken) && !is_string($loginToken)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($loginToken, true), gettype($loginToken)), __LINE__);
        }
        $this->loginToken = $loginToken;
        return $this;
    }
    /**
     * Get name value
     * @return string|null
     */
    public function getName()
    {
        return $this->name;
    }
    /**
     * Set name value
     * @param string $name
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setName($name = null)
    {
        // validation for constraint: string
        if (!is_null($name) && !is_string($name)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($name, true), gettype($name)), __LINE__);
        }
        $this->name = $name;
        return $this;
    }
    /**
     * Get organisation value
     * @return string|null
     */
    public function getOrganisation()
    {
        return $this->organisation;
    }
    /**
     * Set organisation value
     * @param string $organisation
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setOrganisation($organisation = null)
    {
        // validation for constraint: string
        if (!is_null($organisation) && !is_string($organisation)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($organisation, true), gettype($organisation)), __LINE__);
        }
        $this->organisation = $organisation;
        return $this;
    }
    /**
     * Get street1 value
     * @return string|null
     */
    public function getStreet1()
    {
        return $this->street1;
    }
    /**
     * Set street1 value
     * @param string $street1
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setStreet1($street1 = null)
    {
        // validation for constraint: string
        if (!is_null($street1) && !is_string($street1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($street1, true), gettype($street1)), __LINE__);
        }
        $this->street1 = $street1;
        return $this;
    }
    /**
     * Get street2 value
     * @return string|null
     */
    public function getStreet2()
    {
        return $this->street2;
    }
    /**
     * Set street2 value
     * @param string $street2
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setStreet2($street2 = null)
    {
        // validation for constraint: string
        if (!is_null($street2) && !is_string($street2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($street2, true), gettype($street2)), __LINE__);
        }
        $this->street2 = $street2;
        return $this;
    }
    /**
     * Get street3 value
     * @return string|null
     */
    public function getStreet3()
    {
        return $this->street3;
    }
    /**
     * Set street3 value
     * @param string $street3
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setStreet3($street3 = null)
    {
        // validation for constraint: string
        if (!is_null($street3) && !is_string($street3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($street3, true), gettype($street3)), __LINE__);
        }
        $this->street3 = $street3;
        return $this;
    }
    /**
     * Get postTown value
     * @return string|null
     */
    public function getPostTown()
    {
        return $this->postTown;
    }
    /**
     * Set postTown value
     * @param string $postTown
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setPostTown($postTown = null)
    {
        // validation for constraint: string
        if (!is_null($postTown) && !is_string($postTown)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($postTown, true), gettype($postTown)), __LINE__);
        }
        $this->postTown = $postTown;
        return $this;
    }
    /**
     * Get postCode value
     * @return string|null
     */
    public function getPostCode()
    {
        return $this->postCode;
    }
    /**
     * Set postCode value
     * @param string $postCode
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setPostCode($postCode = null)
    {
        // validation for constraint: string
        if (!is_null($postCode) && !is_string($postCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($postCode, true), gettype($postCode)), __LINE__);
        }
        $this->postCode = $postCode;
        return $this;
    }
    /**
     * Get acceptAddressCorrectionsStr value
     * @return string|null
     */
    public function getAcceptAddressCorrectionsStr()
    {
        return $this->acceptAddressCorrectionsStr;
    }
    /**
     * Set acceptAddressCorrectionsStr value
     * @param string $acceptAddressCorrectionsStr
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setAcceptAddressCorrectionsStr($acceptAddressCorrectionsStr = null)
    {
        // validation for constraint: string
        if (!is_null($acceptAddressCorrectionsStr) && !is_string($acceptAddressCorrectionsStr)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($acceptAddressCorrectionsStr, true), gettype($acceptAddressCorrectionsStr)), __LINE__);
        }
        $this->acceptAddressCorrectionsStr = $acceptAddressCorrectionsStr;
        return $this;
    }
    /**
     * Get firstClassStr value
     * @return string|null
     */
    public function getFirstClassStr()
    {
        return $this->firstClassStr;
    }
    /**
     * Set firstClassStr value
     * @param string $firstClassStr
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setFirstClassStr($firstClassStr = null)
    {
        // validation for constraint: string
        if (!is_null($firstClassStr) && !is_string($firstClassStr)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($firstClassStr, true), gettype($firstClassStr)), __LINE__);
        }
        $this->firstClassStr = $firstClassStr;
        return $this;
    }
    /**
     * Get costCentreStr value
     * @return string|null
     */
    public function getCostCentreStr()
    {
        return $this->costCentreStr;
    }
    /**
     * Set costCentreStr value
     * @param string $costCentreStr
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setCostCentreStr($costCentreStr = null)
    {
        // validation for constraint: string
        if (!is_null($costCentreStr) && !is_string($costCentreStr)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($costCentreStr, true), gettype($costCentreStr)), __LINE__);
        }
        $this->costCentreStr = $costCentreStr;
        return $this;
    }
    /**
     * Get affiliateGUID value
     * @return string|null
     */
    public function getAffiliateGUID()
    {
        return $this->affiliateGUID;
    }
    /**
     * Set affiliateGUID value
     * @param string $affiliateGUID
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setAffiliateGUID($affiliateGUID = null)
    {
        // validation for constraint: string
        if (!is_null($affiliateGUID) && !is_string($affiliateGUID)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($affiliateGUID, true), gettype($affiliateGUID)), __LINE__);
        }
        $this->affiliateGUID = $affiliateGUID;
        return $this;
    }
    /**
     * Get mailingNameOverride value
     * @return string|null
     */
    public function getMailingNameOverride()
    {
        return $this->mailingNameOverride;
    }
    /**
     * Set mailingNameOverride value
     * @param string $mailingNameOverride
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setMailingNameOverride($mailingNameOverride = null)
    {
        // validation for constraint: string
        if (!is_null($mailingNameOverride) && !is_string($mailingNameOverride)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($mailingNameOverride, true), gettype($mailingNameOverride)), __LINE__);
        }
        $this->mailingNameOverride = $mailingNameOverride;
        return $this;
    }
    /**
     * Get returnMessage value
     * @return string|null
     */
    public function getReturnMessage()
    {
        return $this->returnMessage;
    }
    /**
     * Set returnMessage value
     * @param string $returnMessage
     * @return \\NineDotMedia\viapost-php\SendPostcardToSingleAddress
     */
    public function setReturnMessage($returnMessage = null)
    {
        // validation for constraint: string
        if (!is_null($returnMessage) && !is_string($returnMessage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($returnMessage, true), gettype($returnMessage)), __LINE__);
        }
        $this->returnMessage = $returnMessage;
        return $this;
    }
}
