import {ChapterListProps} from "./Chapter";
import {Act, Issue} from "@/lib/models/Book";
import {RadioBoxValue} from "@/components/form/RadioBox";
import {Dispatch, SetStateAction} from "react";
import {SelectBoxProps} from "@/shared/interface";

export interface StoryProps {
    mainChapter: ChapterListProps[],
    acts: Act[],
    issues: Issue[]
}

export interface VerbalTimeProps {
    actions: string;
    descriptions: string;
    dialogues: string;
    thoughts: string;
    summary: string;
}

export interface DialogueProps {
    description: string;
    example: string;
}

export interface GeneratedShortStory {
    title: string;
    short: string;
    resume: string;
    totalPrice: number;
    totalTokens: number;
}

export const storyStates: RadioBoxValue[] = [
    {label: 'Suite', value: 0},
    {label: 'Début', value: 1},
    {label: 'Fin', value: 2},
    {label: 'Introduction', value: 3},
    {label: 'Final', value: 4},
];

export const beginnerPredefinedType: SelectBoxProps[] = [
    {
        label: `Thème défini disponible.`,
        value: '0',
    },
    {
        label: `Féerique`,
        value: '3',
    },
    {
        label: 'Romance historique',
        value: '10',
    },
    {
        label: 'Conte de fées moderne',
        value: '13',
    },
    {
        label: 'Romance contemporaine',
        value: '17',
    },
    {
        label: 'Conte moral',
        value: '20',
    },
];
export const intermediatePredefinedType: SelectBoxProps[] = [
    {
        label: `Thème défini disponible.`,
        value: '0',
    },
    {
        label: `Histoire d'horreur jeune adulte`,
        value: '1',
    },
    {
        label: 'Féerique',
        value: '3',
    },
    {
        label: 'Romance dramatique',
        value: '5',
    },
    {
        label: 'Fantastique sombre',
        value: '9',
    },
    {
        label: 'Romance historique',
        value: '10',
    },
    {
        label: 'Science-fiction utopique',
        value: '12',
    },
    {
        label: 'Conte de fées moderne',
        value: '13',
    },
    {
        label: 'Drame familial',
        value: '14',
    },
    {
        label: 'Romance contemporaine',
        value: '17',
    },
    {
        label: 'Science-fiction post-apocalyptique',
        value: '19',
    },
    {
        label: 'Conte moral',
        value: '20',
    },
];

export const advancedPredefinedType: SelectBoxProps[] = [
    {
        label: `Thème défini disponible.`,
        value: '0',
    },
    {
        label: `Histoire d'horreur jeune adulte`,
        value: '1',
    },
    {
        label: `Horreur adulte`,
        value: '2',
    },
    {
        label: 'Féerique',
        value: '3',
    },
    {
        label: 'Science-fiction dystopique',
        value: '4',
    },
    {
        label: 'Romance dramatique',
        value: '5',
    },
    {
        label: 'Aventure épique',
        value: '6',
    },
    {
        label: 'Conte philosophique',
        value: '7',
    },
    {
        label: 'Thriller psychologique',
        value: '8',
    },
    {
        label: 'Fantastique sombre',
        value: '9',
    },
    {
        label: 'Romance historique',
        value: '10',
    },
    {
        label: 'Polar noir',
        value: '11',
    },
    {
        label: 'Science-fiction utopique',
        value: '12',
    },
    {
        label: 'Conte de fées moderne',
        value: '13',
    },
    {
        label: 'Drame familial',
        value: '14',
    },
    {
        label: 'Aventure maritime',
        value: '15',
    },
    {
        label: 'Fantaisie épique',
        value: '16',
    },
    {
        label: 'Romance contemporaine',
        value: '17',
    },
    {
        label: "Thriller d'espionnage",
        value: '18',
    },
    {
        label: 'Science-fiction post-apocalyptique',
        value: '19',
    },
    {
        label: 'Conte moral',
        value: '20',
    },
];

