package com.njcn.rdms.module.project.controller.admin.workreport.monthly.vo;

import com.njcn.rdms.module.project.controller.admin.workreport.common.vo.WorkReportStatusActionReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;

import static com.njcn.rdms.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;

@Schema(description = "管理后台 - 月报审核通过 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class MonthlyReportApproveReqVO extends WorkReportStatusActionReqVO {

    @Schema(description = "面谈时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate meetingDate;

    @Schema(description = "优势描述")
    private String strengthDesc;

    @Schema(description = "优势行为事例")
    private String strengthExample;

    @Schema(description = "劣势描述")
    private String weaknessDesc;

    @Schema(description = "劣势行为事例")
    private String weaknessExample;

    @Schema(description = "改进建议")
    private String improvementSuggestion;

    @Schema(description = "绩效考核结果")
    @NotBlank(message = "绩效考核结果不能为空")
    private String performanceResult;

    @Schema(description = "被考核人签名")
    private String employeeSignName;

    @Schema(description = "被考核人签字日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate employeeSignedDate;

    @Schema(description = "上级签名")
    private String supervisorSignName;

    @Schema(description = "上级签字日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate supervisorSignedDate;
}
