package com.designhub.entity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import java.io.Serializable; import java.time.LocalDateTime; /** * 竞赛活动实体 */ @Data @TableName("contest") public class Contest implements Serializable { private static final long serialVersionUID = 1L; @TableId(type = IdType.AUTO) private Long id; /** * 竞赛名称 */ private String name; /** * 竞赛描述 */ private String description; /** * 竞赛类型:monthly-月度竞赛, weekly-周度竞赛, special-专项竞赛 */ private String contestType; /** * 开始时间 */ private LocalDateTime startTime; /** * 结束时间 */ private LocalDateTime endTime; /** * 参与范围:all-全体设计师, department-指定部门, user-指定人员 */ private String participantScope; /** * 指定部门ID列表(JSON数组) */ private String departmentIds; /** * 指定用户ID列表(JSON数组) */ private String userIds; /** * 竞赛规则配置(JSON对象) * 例如:{"taskCompleted":{"score":2,"weight":30},"fiveStarReview":{"score":10,"weight":25}} */ private String rules; /** * 奖励配置(JSON数组) * 例如:[{"rank":1,"score":1500,"badge":"月度冠军"},{"rank":2,"score":1000}] */ private String rewards; /** * 参与奖配置(JSON对象) */ private String participationReward; /** * 竞赛状态:draft-草稿, scheduled-待开始, active-进行中, ended-已结束, cancelled-已取消 */ private String status; /** * 参与人数 */ private Integer participantCount; /** * 创建人ID */ private Long creatorId; /** * 是否删除:0-否,1-是 */ @TableLogic private Integer deleted; /** * 创建时间 */ @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; /** * 更新时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; }