// Débutant (Level 1)
export const beginnerNarrativePersons: SelectBoxProps[] = [
    {
        label: 'Sélectionner un type narrative.',
        value: '0',
    },
    {
        label: 'Première personne (Je acteur) - Implication émotionnelle',
        value: '1',
    },
    {
        label: 'Troisième omnisciente - Narration divine, savoir total',
        value: '3',
    },
];

// Intermédiaire (Level 2)
export const intermediateNarrativePersons: SelectBoxProps[] = [
    {
        label: 'Sélectionner un type narrative.',
        value: '0',
    },
    {
        label: 'Première personne (Je acteur) - Implication émotionnelle',
        value: '1',
    },
    {
        label: 'Première personne (Je témoin) - Observation extérieure',
        value: '2',
    },
    {
        label: 'Troisième omnisciente - Narration divine, savoir total',
        value: '3',
    },
    {
        label: 'Troisième limitée - Focus sur 1 personnage',
        value: '4',
    },
];

// Avancé (Level 3)
export const advancedNarrativePersons: SelectBoxProps[] = [
    {
        label: 'Sélectionner un type narrative.',
        value: '0',
    },
    {
        label: 'Première personne (Je acteur) - Implication émotionnelle',
        value: '1',
    },
    {
        label: 'Première personne (Je témoin) - Observation extérieure',
        value: '2',
    },
    {
        label: 'Troisième omnisciente - Narration divine, savoir total',
        value: '3',
    },
    {
        label: 'Troisième limitée - Focus sur 1 personnage',
        value: '4',
    },
    {
        label: 'Deuxième personne (Tu) - Immersion/confrontation',
        value: '5',
    },
    {
        label: 'Nous collectif - Voix chorale, destin partagé',
        value: '6',
    },
];

export const langues: SelectBoxProps[] = [
    {label: 'Sélectionner une langue.', value: '0'},
    {label: 'Français Canada', value: '1'},
    {label: 'Français France', value: '2'},
    {label: 'Français Québécois', value: '3'},
    {label: 'English Canada', value: '4'},
];

// Débutant (Level 1)
export const beginnerDialogueTypes: SelectBoxProps[] = [
    {
        label: 'Sélectionner un type de dialogue.',
        value: '0',
    },
    {
        label: 'Dialogue direct - Paroles exactes des personnages',
        value: '1',
    },
    {
        label: 'Dialogue indirect - Paroles résumées par le narrateur',
        value: '2',
    },
];

// Intermédiaire (Level 2)
export const intermediateDialogueTypes: SelectBoxProps[] = [
    {
        label: 'Sélectionner un type de dialogue.',
        value: '0',
    },
    {
        label: 'Dialogue direct - Paroles exactes des personnages',
        value: '1',
    },
    {
        label: 'Dialogue indirect - Paroles résumées par le narrateur',
        value: '2',
    },
    {
        label: 'Dialogue mixte - Mélange de dialogue direct et indirect',
        value: '3',
    },
];

// Avancé (Level 3)
export const advancedDialogueTypes: SelectBoxProps[] = [
    {
        label: 'Sélectionner un type de dialogue.',
        value: '0',
    },
    {
        label: 'Dialogue direct - Paroles exactes des personnages',
        value: '1',
    },
    {
        label: 'Dialogue indirect - Paroles résumées par le narrateur',
        value: '2',
    },
    {
        label: 'Dialogue mixte - Mélange de dialogue direct et indirect',
        value: '3',
    },
    {
        label: 'Monologue intérieur - Interaction avec soi-même',
        value: '4',
    },
];

