package com.punchsettle.server.atomic.entity; import java.io.Serial; import java.io.Serializable; import com.punchsettle.server.atomic.ContinueTask; import com.punchsettle.server.common.pojo.BaseEntity; import com.punchsettle.server.common.constant.CommonEnableStatusEnum; import com.punchsettle.server.constant.PunchInExtraMethodEnum; import com.punchsettle.server.constant.VersionStatusEnum; import jakarta.persistence.Column; import jakarta.persistence.Table; import lombok.Data; import lombok.EqualsAndHashCode; /** * @author tyuio * @version 1.0.0 * @description 打卡多任务表 * @date 2025/04/08 09:49 */ @Data @EqualsAndHashCode(callSuper = true) @Table(name = "pi_multi_task") public class PiMultiTask extends BaseEntity implements Serializable, ContinueTask { @Serial private static final long serialVersionUID = -8616950431388861152L; /** * 打卡多任务唯一ID */ @Column(name = "unique_id") private Long uniqueId; /** * 任务状态(活跃-ACTIVE,归档-ARCHIVE,删除-DELETE) * @see VersionStatusEnum */ @Column(name = "task_status") private VersionStatusEnum taskStatus; /** * 任务修改版本 */ @Column(name = "task_version") private Integer taskVersion; /** * 用户ID */ @Column(name = "user_id") private Long userId; /** * 是否启用多任务积分计算(ENABLED-启用,DISABLED-关闭) * @see CommonEnableStatusEnum */ @Column(name = "task_points_status") private CommonEnableStatusEnum taskPointsStatus; /** * 打卡完成次数 */ @Column(name = "punch_in_done_count") private Integer punchInDoneCount; /** * 奖励的积分(基本) */ @Column(name = "points") private Integer points; /** * 是否启用连续规则(ENABLED-启用,DISABLED-关闭) * @see CommonEnableStatusEnum */ @Column(name = "continue_status") private CommonEnableStatusEnum continueStatus; /** * 宽限期(单位:天) */ @Column(name = "grace_day") private Integer graceDay; /** * 连续中断次数 */ @Column(name = "continue_interrupted_count") private Integer continueInterruptedCount; /** * 惩罚天数(单位:天) */ @Column(name = "penalty_day") private Integer penaltyDay; /** * 额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL) * @see PunchInExtraMethodEnum */ @Column(name = "extra_method") private PunchInExtraMethodEnum extraMethod; /** * 奖励的积分(额外) */ @Column(name = "extra_points") private Integer extraPoints; }