package cn.superdesk.uniorder.dto.receive.consumer.superdeskmall.score;

import cn.superdesk.uniorder.common.json.deserializer.DateTimeConvertDeserializer;
import cn.superdesk.uniorder.common.json.serializer.DateTimeConvertSerializer;
import cn.superdesk.uniorder.dto.receive.consumer.BaseReceiveParam;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * @Description: 用于积分订单 接收
 * @Author: linjinyu
 * @CreateDate: 6/5/20 5:58 PM
 * @UpdateUser: linjinyu
 * @UpdateDate: 6/5/20 5:58 PM
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@Data
public class ScoreOrderReceiveParam extends BaseReceiveParam {


	//	"orderid": 55575,
	@JsonProperty("orderid")
	private Long orderiId;
	//	"parent_order_id": 0,
	@JsonProperty("parent_order_id")
	private Long parentOrderId;


	//	"ordersn": "ME20200529000658884878",
	@JsonProperty("ordersn")
	private String orderSn;
	//	"parent_ordersn": "",
	@JsonProperty("parent_ordersn")
	private String parentOrderSn;


	// ************************************ update by linjinjy 20200723 20200723_林志鹏_税率,退款格式.docx ************************************

//"expresscom": "顺丰",		//快递名称     例子://京东快递        //韵达快运
//(如果选择其他快递的选项,expresscom和express这两项是空的)
//"expresssn": "23243243",	//物流单号	 //122922808445     //4306630124619
//"express": "shunfeng",		//快递拼音简写    // jd			  //yunda

	//	"expresssn": "",
	@JsonProperty("expresssn")
	private String expressSn;
	@JsonProperty("express")
	private String express;
	@JsonProperty("expresscom")
	private String expressCompany;


	// ************************************ update by linjinjy 20200723 20200723_林志鹏_税率,退款格式.docx ************************************


	//	"dispatchname": "快递",
	@JsonProperty("dispatchname")
	private String     dispatchName;
	//	"dispatchprice": "0.00",
	@JsonProperty("dispatchprice")
	private BigDecimal dispatchPrice;

	@JsonProperty("dispatchprice_jd")
	private BigDecimal dispatchPriceJd;

	//	"dispatchtype": "0",
	@JsonProperty("dispatchtype")
	private Integer dispatchType;

	// dispatchPrice + grprice = price
	//	"price": "143.16",
	private BigDecimal price;

	// 这个是商品的价格
	//	"price": "143.16",
	private BigDecimal grprice;

	//	"status": "1",
	private Integer status;
	//	"order_type": "3",
	@JsonProperty("order_type")
	private Integer orderType;
	//	"paytype": "0",
	@JsonProperty("paytype")
	private Integer payType;
	//	"deleted": "0",
	private Integer deleted;

	//	"createtime": "2020-05-29 00:06:58",
	@JsonProperty("createtime")
	@JsonSerialize(using = DateTimeConvertSerializer.class)
	@JsonDeserialize(using = DateTimeConvertDeserializer.class)
	private Date createTime;
	//	"sendtime": "1970-01-01 08:00:00",
	@JsonProperty("sendtime")
	@JsonSerialize(using = DateTimeConvertSerializer.class)
	@JsonDeserialize(using = DateTimeConvertDeserializer.class)
	private Date sendTime;
	//	"finishtime": "1970-01-01 08:00:00",
	@JsonProperty("finishtime")
	@JsonSerialize(using = DateTimeConvertSerializer.class)
	@JsonDeserialize(using = DateTimeConvertDeserializer.class)
	private Date finishTime;
	//	"paytime": "2020-05-29 00:07:06",
	@JsonProperty("paytime")
	@JsonSerialize(using = DateTimeConvertSerializer.class)
	@JsonDeserialize(using = DateTimeConvertDeserializer.class)
	private Date payTime;


	//	"isverify": "0",
	@JsonProperty("isverify")
	private Integer isVerify;
	//	"isvirtual": "0",
	@JsonProperty("isvirtual")
	private Integer isVirtual;
	//	"virtual": "0",
	private Long    virtual;

	//	"carrier": "a:0:{}",
	private String carrier;


	//	"organizationId": "313",
	private Long   organizationId;
	//	"organization_name": "超级前台湘江",
	@JsonProperty("organization_name")
	private String organizationName;

	//	"enterpriseId": "4138",
	private Long   enterpriseId;
	//	"enterprise_name": "超级前台湘江内购",
	@JsonProperty("enterprise_name")
	private String enterpriseName;

	// 部门 对映 unified_order.purchase_department_name
	@JsonProperty("departmentName")
	private String departmentName;


	//	"examineId": "检查人ID",
	private String examineId;
	//	"examine_name": "检查人名字 ",
	@JsonProperty("examine_name")
	private String examineName;

	//	"merchid": "8",
	@JsonProperty("merchid")
	private Long   merchId;
	//	"merch_name": "超级前台自营京东旗舰店",
	@JsonProperty("merch_name")
	private String merchName;


	//	"realnameId": "6803",
	private Long   realnameId;
	//	"realname": "谭若雷",
	private String realname;
	//	"mobile": "18390838210",
	private String mobile;
	//	"arealname": "谭若雷",
	@JsonProperty("arealname")
	private String aRealname;
	//	"amobile": "18390838210",
	@JsonProperty("amobile")
	private String aMobile;

	//	"aprovince": "湖南",
	@JsonProperty("aprovince")
	private String aProvince;
	//	"acity": "长沙市",
	@JsonProperty("acity")
	private String aCity;
	//	"aarea": "雨花区",
	@JsonProperty("aarea")
	private String aArea;
	//	"atown": "洞井街道",
	@JsonProperty("atown")
	private String aTown;
	//	"aaddress": "华悦城小区二栋二单元2107室",
	@JsonProperty("aaddress")
	private String aAddress;


	//	"addressid": "4584",
	@JsonProperty("addressid")
	private Long   addressId;
	//	"address_realname": "谭若雷",
	@JsonProperty("address_realname")
	private String addressRealname;
	//	"address_mobile": "18390838210",
	@JsonProperty("address_mobile")
	private String addressMobile;
	//	"address_province": "湖南",
	@JsonProperty("address_province")
	private String addressProvince;
	//	"address_city": "长沙市",
	@JsonProperty("address_city")
	private String addressCity;
	//	"address_area": "雨花区",
	@JsonProperty("address_area")
	private String addressArea;
	//	"address_town": "洞井街道",
	@JsonProperty("address_town")
	private String addressTown;
	//	"address_address": "湖南 长沙市 雨花区 洞井街道 华悦城小区二栋二单元2107室",
	@JsonProperty("address_address")
	private String addressAddress;


	//	"companyName": "不开发票",
	private String  companyName;
	//	"taxpayersIDcode": "",
	private String  taxpayersIDcode;
	//	"invoiceType": "0",
	private Integer invoiceType;
	//	"invoiceBank": "",
	private String  invoiceBank;
	//	"invoiceAccount": "",
	private String  invoiceAccount;

	//	"invoiceid": "0",
	@JsonProperty("invoiceid")
	private Integer invoiceId;
	//	"invoice": "",
	private String  invoice;


	//	"detail_url": "https:\/\/fm.superdesk.cn\/web\/index.php?c=site&a=entry&m=superdesk_shopv2&do=web&r=order.detail&id=55575"
	@JsonProperty("detail_url")
	private String detailUrl;

	//	"remark": "",
	private String remark;

	private List<ScoreOrderGoodsReceiveParam> goods;

	private List<ScoreOrderCreditReceiveParam> integralCredit;
}