export const verbalTime: SelectBoxProps[] = [
    {
        label: 'Sélectionner un temps verbal.',
        value: '0',
    },
    {
        label: 'Passé Simple',
        value: '1',
    },
    {
        label: 'Passé Immédiat → Témoignages, récits autobiographiques',
        value: '2',
    },
    {label: 'Passé Profond → Flashbacks littéraires, tragédies', value: '3'},
    {label: 'Présent Brut → Urgence, immersion totale', value: '4'},
    {label: 'Présent Réflexif → Méditations philosophiques', value: '5'},
    {label: 'Futur Projeté → Prophéties, plans stratégiques', value: '6'},
    {
        label: 'Futur Catastrophe → Dystopies, récits post-apocalyptiques',
        value: '7',
    },
    {label: 'Imparfait Onirique → Rêves, souvenirs déformés', value: '8'},
    {
        label: 'Conditionnel Hypothétique → Uchronies, réalités alternatives',
        value: '9',
    },
    {
        label: 'Subjonctif Angoissé → Drames psychologiques, dilemmes',
        value: '10',
    },
    {
        label: 'Mélancolie Composée → Regrets, introspection nostalgique',
        value: '11',
    },
    {label: 'Urgence Narrative → Urgences', value: '12'},
    {label: 'Présent Émotionnel → Émotions intenses', value: '13'},
    {
        label: 'Présent Introspectif → Réflexions profondes',
        value: '14',
    },
    {
        label: 'Présent Historique → Histoires historiques',
        value: '15',
    },
    {
        label: 'Passé Réflexif → Récits introspectifs',
        value: '16',
    },
    {
        label: 'Futur Prophétique → Prophéties, visions apocalyptiques',
        value: '17',
    },
    {
        label: 'Conditionnel Visionnaire → Mondes parallèles',
        value: '18',
    },
    {
        label: 'Imparfait Poétique → Lyrisme, poésie narrative',
        value: '19',
    },
    {
        label: 'Second Person Narrative → Immersion totale',
        value: '20',
    },
];

export default class Story {
    constructor() {
    }

