#ifndef __TABLE_INFO__
#define __TABLE_INFO__


// 订单下载表;
typedef struct	__ST_MID__
{
	std::string		order;							// 订单号;
	std::string		number;							// 订单数量;
	std::string		pid;							// pid;
	std::string		ctype;							// client type;
	std::string		version;						// 软件版本;
	std::string		purl;							// 包地址;
	std::string		psize;							// 包大小;
	std::string		pmd5;							// 包md5;
	std::string		status;							// 下载状态：0=未下载，1=完成，-1=下载失败;
	std::string		start_date;						// 下载开始时间;
	std::string		finish_date;					// 下载完成时间;
	//std::string		dsize;							// 已下载大小;
	//std::string		file;							// 文件路径;
	std::string		des;							// 状态描述：下载失败原因;

	__ST_MID__& operator=(const __ST_MID__& that)
	{
		if ( this != &that )
		{
			number = that.number;
			pid = that.pid;
			ctype = that.ctype;
			version = that.version;
			purl = that.purl;
			psize = that.psize;
			pmd5 = that.pmd5;
			status = that.status;
			start_date = that.start_date;
			finish_date = that.finish_date;
			//dsize = that.dsize;
			//file = that.file;
			des = that.des;
		}

		return *this;
	}

}STMid, *pSTMid;

// 抄写表;
typedef struct __ST_KEYS__
{
	std::string		sn;								// sn;
	std::string		bid;							// 订单号;
	std::string		keys;							// key包Json字符串;
	std::string		pid;							// project id;
	std::string		copy_date;						// 抄写成功时间;
	std::string		report_date;					// 上报成功时间;
	//std::string		copy_status;					// 抄写状态：0=未抄写、-1=抄写成失败、1=抄写成功;
	//std::string		report_status;					// 上报状态：0=未上报、1=上报成功、-1=上报失败;

	__ST_KEYS__& operator=(const __ST_KEYS__& that)
	{
		if ( this != &that )
		{
			sn = that.sn;
			bid = that.bid;
			keys = that.keys;
			pid = that.pid;
			copy_date = that.copy_date;
			report_date = that.report_date;
		}

		return *this;
	}
}STKeys, *pSTKeys;

// 日志表;
typedef struct __ST_LOG__
{
	std::string		type;							// 日志类型;
	std::string		sn;								// 关联的sn;	
	std::string		bid;							// 订单号;
	std::string		content;						// 日志内容;
	std::string		gdate;							// 日志生成时间;
	std::string		report_date;					// 日志上报成功时间;
	//std::string		report_status;					// 上报状态：0=未上报、1=上报成功、-1=上报失败;
}STLog, *pSTLog;

// 抄写表;
typedef struct __SN_KEYS__
{
	int				pid;							// project id;
	std::string		did;							// device id;
	std::string		mac;							// mac地址;
	std::string		hdcp;							// hdcp;
	std::string		hdcp22;							// hdcp22;
	std::string		widi;							// widi;
	std::string		widevine;						// widevine;
	std::string		esn;							// neflix esn;
	std::string		cikey;							// cikey;
}SNKeys, *pSNKeys;

// 批次数量信息;
typedef struct __BID_INFO__
{
	std::string tcount;								// 总sn数量（服务器给定的，一般总sn数量=实际sn数量）;
	std::string sn_count;							// 实际sn数量（本地保存的）;
	std::string copy_count;							// 成功抄写数量;
	std::string report_count;						// 成功上报数量;
}BidInfo, *pBidInfo;
#endif