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")
public class ContestWork extends BaseEntity {

    /**
     * 作品所属租户 ID
     */
    @TableField("tenant_id")
    private Long tenantId;

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

    /**
     * 报名记录 ID
     */
    @TableField("registration_id")
    private Long registrationId;

    /**
     * 作品编号
     */
    @TableField("work_no")
    private String workNo;

    /**
     * 作品标题
     */
    @TableField("title")
    private String title;

    /**
     * 作品说明
     */
    @TableField("description")
    private String description;

    /**
     * 作品文件列表（JSON）
     */
    @TableField("files")
    private String files;

    /**
     * 作品版本号
     */
    @TableField("version")
    private Integer version;

    /**
     * 是否最新版本
     */
    @TableField("is_latest")
    private Boolean isLatest;

    /**
     * 作品状态：submitted/locked/reviewing/rejected/accepted
     */
    @TableField("status")
    private String status;

    /**
     * 提交时间
     */
    @TableField("submit_time")
    private LocalDateTime submitTime;

    /**
     * 提交人用户 ID
     */
    @TableField("submitter_user_id")
    private Long submitterUserId;

    /**
     * 提交人账号
     */
    @TableField("submitter_account_no")
    private String submitterAccountNo;

    /**
     * 提交来源：teacher/student/team_leader
     */
    @TableField("submit_source")
    private String submitSource;

    /**
     * 作品预览 URL
     */
    @TableField("preview_url")
    private String previewUrl;

    /**
     * 作品预览图 URL 列表（JSON）
     */
    @TableField("preview_urls")
    private String previewUrls;

    /**
     * AI 建模元数据（JSON）
     */
    @TableField("ai_model_meta")
    private String aiModelMeta;

    /**
     * 关联用户作品库 ID
     */
    @TableField("user_work_id")
    private Long userWorkId;

    /**
     * 最终得分
     */
    @TableField("final_score")
    private BigDecimal finalScore;

    /**
     * 排名
     */
    @TableField("rank")
    private Integer rank;

    /**
     * 奖项等级：first/second/third/excellent/none
     */
    @TableField("award_level")
    private String awardLevel;

    /**
     * 奖项名称
     */
    @TableField("award_name")
    private String awardName;

    /**
     * 证书 URL
     */
    @TableField("certificate_url")
    private String certificateUrl;
    /**
     * 有效状态：1-有效，2-失效
     */
    @TableField("valid_state")
    private Integer validState;
}