    static getVerbesStyle(
        verbalTimeValue: number,
        level: number,
    ): VerbalTimeProps {
        switch (verbalTimeValue) {
            case 1: // Passé Simple
                return {
                    actions: level === 1 ? 'Passé composé' : 'Passé simple',
                    descriptions: 'Imparfait',
                    dialogues: 'Passé composé',
                    thoughts: level === 3 ? 'Subjonctif imparfait' : 'Plus-que-parfait',
                    summary: '→ Narrations épurées, style classique',
                };

            case 2: // Passé Immédiat
                return {
                    actions: 'Passé composé',
                    descriptions:
                        level === 1
                            ? 'Imparfait'
                            : level === 2
                                ? 'Imparfait + infinitifs'
                                : 'Conditionnel présent',
                    dialogues:
                        level === 1
                            ? 'Présent'
                            : level === 2
                                ? 'Présent + impératif'
                                : 'Impératif',
                    thoughts:
                        level === 1
                            ? 'Futur proche'
                            : level === 2
                                ? 'Conditionnel présent'
                                : 'Subjonctif présent',
                    summary: '→ Témoignages, récits autobiographiques',
                };

            case 3: // Passé Profond
                return {
                    actions: level === 1 ? 'Plus-que-parfait' : 'Passé antérieur',
                    descriptions:
                        level === 1
                            ? 'Imparfait'
                            : level === 2
                                ? 'Plus-que-parfait'
                                : 'Conditionnel passé',
                    dialogues: level === 3 ? 'Passé antérieur' : 'Passé simple', // <--- CORRIGÉ
                    thoughts: level === 1 ? 'Plus-que-parfait' : 'Subjonctif imparfait',
                    summary: '→ Flashbacks littéraires, tragédies',
                };

            case 4: // Présent Brut
                return {
                    actions:
                        level === 1
                            ? 'Présent simple'
                            : level === 2
                                ? 'Présent'
                                : 'Présent + participe présent',
                    descriptions:
                        level === 1
                            ? 'Participe présent'
                            : level === 2
                                ? 'Participe présent + infinitifs'
                                : 'Participes présents enchaînés',
                    dialogues:
                        level === 1
                            ? 'Présent'
                            : level === 2
                                ? 'Impératif'
                                : 'Impératif + infinitifs',
                    thoughts:
                        level === 1
                            ? 'Futur proche'
                            : level === 2
                                ? 'Futur simple'
                                : 'Futur antérieur',
                    summary: '→ Urgence, immersion totale',
                };

            case 5: // Présent Réflexif
                return {
                    actions: 'Présent',
                    descriptions:
                        level === 1
                            ? 'Gérondif'
                            : level === 2
                                ? 'Gérondif + infinitifs'
                                : 'Gérondif + conditionnel',
                    dialogues:
                        level === 1
                            ? 'Présent'
                            : level === 2
                                ? 'Conditionnel présent'
                                : 'Infinitif',
                    thoughts: level === 1 ? 'Infinitif' : 'Infinitif passé',
                    summary: '→ Méditations philosophiques',
                };

            case 13: // Présent Émotionnel
                return {
                    actions:
                        level === 1
                            ? 'Présent simple'
                            : level === 2
                                ? 'Présent + participe présent'
                                : 'Participes présents enchaînés',
                    descriptions:
                        level === 1
                            ? 'Imparfait'
                            : level === 2
                                ? 'Participe présent + adjectifs'
                                : 'Subjonctif présent',
                    dialogues:
                        level === 1
                            ? 'Présent'
                            : level === 2
                                ? 'Conditionnel présent'
                                : 'Subjonctif présent',
                    thoughts:
                        level === 1
                            ? 'Infinitif'
                            : level === 2
                                ? 'Infinitif passé'
                                : 'Subjonctif imparfait',
                    summary:
                        '→ Émotions intenses, introspections vives (romances, drames psychologiques)',
                };

            case 14: // Présent Introspectif
                return {
                    actions: 'Présent',
                    descriptions:
                        level === 1
                            ? 'Gérondif'
                            : level === 2
                                ? 'Gérondif + infinitifs'
                                : 'Conditionnel présent',
                    dialogues:
                        level === 1 ? 'Présent' : level === 2 ? 'Impératif' : 'Infinitif',
                    thoughts:
                        level === 1
                            ? 'Infinitif'
                            : level === 2
                                ? 'Infinitif passé'
                                : 'Subjonctif imparfait',
                    summary:
                        '→ Réflexions profondes, analyse des émotions (nouvelles philosophiques, récits introspectifs)',
                };

            case 15: // Présent Historique
                return {
                    actions:
                        level === 1
                            ? 'Présent simple'
                            : level === 2
                                ? 'Présent + passé simple'
                                : 'Présent + passé antérieur',
                    descriptions:
                        level === 1
                            ? 'Imparfait'
                            : level === 2
                                ? 'Passé composé'
                                : 'Conditionnel passé',
                    dialogues:
                        level === 1
                            ? 'Présent'
                            : level === 2
                                ? 'Passé simple'
                                : 'Futur antérieur',
                    thoughts:
                        level === 1
                            ? 'Infinitif'
                            : level === 2
                                ? 'Plus-que-parfait'
                                : 'Subjonctif imparfait',
                    summary:
                        '→ Histoires historiques avec une intensité immédiate (batailles, moments décisifs)',
                };

            case 6: // Futur Projeté
                return {
                    actions: level === 1 ? 'Futur simple' : 'Futur antérieur',
                    descriptions:
                        level === 1
                            ? 'Futur proche'
                            : level === 2
                                ? 'Futur antérieur'
                                : 'Futur antérieur',
                    dialogues: level === 1 ? 'Futur simple' : 'Futur proche',
                    thoughts: level === 1 ? 'Futur proche' : 'Futur antérieur',
                    summary: '→ Prophéties, plans stratégiques',
                };

            case 7: // Futur Catastrophe
                return {
                    actions: level === 1 ? 'Futur simple' : 'Futur antérieur',
                    descriptions:
                        level === 1
                            ? 'Futur proche'
                            : level === 2
                                ? 'Futur simple + conditionnel'
                                : 'Conditionnel passé',
                    dialogues:
                        level === 1
                            ? 'Futur proche'
                            : level === 2
                                ? 'Futur antérieur'
                                : 'Futur simple',
                    thoughts:
                        level === 1
                            ? 'Futur simple'
                            : level === 2
                                ? 'Conditionnel passé'
                                : 'Futur antérieur',
                    summary: '→ Dystopies, récits post-apocalyptiques',
                };

            case 8: // Imparfait Onirique
                return {
                    actions: 'Imparfait',
                    descriptions:
                        level === 1
                            ? 'Imparfait'
                            : level === 2
                                ? 'Conditionnel présent'
                                : 'Conditionnel passé',
                    dialogues:
                        level === 1 ? 'Présent' : level === 2 ? 'Infinitif' : 'Infinitifs',
                    thoughts:
                        level === 1
                            ? 'Subjonctif présent'
                            : level === 2
                                ? 'Subjonctif imparfait'
                                : 'Subjonctif imparfait',
                    summary: '→ Rêves, souvenirs déformés',
                };

            case 9: // Conditionnel Hypothétique
                return {
                    actions: 'Conditionnel présent',
                    descriptions: 'Conditionnel passé',
                    dialogues:
                        level === 1 ? 'Subjonctif imparfait' : 'Subjonctif imparfait', // <--- MÊME POUR TOUTES LES NIVEAUX
                    thoughts: level === 3 ? 'Subjonctif imparfait' : 'Plus-que-parfait', // <--- AJOUTÉ
                    summary: '→ Uchronies, réalités alternatives',
                };

            case 10: // Subjonctif Angoissé
                return {
                    actions: level === 1 ? 'Subjonctif présent' : 'Subjonctif imparfait',
                    descriptions:
                        level === 1 ? 'Subjonctif présent' : 'Subjonctif imparfait',
                    dialogues: 'Impératif',
                    thoughts: level === 3 ? 'Subjonctif imparfait' : 'Conditionnel passé', // <--- AJOUTÉ
                    summary: '→ Drames psychologiques, dilemmes',
                };

            case 11: // Mélancolie Composée
                return {
                    actions: 'Passé composé',
                    descriptions: 'Imparfait',
                    dialogues: 'Plus-que-parfait',
                    thoughts: 'Infinitif passé',
                    summary: '→ Regrets, introspection nostalgique',
                };

            case 12: // Urgence Narrative
                return {
                    actions: 'Présent',
                    descriptions:
                        level === 1 ? 'Passé composé' : 'Passé composé + futur antérieur', // <--- AJOUTÉ
                    dialogues: level === 1 ? 'Futur proche' : 'Futur antérieur',
                    thoughts: 'Participe présent',
                    summary: '→ Crise en cours, compte à rebours',
                };

            case 16: // Passé Réflexif
                return {
                    actions:
                        level === 1
                            ? 'Passé composé'
                            : level === 2
                                ? 'Imparfait + passé simple'
                                : 'Plus-que-parfait',
                    descriptions:
                        level === 1
                            ? 'Imparfait'
                            : level === 2
                                ? 'Participe passé'
                                : 'Conditionnel passé',
                    dialogues:
                        level === 1
                            ? 'Présent'
                            : level === 2
                                ? 'Imparfait'
                                : 'Subjonctif imparfait',
                    thoughts:
                        level === 1
                            ? 'Infinitif'
                            : level === 2
                                ? 'Infinitif passé'
                                : 'Subjonctif présent',
                    summary:
                        '→ Récits introspectifs, auto-analyse (autofictions, récits de croissance personnelle)',
                };

            case 17: // Futur Prophétique
                return {
                    actions:
                        level === 1
                            ? 'Futur simple'
                            : level === 2
                                ? 'Futur antérieur'
                                : 'Conditionnel passé',
                    descriptions:
                        level === 1
                            ? 'Futur proche'
                            : level === 2
                                ? 'Futur antérieur'
                                : 'Conditionnel présent',
                    dialogues:
                        level === 1
                            ? 'Futur simple'
                            : level === 2
                                ? 'Futur antérieur'
                                : 'Subjonctif présent',
                    thoughts:
                        level === 1
                            ? 'Infinitif'
                            : level === 2
                                ? 'Futur antérieur'
                                : 'Conditionnel passé',
                    summary:
                        '→ Prophéties, visions apocalyptiques (récits mystiques, romans de science-fiction)',
                };

            case 18: // Conditionnel Visionnaire
                return {
                    actions:
                        level === 1
                            ? 'Conditionnel présent'
                            : level === 2
                                ? 'Conditionnel passé'
                                : 'Subjonctif imparfait',
                    descriptions:
                        level === 1
                            ? 'Conditionnel présent'
                            : level === 2
                                ? 'Conditionnel passé'
                                : 'Subjonctif présent',
                    dialogues:
                        level === 1
                            ? 'Conditionnel présent'
                            : level === 2
                                ? 'Subjonctif imparfait'
                                : 'Impératif',
                    thoughts:
                        level === 1
                            ? 'Infinitif'
                            : level === 2
                                ? 'Infinitif passé'
                                : 'Subjonctif imparfait',
                    summary:
                        '→ Mondes parallèles, uchronies (romans alternatifs, récits de fantasy)',
                };

            case 19: // Imparfait Poétique
                return {
                    actions:
                        level === 1
                            ? 'Imparfait'
                            : level === 2
                                ? 'Imparfait + participe présent'
                                : 'Participes présents enchaînés',
                    descriptions:
                        level === 1
                            ? 'Imparfait'
                            : level === 2
                                ? 'Participe présent + adjectifs'
                                : 'Subjonctif présent',
                    dialogues:
                        level === 1
                            ? 'Présent'
                            : level === 2
                                ? 'Imparfait'
                                : 'Subjonctif imparfait',
                    thoughts:
                        level === 1
                            ? 'Infinitif'
                            : level === 2
                                ? 'Infinitif passé'
                                : 'Subjonctif présent',
                    summary:
                        '→ Lyrisme, poésie narrative (récits oniriques, nouvelles littéraires)',
                };

            case 20: // Second Person Narrative
                return {
                    actions:
                        level === 1
                            ? 'Présent simple'
                            : level === 2
                                ? 'Imparfait'
                                : 'Futur simple',
                    descriptions:
                        level === 1
                            ? 'Imparfait'
                            : level === 2
                                ? 'Participe présent'
                                : 'Conditionnel présent',
                    dialogues:
                        level === 1
                            ? 'Présent'
                            : level === 2
                                ? 'Imparfait'
                                : 'Futur proche',
                    thoughts:
                        level === 1
                            ? 'Infinitif'
                            : level === 2
                                ? 'Plus-que-parfait'
                                : 'Subjonctif présent',
                    summary:
                        '→ Immersion totale (récits interactifs, jeux de rôle, romans à choix multiples)',
                };

            default:
                return {
                    actions: 'Passé simple',
                    descriptions: 'Imparfait',
                    dialogues: 'Passé composé',
                    thoughts: 'Plus-que-parfait',
                    summary: '→ Narrations épurées, style classique',
                };
        }
    }

