/*
|--------------------------------------------------------------------------
| Agência PSI
|--------------------------------------------------------------------------
| Criado e desenvolvido por Leonardo Nohama
|
| Tecnologia aplicada à escuta.
| Estrutura para o cuidado.
|
| Arquivo: src/utils/systemGroupColors.js
| Data: 2026
| Local: São Carlos/SP — Brasil
|--------------------------------------------------------------------------
| © 2026 — Todos os direitos reservados
|--------------------------------------------------------------------------
|
| Armazena cores personalizadas de grupos de sistema no localStorage.
| A RLS do Supabase impede UPDATE em is_system=true, portanto as
| preferências de cor ficam no cliente, por usuário/dispositivo.
|
| Chave: 'apsi_sys_grp_colors' → { [groupId]: '#hex' }
|--------------------------------------------------------------------------
*/

const STORAGE_KEY = 'apsi_sys_grp_colors';

/** Cores padrão por nome de grupo de sistema (fallback quando não há cor salva) */
export const SYSTEM_GROUP_DEFAULT_COLORS = {
    adultos: '#3b82f6',
    crianças: '#22c55e',
    adolescentes: '#8b5cf6',
    casais: '#ec4899',
    família: '#f97316',
    familias: '#f97316',
    famílias: '#f97316',
    grupos: '#14b8a6',
    idosos: '#64748b',
    infantil: '#22c55e',
    outro: '#94a3b8',
    outros: '#94a3b8',
    geral: '#6366f1',
    supervisão: '#eab308',
    supervisao: '#eab308'
};

/** Retorna a cor padrão (sem '#' extra) para um grupo de sistema pelo nome */
export function getSystemGroupDefaultColor(name) {
    return (
        SYSTEM_GROUP_DEFAULT_COLORS[
            String(name || '')
                .trim()
                .toLowerCase()
        ] || '#6366f1'
    );
}

function readMap() {
    try {
        return JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
    } catch {
        return {};
    }
}

export function getSysGroupColor(groupId) {
    if (!groupId) return null;
    return readMap()[groupId] || null;
}

export function setSysGroupColor(groupId, color) {
    if (!groupId) return;
    const map = readMap();
    if (color) map[groupId] = color.startsWith('#') ? color : `#${color}`;
    else delete map[groupId];
    localStorage.setItem(STORAGE_KEY, JSON.stringify(map));
}

export function getAllSysGroupColors() {
    return readMap();
}
