package com.iamberry.wechat.core.entity.order;

import java.io.Serializable;
import java.util.Date;

import com.iamberry.wechat.core.entity.PageBean;
import com.iamberry.wechat.core.entity.probation.ProbationUserDto;

/**
 * 使用订单dto
 * @author liuzhiwei
 *
 */
public class ProbationOrderDto implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 425926083007905030L;

	private String probationOrderid;				//订单id
	private Integer probationProductId;				//产品id
	private String probationOpenid;					//所属用户
	private Integer probationColorId;				//商品颜色id
	private Integer probationYetAmount;				//付款金额
	private Integer probationAmount;				//订单总额
	
	private Date probationCreateTime;				//订单创建时间
	private String probationPostNum;				//快递单号
	private String probationPostFirm;				//快递公司
	private Integer probationStatus;				//订单状态	1:订单生成，待派送 	2:管理员审核通过，派送中 	3:派送完成，待支付 	
													//			4:试用暂停 		5:支付完成 			6:订单关闭
	private Date probationSendDate;					//发货时间
	
	private String probationAddressInfo;			//详细地址
	private String probationReceivePostnum;			//邮编
	private String probationReceiveTel;				//收件人电话
	private String probationReceiveName;			//收件人姓名
	private String probationAdminRemark;			//后台的备注
	
	private String probationUserRemark;				//订单备注
	private String probationTransactionId;			//微信订单号
	private Date probationTransactionTime;			//微信支付时间
	private Date probationStartTime;				//试用开始时间
	private Date probationEndTime;					//试用结束时间
	private Date probationUpdateTime;				//修改时间
	private Date probationPauseStartTime;			//暂停开始时间
	private Date probationPauseEndTime;				//暂停结束时间
	private String ProductIntroduceImg;				//产品介绍图
	private String productName;						//产品名称
	private Long probationPauseTotalLength; //暂停总时长
	private Long probationRemainingTime;	//试用剩余时长
	private String probationColorType;	//产品颜色
	
	private String vipName;					//商户vip会员名称
	private String vipRoleName;			//商户vip会员角色名称
	private String storeName;				//商户门店名称
	private String storeRoleName;			//商户门店角色名称
	private String probationSendName;     //派送员姓名
	private String probationSendTel;      //派送员电话号码
	private PageBean page = new PageBean(); 								//分页信息
	private ProbationUserDto probationUserDto;		//试用人信息
	

	public Integer getProbationColorId() {
		return probationColorId;
	}

	public void setProbationColorId(Integer probationColorId) {
		this.probationColorId = probationColorId;
	}

	public ProbationUserDto getProbationUserDto() {
		return probationUserDto;
	}

	public void setProbationUserDto(ProbationUserDto probationUserDto) {
		this.probationUserDto = probationUserDto;
	}

	public PageBean getPage() {
		return page;
	}

	public String getProbationSendName() {
		return probationSendName;
	}

	public void setProbationSendName(String probationSendName) {
		this.probationSendName = probationSendName;
	}

	public String getProbationSendTel() {
		return probationSendTel;
	}

	public void setProbationSendTel(String probationSendTel) {
		this.probationSendTel = probationSendTel;
	}

	public void setPage(PageBean page) {
		this.page = page;
	}

	public String getVipName() {
		return vipName;
	}

	public void setVipName(String vipName) {
		this.vipName = vipName;
	}

	public String getVipRoleName() {
		return vipRoleName;
	}

	public void setVipRoleName(String vipRoleName) {
		this.vipRoleName = vipRoleName;
	}

	public String getStoreName() {
		return storeName;
	}

	public void setStoreName(String storeName) {
		this.storeName = storeName;
	}

	public String getStoreRoleName() {
		return storeRoleName;
	}

	public void setStoreRoleName(String storeRoleName) {
		this.storeRoleName = storeRoleName;
	}

	public String getProbationColorType() {
		return probationColorType;
	}

	public void setProbationColorType(String probationColorType) {
		this.probationColorType = probationColorType;
	}

	public Integer getProbationProductId() {
		return probationProductId;
	}

	public void setProbationProductId(Integer probationProductId) {
		this.probationProductId = probationProductId;
	}

	public String getProbationOpenid() {
		return probationOpenid;
	}

	public void setProbationOpenid(String probationOpenid) {
		this.probationOpenid = probationOpenid;
	}

	public Integer getProbationYetAmount() {
		return probationYetAmount;
	}

	public void setProbationYetAmount(Integer probationYetAmount) {
		this.probationYetAmount = probationYetAmount;
	}

	public String getProbationReceiveTel() {
		return probationReceiveTel;
	}

	public void setProbationReceiveTel(String probationReceiveTel) {
		this.probationReceiveTel = probationReceiveTel;
	}

	public String getProbationReceiveName() {
		return probationReceiveName;
	}

	public void setProbationReceiveName(String probationReceiveName) {
		this.probationReceiveName = probationReceiveName;
	}

	public String getProbationAddressInfo() {
		return probationAddressInfo;
	}

	public void setProbationAddressInfo(String probationAddressInfo) {
		this.probationAddressInfo = probationAddressInfo;
	}

	public String getProbationUserRemark() {
		return probationUserRemark;
	}

	public void setProbationUserRemark(String probationUserRemark) {
		this.probationUserRemark = probationUserRemark;
	}

	public Date getProbationUpdateTime() {
		return probationUpdateTime;
	}

	public void setProbationUpdateTime(Date probationUpdateTime) {
		this.probationUpdateTime = probationUpdateTime;
	}

	public Date getProbationCreateTime() {
		return probationCreateTime;
	}

	public void setProbationCreateTime(Date probationCreateTime) {
		this.probationCreateTime = probationCreateTime;
	}

	public Date getProbationStartTime() {
		return probationStartTime;
	}

	public void setProbationStartTime(Date probationStartTime) {
		this.probationStartTime = probationStartTime;
	}

	public Date getProbationEndTime() {
		return probationEndTime;
	}

	public void setProbationEndTime(Date probationEndTime) {
		this.probationEndTime = probationEndTime;
	}

	public Date getProbationPauseStartTime() {
		return probationPauseStartTime;
	}

	public void setProbationPauseStartTime(Date probationPauseStartTime) {
		this.probationPauseStartTime = probationPauseStartTime;
	}

	public Date getProbationPauseEndTime() {
		return probationPauseEndTime;
	}

	public void setProbationPauseEndTime(Date probationPauseEndTime) {
		this.probationPauseEndTime = probationPauseEndTime;
	}

	public String getProbationOrderid() {
		return probationOrderid;
	}

	public void setProbationOrderid(String probationOrderid) {
		this.probationOrderid = probationOrderid;
	}

	public Integer getProbationAmount() {
		return probationAmount;
	}

	public void setProbationAmount(Integer probationAmount) {
		this.probationAmount = probationAmount;
	}

	public String getProbationPostNum() {
		return probationPostNum;
	}

	public void setProbationPostNum(String probationPostNum) {
		this.probationPostNum = probationPostNum;
	}

	public String getProbationPostFirm() {
		return probationPostFirm;
	}

	public void setProbationPostFirm(String probationPostFirm) {
		this.probationPostFirm = probationPostFirm;
	}

	public Integer getProbationStatus() {
		return probationStatus;
	}

	public void setProbationStatus(Integer probationStatus) {
		this.probationStatus = probationStatus;
	}

	public Date getProbationSendDate() {
		return probationSendDate;
	}

	public void setProbationSendDate(Date probationSendDate) {
		this.probationSendDate = probationSendDate;
	}

	public String getProbationReceivePostnum() {
		return probationReceivePostnum;
	}

	public void setProbationReceivePostnum(String probationReceivePostnum) {
		this.probationReceivePostnum = probationReceivePostnum;
	}

	public String getProbationAdminRemark() {
		return probationAdminRemark;
	}

	public void setProbationAdminRemark(String probationAdminRemark) {
		this.probationAdminRemark = probationAdminRemark;
	}

	public String getProbationTransactionId() {
		return probationTransactionId;
	}

	public void setProbationTransactionId(String probationTransactionId) {
		this.probationTransactionId = probationTransactionId;
	}

	public Date getProbationTransactionTime() {
		return probationTransactionTime;
	}

	public void setProbationTransactionTime(Date probationTransactionTime) {
		this.probationTransactionTime = probationTransactionTime;
	}

	public String getProductIntroduceImg() {
		return ProductIntroduceImg;
	}

	public void setProductIntroduceImg(String productIntroduceImg) {
		ProductIntroduceImg = productIntroduceImg;
	}
	public Long getProbationPauseTotalLength() {
		return probationPauseTotalLength;
	}

	public void setProbationPauseTotalLength(Long probationPauseTotalLength) {
		this.probationPauseTotalLength = probationPauseTotalLength;
	}

	public String getProductName() {
		return productName;
	}

	public void setProductName(String productName) {
		this.productName = productName;
	}

	public Long getProbationRemainingTime() {
		if(getProbationEndTime() != null){
			probationRemainingTime = getProbationEndTime().getTime() - new Date().getTime();
		}else{
			probationRemainingTime = 0L;
		}
		
		return probationRemainingTime;
	}

	public void setProbationRemainingTime(Long probationRemainingTime) {
		this.probationRemainingTime = probationRemainingTime;
	}
	
	
}
