import {
    faBrain,
    faBullseye,
    faExclamationTriangle,
    faFire,
    faRuler,
    faShieldAlt,
    faUsers,
    faWrench,
} from '@fortawesome/free-solid-svg-icons';
import {SelectBoxProps} from "@/shared/interface";

type CharacterCategory = 'main' | 'secondary' | 'recurring' | 'none';

export const characterCategories: SelectBoxProps[] = [
    {
        value: 'none',
        label: 'Sélectionner son rôle',
    },
    {
        value: 'main',
        label: 'Principal',
    },
    {
        value: 'secondary',
        label: 'Secondaire',
    },
    {
        value: 'recurring',
        label: 'Récurrent',
    },
];

export const characterTitle: SelectBoxProps[] = [
    {value: 'none', label: 'Aucun'},
    {value: 'king', label: 'Roi'},
    {value: 'queen', label: 'Reine'},
    {value: 'emperor', label: 'Empereur'},
    {value: 'empress', label: 'Impératrice'},
    {value: 'prince', label: 'Prince'},
    {value: 'princess', label: 'Princesse'},
    {value: 'duke', label: 'Duc'},
    {value: 'duchess', label: 'Duchesse'},
    {value: 'count', label: 'Comte'},
    {value: 'countess', label: 'Comtesse'},
    {value: 'baron', label: 'Baron'},
    {value: 'baroness', label: 'Baronne'},
    {value: 'lord', label: 'Seigneur'},
    {value: 'lady', label: 'Dame'},
    {value: 'knight', label: 'Chevalier'},
    {value: 'squire', label: 'Écuyer'},
    {value: 'warrior', label: 'Guerrier'},
    {value: 'general', label: 'Général'},
    {value: 'commander', label: 'Commandant'},
    {value: 'captain', label: 'Capitaine'},
    {value: 'soldier', label: 'Soldat'},
    {value: 'mercenary', label: 'Mercenaire'},
    {value: 'assassin', label: 'Assassin'},
    {value: 'thief', label: 'Voleur'},
    {value: 'spy', label: 'Espion'},
    {value: 'archmage', label: 'Archimage'},
    {value: 'sorcerer', label: 'Sorcier'},
    {value: 'witch', label: 'Sorcière'},
    {value: 'warlock', label: 'Mage Noir'},
    {value: 'druid', label: 'Druide'},
    {value: 'priest', label: 'Prêtre'},
    {value: 'prophet', label: 'Prophète'},
    {value: 'oracle', label: 'Oracle'},
    {value: 'seer', label: 'Voyant'},
    {value: 'scholar', label: 'Érudit'},
    {value: 'alchemist', label: 'Alchimiste'},
    {value: 'healer', label: 'Guérisseur'},
    {value: 'bard', label: 'Barde'},
    {value: 'hermit', label: 'Ermite'},
    {value: 'noble', label: 'Noble'},
    {value: 'peasant', label: 'Paysan'},
    {value: 'merchant', label: 'Marchand'},
    {value: 'sailor', label: 'Marin'},
    {value: 'pirate', label: 'Pirate'},
    {value: 'slave', label: 'Esclave'},
    {value: 'gladiator', label: 'Gladiateur'},
    {value: 'champion', label: 'Champion'},
    {value: 'outlaw', label: 'Hors-la-loi'},
    {value: 'hunter', label: 'Chasseur'},
    {value: 'beastmaster', label: 'Maître des Bêtes'},
    {value: 'ranger', label: 'Rôdeur'},
    {value: 'warden', label: 'Gardien'},
    {value: 'sentinel', label: 'Sentinelle'},
    {value: 'herald', label: 'Héraut'},
    {value: 'messenger', label: 'Messager'},
    {value: 'pilgrim', label: 'Pèlerin'},
    {value: 'nomad', label: 'Nomade'},
    {value: 'chieftain', label: 'Chef de Clan'},
    {value: 'high-priest', label: 'Grand Prêtre'},
    {value: 'inquisitor', label: 'Inquisiteur'},
    {value: 'judge', label: 'Juge'},
    {value: 'executioner', label: 'Bourreau'},
    {value: 'warden', label: 'Gardien de Prison'},
    {value: 'monk', label: 'Moine'},
    {value: 'abbot', label: 'Abbé'},
    {value: 'nun', label: 'Nonne'},
    {value: 'diplomat', label: 'Diplomate'},
    {value: 'ambassador', label: 'Ambassadeur'},
    {value: 'scientist', label: 'Scientifique'},
    {value: 'engineer', label: 'Ingénieur'},
    {value: 'inventor', label: 'Inventeur'},
    {value: 'architect', label: 'Architecte'},
    {value: 'scribe', label: 'Scribe'},
    {value: 'chronicler', label: 'Chroniqueur'},
    {value: 'storyteller', label: 'Conteur'},
    {value: 'actor', label: 'Acteur'},
    {value: 'musician', label: 'Musicien'},
    {value: 'artist', label: 'Artiste'},
    {value: 'sculptor', label: 'Sculpteur'},
    {value: 'orator', label: 'Orateur'},
    {value: 'revolutionary', label: 'Révolutionnaire'},
    {value: 'resistance-fighter', label: 'Résistant'},
    {value: 'freedom-fighter', label: 'Combattant de la Liberté'},
    {value: 'cult-leader', label: 'Chef de Secte'},
    {value: 'warlock-lord', label: 'Seigneur Noir'},
    {value: 'dark-prophet', label: 'Prophète du Chaos'},
    {value: 'warlord', label: 'Seigneur de Guerre'},
    {value: 'grandmaster', label: 'Grand Maître'},
    {value: 'tactician', label: 'Tacticien'},
    {value: 'archduke', label: 'Archiduc'},
    {value: 'high-king', label: 'Haut Roi'},
    {value: 'divine-champion', label: 'Champion Divin'},
];

