package org.xyzh.common.core.enums;

/**
 * @description 成就条件类型枚举
 * @filename AchievementConditionType.java
 * @author yslg
 * @copyright xyzh
 * @since 2025-10-24
 */
public enum AchievementConditionType {
    
    /**
     * 1-学习时长（分钟）
     */
    LEARNING_TIME(1, "学习时长"),
    
    /**
     * 2-浏览资源数量
     */
    RESOURCE_VIEW_COUNT(2, "浏览资源数量"),
    
    /**
     * 3-完成课程数量
     */
    COURSE_COMPLETE_COUNT(3, "完成课程数量"),
    
    /**
     * 4-连续登录天数
     */
    CONTINUOUS_LOGIN_DAYS(4, "连续登录天数"),
    
    /**
     * 5-收藏资源数量
     */
    RESOURCE_COLLECT_COUNT(5, "收藏资源数量"),
    
    /**
     * 6-完成任务数量
     */
    TASK_COMPLETE_COUNT(6, "完成任务数量"),
    
    /**
     * 7-获得积分数量
     */
    POINTS_EARNED(7, "获得积分数量"),
    
    /**
     * 8-发表评论数量
     */
    COMMENT_COUNT(8, "发表评论数量"),
    
    /**
     * 9-完成章节数量
     */
    CHAPTER_COMPLETE_COUNT(9, "完成章节数量"),
    
    /**
     * 10-累计登录天数
     */
    TOTAL_LOGIN_DAYS(10, "累计登录天数");
    
    private final int code;
    private final String description;
    
    AchievementConditionType(int code, String description) {
        this.code = code;
        this.description = description;
    }
    
    public int getCode() {
        return code;
    }
    
    public String getDescription() {
        return description;
    }
    
    /**
     * 根据code获取条件类型
     */
    public static AchievementConditionType fromCode(int code) {
        for (AchievementConditionType type : values()) {
            if (type.code == code) {
                return type;
            }
        }
        return null;
    }
}

