package cn.superdesk.uniorder.dto.param.invoice.customer;


import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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


/**
 * @Description: @PostMapping("/invoiceApply") 专用 TODO 现在 没空改 前后端分离搞什么 伪表单呀
 * @Author: linjinyu
 * @CreateDate: 7/16/20 10:28 AM
 * @UpdateUser: linjinyu
 * @UpdateDate: 7/16/20 10:28 AM
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@AllArgsConstructor
@NoArgsConstructor
@Builder(toBuilder = true)
@Data
public class InvoiceApplyCommonOpApplyForm implements Serializable {

	@Deprecated
	@ApiModelProperty("发票抬头 之前名称 invoiceCompanyName - 弃用 - 代之为 sysEnterpriseExtInvoiceId sys_enterprise_ext_invoice.id")
	private String invoiceTitle;

	@ApiModelProperty("企业信息扩展发票信息.id sysEnterpriseExtInvoiceId")
	private Long   sysEnterpriseExtInvoiceId;
	@ApiModelProperty("发票申请-发票信息-发票种类Id ref表.invoice_type.id")
	private Long   invoiceTypeId;
	@ApiModelProperty("发票申请-发票信息-开票方式(目前-20220223-包含:线下开票(offLine)|深圳航信电子发票(szhtxxElectronicInvoice)) 积分结算2.1 适配")
	private String invoiceMode;
	@ApiModelProperty("税率 外键 表.invoice_tax_rate.id")
	private String taxRate;

	@ApiModelProperty("开票申请金额:商品或流水累加")
	private BigDecimal invoiceApplyAmount;
	@ApiModelProperty("减免金额")
	private BigDecimal freeAmount;
	@ApiModelProperty("实际金额")
	private BigDecimal realAmount;
	@ApiModelProperty("初始为真实金额(开票申请金额-减免金额),如果有回款,这个数值是会相映的减的")
	private BigDecimal noCheckCount;

	@ApiModelProperty("备注")
	private String remark;
	@ApiModelProperty("备注2 积分结算2.1 后 一键分票界面的备注也会填充进来")
	private String remark2;

	@ApiModelProperty("对账单创建维度:0-订单;1-商品;2-流水; 引用 enum AccountingOrderDimCreateByEnum")
	private Integer dimCreateBy;
	@ApiModelProperty("对账单类型:1-一般订单;2-积分订单; 引用 enum AccountingOrderTypeDimEnum")
	private Integer accountingOrderTypeDim;

	private Long   accountingOrderId;
	private String accountingOrderSn;

	private String sourceFrom;
	private String serviceNo;

	@ApiModelProperty("商品维度-客户结算-")
	List<InvoiceApplyOpCreateSelectedGoodsParams>  goodsSelected;
	@ApiModelProperty("流水维度-积分结算")
	List<InvoiceApplyOpCreateSelectedCreditParams> creditSelected;

}
