package cn.iocoder.yudao.module.cash.controller.admin.refundinfo.vo;

import cn.iocoder.yudao.framework.common.util.date.DateUtils;
import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 回款信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class RefundInfoRespVO {

    @Schema(description = "主键")
    // @ExcelProperty("主键")
    private Long id;

    @Schema(description = "回款编号：年月日+uuid")
    // @ExcelProperty("回款编号：年月日+uuid")
    private String refundInfoUuid;

    @Schema(description = "回款标题")
    @ExcelProperty("回款标题")
    private String refundTitle;

    @Schema(description = "客户id")
    // @ExcelProperty("客户id")
    private Long customerId;

    @Schema(description = "客户名称")
    @ExcelProperty("客户名称")
    private String customerName;

    @Schema(description = "客户编码")
    // @ExcelProperty("客户编码")
    private String customerCode;

    @Schema(description = "合同id")
    // @ExcelProperty("合同id")
    private Long contractId;

    @Schema(description = "合同名称")
    @ExcelProperty("合同名称")
    private String contractName;

    @Schema(description = "合同编码")
    // @ExcelProperty("合同编码")
    private String contractCode;

    @Schema(description = "回款日期")
    @ExcelProperty("回款日期")
    private String refundDate;

    @Schema(description = "回款金额")
    @ExcelProperty("回款金额")
    private BigDecimal refundMoney;

    @Schema(description = "回款周期，单位：天")
    // @ExcelProperty("回款周期，单位：天")
    private Integer refundCycle;

    @Schema(description = "逾期天数")
    // @ExcelProperty("逾期天数")
    private Integer overdueDay;

    @Schema(description = "单据状态：0：已完成，1：作废")
    // @ExcelProperty("单据状态：0：已完成，1：作废")
    private String status;

    @Schema(description = "单据状态描述：0：已完成，1：作废")
    // @ExcelProperty("单据状态描述：0：已完成，1：作废")
    private String statusDesc;

    @Schema(description = "备注")
    // @ExcelProperty("备注")
    private String remarks;

    @Schema(description = "创建人id")
    // @ExcelProperty("创建人id")
    private String creator;

    @Schema(description = "创建人名称")
    @ExcelProperty("创建人")
    private String creatorName;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime createTime;

    @Schema(description = "附件列表")
    private List<FileDTO> fileList;

    @Schema(description = "附件id列表")
    private List<Long> fileIdList;
}