    static presetStoryType(
        presetType: string,
        setTone: Dispatch<SetStateAction<string>>,
        setAtmosphere: Dispatch<SetStateAction<string>>,
        setVerbTense: Dispatch<SetStateAction<string>>,
        setPerson: Dispatch<SetStateAction<string>>,
        setDialogueType: Dispatch<SetStateAction<string>>,
        setIsExplicit: Dispatch<SetStateAction<boolean>>,
    ): void {
        switch (presetType) {
            case '1':
                setTone('Suspense angoissant, mystère troublant');
                setAtmosphere('Tension oppressante, ombres menaçantes');
                setVerbTense('3');
                setPerson('1');
                setDialogueType('3');
                setIsExplicit(false);
                break;
            case '2':
                setTone('Brutalité crue, terreur psychologique');
                setAtmosphere('Claustrophobie, clair-obscur sinistre');
                setVerbTense('10');
                setPerson('4');
                setDialogueType('4');
                setIsExplicit(true);
                break;
            case '3':
                setTone('Magie envoûtante, innocence poétique');
                setAtmosphere('Forêt luminescente, brume enchantée');
                setVerbTense('19');
                setPerson('3');
                setDialogueType('1');
                setIsExplicit(false);
                break;
            case '4':
                setTone('Froidure technologique, désespoir systémique');
                setAtmosphere('Métal rouillé, lumières néon vacillantes');
                setVerbTense('7');
                setPerson('5');
                setDialogueType('3');
                setIsExplicit(false);
                break;
            case '5':
                setTone('Passion tourmentée, mélancolie sensuelle');
                setAtmosphere('Pluie fine, chambres aux rideaux lourds');
                setVerbTense('13');
                setPerson('1');
                setDialogueType('1');
                setIsExplicit(true);
                break;
            case '6':
                setTone('Héroïsme grandiose, dangers exaltants');
                setAtmosphere('Vastes paysages, ruines anciennes');
                setVerbTense('4');
                setPerson('6');
                setDialogueType('3');
                setIsExplicit(false);
                break;
            case '7':
                setTone('Méditation existentielle, questions sans réponses');
                setAtmosphere('Bibliothèque poussiéreuse, nuit silencieuse');
                setVerbTense('5');
                setPerson('5');
                setDialogueType('4');
                setIsExplicit(true);
                break;
            case '8':
                setTone('Tension psychologique, suspense mental');
                setAtmosphere('Isolation, paranoïa croissante');
                setVerbTense('10');
                setPerson('4');
                setDialogueType('4');
                setIsExplicit(true);
                break;
            case '9':
                setTone('Mystère obscur, surnaturel inquiétant');
                setAtmosphere('Forêts sombres, créatures cachées');
                setVerbTense('3');
                setPerson('1');
                setDialogueType('3');
                setIsExplicit(false);
                break;
            case '10':
                setTone('Amour interdit, passion à travers les âges');
                setAtmosphere('Châteaux majestueux, bals somptueux');
                setVerbTense('1');
                setPerson('3');
                setDialogueType('1');
                setIsExplicit(true);
                break;
            case '11':
                setTone('Dure réalité, enquête sombre');
                setAtmosphere('Rues sombres, ambiance de crime');
                setVerbTense('16');
                setPerson('5');
                setDialogueType('4');
                setIsExplicit(true);
                break;
            case '12':
                setTone('Espoir futuriste, société idéale');
                setAtmosphere('Villes lumineuses, technologie avancée');
                setVerbTense('6');
                setPerson('4');
                setDialogueType('3');
                setIsExplicit(false);
                break;
            case '13':
                setTone('Magie contemporaine, réalisme enchanté');
                setAtmosphere('Ville moderne, éléments féeriques');
                setVerbTense('4');
                setPerson('1');
                setDialogueType('1');
                setIsExplicit(true);
                break;
            case '14':
                setTone('Conflits émotionnels, relations complexes');
                setAtmosphere('Intérieur chaleureux, tensions sous-jacentes');
                setVerbTense('13');
                setPerson('1');
                setDialogueType('1');
                setIsExplicit(true);
                break;
            case '15':
                setTone('Exploration audacieuse, dangers marins');
                setAtmosphere('Océan infini, navires anciens');
                setVerbTense('4');
                setPerson('6');
                setDialogueType('3');
                setIsExplicit(false);
                break;
            case '16':
                setTone('Quête héroïque, magie puissante');
                setAtmosphere('Mondes imaginaires, créatures mythiques');
                setVerbTense('19');
                setPerson('3');
                setDialogueType('1');
                setIsExplicit(true);
                break;
            case '17':
                setTone('Amour moderne, relations actuelles');
                setAtmosphere('Ville animée, cafés cosy');
                setVerbTense('13');
                setPerson('1');
                setDialogueType('1');
                setIsExplicit(true);
                break;
            case '18':
                setTone("Intrigue internationale, secrets d'État");
                setAtmosphere('Villes étrangères, tensions diplomatiques');
                setVerbTense('16');
                setPerson('5');
                setDialogueType('4');
                setIsExplicit(true);
                break;
            case '19':
                setTone('Survie désespérée, monde en ruines');
                setAtmosphere('Paysages dévastés, ressources rares');
                setVerbTense('7');
                setPerson('4');
                setDialogueType('3');
                setIsExplicit(false);
                break;
            case '20':
                setTone('Leçons de vie, valeurs profondes');
                setAtmosphere('Village paisible, nature environnante');
                setVerbTense('1');
                setPerson('3');
                setDialogueType('1');
                setIsExplicit(true);
                break;
        }
    }

