package cn.superdesk.uniorder.dao.entity.accounting.score.customer;

import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @Description:  
 * @Author: linjinyu 
 * @CreateDate: 2022-05-13 14:03:15 
 * @UpdateUser: linjinyu 
 * @UpdateDate: 2022-05-13 14:03:15 
 * @UpdateRemark: 修改内容 
 * @Version: 1.0 
 */ 
@NoArgsConstructor
@AllArgsConstructor
@Builder(toBuilder = true)
@Data
@ToString
public class AccountingScoreCustomer implements Serializable {
    /**
     * 系统信息-自增Id
     */
    @ApiModelProperty(value = "系统信息-自增Id")
    private Long id;

    /**
     * 对账(结算)单-编号
     */
    @ApiModelProperty(value = "对账(结算)单-编号")
    private String accountingOrderSn;

    /**
     * 服务编码-定义:始于订单流上标志的服务编码及从订单流衍生出来的及相关数据的来源标识-引用enum CommonServiceEnum
     */
    @ApiModelProperty(value = "服务编码-定义:始于订单流上标志的服务编码及从订单流衍生出来的及相关数据的来源标识-引用enum CommonServiceEnum")
    private String serviceNo;

    /**
     * 来源-定义:始于操作(不限于界面 内部接口 第三方接口等等);1-superdesk-uniorder;2-superdesk-app;3-superdesk-mall;4-qchqyscjc-mall;
     */
    @ApiModelProperty(value = "来源-定义:始于操作(不限于界面 内部接口 第三方接口等等);1-superdesk-uniorder;2-superdesk-app;3-superdesk-mall;4-qchqyscjc-mall;")
    private String sourceFrom;

    /**
     * 对账(结算)单-数据来源-积分类型id（如果是微信支付，显示0）20220218 后从int(10) 改动为 varchar(255) 为复合字段，逗号分隔
     */
    @ApiModelProperty(value = "对账(结算)单-数据来源-积分类型id（如果是微信支付，显示0）20220218 后从int(10) 改动为 varchar(255) 为复合字段，逗号分隔")
    private String creditType;

    /**
     * 对账(结算)单-数据来源-积分类型 20220218 后从varchar(64) 改动为 varchar(512) 为复合字段，逗号分隔
     */
    @ApiModelProperty(value = "对账(结算)单-数据来源-积分类型 20220218 后从varchar(64) 改动为 varchar(512) 为复合字段，逗号分隔")
    private String creditName;

    /**
     * 对账(结算)单-数据来源-积分批次 20220218 后从varchar(64) 改动为 varchar(512) 为复合字段，逗号分隔
     */
    @ApiModelProperty(value = "对账(结算)单-数据来源-积分批次 20220218 后从varchar(64) 改动为 varchar(512) 为复合字段，逗号分隔")
    private String batchs;

    /**
     * 统计-对账单-订单数
     */
    @ApiModelProperty(value = "统计-对账单-订单数")
    private Integer quantityOrder;

    /**
     * 统计-对账单-订单商品数
     */
    @ApiModelProperty(value = "统计-对账单-订单商品数")
    private Integer quantityOrderGoods;

    /**
     * 统计-对账单-积分流水数-产品描述-鼠标放置图标上悬浮显示内容 订单数:取明细所有流水的总条数
     */
    @ApiModelProperty(value = "统计-对账单-积分流水数-产品描述-鼠标放置图标上悬浮显示内容 订单数:取明细所有流水的总条数")
    private Integer quantityOrderCredit;

    /**
     * 对账单-结算金额 - 之前的 - 取该对账单中所有积分类型为非“微信支付”的结算金额总和，目前创建对账单成功时服务端默认“微信支付”流水不参与结算，其他积分类型的流水参与结算，未来由业务操作人员选择结算积分类型来计算
     */
    @ApiModelProperty(value = "对账单-结算金额 - 之前的 - 取该对账单中所有积分类型为非“微信支付”的结算金额总和，目前创建对账单成功时服务端默认“微信支付”流水不参与结算，其他积分类型的流水参与结算，未来由业务操作人员选择结算积分类型来计算")
    private BigDecimal accountingAmount;

    /**
     * 对账单-订单金额 - 积分结算2.1 新加 取该对账单中所有流水的结算金额总和 等于 结算金额+微信金额 也称之为统计金额
     */
    @ApiModelProperty(value = "对账单-订单金额 - 积分结算2.1 新加 取该对账单中所有流水的结算金额总和 等于 结算金额+微信金额 也称之为统计金额")
    private BigDecimal statisticsTotalAmount;

    /**
     * 对账单-微信金额 - 积分结算2.1 新加 取该对账单中所有积分类型为“微信支付”的结算金额总和 也称之为不对账金额 不结算金额
     */
    @ApiModelProperty(value = "对账单-微信金额 - 积分结算2.1 新加 取该对账单中所有积分类型为“微信支付”的结算金额总和 也称之为不对账金额 不结算金额")
    private BigDecimal unAccountingAmount;

    /**
     * 对账(结算)单 状态:0-未确认;1-已确认;-1-已取消;
     */
    @ApiModelProperty(value = "对账(结算)单 状态:0-未确认;1-已确认;-1-已取消;")
    private Integer accountingStatus;

    /**
     * 发票申请-发票信息-发票类型(关联表:unified_inv_type):1-增值税普票;2-增值税专票;
     */
    @ApiModelProperty(value = "发票申请-发票信息-发票类型(关联表:unified_inv_type):1-增值税普票;2-增值税专票;")
    private Integer invoiceType;

