package cn.superdesk.uniorder.dto.vo.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;


/**
 * @Description: 用于 发票申请 时返回的
 * @Author: linjinyu
 * @CreateDate: 7/15/20 2:13 PM
 * @UpdateUser: linjinyu
 * @UpdateDate: 7/15/20 2:13 PM
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder(toBuilder = true)
@Data
public class InvoiceApplyCustomerSelectScoreVo implements Serializable {

    private static final long serialVersionUID = 1L;


    @ApiModelProperty("统一订单-订单流水Id")
    private Long    unifiedOrderCreditId;
    @ApiModelProperty("")
    private Long    outSnapshotOrderCreditId;
    @ApiModelProperty("对账单内的流水对账状态;是否对账的问题:-1-不对账;1-已对账;默认为0,不区分;订单|商品|流水,共用的对账状态:-1-不对账;1-已对账;2-未对账;3-已作废; 引用 enum CommonAccountingStateEnum")
    private Integer creditAccountingState = 0;

    @ApiModelProperty("统一订单-订单商品Id")
    private Long unifiedOrderGoodsId;
    private Long outSnapshotOrderGoodsId;
    private Long goodsId;


    @ApiModelProperty("统一订单-订单Id")
    private Long unifiedOrderId;

    @ApiModelProperty("对账单 Id")
    private Long   accountingOrderId;
    @ApiModelProperty("对账单 编号")
    private String accountingOrderSn;


    @ApiModelProperty("订单编号:为正单时,正单编号;为退单时,退单编号;直观的方式通过字段 `direction` 来判定 ")
    private String orderSn;
    @ApiModelProperty("订单编号-为正单时,退单编号(有可能为复合字段 eg: `SRXXXX0001`,`SRXXXX0002`);为退单时,正单编号")
    private String refundOrderSn;

    @ApiModelProperty("方向:1-为订单(正单);-1-为退单(负单)")
    private Integer direction;


    @ApiModelProperty("积分类型key")
    private Integer    creditType;
    @ApiModelProperty("积分名称")
    private String     creditName;
    @ApiModelProperty("积分变动类型(1充值 2消费 3退款)")
    private Integer    dailyAccountType;
    @ApiModelProperty("积分批次 (如果是微信支付,显示 wechat)")
    private String     batchs;
    @ApiModelProperty("消耗 积分额度 积分支付金额")
    private BigDecimal balance;

    @ApiModelProperty("发票申请状态(值待验证)是否已申请 0-未申请;1-已申请;")
    private Integer invoiceApplyStatus;
    @ApiModelProperty("开票状态(值待验证)是否已登记开票 0-未登记;1-已登记;")
    private Integer invoiceMakeStatus;
    @ApiModelProperty("回款状态(值待验证)是否回款 0-未回款;1-已回款;")
    private Integer backStatus;


    @ApiModelProperty("发票抬头")
    private String invoiceCompanyName;

    @ApiModelProperty("下单人信息-名称")
    private String realName;
    @ApiModelProperty("下单人信息-企业Id-outVirtId")
    private Long   purchaseVirtId;
    @ApiModelProperty("下单人信息-企业名称")
    private String purchaseVirtName;
    @ApiModelProperty("下单人信息-部门")
    private String purchaseDepartmentName;

    /****************************************** uog start ******************************************/


    private String goodsName;
    private String goodsAlias;

//	@ApiModelProperty("单价 * 数量 = 价格")
//	private BigDecimal price;
//	@ApiModelProperty("数量")
//	private Integer    quantity;

//	@ApiModelProperty("单价")
//	private BigDecimal unitPrice;
//	@ApiModelProperty("商品名")
//	private String     goodsName;

    // 前端 unitPrice -> price
    // 前端 price -> goodsAmount

    @ApiModelProperty("数量")
    private Integer    quantity;
    @ApiModelProperty("商品-单个销售价")
    private BigDecimal price;
    @ApiModelProperty("商品-单个成本价")
    private BigDecimal costPrice;
    @ApiModelProperty("商品-销售价*数量")
    private BigDecimal goodsAmount;
    @ApiModelProperty("商品-成本价*数量")
    private BigDecimal goodsCostAmount;

    private Long   cateIdLv1;
    private String cateNameLv1;
    private Long   cateIdLv2;
    private String cateNameLv2;
    private Long   cateIdLv3;
    private String cateNameLv3;
    private String selfOption;
    @ApiModelProperty("单位")
    private String unit;

    /****************************************** 弃用 20220228 start ******************************************/

//	@ApiModelProperty("老版税率 财务编码 20200727 20200723_林志鹏_税率,退款格式.docx")
//	private String     fiscalCode;
//	@ApiModelProperty("老版税率 税率 取值范围(0-100)% eg : 16 代表 16%")
//	private BigDecimal taxRate;
//	@ApiModelProperty("老版税率 编码")
//	private String     taxCode;

    /****************************************** 弃用 20220228   end ******************************************/

    @ApiModelProperty("商户税率 税率 取值范围(0-100)% eg : 16 代表 16% decimal(6,2) 20210413")
    private BigDecimal merchTaxRate;
    @ApiModelProperty("商户税率 编码")
    private String     merchTaxCode;
    @ApiModelProperty("商户税率 ID")
    private Long       merchTaxId;

    @ApiModelProperty("平台税率 税率 取值范围(0-100)% eg : 16 代表 16% decimal(6,2) 20210413")
    private BigDecimal operationTaxRate;
    @ApiModelProperty("平台税率 编码")
    private String     operationTaxCode;
    @ApiModelProperty("平台税率 ID")
    private Long       operationTaxId;

    /****************************************** uog start ******************************************/


}
