package cn.iocoder.yudao.module.system.controller.admin.customersettlement.vo;

import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.upload.UploadUserFile;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

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

@Schema(description = "管理后台 - 客户结算信息新增/修改 Request VO")
@Data
public class CustomerSettlementSaveReqVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "16752")
    private Long id;

    @Schema(description = "客户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11477")
    @NotNull(message = "客户不能为空")
    private Long customerId;

    @Schema(description = "结算月份", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "结算月份不能为空")
    private String settlementMonth;

    @Schema(description = "结算明细")
    private List<SettlementItemVO> settlementItems;

    @Schema(description = "收款明细")
    private List<PaymentItem> paymentItem;

    @Schema(description = "收款金额")
    private BigDecimal paymentAmount;

    @Schema(description = "备注")
    private String notes;

    @Schema(description = "结算状态 | 1已复核 2已确认")
    private Integer status;

    @Schema(description = "上传附件", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "https://www.iocoder.cn")
    private List<UploadUserFile> fileItems;

}