package com.cool.store.response;

import com.cool.store.annotation.DictField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

@Data
public class AdjustmentOrderResponse implements Serializable {

    @ApiModelProperty("主键ID")
    private Long id;

    @ApiModelProperty("调整单号")
    private String adjustmentNo;

    @ApiModelProperty("门店ID")
    private String storeId;

    @ApiModelProperty("门店名称")
    private String storeName;

    @ApiModelProperty("门店编码")
    private String storeNum;

    @ApiModelProperty("业务类型")
    private String businessTypeCode;

    @ApiModelProperty("业务类型名称")
    @DictField(sourceField="businessTypeCode")
    private String businessTypeName;

    @ApiModelProperty("费用类型")
    private String expenseTypeCode;

    @ApiModelProperty("费用类型名称")
    @DictField(sourceField= "expenseTypeCode")
    private String expenseTypeName;

    @ApiModelProperty("调整类型（1-调增 2-调减）")
    private Integer adjustType;

    @ApiModelProperty("调整金额")
    private BigDecimal adjustAmount;

    @ApiModelProperty("调整原因")
    private String adjustReason;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("附件信息")
    private String attachmentInfo;

    @ApiModelProperty("单据状态（10-待充值/20-已充值待认款/30-认款完成/40-分部分账/50-分账完成）")
    private Integer status;

    @ApiModelProperty("创建人")
    private String createUserId;

    @ApiModelProperty("创建人姓名")
    private String createUserName;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("已分账金额")
    private BigDecimal settledAmount;

    @ApiModelProperty("待分账金额")
    private BigDecimal pendingSettlementAmount;

    @ApiModelProperty("认领人ID")
    private String claimUserId;

    @ApiModelProperty("认领人姓名")
    private String claimUserName;

    @ApiModelProperty("认领时间")
    private Date claimTime;

    @ApiModelProperty("费用单类型 1-费用单 2-调整单")
    private Integer expenseSheetType;

    @ApiModelProperty("合同附件信息")
    private String contractAttachmentInfo;

    @ApiModelProperty("关联银行流水号")
    private List<String> tradeNoList;

    @ApiModelProperty("支付时间")
    private Date payTime;
}
