package com.loremind.domain.generationcontext;

import lombok.Builder;
import lombok.Singular;
import lombok.Value;

import java.util.List;
import java.util.Map;

/**
 * Carte structurelle d'un Lore pour nourrir l'IA sans tout lui envoyer.
 *
 * Équivalent Java du LoreStructuralContext Python. Pas de contenu des pages,
 * uniquement la structure (dossiers, titres, templates, tags). Suffit pour
 * que l'IA propose des suggestions cohérentes avec l'existant.
 *
 * La map `folders` est indexée par nom de dossier et mappe vers la liste
 * des pages qu'il contient (liste vide autorisée pour les dossiers vides).
 */
@Value
@Builder
public class LoreStructuralContext {

    String loreName;
    String loreDescription;
    Map<String, List<FolderPage>> folders;
    @Singular List<String> tags;

    /**
     * Résumé minimaliste d'une page : juste son titre et son template.
     * Pas de valeurs, pas de notes, pas de tags (pour garder le prompt léger).
     */
    @Value
    @Builder
    public static class FolderPage {
        String title;
        String templateName;
    }
}
