#ifndef POLICY_RECORD_H__
#define POLICY_RECORD_H__

#include <QtCore/QString>

class PolicyRecord
{
public:
	PolicyRecord();
	~PolicyRecord();


	PolicyRecord( const PolicyRecord & other )
		: policySerial( other.policySerial ),
		  signDate( other.signDate ),
		  salerCode( other.salerCode ),
		  salerName( other.salerName ),
		  salerDeptCode( other.salerDeptCode ),
		  salerDeptName( other.salerDeptName ),
		  salerOfficeCode( other.salerOfficeCode ),
		  salerOfficeName( other.salerOfficeName ),
		  autoTraderCode( other.autoTraderCode ),
		  autoTraderName( other.autoTraderName ),
		  customerName( other.customerName ),
		  plateSerial( other.plateSerial ),
		  frameSerial( other.frameSerial ),
		  engineSerial( other.engineSerial ),
		  operatorDate( other.operatorDate ),
		  operatorCode( other.operatorCode ),
		  isAutotraderCall( other.isAutotraderCall )
	{
	}

	PolicyRecord( PolicyRecord && other )
		: policySerial( std::move(other.policySerial) ),
		  signDate( std::move(other.signDate) ),
		  salerCode( std::move(other.salerCode) ),
		  salerName( std::move(other.salerName) ),
		  salerDeptCode( std::move(other.salerDeptCode) ),
		  salerDeptName( std::move(other.salerDeptName) ),
		  salerOfficeCode( std::move(other.salerOfficeCode) ),
		  salerOfficeName( std::move(other.salerOfficeName) ),
		  autoTraderCode( std::move(other.autoTraderCode) ),
		  autoTraderName( std::move(other.autoTraderName) ),
		  customerName( std::move(other.customerName) ),
		  plateSerial( std::move(other.plateSerial) ),
		  frameSerial( std::move(other.frameSerial) ),
		  engineSerial( std::move(other.engineSerial) ),
		  operatorDate( std::move(other.operatorDate) ),
		  operatorCode( std::move(other.operatorCode) ),
		  isAutotraderCall( other.isAutotraderCall )
	{
	}

	PolicyRecord & operator=( const PolicyRecord & other )
	{
		if ( this == &other )
			return *this;
		policySerial     = other.policySerial;
		signDate         = other.signDate;
		salerCode        = other.salerCode;
		salerName        = other.salerName;
		salerDeptCode    = other.salerDeptCode;
		salerDeptName    = other.salerDeptName;
		salerOfficeCode  = other.salerOfficeCode;
		salerOfficeName  = other.salerOfficeName;
		autoTraderCode   = other.autoTraderCode;
		autoTraderName   = other.autoTraderName;
		customerName     = other.customerName;
		plateSerial      = other.plateSerial;
		frameSerial      = other.frameSerial;
		engineSerial     = other.engineSerial;
		operatorDate     = other.operatorDate;
		operatorCode     = other.operatorCode;
		isAutotraderCall = other.isAutotraderCall;
		return *this;
	}

	PolicyRecord & operator=( PolicyRecord && other )
	{
		if ( this == &other )
			return *this;
		policySerial     = std::move( other.policySerial );
		signDate         = std::move( other.signDate );
		salerCode        = std::move( other.salerCode );
		salerName        = std::move( other.salerName );
		salerDeptCode    = std::move( other.salerDeptCode );
		salerDeptName    = std::move( other.salerDeptName );
		salerOfficeCode  = std::move( other.salerOfficeCode );
		salerOfficeName  = std::move( other.salerOfficeName );
		autoTraderCode   = std::move( other.autoTraderCode );
		autoTraderName   = std::move( other.autoTraderName );
		customerName     = std::move( other.customerName );
		plateSerial      = std::move( other.plateSerial );
		frameSerial      = std::move( other.frameSerial );
		engineSerial     = std::move( other.engineSerial );
		operatorDate     = std::move( other.operatorDate );
		operatorCode     = std::move( other.operatorCode );
		isAutotraderCall = other.isAutotraderCall;
		return *this;
	}

	QString getPolicySerial() const
	{
		return policySerial;
	}

	void setPolicySerial( const QString & policySerial )
	{
		this->policySerial = policySerial;
	}

	QString getSignDate() const
	{
		return signDate;
	}

	void setSignDate( const QString & signDate )
	{
		this->signDate = signDate;
	}

	QString getSalerCode() const
	{
		return salerCode;
	}

	void setSalerCode( const QString & salerCode )
	{
		this->salerCode = salerCode;
	}

	QString getSalerName() const
	{
		return salerName;
	}

	void setSalerName( const QString & salerName )
	{
		this->salerName = salerName;
	}

	QString getSalerDeptCode() const
	{
		return salerDeptCode;
	}

	void setSalerDeptCode( const QString & salerDeptCode )
	{
		this->salerDeptCode = salerDeptCode;
	}

	QString getSalerDeptName() const
	{
		return salerDeptName;
	}

	void setSalerDeptName( const QString & salerDeptName )
	{
		this->salerDeptName = salerDeptName;
	}

	QString getSalerOfficeCode() const
	{
		return salerOfficeCode;
	}

	void setSalerOfficeCode( const QString & salerOfficeCode )
	{
		this->salerOfficeCode = salerOfficeCode;
	}

	QString getSalerOfficeName() const
	{
		return salerOfficeName;
	}

	void setSalerOfficeName( const QString & salerOfficeName )
	{
		this->salerOfficeName = salerOfficeName;
	}

	QString getAutoTraderCode() const
	{
		return autoTraderCode;
	}

	void setAutoTraderCode( const QString & autoTraderCode )
	{
		this->autoTraderCode = autoTraderCode;
	}

	QString getAutoTraderName() const
	{
		return autoTraderName;
	}

	void setAutoTraderName( const QString & autoTraderName )
	{
		this->autoTraderName = autoTraderName;
	}

	QString getCustomerName() const
	{
		return customerName;
	}

	void setCustomerName( const QString & customerName )
	{
		this->customerName = customerName;
	}

	QString getPlateSerial() const
	{
		return plateSerial;
	}

	void setPlateSerial( const QString & plateSerial )
	{
		this->plateSerial = plateSerial;
	}

	QString getFrameSerial() const
	{
		return frameSerial;
	}

	void setFrameSerial( const QString & frameSerial )
	{
		this->frameSerial = frameSerial;
	}

	QString getEngineSerial() const
	{
		return engineSerial;
	}

	void setEngineSerial( const QString & engineSerial )
	{
		this->engineSerial = engineSerial;
	}

	QString getOperatorDate() const
	{
		return operatorDate;
	}

	void setOperatorDate( const QString & operatorDate )
	{
		this->operatorDate = operatorDate;
	}

	QString getOperatorCode() const
	{
		return operatorCode;
	}

	void setOperatorCode( const QString & operatorCode )
	{
		this->operatorCode = operatorCode;
	}

	bool isIsAutotraderCall() const
	{
		return isAutotraderCall;
	}

	void setIsAutotraderCall( const bool isAutotraderCall )
	{
		this->isAutotraderCall = isAutotraderCall;
	}

private:
	QString policySerial;
	QString signDate;
	QString salerCode;
	QString salerName;
	QString salerDeptCode;
	QString salerDeptName;
	QString salerOfficeCode;
	QString salerOfficeName;
	QString autoTraderCode;
	QString autoTraderName;
	QString customerName;
	QString plateSerial;
	QString frameSerial;
	QString engineSerial;
	QString operatorDate;
	QString operatorCode;
	bool    isAutotraderCall;
};

#endif