package org.dromara.system.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.system.domain.GameEventProject;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 赛事项目视图对象 game_event_project
 *
 * @author zlt
 * @date 2025-07-30
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = GameEventProject.class)
public class GameEventProjectVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @ExcelProperty(value = "项目Id")
    private Long projectId;

    /**
     * 赛事ID
     */
    @ExcelProperty(value = "赛事ID")
    private Long eventId;

    /**
     * 项目名称
     */
    @ExcelProperty(value = "项目名称")
    private String projectName;

    /**
     * 项目类型（个人/团体）
     */
    @ExcelProperty(value = "项目类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=个人,1=团体")
    private String projectType;

    /**
     * 项目组别
     */
    @ExcelProperty(value = "项目组别")
    private String groupType;

    /**
     * 裁判员ID
     */
    @ExcelProperty(value = "裁判员ID")
    private Long refereeId;

    /**
     * 比赛场地
     */
    @ExcelProperty(value = "比赛场地")
    private String location;

    /**
     * 开始时间
     */
    @ExcelProperty(value = "开始时间")
    private Date startTime;

    /**
     * 结束时间
     */
    @ExcelProperty(value = "结束时间")
    private Date endTime;

    /**
     * 更新时间
     */
    @ExcelProperty(value = "更新时间")
    private Date updateTime;

    /**
     * 参赛组数
     */
    @ExcelProperty(value = "参赛组数")
    private Long groupNum;

    /**
     * 参赛人数
     */
    @ExcelProperty(value = "参赛人数")
    private Long participateNum;

    /**
     * 轮次
     */
    @ExcelProperty(value = "轮次")
    private String roundType;

    /**
     * 排序方式
     */
    @ExcelProperty(value = "排序方式")
    private String orderType;

    /**
     * 计算规则
     */
    @ExcelProperty(value = "计算规则")
    private String scoreRule;

    /**
     * 积分分值
     */
    @ExcelProperty(value = "积分分值")
    private String scoreValue;

    /**
     * 奖项
     */
    @ExcelProperty(value = "奖项")
    private String award;

    /**
     * 计时点名称
     */
    @ExcelProperty(value = "计时点名称")
    private String timePoint;

    /**
     * 控制盒编号
     */
    @ExcelProperty(value = "控制盒编号")
    private String boxCode;

    /**
     * 状态（0正常 1停用）
     */
    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=正常,1=停用")
    private String status;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;


}
