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

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

import java.time.LocalDate;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 业务学习状态日志 Response VO")
@Data
public class OvertimeApplicationStatusLogRespVO {

    @Schema(description = "日志编号", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long id;

    @Schema(description = "业务学习编号", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long applicationId;

    @Schema(description = "动作编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "approve")
    private String actionType;

    @Schema(description = "变更前状态", example = "pending")
    private String fromStatus;

    @Schema(description = "变更后状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "approved")
    private String toStatus;

    @Schema(description = "原因或审核意见")
    private String reason;

    @Schema(description = "操作人用户编号", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long operatorUserId;

    @Schema(description = "操作人名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String operatorName;

    @Schema(description = "申请人姓名快照", requiredMode = Schema.RequiredMode.REQUIRED)
    private String applicantNameSnapshot;

    @Schema(description = "学习日期快照", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDate overtimeDateSnapshot;

    @Schema(description = "学习时长快照", requiredMode = Schema.RequiredMode.REQUIRED)
    private String overtimeDurationSnapshot;

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

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;
}
