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

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

@Schema(description = "管理后台 - 回款信息新增/修改 Request VO")
@Data
public class RefundInfoSaveReqVO {

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

    @Schema(description = "回款标题", example = "回款标题1")
    @NotBlank(message = "回款标题不能为空")
    private String refundTitle;

    @Schema(description = "客户id", example = "1")
    @NotNull(message = "客户id不能为空")
    private Long customerId;

    @Schema(description = "合同id", example = "1")
    private Long contractId;

    @Schema(description = "回款日期", example = "2024-08-07")
    @NotBlank(message = "回款日期不能为空")
    private String refundDate;

    @Schema(description = "回款金额", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "回款金额不能为空")
    @Min(value = 0, message = "回款金额必须大于0")
    private BigDecimal refundMoney;

    @Schema(description = "回款周期，单位：天")
    @NotNull(message = "回款周期不能为空")
    private Integer refundCycle;

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

    @Schema(description = "备注", example = "备注可以不用填")
    private String remarks;

    @Schema(description = "附件主键id", example = "[1, 2]")
    private List<Long> fileIdList;

}