package com.chick_mood.data.model

/**
 * 情绪类型枚举
 * 定义应用支持的六种基础情绪
 *
 * @author Claude
 * @date 2025-10-22
 */
enum class Emotion(val displayName: String, val colorValue: String, val chickExpression: Int) {
    /**
     * 开心 - 橙色系，小鸡开心表情
     */
    HAPPY("开心", "#FFAB76", 1),

    /**
     * 生气 - 红色系，小鸡生气表情
     */
    ANGRY("生气", "#D9534F", 2),

    /**
     * 悲伤 - 蓝色系，小鸡悲伤表情
     */
    SAD("悲伤", "#5DADE2", 3),

    /**
     * 烦恼 - 灰色系，小鸡烦恼表情
     */
    WORRIED("烦恼", "#95A5A6", 4),

    /**
     * 孤单 - 紫色系，小鸡孤单表情
     */
    LONELY("孤单", "#AF7AC5", 5),

    /**
     * 害怕 - 黄褐色系，小鸡害怕表情
     */
    SCARED("害怕", "#F4D03F", 6);

    /**
     * 获取情绪对应的颜色资源ID
     * @return 颜色资源ID
     */
    fun getColorResourceId(): Int {
        return when (this) {
            HAPPY -> android.R.color.holo_orange_light
            ANGRY -> android.R.color.holo_red_dark
            SAD -> android.R.color.holo_blue_light
            WORRIED -> android.R.color.darker_gray
            LONELY -> android.R.color.holo_purple
            SCARED -> android.R.color.holo_orange_dark
        }
    }

    companion object {
        /**
         * 根据数值获取情绪枚举
         * @param value 情绪数值（1-6）
         * @return 对应的情绪枚举，无效值返回HAPPY
         */
        fun fromValue(value: Int): Emotion {
            return values().find { it.chickExpression == value } ?: HAPPY
        }

        /**
         * 获取所有情绪的显示名称列表
         * @return 情绪显示名称列表
         */
        fun getAllDisplayNames(): List<String> {
            return values().map { it.displayName }
        }
    }
}