package com.njcn.rdms.module.project.controller.admin.overtime.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.time.LocalDate;

@Schema(description = "管理后台 - 业务学习保存 Request VO")
@Data
public class OvertimeApplicationSaveReqVO {

    @Schema(description = "学习日期", requiredMode = Schema.RequiredMode.REQUIRED, example = "2026-06-01")
    @NotNull(message = "学习日期不能为空")
    private LocalDate overtimeDate;

    @Schema(description = "学习时长", requiredMode = Schema.RequiredMode.REQUIRED, example = "1天")
    @NotBlank(message = "学习时长不能为空")
    @Size(max = 30, message = "学习时长长度不能超过30个字符")
    private String overtimeDuration;

    @Schema(description = "学习原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "版本上线保障")
    @NotBlank(message = "学习原因不能为空")
    @Size(max = 500, message = "学习原因长度不能超过500个字符")
    private String overtimeReason;

    @Schema(description = "学习内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "处理上线验证和问题修复")
    @NotBlank(message = "学习内容不能为空")
    @Size(max = 1000, message = "学习内容长度不能超过1000个字符")
    private String overtimeContent;

    @Schema(description = "审核人用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001")
    @NotNull(message = "审核人不能为空")
    private Long approverId;
}
