<?php

namespace NineDotMedia\viapost-php\Struct;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for GetUserDetails Struct
 * @subpackage Structs
 */
class GetUserDetails extends AbstractStructBase
{
    /**
     * The decBWFirstPageCost
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $decBWFirstPageCost;
    /**
     * The decBWAdditionalPageCost
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $decBWAdditionalPageCost;
    /**
     * The decColourFirstPageCost
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $decColourFirstPageCost;
    /**
     * The decColourAdditionalPageCost
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $decColourAdditionalPageCost;
    /**
     * The decForceThroughCost
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $decForceThroughCost;
    /**
     * The strLoginToken
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strLoginToken;
    /**
     * The strFirstName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strFirstName;
    /**
     * The strSurname
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strSurname;
    /**
     * The strCompanyName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strCompanyName;
    /**
     * The decVATRate
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $decVATRate;
    /**
     * The strReturnMessage
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strReturnMessage;
    /**
     * Constructor method for GetUserDetails
     * @uses GetUserDetails::setDecBWFirstPageCost()
     * @uses GetUserDetails::setDecBWAdditionalPageCost()
     * @uses GetUserDetails::setDecColourFirstPageCost()
     * @uses GetUserDetails::setDecColourAdditionalPageCost()
     * @uses GetUserDetails::setDecForceThroughCost()
     * @uses GetUserDetails::setStrLoginToken()
     * @uses GetUserDetails::setStrFirstName()
     * @uses GetUserDetails::setStrSurname()
     * @uses GetUserDetails::setStrCompanyName()
     * @uses GetUserDetails::setDecVATRate()
     * @uses GetUserDetails::setStrReturnMessage()
     * @param float $decBWFirstPageCost
     * @param float $decBWAdditionalPageCost
     * @param float $decColourFirstPageCost
     * @param float $decColourAdditionalPageCost
     * @param float $decForceThroughCost
     * @param string $strLoginToken
     * @param string $strFirstName
     * @param string $strSurname
     * @param string $strCompanyName
     * @param string $decVATRate
     * @param string $strReturnMessage
     */
    public function __construct($decBWFirstPageCost = null, $decBWAdditionalPageCost = null, $decColourFirstPageCost = null, $decColourAdditionalPageCost = null, $decForceThroughCost = null, $strLoginToken = null, $strFirstName = null, $strSurname = null, $strCompanyName = null, $decVATRate = null, $strReturnMessage = null)
    {
        $this
            ->setDecBWFirstPageCost($decBWFirstPageCost)
            ->setDecBWAdditionalPageCost($decBWAdditionalPageCost)
            ->setDecColourFirstPageCost($decColourFirstPageCost)
            ->setDecColourAdditionalPageCost($decColourAdditionalPageCost)
            ->setDecForceThroughCost($decForceThroughCost)
            ->setStrLoginToken($strLoginToken)
            ->setStrFirstName($strFirstName)
            ->setStrSurname($strSurname)
            ->setStrCompanyName($strCompanyName)
            ->setDecVATRate($decVATRate)
            ->setStrReturnMessage($strReturnMessage);
    }
    /**
     * Get decBWFirstPageCost value
     * @return float
     */
    public function getDecBWFirstPageCost()
    {
        return $this->decBWFirstPageCost;
    }
    /**
     * Set decBWFirstPageCost value
     * @param float $decBWFirstPageCost
     * @return \NineDotMedia\viapost-php\Struct\GetUserDetails
     */
    public function setDecBWFirstPageCost($decBWFirstPageCost = null)
    {
        // validation for constraint: float
        if (!is_null($decBWFirstPageCost) && !(is_float($decBWFirstPageCost) || is_numeric($decBWFirstPageCost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($decBWFirstPageCost, true), gettype($decBWFirstPageCost)), __LINE__);
        }
        $this->decBWFirstPageCost = $decBWFirstPageCost;
        return $this;
    }
    /**
     * Get decBWAdditionalPageCost value
     * @return float
     */
    public function getDecBWAdditionalPageCost()
    {
        return $this->decBWAdditionalPageCost;
    }
    /**
     * Set decBWAdditionalPageCost value
     * @param float $decBWAdditionalPageCost
     * @return \NineDotMedia\viapost-php\Struct\GetUserDetails
     */
    public function setDecBWAdditionalPageCost($decBWAdditionalPageCost = null)
    {
        // validation for constraint: float
        if (!is_null($decBWAdditionalPageCost) && !(is_float($decBWAdditionalPageCost) || is_numeric($decBWAdditionalPageCost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($decBWAdditionalPageCost, true), gettype($decBWAdditionalPageCost)), __LINE__);
        }
        $this->decBWAdditionalPageCost = $decBWAdditionalPageCost;
        return $this;
    }
    /**
     * Get decColourFirstPageCost value
     * @return float
     */
    public function getDecColourFirstPageCost()
    {
        return $this->decColourFirstPageCost;
    }
    /**
     * Set decColourFirstPageCost value
     * @param float $decColourFirstPageCost
     * @return \NineDotMedia\viapost-php\Struct\GetUserDetails
     */
    public function setDecColourFirstPageCost($decColourFirstPageCost = null)
    {
        // validation for constraint: float
        if (!is_null($decColourFirstPageCost) && !(is_float($decColourFirstPageCost) || is_numeric($decColourFirstPageCost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($decColourFirstPageCost, true), gettype($decColourFirstPageCost)), __LINE__);
        }
        $this->decColourFirstPageCost = $decColourFirstPageCost;
        return $this;
    }
    /**
     * Get decColourAdditionalPageCost value
     * @return float
     */
    public function getDecColourAdditionalPageCost()
    {
        return $this->decColourAdditionalPageCost;
    }
    /**
     * Set decColourAdditionalPageCost value
     * @param float $decColourAdditionalPageCost
     * @return \NineDotMedia\viapost-php\Struct\GetUserDetails
     */
    public function setDecColourAdditionalPageCost($decColourAdditionalPageCost = null)
    {
        // validation for constraint: float
        if (!is_null($decColourAdditionalPageCost) && !(is_float($decColourAdditionalPageCost) || is_numeric($decColourAdditionalPageCost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($decColourAdditionalPageCost, true), gettype($decColourAdditionalPageCost)), __LINE__);
        }
        $this->decColourAdditionalPageCost = $decColourAdditionalPageCost;
        return $this;
    }
    /**
     * Get decForceThroughCost value
     * @return float
     */
    public function getDecForceThroughCost()
    {
        return $this->decForceThroughCost;
    }
    /**
     * Set decForceThroughCost value
     * @param float $decForceThroughCost
     * @return \NineDotMedia\viapost-php\Struct\GetUserDetails
     */
    public function setDecForceThroughCost($decForceThroughCost = null)
    {
        // validation for constraint: float
        if (!is_null($decForceThroughCost) && !(is_float($decForceThroughCost) || is_numeric($decForceThroughCost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($decForceThroughCost, true), gettype($decForceThroughCost)), __LINE__);
        }
        $this->decForceThroughCost = $decForceThroughCost;
        return $this;
    }
    /**
     * Get strLoginToken value
     * @return string|null
     */
    public function getStrLoginToken()
    {
        return $this->strLoginToken;
    }
    /**
     * Set strLoginToken value
     * @param string $strLoginToken
     * @return \NineDotMedia\viapost-php\Struct\GetUserDetails
     */
    public function setStrLoginToken($strLoginToken = null)
    {
        // validation for constraint: string
        if (!is_null($strLoginToken) && !is_string($strLoginToken)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strLoginToken, true), gettype($strLoginToken)), __LINE__);
        }
        $this->strLoginToken = $strLoginToken;
        return $this;
    }
    /**
     * Get strFirstName value
     * @return string|null
     */
    public function getStrFirstName()
    {
        return $this->strFirstName;
    }
    /**
     * Set strFirstName value
     * @param string $strFirstName
     * @return \NineDotMedia\viapost-php\Struct\GetUserDetails
     */
    public function setStrFirstName($strFirstName = null)
    {
        // validation for constraint: string
        if (!is_null($strFirstName) && !is_string($strFirstName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strFirstName, true), gettype($strFirstName)), __LINE__);
        }
        $this->strFirstName = $strFirstName;
        return $this;
    }
    /**
     * Get strSurname value
     * @return string|null
     */
    public function getStrSurname()
    {
        return $this->strSurname;
    }
    /**
     * Set strSurname value
     * @param string $strSurname
     * @return \NineDotMedia\viapost-php\Struct\GetUserDetails
     */
    public function setStrSurname($strSurname = null)
    {
        // validation for constraint: string
        if (!is_null($strSurname) && !is_string($strSurname)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strSurname, true), gettype($strSurname)), __LINE__);
        }
        $this->strSurname = $strSurname;
        return $this;
    }
    /**
     * Get strCompanyName value
     * @return string|null
     */
    public function getStrCompanyName()
    {
        return $this->strCompanyName;
    }
    /**
     * Set strCompanyName value
     * @param string $strCompanyName
     * @return \NineDotMedia\viapost-php\Struct\GetUserDetails
     */
    public function setStrCompanyName($strCompanyName = null)
    {
        // validation for constraint: string
        if (!is_null($strCompanyName) && !is_string($strCompanyName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strCompanyName, true), gettype($strCompanyName)), __LINE__);
        }
        $this->strCompanyName = $strCompanyName;
        return $this;
    }
    /**
     * Get decVATRate value
     * @return string|null
     */
    public function getDecVATRate()
    {
        return $this->decVATRate;
    }
    /**
     * Set decVATRate value
     * @param string $decVATRate
     * @return \NineDotMedia\viapost-php\Struct\GetUserDetails
     */
    public function setDecVATRate($decVATRate = null)
    {
        // validation for constraint: string
        if (!is_null($decVATRate) && !is_string($decVATRate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($decVATRate, true), gettype($decVATRate)), __LINE__);
        }
        $this->decVATRate = $decVATRate;
        return $this;
    }
    /**
     * Get strReturnMessage value
     * @return string|null
     */
    public function getStrReturnMessage()
    {
        return $this->strReturnMessage;
    }
    /**
     * Set strReturnMessage value
     * @param string $strReturnMessage
     * @return \NineDotMedia\viapost-php\Struct\GetUserDetails
     */
    public function setStrReturnMessage($strReturnMessage = null)
    {
        // validation for constraint: string
        if (!is_null($strReturnMessage) && !is_string($strReturnMessage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strReturnMessage, true), gettype($strReturnMessage)), __LINE__);
        }
        $this->strReturnMessage = $strReturnMessage;
        return $this;
    }
}