    /**
     * 发票申请-发票信息-开票状态:0-未开票;1-已开票;2-部分开票;
     */
    @ApiModelProperty(value = "发票申请-发票信息-开票状态:0-未开票;1-已开票;2-部分开票;")
    private Integer invoiceStatus;

    /**
     * 发票申请-发票信息-开票抬头
     */
    @ApiModelProperty(value = "发票申请-发票信息-开票抬头")
    private String invoiceCompanyName;

    /**
     * 发票申请-发票信息-纳税人代码
     */
    @ApiModelProperty(value = "发票申请-发票信息-纳税人代码")
    private String invoiceTaxpayersIDCode;

    /**
     * 对账单-购方信息-所属企业
     */
    @ApiModelProperty(value = "对账单-购方信息-所属企业")
    private Long enterpriseId;

    /**
     * 对账单-购方信息-用户Id
     */
    @ApiModelProperty(value = "对账单-购方信息-用户Id")
    private Long purchaseUserId;

    /**
     * 对账单-购方信息-实名或昵称-用于显示-非登陆用
     */
    @ApiModelProperty(value = "对账单-购方信息-实名或昵称-用于显示-非登陆用")
    private String purchaseUserName;

    /**
     * 对账单-购方信息-电话
     */
    @ApiModelProperty(value = "对账单-购方信息-电话")
    private String purchasePhone;

    /**
     * 对账单-购方信息-地址
     */
    @ApiModelProperty(value = "对账单-购方信息-地址")
    private String purchaseAddress;

    /**
     * 对账(结算)单-是否发邮件:0-不发;1-发;
     */
    @ApiModelProperty(value = "对账(结算)单-是否发邮件:0-不发;1-发;")
    private Integer isSendEmail;

    /**
     * 对账(结算)单-发邮件时间
     */
    @ApiModelProperty(value = "对账(结算)单-发邮件时间")
    private Date sendEmailTime;

    /**
     * 账单周期 基于:1-发货时间;2-下单时间;3-完成时间;
     */
    @ApiModelProperty(value = "账单周期 基于:1-发货时间;2-下单时间;3-完成时间;")
    private Integer dateType;

    /**
     * 账单周期-开始时间
     */
    @ApiModelProperty(value = "账单周期-开始时间")
    private Date startTime;

    /**
     * 账单周期-结束时间
     */
    @ApiModelProperty(value = "账单周期-结束时间")
    private Date endTime;

    /**
     * 对账(结算)单-回款标记:0-未回款;1-部分回款;2-全部回款;
     */
    @ApiModelProperty(value = "对账(结算)单-回款标记:0-未回款;1-部分回款;2-全部回款;")
    private Integer backAccountStatus;

    /**
     * 对账(结算)单-供方信息-银行信息Id(关联表)-收款主体 标记 TODO 更新为 invoice_bank_info_id 引用表 invoice_bank_info.id
     */
    @ApiModelProperty(value = "对账(结算)单-供方信息-银行信息Id(关联表)-收款主体 标记 TODO 更新为 invoice_bank_info_id 引用表 invoice_bank_info.id")
    private Long bankInfoId;

    /**
     * 系统信息-创建时间
     */
    @ApiModelProperty(value = "系统信息-创建时间")
    private Date createTime;

    /**
     * 系统信息-创建人Id
     */
    @ApiModelProperty(value = "系统信息-创建人Id")
    private Long createUserId;

    /**
     * 系统信息-更新时间
     */
    @ApiModelProperty(value = "系统信息-更新时间")
    private Date updateTime;

    /**
     * 系统信息-更新人Id
     */
    @ApiModelProperty(value = "系统信息-更新人Id")
    private Long updateUserId;

    /**
     * 对账(结算)单-支付方式
     */
    @ApiModelProperty(value = "对账(结算)单-支付方式")
    private Integer payType;

    /**
     * 对账(结算)单-支付状态:1-已支付;2-未支付;
     */
    @ApiModelProperty(value = "对账(结算)单-支付状态:1-已支付;2-未支付;")
    private Integer payStatus;

    /**
     * 对账(结算)单-查看二维码
     */
    @ApiModelProperty(value = "对账(结算)单-查看二维码")
    private String wxQrcodeImgUrl;

    /**
     * 系统信息-软删除
     */
    @ApiModelProperty(value = "系统信息-软删除")
    private Integer deleted;

    /**
     * 后台操作人员备注
     */
    @ApiModelProperty(value = "后台操作人员备注")
    private String remark;

    /**
     * 需修正标记:0-正常;1-修正;
     */
    @ApiModelProperty(value = "需修正标记:0-正常;1-修正;")
    private Integer needReviseMark;

    /**
     * 寄票登记部分 - 快递公司ID
     */
    @ApiModelProperty(value = "寄票登记部分 - 快递公司ID")
    private Long expressCompanyId;

    /**
     * 寄票登记部分 - 快递单号
     */
    @ApiModelProperty(value = "寄票登记部分 - 快递单号")
    private String expressNo;

    /**
     * 绑定附件(发票文件) upload_files.uid
     */
    @ApiModelProperty(value = "绑定附件(发票文件) upload_files.uid")
    private String attachmentUploadFilesUids;

    /**
     * 积分类型(1-N) 结构体 List<Bean>
     */
    @ApiModelProperty(value = "积分类型(1-N) 结构体 List<Bean>")
    private String creditTypeStruct;

    /**
     * 企业信息扩展发票信息快照 20220222 开发期间加的 之前是没有的
     */
    @ApiModelProperty(value = "企业信息扩展发票信息快照 20220222 开发期间加的 之前是没有的")
    private String invoiceBankInfoSnapshot;

    private static final long serialVersionUID = 1L;
}