package com.njcn.rdms.module.project.dal.dataobject.workreport.monthly;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.rdms.framework.mybatis.core.dataobject.BaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDate;

/**
 * 月报审核记录。
 */
@TableName("rdms_work_report_monthly_report_approval_record")
@Data
@EqualsAndHashCode(callSuper = true)
public class MonthlyReportApprovalRecordDO extends BaseDO {

    @TableId
    private Long id;

    private Long monthlyReportId;

    private Long statusLogId;

    private Integer approvalRound;

    private String conclusion;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String opinion;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private LocalDate meetingDate;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String strengthDesc;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String strengthExample;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String weaknessDesc;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String weaknessExample;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String improvementSuggestion;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String performanceResult;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String employeeSignName;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private Long employeeSignatureFileId;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private LocalDate employeeSignedDate;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String supervisorSignName;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private Long supervisorSignatureFileId;

    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private LocalDate supervisorSignedDate;

    private Long auditorUserId;

    private String auditorName;
}
