package com.lesingle.creation.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.lesingle.creation.common.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 竞赛作品评审分配表实体类
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_biz_contest_work_assignment")
public class ContestWorkAssignment extends BaseEntity {

    /**
     * 赛事 ID
     */
    @TableField("contest_id")
    private Long contestId;

    /**
     * 作品 ID
     */
    @TableField("work_id")
    private Long workId;

    /**
     * 评委用户 ID
     */
    @TableField("judge_id")
    private Long judgeId;

    /**
     * 评委姓名
     */
    @TableField("judge_name")
    private String judgeName;

    /**
     * 分配状态：pending/reviewing/completed
     */
    @TableField("assignment_status")
    private String assignmentStatus;

    /**
     * 分配人 ID
     */
    @TableField("assigned_by")
    private Long assignedBy;

    /**
     * 分配时间
     */
    @TableField("assigned_time")
    private LocalDateTime assignedTime;

    /**
     * 评审时间
     */
    @TableField("review_time")
    private LocalDateTime reviewTime;

    /**
     * 评分
     */
    @TableField("score")
    private BigDecimal score;

    /**
     * 评语
     */
    @TableField("comment")
    private String comment;

    /**
     * 预设评语 ID
     */
    @TableField("preset_comment_id")
    private Long presetCommentId;

    /**
     * 自定义评语
     */
    @TableField("custom_comment")
    private String customComment;

    /**
     * 分配状态：pending/reviewing/completed（别名，用于兼容）
     */
    @TableField(exist = false)
    private String status;

    /**
     * 分配时间（别名，用于兼容）
     */
    @TableField(exist = false)
    private LocalDateTime assignTime;

    /**
     * 完成时间（别名，用于兼容）
     */
    @TableField(exist = false)
    private LocalDateTime completeTime;
}
