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

import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;

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

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

    @Schema(description = "请假类型", example = "事假")
    @NotBlank(message = "请假类型不能为空")
    private String leaveType;

    @Schema(description = "开始日期")
    @NotBlank(message = "开始日期不能为空")
    private String startDate;

    @Schema(description = "开始具体时间，精确到上下午，am上午 pm下午")
    @NotBlank(message = "开始具体时间不能为空")
    private String startTime;

    @Schema(description = "结束日期")
    @NotBlank(message = "结束日期不能为空")
    private String endDate;

    @Schema(description = "结束具体时间，精确到上下午，am上午 pm下午")
    @NotBlank(message = "结束具体时间不能为空")
    private String endTime;

    @Schema(description = "请假天数")
    @NotBlank(message = "请假天数不能为空")
    private String day;

    @Schema(description = "请假原因", example = "不好")
    @NotBlank(message = "请假原因不能为空")
    private String reason;

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

    @Schema(description = "发起人自选审批人", example = " [100, 1]")
    @NotEmpty(message = "发起人自选审批人不能为空")
    private List<Long> startUserSelectAssignees;

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

}