package com.red.circle.other.infra.database.rds.entity.task;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.sql.Timestamp;

/**
 * Spins任务配置实体
 *
 * @author system
 * @date 2025-01-21
 */
@Data
@TableName("spins_task_config")
public class SpinsTaskConfig {

    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 任务编码（唯一标识）
     */
    private String taskCode;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 任务类型：1-开麦任务，2-送礼任务，3-邀请任务
     */
    private Integer taskType;

    /**
     * 任务描述
     */
    private String taskDesc;

    /**
     * 任务图标
     */
    private String iconUrl;

    /**
     * 目标类型：MIC_TIME-开麦时长，SEND_GIFT-送礼，INVITE_USER-邀请用户
     */
    private String targetType;

    /**
     * 目标值（如：15分钟=15，送3个礼物=3）
     */
    private Integer targetValue;

    /**
     * 目标单位：MINUTES-分钟，COUNT-次数，HOURS-小时
     */
    private String targetUnit;

    /**
     * 奖励类型：1-抽奖券
     */
    private Integer rewardType;

    /**
     * 奖励数量
     */
    private Integer rewardValue;

    /**
     * 关联的抽奖活动ID
     */
    private Long lotteryActivityId;

    /**
     * 周期类型：1-每日，2-每周，3-一次性
     */
    private Integer cycleType;

    /**
     * 重置时间（每日任务）
     */
    private String resetTime;

    /**
     * 每周期最大完成次数
     */
    private Integer maxTimes;

    /**
     * 状态：0-禁用，1-启用
     */
    private Integer status;

    /**
     * 排序
     */
    private Integer sortOrder;

    /**
     * 任务开始时间
     */
    private Timestamp startTime;

    /**
     * 任务结束时间
     */
    private Timestamp endTime;

    /**
     * 扩展配置（JSON格式）
     */
    private String extraConfig;

    /**
     * 创建时间
     */
    private Timestamp createTime;

    /**
     * 更新时间
     */
    private Timestamp updateTime;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 更新人
     */
    private String updatedBy;
}
