// export const COLOR_LIST = ['#FF6633', '#FFB399', '#FF33FF', '#FFFF99', '#00B3E6'];
export const WATER_COLORS = {
    // 基础 12色
    basic12: [
        { name: '红色', hex: '#FF0000' },
        { name: '橙色', hex: '#FF7F00' },
        { name: '黄色', hex: '#FFFF00' },
        { name: '黄绿色', hex: '#ADFF2F' },
        { name: '绿色', hex: '#00FF00' },
        { name: '青色', hex: '#00FFFF' },
        { name: '蓝色', hex: '#0000FF' },
        { name: '紫色', hex: '#8A2BE2' },
        { name: '粉红色', hex: '#FF69B4' },
        { name: '棕色', hex: '#A52A2A' },
        { name: '橙红色', hex: '#FF4500' },
        { name: '黑色', hex: '#000000' },
    ],

    // 扩展 24色
    extended24: [
        { name: '红色', hex: '#FF0000' },
        { name: '橙红色', hex: '#FF4500' },
        { name: '橙色', hex: '#FF7F00' },
        { name: '橙黄色', hex: '#FFA500' },
        { name: '黄色', hex: '#FFFF00' },
        { name: '黄绿色', hex: '#ADFF2F' },
        { name: '草绿色', hex: '#7CFC00' },
        { name: '绿色', hex: '#00FF00' },
        { name: '深绿色', hex: '#006400' },
        { name: '青色', hex: '#00FFFF' },
        { name: '天蓝色', hex: '#87CEEB' },
        { name: '蓝色', hex: '#0000FF' },
        { name: '深蓝色', hex: '#00008B' },
        { name: '蓝紫色', hex: '#8A2BE2' },
        { name: '紫色', hex: '#800080' },
        { name: '紫红色', hex: '#FF00FF' },
        { name: '粉红色', hex: '#FF69B4' },
        { name: '深粉色', hex: '#FF1493' },
        { name: '棕色', hex: '#A52A2A' },
        { name: '深棕色', hex: '#8B4513' },
        { name: '灰色', hex: '#808080' },
        { name: '银灰色', hex: '#C0C0C0' },
        { name: '米色', hex: '#F5F5DC' },
        { name: '黑色', hex: '#000000' },
    ],

    // 特殊 36色
    special36: [
        { name: '红色', hex: '#FF0000' },
        { name: '绯红', hex: '#DC143C' },
        { name: '橙红色', hex: '#FF4500' },
        { name: '橙色', hex: '#FF7F00' },
        { name: '橙黄色', hex: '#FFA500' },
        { name: '金色', hex: '#FFD700' },
        { name: '黄色', hex: '#FFFF00' },
        { name: '柠檬黄', hex: '#FFFACD' },
        { name: '黄绿色', hex: '#ADFF2F' },
        { name: '草绿色', hex: '#7CFC00' },
        { name: '绿色', hex: '#00FF00' },
        { name: '深绿色', hex: '#006400' },
        { name: '橄榄绿', hex: '#808000' },
        { name: '青色', hex: '#00FFFF' },
        { name: '蓝绿色', hex: '#20B2AA' },
        { name: '天蓝色', hex: '#87CEEB' },
        { name: '蓝色', hex: '#0000FF' },
        { name: '深蓝色', hex: '#00008B' },
        { name: '海军蓝', hex: '#000080' },
        { name: '蓝紫色', hex: '#8A2BE2' },
        { name: '靛蓝色', hex: '#4B0082' },
        { name: '紫色', hex: '#800080' },
        { name: '紫罗兰', hex: '#9400D3' },
        { name: '紫红色', hex: '#FF00FF' },
        { name: '粉红色', hex: '#FF69B4' },
        { name: '深粉色', hex: '#FF1493' },
        { name: '玫瑰红', hex: '#FF007F' },
        { name: '棕色', hex: '#A52A2A' },
        { name: '深棕色', hex: '#8B4513' },
        { name: '咖啡色', hex: '#6F4E37' },
        { name: '灰色', hex: '#808080' },
        { name: '银灰色', hex: '#C0C0C0' },
        { name: '白色', hex: '#FFFFFF' },
        { name: '米色', hex: '#F5F5DC' },
        { name: '象牙白', hex: '#FFFFF0' },
        { name: '黑色', hex: '#000000' },
    ],
};

/**
 * 数字颜色映射（柔和12色）
 * 用于数学页面的数字显示和涂色
 */
export const NUMBER_COLORS: Record<number, string> = {
    1: '#ED6D50', // 柔和红色
    2: '#F9A857', // 柔和橙色
    3: '#FFE176', // 柔和黄色
    4: '#B2D94B', // 柔和黄绿色
    5: '#53D1B6', // 柔和绿色
    6: '#6CD2EA', // 柔和青色
    7: '#79A7ED', // 柔和蓝色
    8: '#9C98DE', // 柔和紫色
    9: '#F2A4C0', // 柔和粉色
    10: '#FC9B6C', // 柔和橙红色
    11: '#BC8F71', // 柔和棕色
    12: '#666666', // 柔和黑灰
    13: '#FF6F61', // 童趣珊瑚橘
    14: '#FFCB05', // 童趣明亮黄
    15: '#5AE2B1', // 童趣薄荷绿
    16: '#FF85A1', // 童趣樱花粉
    17: '#8CBAFF', // 童趣天真蓝
    18: '#FFD6E0', // 童趣泡泡粉
    19: '#57DAFF', // 童趣冰雪蓝
    20: '#FFE066', // 童趣香蕉黄
};

/**
 * 获取所有数字颜色数组
 */
export function getNumberColors(): string[] {
    return Object.values(NUMBER_COLORS);
}

/**
 * 随机获取一个数字颜色
 */
export function getRandomNumberColor(): string {
    const colors = getNumberColors();
    return colors[Math.floor(Math.random() * colors.length)];
}

/**
 * 从 NUMBER_COLORS 中随机获取指定数量的不重复颜色
 * @param count 需要获取的颜色数量
 * @returns 不重复的颜色数组
 */
export function getRandomUniqueNumberColors(count: number): string[] {
    const allColors = getNumberColors();
    if (count >= allColors.length) {
        // 如果需要的数量大于等于总数，返回打乱后的所有颜色
        return [...allColors].sort(() => Math.random() - 0.5);
    }

    // 使用 Set 确保不重复
    const selectedColors = new Set<string>();
    while (selectedColors.size < count) {
        const randomIndex = Math.floor(Math.random() * allColors.length);
        selectedColors.add(allColors[randomIndex]);
    }

    return Array.from(selectedColors);
}

/** A4 打印导出尺寸：150 DPI，兼顾清晰度与文件体积/打印速度 */
export const A4_EXPORT_SIZE_150DPI = { width: 1240, height: 1754 };

export const PAPER_SIZE = {
    A4: {
        // width: 2480,
        // height: 3508,
        width: 595,
        height: 842,
    },
    A3: {
        width: 3508,
        height: 4960,
    },
    A2: {
        width: 4960,
        height: 7016,
    },
    A1: {
        width: 7016,
        height: 10032,
    },
    A0: {
        width: 10032,
        height: 14176,
    },
};
