package cn.iocoder.yudao.module.bpm.controller.admin.oa.expense.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.expense.OaExpenseObjDO;

@Schema(description = "管理后台 - 报销流程信息新增/修改 Request VO")
@Data
public class OaExpenseSaveReqVO {

    @Schema(description = "表单主键", example = "1")
    private Long id;

    @Schema(description = "报销类型主键id", example = "1")
    @NotNull(message = "报销类型主键id不能为空")
    private Long expenseTypeId;

    @Schema(description = "报销类型名称", example = "差旅费报销")
    private String expenseTypeName;

    @Schema(description = "费用所属区间")
    @NotEmpty(message = "费用所属区间不能为空")
    private String expenseMonth;

    @Schema(description = "总预算金额，单位（元）")
    @NotNull(message = "总预算金额，单位（元）不能为空")
    @Min(value = 0, message = "总预算金额，单位（元）最小值为 0")
    private BigDecimal totalMoney;

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

    @Schema(description = "报销流程信息子列表")
    private List<OaExpenseObjDO> oaExpenseObjs;

}