export interface Relation {
    name: string;
    type: string;
    description: string;
    history: string;
}

export interface Attribute {
    id: string;
    name: string;
}

export interface CharacterAttribute {
    [key: string]: Array<Attribute>;
}

export interface CharacterProps {
    id: string | null;
    name: string;
    lastName: string;
    category: CharacterCategory;
    title: string;
    image: string;
    physical: Attribute[];
    psychological: Attribute[];
    relations: Attribute[];
    skills: Attribute[];
    weaknesses: Attribute[];
    strengths: Attribute[];
    goals: Attribute[];
    motivations: Attribute[];
    role: string;
    biography?: string;
    history?: string;
}

export interface CharacterElement {
    title: string;
    section: keyof CharacterProps;
    placeholder: string;
    icon: any; // Replace `any` with an appropriate type if you have a specific icon type.
}

export const characterElementCategory: CharacterElement[] = [
    {
        title: 'Descriptions physiques',
        section: 'physical',
        placeholder: 'Nouvelle Description Physique',
        icon: faRuler,
    },
    {
        title: 'Descriptions psychologiques',
        section: 'psychological',
        placeholder: 'Nouvelle Description Psychologique',
        icon: faBrain,
    },
    {
        title: 'Relations',
        section: 'relations',
        placeholder: 'Nouveau Nom de Relation',
        icon: faUsers,
    },
    {
        title: 'Compétences',
        section: 'skills',
        placeholder: 'Nouvelle Compétence',
        icon: faWrench,
    },
    {
        title: 'Faiblesses',
        section: 'weaknesses',
        placeholder: 'Nouvelle Faiblesse',
        icon: faExclamationTriangle,
    },
    {
        title: 'Forces',
        section: 'strengths',
        placeholder: 'Nouvelle Force',
        icon: faShieldAlt,
    },
    {
        title: 'Objectifs',
        section: 'goals',
        placeholder: 'Nouvel Objectif',
        icon: faBullseye,
    },
    {
        title: 'Motivations',
        section: 'motivations',
        placeholder: 'Nouvelle Motivation',
        icon: faFire,
    },
];
