package cn.superdesk.uniorder.dto.param.accounting.score.customer;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * @Description: 用于 创建 结算单 时用的
 * @Author: linjinyu
 * @CreateDate: 6/17/20 8:41 PM
 * @UpdateUser: linjinyu
 * @UpdateDate: 6/17/20 8:41 PM
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@Data
public class AccountingOrderScoreCustomerCreateParam implements Serializable {

	@ApiModelProperty("已选")
	private List<AccountingOrderScoreCustomerCreateSelectedCreditParam> creditSelected;

	/****************************************** TODO 积分结算2.1 start ******************************************/

	@ApiModelProperty("账单周期-开始时间 非必传 - 后端也会算")
	private String  startTime;
	@ApiModelProperty("账单周期-结束时间 非必传 - 后端也会算")
	private String  endTime;
	@ApiModelProperty("账单周期用的时间类型:1-发货时间;2-下单时间;3-完成时间;4-结算时间;写死2 - 过往的是用 下单时间 ")
	private Integer dateType;

	/****************************************** TODO 积分结算2.1   end ******************************************/

	@ApiModelProperty("是否发送邮件1-是;0-否;")
	private Integer isSendEmail;
	@ApiModelProperty("收件人邮箱")
	private String  emailAddress;

	/**************************************** 来源 mark by linjinyu at 20220425 start ****************************************/

	@ApiModelProperty("订单来源(与订单来源是一至的):FLSC_QCH(福利) QYSC_QCH(集采) 引用 enum CommonServiceNoEnum")
	private String serviceNo;
	@ApiModelProperty("操作来源 CommonSourceFromEnum")
	private String sourceFrom;

	/**************************************** 来源 mark by linjinyu at 20220425 start ****************************************/

	/****************************************** TODO 积分结算2.1 后端会计算 start ******************************************/

	@ApiModelProperty("积分类型")
	private Integer creditType;
	@ApiModelProperty("积分类型名称")
	private String  creditName;

	@ApiModelProperty("后端算-积分类型-积分结算2.1 后允许多个积分类型-之前是唯一的- 20220218 后从int(10) 改动为 varchar(255) 为复合字段,逗号分隔")
	private List<Integer> creditTypeList;
	@ApiModelProperty("后端算-20220218 后从varchar(64) 改动为 varchar(512) 为复合字段,逗号分隔")
	private List<String>  creditNameList;
	@ApiModelProperty("积分批次 TODO 后端还得从数据上得出 20220218 后从varchar(64) 改动为 varchar(512) 为复合字段,逗号分隔")
	private String        batchs;

	@ApiModelProperty("对账单-订单金额 - 积分结算2.1 新加 取该对账单中所有流水的结算金额总和 等于 结算金额+微信金额 也称之为统计金额 ")
	private BigDecimal statisticsTotalAmount;
	//	【后端部分处理-20220217-对映文档-2.积分结算-2.3未对账流水-已整理-20220217】https://www.tapd.cn/33003868/prong/stories/view/1133003868001003945
	@ApiModelProperty("对账单-结算金额 - 之前的 - 取该对账单中所有积分类型为非`微信支付`的结算金额总和,目前创建对账单成功时服务端默认`微信支付`流水不参与结算,其他积分类型的流水参与结算,未来由业务操作人员选择结算积分类型来计算")
	private BigDecimal accountingAmount;
	@ApiModelProperty("对账单-微信金额 - 积分结算2.1 新加 取该对账单中所有积分类型为`微信支付`的结算金额总和 也称之为不对账金额 不结算金额")
	private BigDecimal unAccountingAmount;

	/**
	 * 老数据修正
	 * 1. 对账单积分批次重新核算,目前对账单包含多个批次,只记录了一个批次,更新对账单表字段为 积分批次
	 * 2. 对账单积分类型重新核算,目前对账单只包含一种积分类型,按规则,更新到对账单表 新加复合字段 积分类型
	 * 3. 对账单新加两个统计金额 订单金额 微信金额 ,按之类的逻辑 订单金额=结算金额;微信金额=0; 更新到对账单表 新加字段 订单金额 微信金额
	 */

	@ApiModelProperty("后端算")
	private Integer quantityOrder;
	@ApiModelProperty("后端算")
	private Integer quantityOrderGoods;
	@ApiModelProperty("后端算 产品描述-鼠标放置图标上悬浮显示内容 订单数:取明细所有流水的总条数")
	private Integer quantityOrderCredit;

	/****************************************** TODO 积分结算2.1 后端会计算   end ******************************************/


	@ApiModelProperty("下单人Id")
	private Long   purchaseUserId;
	@ApiModelProperty("下单人姓名")
	private String purchaseUserName;
	@ApiModelProperty("下单人联系电话")
	private String purchasePhone;

	@ApiModelProperty("收款主体 - 引用数据表 invoice_bank_info.if")
	private Long bankInfoId;

	@ApiModelProperty("集采对账单sn")
	private String jcAccountingOrderSn;




//	public static void main(String[] args) {
//
//		ScoreAccountingCustomerCreateParam param = new ScoreAccountingCustomerCreateParam();
//		System.out.println(JsonUtils.toJson(param));
//
//	}
}
