package cn.superdesk.uniorder.dto.receive.consumer.superdeskappservices.meetingroomreservation;

import cn.superdesk.uniorder.dto.receive.consumer.BaseReceiveParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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


/**
 * @Description: topic : superdesk-app-transfer-receive_hysy_order
 * 新增/更新
 * key : mergeReceiveHysyOrder
 * @Author: linjinyu
 * @CreateDate: 2020/11/30 下午12:11
 * @UpdateUser: linjinyu
 * @UpdateDate: 2020/11/30 下午12:11
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@Data
public class MeetingRoomReservationOrderReceiveParam extends BaseReceiveParam {


	@ApiModelProperty("必填 | 来源 服务编码 HYSY")
	private String serviceNo;
	@ApiModelProperty("必填 | 来源 服务名称 会议室预约")
	private String serviceName;


	@ApiModelProperty("必填 | 业务系统的订单Id 对映 订单ID")
	private Long   orderId;
	@ApiModelProperty("必填 | 业务系统的订单编号 对映 订单编号")
	private String orderSn;


	@ApiModelProperty("必填 | 订单 销售金额 对映 订单月结费用(订单时长费用(含延时时长费用)+附加服务费用-抵扣时长费用)")
	private BigDecimal orderAmount;
	@ApiModelProperty("必填 | 订单 成本金额 如果业务系统没有 填入订单销售金额 不要为0 对映 ")
	private BigDecimal orderCostAmount;

	@ApiModelProperty("必填 | 运费 快递费 如果没有 填0 对映 ")
	private BigDecimal transportAmount;

	// 如果有别的金额项目请补充


	@ApiModelProperty("选填 | 快递号 对映 ")
	private String  expressSn;
	@ApiModelProperty("选填 | 快递名 eg: 京东快递 顺丰快递 对映 ")
	private String  dispatchName;
	@ApiModelProperty("选填 | 快递类型 不知道 填0 对映 ")
	private Integer dispatchType;


	@ApiModelProperty("必填 | 支付方式 eg : 1-款到发货,2-货到付款,3-月结 对映 ")
	private Integer payType;
	private String  payTypeName;
	@ApiModelProperty("必填 | 支付状态 eg : 1-已付款 2-未付款 对映 ")
	private Integer payState;
	private String  payStateName;
	@ApiModelProperty("必填 | 订单状态 eg : -1-已取消 对映 ")
	private Integer orderState;
	private String  orderStateName;

	@ApiModelProperty("必须 | 订单完成状态 业务方归类订单状态推送完成状态:1-已完成;2-未完成;3-已取消/已作废/已删除;\n" +
			"未完成:未支付、待使用、待审核\n" +
			"已完成:已使用\n" +
			"已作废:审核不通过、已失效、已取消\n 假定 会议室预约订单状态为 已使用 此字段填入1(已完成)   对映 ")
	private Integer completState;


	@ApiModelProperty("必填 | 订单时间 下单时间 对映 ")
	private Date createTime;
	@ApiModelProperty("订单时间 支付时间 对映 ")
	private Date payTime;
	@ApiModelProperty("订单时间 发货时间 对映 ")
	private Date sendTime;
	@ApiModelProperty("订单时间 完成时间 对映 ")
	private Date finishTime;


	@ApiModelProperty("必填 | 商户信息 ID 对映 ")
	private Long   saleId;
	@ApiModelProperty("必填 | 商户信息 名称 对映 ")
	private String saleName;

	/**
	 * 选填 | 下单人信息
	 */
	@ApiModelProperty("下单人信息 项目 ID 对映 ")
	private Long   purchaseOrgId;
	@ApiModelProperty("下单人信息 项目 名称 对映 ")
	private String purchaseOrgName;
	@ApiModelProperty("下单人信息 企业 ID 对映 ")
	private Long   purchaseVirtId;
	@ApiModelProperty("下单人信息 企业 名称 对映 ")
	private String purchaseVirtName;


	@ApiModelProperty("下单人信息 用户 ID 对映 预订人姓名")
	private Long   purchaseUserId;
	@ApiModelProperty("下单人信息 用户 名称 对映 ")
	private String purchaseUserName;
	@ApiModelProperty("下单人信息 用户 手机")
	private String purchasePhone;

	/**
	 * 选填 | 收货人信息
	 */
	@ApiModelProperty("收货人信息 用户 ID 对映 ")
	private Long   recUserId;
	@ApiModelProperty("收货人信息 用户 名称 对映 ")
	private String recUserName;
	@ApiModelProperty("收货人信息 用户 手机 对映 ")
	private String recUserPhone;
	@ApiModelProperty("收货人信息 用户 地址 对映 ")
	private String recAddress;

	@ApiModelProperty("买家备注 对映 会议室(2021-09-24 18:00 ~ 2021-09-24 21:00),时长总计(xx小时),抵扣时长(xx小时),预订部门(xxxx),参会人数(x人)")
	private String remarks;

	@ApiModelProperty("将会议室订单所有的订单字段,以会议室预约存储数据结构转jsonStr形式传")
	private String otherParams;


	@ApiModelProperty("必填,如果 goodsList 为null 直接结束,不作处理")
	private List<MeetingRoomReservationOrderGoodsReceiveParam> goodsList;
}
