<?php

namespace App\Services\QBWC;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for sendRequestXML StructType
 * @subpackage Structs
 */
class SendRequestXML extends AbstractStructBase
{
    /**
     * The qbXMLMajorVers
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $qbXMLMajorVers;
    /**
     * The qbXMLMinorVers
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $qbXMLMinorVers;
    /**
     * The ticket
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ticket;
    /**
     * The strHCPResponse
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strHCPResponse;
    /**
     * The strCompanyFileName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strCompanyFileName;
    /**
     * The qbXMLCountry
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $qbXMLCountry;
    /**
     * Constructor method for sendRequestXML
     * @uses SendRequestXML::setQbXMLMajorVers()
     * @uses SendRequestXML::setQbXMLMinorVers()
     * @uses SendRequestXML::setTicket()
     * @uses SendRequestXML::setStrHCPResponse()
     * @uses SendRequestXML::setStrCompanyFileName()
     * @uses SendRequestXML::setQbXMLCountry()
     * @param int $qbXMLMajorVers
     * @param int $qbXMLMinorVers
     * @param string $ticket
     * @param string $strHCPResponse
     * @param string $strCompanyFileName
     * @param string $qbXMLCountry
     */
    public function __construct($qbXMLMajorVers = null, $qbXMLMinorVers = null, $ticket = null, $strHCPResponse = null, $strCompanyFileName = null, $qbXMLCountry = null)
    {
        $this
            ->setQbXMLMajorVers($qbXMLMajorVers)
            ->setQbXMLMinorVers($qbXMLMinorVers)
            ->setTicket($ticket)
            ->setStrHCPResponse($strHCPResponse)
            ->setStrCompanyFileName($strCompanyFileName)
            ->setQbXMLCountry($qbXMLCountry);
    }
    /**
     * Get qbXMLMajorVers value
     * @return int
     */
    public function getQbXMLMajorVers()
    {
        return $this->qbXMLMajorVers;
    }
    /**
     * Set qbXMLMajorVers value
     * @param int $qbXMLMajorVers
     * @return \App\Services\QBWC\SendRequestXML
     */
    public function setQbXMLMajorVers($qbXMLMajorVers = null)
    {
        // validation for constraint: int
        if (!is_null($qbXMLMajorVers) && !(is_int($qbXMLMajorVers) || ctype_digit($qbXMLMajorVers))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($qbXMLMajorVers, true), gettype($qbXMLMajorVers)), __LINE__);
        }
        $this->qbXMLMajorVers = $qbXMLMajorVers;
        return $this;
    }
    /**
     * Get qbXMLMinorVers value
     * @return int
     */
    public function getQbXMLMinorVers()
    {
        return $this->qbXMLMinorVers;
    }
    /**
     * Set qbXMLMinorVers value
     * @param int $qbXMLMinorVers
     * @return \App\Services\QBWC\SendRequestXML
     */
    public function setQbXMLMinorVers($qbXMLMinorVers = null)
    {
        // validation for constraint: int
        if (!is_null($qbXMLMinorVers) && !(is_int($qbXMLMinorVers) || ctype_digit($qbXMLMinorVers))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($qbXMLMinorVers, true), gettype($qbXMLMinorVers)), __LINE__);
        }
        $this->qbXMLMinorVers = $qbXMLMinorVers;
        return $this;
    }
    /**
     * Get ticket value
     * @return string|null
     */
    public function getTicket()
    {
        return $this->ticket;
    }
    /**
     * Set ticket value
     * @param string $ticket
     * @return \App\Services\QBWC\SendRequestXML
     */
    public function setTicket($ticket = null)
    {
        // validation for constraint: string
        if (!is_null($ticket) && !is_string($ticket)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ticket, true), gettype($ticket)), __LINE__);
        }
        $this->ticket = $ticket;
        return $this;
    }
    /**
     * Get strHCPResponse value
     * @return string|null
     */
    public function getStrHCPResponse()
    {
        return $this->strHCPResponse;
    }
    /**
     * Set strHCPResponse value
     * @param string $strHCPResponse
     * @return \App\Services\QBWC\SendRequestXML
     */
    public function setStrHCPResponse($strHCPResponse = null)
    {
        // validation for constraint: string
        if (!is_null($strHCPResponse) && !is_string($strHCPResponse)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strHCPResponse, true), gettype($strHCPResponse)), __LINE__);
        }
        $this->strHCPResponse = $strHCPResponse;
        return $this;
    }
    /**
     * Get strCompanyFileName value
     * @return string|null
     */
    public function getStrCompanyFileName()
    {
        return $this->strCompanyFileName;
    }
    /**
     * Set strCompanyFileName value
     * @param string $strCompanyFileName
     * @return \App\Services\QBWC\SendRequestXML
     */
    public function setStrCompanyFileName($strCompanyFileName = null)
    {
        // validation for constraint: string
        if (!is_null($strCompanyFileName) && !is_string($strCompanyFileName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strCompanyFileName, true), gettype($strCompanyFileName)), __LINE__);
        }
        $this->strCompanyFileName = $strCompanyFileName;
        return $this;
    }
    /**
     * Get qbXMLCountry value
     * @return string|null
     */
    public function getQbXMLCountry()
    {
        return $this->qbXMLCountry;
    }
    /**
     * Set qbXMLCountry value
     * @param string $qbXMLCountry
     * @return \App\Services\QBWC\SendRequestXML
     */
    public function setQbXMLCountry($qbXMLCountry = null)
    {
        // validation for constraint: string
        if (!is_null($qbXMLCountry) && !is_string($qbXMLCountry)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($qbXMLCountry, true), gettype($qbXMLCountry)), __LINE__);
        }
        $this->qbXMLCountry = $qbXMLCountry;
        return $this;
    }
}