    static getNarrativePerson(value: number, level: number): string {
        if (level === 1 /* Débutant */) {
            // Options simples et courantes
            switch (value) {
                case 1:
                    return 'Première personne (Je acteur) - Parfait pour les débuts (ex: Je marchais)';
                case 3:
                    return 'Troisième omnisciente - Narration globale (ex: Il marchait)';
                default:
                    return 'Première personne';
            }
        } else if (level === 2 /* Intermédiaire */) {
            // Ajoute des options plus complexes
            switch (value) {
                case 1:
                    return 'Première personne (Je acteur)';
                case 2:
                    return 'Première personne (Je témoin) - Observateur (ex: Je le regardais marcher)';
                case 3:
                    return 'Troisième omnisciente';
                case 4:
                    return 'Troisième limitée - Focus sur un personnage (ex: Il marchait, ignorant le danger)';
                default:
                    return 'Première personne';
            }
        } else if (level === 3 /* Avancé */) {
            // Toutes les options, y compris "Deuxième personne" et "Nous collectif"
            switch (value) {
                case 1:
                    return 'Première personne (Je acteur)';
                case 2:
                    return 'Première personne (Je témoin)';
                case 3:
                    return 'Troisième omnisciente';
                case 4:
                    return 'Troisième limitée';
                case 5:
                    return 'Deuxième personne (Tu) - Immersion forte (ex: Tu marches vers la mort)';
                case 6:
                    return 'Nous collectif - Voix chorale (ex: Nous marchions, unis par le destin)';
                default:
                    return 'Troisième omnisciente';
            }
        }
        return 'Première personne';
    }

