<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for TermSearchBasic StructType
 * @subpackage Structs
 */
class TermSearchBasic extends SearchRecordBasic
{
    /**
     * The dateDriven
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchBooleanField
     */
    public $dateDriven;
    /**
     * The dayDiscountExpires
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchLongField
     */
    public $dayDiscountExpires;
    /**
     * The dayOfMonthNetDue
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchLongField
     */
    public $dayOfMonthNetDue;
    /**
     * The daysUntilExpiry
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchLongField
     */
    public $daysUntilExpiry;
    /**
     * The daysUntilNetDue
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchLongField
     */
    public $daysUntilNetDue;
    /**
     * The discountPercent
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchDoubleField
     */
    public $discountPercent;
    /**
     * The discountPercentDateDriven
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchDoubleField
     */
    public $discountPercentDateDriven;
    /**
     * The dueNextMonthIfWithinDays
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchLongField
     */
    public $dueNextMonthIfWithinDays;
    /**
     * The externalId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchMultiSelectField
     */
    public $externalId;
    /**
     * The externalIdString
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchStringField
     */
    public $externalIdString;
    /**
     * The installment
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchBooleanField
     */
    public $installment;
    /**
     * The internalId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchMultiSelectField
     */
    public $internalId;
    /**
     * The internalIdNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchLongField
     */
    public $internalIdNumber;
    /**
     * The isInactive
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchBooleanField
     */
    public $isInactive;
    /**
     * The name
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchStringField
     */
    public $name;
    /**
     * The preferred
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchBooleanField
     */
    public $preferred;
    /**
     * The recurrenceCount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchLongField
     */
    public $recurrenceCount;
    /**
     * The recurrenceFrequency
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchEnumMultiSelectField
     */
    public $recurrenceFrequency;
    /**
     * The repeatEvery
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchLongField
     */
    public $repeatEvery;
    /**
     * The splitEvenly
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchBooleanField
     */
    public $splitEvenly;
    /**
     * Constructor method for TermSearchBasic
     * @uses TermSearchBasic::setDateDriven()
     * @uses TermSearchBasic::setDayDiscountExpires()
     * @uses TermSearchBasic::setDayOfMonthNetDue()
     * @uses TermSearchBasic::setDaysUntilExpiry()
     * @uses TermSearchBasic::setDaysUntilNetDue()
     * @uses TermSearchBasic::setDiscountPercent()
     * @uses TermSearchBasic::setDiscountPercentDateDriven()
     * @uses TermSearchBasic::setDueNextMonthIfWithinDays()
     * @uses TermSearchBasic::setExternalId()
     * @uses TermSearchBasic::setExternalIdString()
     * @uses TermSearchBasic::setInstallment()
     * @uses TermSearchBasic::setInternalId()
     * @uses TermSearchBasic::setInternalIdNumber()
     * @uses TermSearchBasic::setIsInactive()
     * @uses TermSearchBasic::setName()
     * @uses TermSearchBasic::setPreferred()
     * @uses TermSearchBasic::setRecurrenceCount()
     * @uses TermSearchBasic::setRecurrenceFrequency()
     * @uses TermSearchBasic::setRepeatEvery()
     * @uses TermSearchBasic::setSplitEvenly()
     * @param \StructType\SearchBooleanField $dateDriven
     * @param \StructType\SearchLongField $dayDiscountExpires
     * @param \StructType\SearchLongField $dayOfMonthNetDue
     * @param \StructType\SearchLongField $daysUntilExpiry
     * @param \StructType\SearchLongField $daysUntilNetDue
     * @param \StructType\SearchDoubleField $discountPercent
     * @param \StructType\SearchDoubleField $discountPercentDateDriven
     * @param \StructType\SearchLongField $dueNextMonthIfWithinDays
     * @param \StructType\SearchMultiSelectField $externalId
     * @param \StructType\SearchStringField $externalIdString
     * @param \StructType\SearchBooleanField $installment
     * @param \StructType\SearchMultiSelectField $internalId
     * @param \StructType\SearchLongField $internalIdNumber
     * @param \StructType\SearchBooleanField $isInactive
     * @param \StructType\SearchStringField $name
     * @param \StructType\SearchBooleanField $preferred
     * @param \StructType\SearchLongField $recurrenceCount
     * @param \StructType\SearchEnumMultiSelectField $recurrenceFrequency
     * @param \StructType\SearchLongField $repeatEvery
     * @param \StructType\SearchBooleanField $splitEvenly
     */
    public function __construct(\StructType\SearchBooleanField $dateDriven = null, \StructType\SearchLongField $dayDiscountExpires = null, \StructType\SearchLongField $dayOfMonthNetDue = null, \StructType\SearchLongField $daysUntilExpiry = null, \StructType\SearchLongField $daysUntilNetDue = null, \StructType\SearchDoubleField $discountPercent = null, \StructType\SearchDoubleField $discountPercentDateDriven = null, \StructType\SearchLongField $dueNextMonthIfWithinDays = null, \StructType\SearchMultiSelectField $externalId = null, \StructType\SearchStringField $externalIdString = null, \StructType\SearchBooleanField $installment = null, \StructType\SearchMultiSelectField $internalId = null, \StructType\SearchLongField $internalIdNumber = null, \StructType\SearchBooleanField $isInactive = null, \StructType\SearchStringField $name = null, \StructType\SearchBooleanField $preferred = null, \StructType\SearchLongField $recurrenceCount = null, \StructType\SearchEnumMultiSelectField $recurrenceFrequency = null, \StructType\SearchLongField $repeatEvery = null, \StructType\SearchBooleanField $splitEvenly = null)
    {
        $this
            ->setDateDriven($dateDriven)
            ->setDayDiscountExpires($dayDiscountExpires)
            ->setDayOfMonthNetDue($dayOfMonthNetDue)
            ->setDaysUntilExpiry($daysUntilExpiry)
            ->setDaysUntilNetDue($daysUntilNetDue)
            ->setDiscountPercent($discountPercent)
            ->setDiscountPercentDateDriven($discountPercentDateDriven)
            ->setDueNextMonthIfWithinDays($dueNextMonthIfWithinDays)
            ->setExternalId($externalId)
            ->setExternalIdString($externalIdString)
            ->setInstallment($installment)
            ->setInternalId($internalId)
            ->setInternalIdNumber($internalIdNumber)
            ->setIsInactive($isInactive)
            ->setName($name)
            ->setPreferred($preferred)
            ->setRecurrenceCount($recurrenceCount)
            ->setRecurrenceFrequency($recurrenceFrequency)
            ->setRepeatEvery($repeatEvery)
            ->setSplitEvenly($splitEvenly);
    }
    /**
     * Get dateDriven value
     * @return \StructType\SearchBooleanField|null
     */
    public function getDateDriven()
    {
        return $this->dateDriven;
    }
    /**
     * Set dateDriven value
     * @param \StructType\SearchBooleanField $dateDriven
     * @return \StructType\TermSearchBasic
     */
    public function setDateDriven(\StructType\SearchBooleanField $dateDriven = null)
    {
        $this->dateDriven = $dateDriven;
        return $this;
    }
    /**
     * Get dayDiscountExpires value
     * @return \StructType\SearchLongField|null
     */
    public function getDayDiscountExpires()
    {
        return $this->dayDiscountExpires;
    }
    /**
     * Set dayDiscountExpires value
     * @param \StructType\SearchLongField $dayDiscountExpires
     * @return \StructType\TermSearchBasic
     */
    public function setDayDiscountExpires(\StructType\SearchLongField $dayDiscountExpires = null)
    {
        $this->dayDiscountExpires = $dayDiscountExpires;
        return $this;
    }
    /**
     * Get dayOfMonthNetDue value
     * @return \StructType\SearchLongField|null
     */
    public function getDayOfMonthNetDue()
    {
        return $this->dayOfMonthNetDue;
    }
    /**
     * Set dayOfMonthNetDue value
     * @param \StructType\SearchLongField $dayOfMonthNetDue
     * @return \StructType\TermSearchBasic
     */
    public function setDayOfMonthNetDue(\StructType\SearchLongField $dayOfMonthNetDue = null)
    {
        $this->dayOfMonthNetDue = $dayOfMonthNetDue;
        return $this;
    }
    /**
     * Get daysUntilExpiry value
     * @return \StructType\SearchLongField|null
     */
    public function getDaysUntilExpiry()
    {
        return $this->daysUntilExpiry;
    }
    /**
     * Set daysUntilExpiry value
     * @param \StructType\SearchLongField $daysUntilExpiry
     * @return \StructType\TermSearchBasic
     */
    public function setDaysUntilExpiry(\StructType\SearchLongField $daysUntilExpiry = null)
    {
        $this->daysUntilExpiry = $daysUntilExpiry;
        return $this;
    }
    /**
     * Get daysUntilNetDue value
     * @return \StructType\SearchLongField|null
     */
    public function getDaysUntilNetDue()
    {
        return $this->daysUntilNetDue;
    }
    /**
     * Set daysUntilNetDue value
     * @param \StructType\SearchLongField $daysUntilNetDue
     * @return \StructType\TermSearchBasic
     */
    public function setDaysUntilNetDue(\StructType\SearchLongField $daysUntilNetDue = null)
    {
        $this->daysUntilNetDue = $daysUntilNetDue;
        return $this;
    }
    /**
     * Get discountPercent value
     * @return \StructType\SearchDoubleField|null
     */
    public function getDiscountPercent()
    {
        return $this->discountPercent;
    }
    /**
     * Set discountPercent value
     * @param \StructType\SearchDoubleField $discountPercent
     * @return \StructType\TermSearchBasic
     */
    public function setDiscountPercent(\StructType\SearchDoubleField $discountPercent = null)
    {
        $this->discountPercent = $discountPercent;
        return $this;
    }
    /**
     * Get discountPercentDateDriven value
     * @return \StructType\SearchDoubleField|null
     */
    public function getDiscountPercentDateDriven()
    {
        return $this->discountPercentDateDriven;
    }
    /**
     * Set discountPercentDateDriven value
     * @param \StructType\SearchDoubleField $discountPercentDateDriven
     * @return \StructType\TermSearchBasic
     */
    public function setDiscountPercentDateDriven(\StructType\SearchDoubleField $discountPercentDateDriven = null)
    {
        $this->discountPercentDateDriven = $discountPercentDateDriven;
        return $this;
    }
    /**
     * Get dueNextMonthIfWithinDays value
     * @return \StructType\SearchLongField|null
     */
    public function getDueNextMonthIfWithinDays()
    {
        return $this->dueNextMonthIfWithinDays;
    }
    /**
     * Set dueNextMonthIfWithinDays value
     * @param \StructType\SearchLongField $dueNextMonthIfWithinDays
     * @return \StructType\TermSearchBasic
     */
    public function setDueNextMonthIfWithinDays(\StructType\SearchLongField $dueNextMonthIfWithinDays = null)
    {
        $this->dueNextMonthIfWithinDays = $dueNextMonthIfWithinDays;
        return $this;
    }
    /**
     * Get externalId value
     * @return \StructType\SearchMultiSelectField|null
     */
    public function getExternalId()
    {
        return $this->externalId;
    }
    /**
     * Set externalId value
     * @param \StructType\SearchMultiSelectField $externalId
     * @return \StructType\TermSearchBasic
     */
    public function setExternalId(\StructType\SearchMultiSelectField $externalId = null)
    {
        $this->externalId = $externalId;
        return $this;
    }
    /**
     * Get externalIdString value
     * @return \StructType\SearchStringField|null
     */
    public function getExternalIdString()
    {
        return $this->externalIdString;
    }
    /**
     * Set externalIdString value
     * @param \StructType\SearchStringField $externalIdString
     * @return \StructType\TermSearchBasic
     */
    public function setExternalIdString(\StructType\SearchStringField $externalIdString = null)
    {
        $this->externalIdString = $externalIdString;
        return $this;
    }
    /**
     * Get installment value
     * @return \StructType\SearchBooleanField|null
     */
    public function getInstallment()
    {
        return $this->installment;
    }
    /**
     * Set installment value
     * @param \StructType\SearchBooleanField $installment
     * @return \StructType\TermSearchBasic
     */
    public function setInstallment(\StructType\SearchBooleanField $installment = null)
    {
        $this->installment = $installment;
        return $this;
    }
    /**
     * Get internalId value
     * @return \StructType\SearchMultiSelectField|null
     */
    public function getInternalId()
    {
        return $this->internalId;
    }
    /**
     * Set internalId value
     * @param \StructType\SearchMultiSelectField $internalId
     * @return \StructType\TermSearchBasic
     */
    public function setInternalId(\StructType\SearchMultiSelectField $internalId = null)
    {
        $this->internalId = $internalId;
        return $this;
    }
    /**
     * Get internalIdNumber value
     * @return \StructType\SearchLongField|null
     */
    public function getInternalIdNumber()
    {
        return $this->internalIdNumber;
    }
    /**
     * Set internalIdNumber value
     * @param \StructType\SearchLongField $internalIdNumber
     * @return \StructType\TermSearchBasic
     */
    public function setInternalIdNumber(\StructType\SearchLongField $internalIdNumber = null)
    {
        $this->internalIdNumber = $internalIdNumber;
        return $this;
    }
    /**
     * Get isInactive value
     * @return \StructType\SearchBooleanField|null
     */
    public function getIsInactive()
    {
        return $this->isInactive;
    }
    /**
     * Set isInactive value
     * @param \StructType\SearchBooleanField $isInactive
     * @return \StructType\TermSearchBasic
     */
    public function setIsInactive(\StructType\SearchBooleanField $isInactive = null)
    {
        $this->isInactive = $isInactive;
        return $this;
    }
    /**
     * Get name value
     * @return \StructType\SearchStringField|null
     */
    public function getName()
    {
        return $this->name;
    }
    /**
     * Set name value
     * @param \StructType\SearchStringField $name
     * @return \StructType\TermSearchBasic
     */
    public function setName(\StructType\SearchStringField $name = null)
    {
        $this->name = $name;
        return $this;
    }
    /**
     * Get preferred value
     * @return \StructType\SearchBooleanField|null
     */
    public function getPreferred()
    {
        return $this->preferred;
    }
    /**
     * Set preferred value
     * @param \StructType\SearchBooleanField $preferred
     * @return \StructType\TermSearchBasic
     */
    public function setPreferred(\StructType\SearchBooleanField $preferred = null)
    {
        $this->preferred = $preferred;
        return $this;
    }
    /**
     * Get recurrenceCount value
     * @return \StructType\SearchLongField|null
     */
    public function getRecurrenceCount()
    {
        return $this->recurrenceCount;
    }
    /**
     * Set recurrenceCount value
     * @param \StructType\SearchLongField $recurrenceCount
     * @return \StructType\TermSearchBasic
     */
    public function setRecurrenceCount(\StructType\SearchLongField $recurrenceCount = null)
    {
        $this->recurrenceCount = $recurrenceCount;
        return $this;
    }
    /**
     * Get recurrenceFrequency value
     * @return \StructType\SearchEnumMultiSelectField|null
     */
    public function getRecurrenceFrequency()
    {
        return $this->recurrenceFrequency;
    }
    /**
     * Set recurrenceFrequency value
     * @param \StructType\SearchEnumMultiSelectField $recurrenceFrequency
     * @return \StructType\TermSearchBasic
     */
    public function setRecurrenceFrequency(\StructType\SearchEnumMultiSelectField $recurrenceFrequency = null)
    {
        $this->recurrenceFrequency = $recurrenceFrequency;
        return $this;
    }
    /**
     * Get repeatEvery value
     * @return \StructType\SearchLongField|null
     */
    public function getRepeatEvery()
    {
        return $this->repeatEvery;
    }
    /**
     * Set repeatEvery value
     * @param \StructType\SearchLongField $repeatEvery
     * @return \StructType\TermSearchBasic
     */
    public function setRepeatEvery(\StructType\SearchLongField $repeatEvery = null)
    {
        $this->repeatEvery = $repeatEvery;
        return $this;
    }
    /**
     * Get splitEvenly value
     * @return \StructType\SearchBooleanField|null
     */
    public function getSplitEvenly()
    {
        return $this->splitEvenly;
    }
    /**
     * Set splitEvenly value
     * @param \StructType\SearchBooleanField $splitEvenly
     * @return \StructType\TermSearchBasic
     */
    public function setSplitEvenly(\StructType\SearchBooleanField $splitEvenly = null)
    {
        $this->splitEvenly = $splitEvenly;
        return $this;
    }
}
