import { faBrain, faBullseye, faExclamationTriangle, faFire, faRuler, faShieldAlt, faUsers, faWrench, faRoute, faUserSecret, faGhost, faHeartBroken, faHandHoldingHeart, faBolt, faQuoteLeft, faFingerprint, faBox, faPeopleGroup, } from '@fortawesome/free-solid-svg-icons'; import {SelectBoxProps} from "@/shared/interface"; type CharacterCategory = 'main' | 'secondary' | 'recurring' | 'none'; export const characterCategories: SelectBoxProps[] = [ {value: 'none', label: 'characterCategories.none'}, {value: 'main', label: 'characterCategories.main'}, {value: 'secondary', label: 'characterCategories.secondary'}, {value: 'recurring', label: 'characterCategories.recurring'}, ]; export const characterStatus: SelectBoxProps[] = [ {value: 'alive', label: 'characterStatus.alive'}, {value: 'dead', label: 'characterStatus.dead'}, {value: 'unknown', label: 'characterStatus.unknown'}, ]; export interface Relation { name: string; type: string; description: string; history: string; } export interface Attribute { id: string; name: string; } export interface CharacterAttribute { [key: string]: Array; } export interface CharacterProps { id: string | null; name: string; lastName: string; nickname: string; age: number | null; gender: string; species: string; nationality: string; status: 'alive' | 'dead' | 'unknown'; category: CharacterCategory; title: string; image: string; physical: Attribute[]; psychological: Attribute[]; relations: Attribute[]; skills: Attribute[]; weaknesses: Attribute[]; strengths: Attribute[]; goals: Attribute[]; motivations: Attribute[]; arc: Attribute[]; secrets: Attribute[]; fears: Attribute[]; flaws: Attribute[]; beliefs: Attribute[]; conflicts: Attribute[]; quotes: Attribute[]; distinguishingMarks: Attribute[]; items: Attribute[]; affiliations: Attribute[]; role: string; biography?: string; history?: string; speechPattern?: string; catchphrase?: string; residence?: string; notes?: string; color?: string; seriesCharacterId?: string | null; } export interface CharacterListResponse { characters: CharacterProps[]; enabled: boolean; } 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. } // Attributs de base (toujours visibles) export const basicCharacterElements: CharacterElement[] = [ { title: 'Descriptions physiques', section: 'physical', placeholder: 'Nouvelle Description Physique', icon: faRuler, }, { title: 'Descriptions psychologiques', section: 'psychological', placeholder: 'Nouvelle Description Psychologique', icon: faBrain, }, ]; // Attributs avancés (visibles en mode avancé) export const advancedCharacterElements: CharacterElement[] = [ { title: 'Signes distinctifs', section: 'distinguishingMarks', placeholder: 'Nouveau signe distinctif', icon: faFingerprint, }, { title: 'Arc du personnage', section: 'arc', placeholder: 'Nouvelle étape de l\'arc', icon: faRoute, }, { title: 'Secrets', section: 'secrets', placeholder: 'Nouveau secret', icon: faUserSecret, }, { title: 'Peurs', section: 'fears', placeholder: 'Nouvelle peur', icon: faGhost, }, { title: 'Défauts', section: 'flaws', placeholder: 'Nouveau défaut', icon: faHeartBroken, }, { title: 'Croyances', section: 'beliefs', placeholder: 'Nouvelle croyance', icon: faHandHoldingHeart, }, { title: 'Conflits internes', section: 'conflicts', placeholder: 'Nouveau conflit', icon: faBolt, }, { title: 'Citations', section: 'quotes', placeholder: 'Nouvelle citation', icon: faQuoteLeft, }, { 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, }, { title: 'Objets importants', section: 'items', placeholder: 'Nouvel objet', icon: faBox, }, { title: 'Affiliations', section: 'affiliations', placeholder: 'Nouvelle affiliation', icon: faPeopleGroup, }, ]; // Pour rétro-compatibilité, on garde characterElementCategory qui combine les deux export const characterElementCategory: CharacterElement[] = [ ...basicCharacterElements, ...advancedCharacterElements, ];