    static getDialogueType(value: number, level: number): string {
        // Restreindre les options selon le niveau
        if (level === 1 /* Débutant */) {
            // Options simples
            switch (value) {
                case 1:
                    return 'Dialogue direct - Paroles exactes (ex: "Je t’aime !")';
                case 2:
                    return 'Dialogue indirect - Résumé par le narrateur (ex: Il dit qu’il m’aime)';
                default:
                    return 'Dialogue direct';
            }
        } else if (level === 2 /* Intermédiaire */) {
            // Ajoute "Dialogue mixte"
            switch (value) {
                case 1:
                    return 'Dialogue direct';
                case 2:
                    return 'Dialogue indirect';
                case 3:
                    return 'Dialogue mixte (ex: "Je t’aime" dit-il, puis explique ses sentiments)';
                default:
                    return 'Dialogue direct';
            }
        } else if (level === 3 /* Avancé */) {
            // Toutes les options, y compris "Monologue intérieur"
            switch (value) {
                case 1:
                    return 'Dialogue direct';
                case 2:
                    return 'Dialogue indirect';
                case 3:
                    return 'Dialogue mixte';
                case 4:
                    return 'Monologue intérieur (ex: *Je ne peux pas le perdre...*)';
                default:
                    return 'Dialogue direct';
            }
        }
        return 'Dialogue direct';
    }
}
