import type { LucideIcon } from 'lucide-react';
import {
    BadgeCheck,
    Building2,
    GraduationCap,
    LayoutGrid,
    Shield,
    Users,
} from 'lucide-react';
import type { RoleSlug } from '@/types';

export const USER_ROLE_OPTIONS: Array<{
    value: RoleSlug;
    label: string;
    description: string;
    icon: LucideIcon;
}> = [
    {
        value: 'administrador',
        label: 'Administrador',
        description: 'Acceso total al sistema',
        icon: Shield,
    },
    {
        value: 'jefe-de-brigada',
        label: 'Jefe de Brigada',
        description: 'Supervision y coordinacion de equipos',
        icon: Users,
    },
    {
        value: 'especialista',
        label: 'Especialista',
        description: 'Evaluacion tecnica especializada',
        icon: GraduationCap,
    },
    {
        value: 'coordinador',
        label: 'Coordinador',
        description: 'Coordinacion general del proyecto',
        icon: LayoutGrid,
    },
    {
        value: 'supervision-gamp',
        label: 'Supervision GAMP',
        description: 'Supervision municipal',
        icon: Building2,
    },
];

export const USER_STATUS_META = {
    active: {
        label: 'Activo',
        tone: 'bg-emerald-500/12 text-emerald-700 ring-emerald-500/20 dark:text-emerald-300',
        icon: BadgeCheck,
    },
    inactive: {
        label: 'Inactivo',
        tone: 'bg-amber-500/12 text-amber-700 ring-amber-500/20 dark:text-amber-300',
        icon: BadgeCheck,
    },
} as const;

export function getRoleOption(role?: string | null) {
    return USER_ROLE_OPTIONS.find((option) => option.value === role);
}
