<?php

namespace App\Integration\Providers\Alliance3\DTO;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for DealerConractInfo DTO
 * Meta information extracted from the WSDL
 * - type: tns:DealerConractInfo
 * @subpackage Structs
 */
class DealerConractInfo extends AbstractStructBase
{
    /**
     * The type
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $type;
    /**
     * The agentConract
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \App\Integration\Providers\Alliance3\DTO\AgentConract
     */
    public $agentConract;
    /**
     * The generalConract
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \App\Integration\Providers\Alliance3\DTO\GeneralConract
     */
    public $generalConract;
    /**
     * The dealer
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \App\Integration\Providers\Alliance3\DTO\SubjectInfo
     */
    public $dealer;
    /**
     * Constructor method for DealerConractInfo
     * @uses DealerConractInfo::setType()
     * @uses DealerConractInfo::setAgentConract()
     * @uses DealerConractInfo::setGeneralConract()
     * @uses DealerConractInfo::setDealer()
     * @param string $type
     * @param \App\Integration\Providers\Alliance3\DTO\AgentConract $agentConract
     * @param \App\Integration\Providers\Alliance3\DTO\GeneralConract $generalConract
     * @param \App\Integration\Providers\Alliance3\DTO\SubjectInfo $dealer
     */
    public function __construct($type = null, \App\Integration\Providers\Alliance3\DTO\AgentConract $agentConract = null, \App\Integration\Providers\Alliance3\DTO\GeneralConract $generalConract = null, \App\Integration\Providers\Alliance3\DTO\SubjectInfo $dealer = null)
    {
        $this
            ->setType($type)
            ->setAgentConract($agentConract)
            ->setGeneralConract($generalConract)
            ->setDealer($dealer);
    }
    /**
     * Get type value
     * @return string|null
     */
    public function getType()
    {
        return $this->type;
    }
    /**
     * Set type value
     * @param string $type
     * @return \App\Integration\Providers\Alliance3\DTO\DealerConractInfo
     */
    public function setType($type = null)
    {
        $this->type = $type;
        return $this;
    }
    /**
     * Get agentConract value
     * @return \App\Integration\Providers\Alliance3\DTO\AgentConract|null
     */
    public function getAgentConract()
    {
        return $this->agentConract;
    }
    /**
     * Set agentConract value
     * @param \App\Integration\Providers\Alliance3\DTO\AgentConract $agentConract
     * @return \App\Integration\Providers\Alliance3\DTO\DealerConractInfo
     */
    public function setAgentConract(\App\Integration\Providers\Alliance3\DTO\AgentConract $agentConract = null)
    {
        $this->agentConract = $agentConract;
        return $this;
    }
    /**
     * Get generalConract value
     * @return \App\Integration\Providers\Alliance3\DTO\GeneralConract|null
     */
    public function getGeneralConract()
    {
        return $this->generalConract;
    }
    /**
     * Set generalConract value
     * @param \App\Integration\Providers\Alliance3\DTO\GeneralConract $generalConract
     * @return \App\Integration\Providers\Alliance3\DTO\DealerConractInfo
     */
    public function setGeneralConract(\App\Integration\Providers\Alliance3\DTO\GeneralConract $generalConract = null)
    {
        $this->generalConract = $generalConract;
        return $this;
    }
    /**
     * Get dealer value
     * @return \App\Integration\Providers\Alliance3\DTO\SubjectInfo|null
     */
    public function getDealer()
    {
        return $this->dealer;
    }
    /**
     * Set dealer value
     * @param \App\Integration\Providers\Alliance3\DTO\SubjectInfo $dealer
     * @return \App\Integration\Providers\Alliance3\DTO\DealerConractInfo
     */
    public function setDealer(\App\Integration\Providers\Alliance3\DTO\SubjectInfo $dealer = null)
    {
        $this->dealer = $dealer;
        return $this;
    }
}
