<div class="edit-page">

  <div class="page-header">
    <div>
      <h1>{{ chapter?.name || 'Chapitre' }}</h1>
      <p class="subtitle">Chapitre</p>
    </div>
    <div class="header-actions">
      <button type="button" class="btn-ai"
        (click)="toggleChat()"
        [class.active]="chatOpen"
        title="Ouvrir l'Assistant IA pour dialoguer autour de ce chapitre">
        <lucide-icon [img]="Sparkles" [size]="14"></lucide-icon>
        Assistant IA
      </button>
      <button type="button" class="btn-secondary" (click)="cancel()">Annuler</button>
      <button type="button" class="btn-danger" (click)="delete()">
        <lucide-icon [img]="Trash2" [size]="14"></lucide-icon>
        Supprimer
      </button>
      <button type="button" class="btn-primary" (click)="submit()" [disabled]="form.invalid">
        Sauvegarder
      </button>
    </div>
  </div>

  <form [formGroup]="form" (ngSubmit)="submit()" class="edit-form">

    <!-- Conditions de déblocage (scénario) — pour TOUT chapitre : arc HUB (= quête)
    comme arc linéaire (= chapitre conditionnel). Vide = disponible d'emblée. -->
    <div class="hub-section">
      <h2 class="hub-section-title">
        {{ parentArc?.type === 'HUB' ? '🗺️ Conditions de déblocage de la quête' : '🔒 Conditions de déblocage du chapitre' }}
      </h2>
      <small class="field-hint">
        Définition du scénario : toutes les conditions doivent être remplies (ET) pour que
        {{ parentArc?.type === 'HUB' ? 'la quête' : 'ce chapitre' }} soit débloqué(e) dans une Partie.
        Laissez vide pour qu'il soit disponible dès le départ. La progression et l'état des
        faits se gèrent dans l'écran de la Partie, pas ici.
      </small>
      <app-prerequisite-editor
        [prerequisites]="prerequisites"
        [availableQuests]="availableQuests"
        [availableFlags]="availableFlagNames"
        (prerequisitesChange)="onPrerequisitesChange($event)">
      </app-prerequisite-editor>
    </div>

    <!-- Illustrations (galerie editable, rendu editorial) -->
    <div class="field">
      <label>Illustrations</label>
      <app-image-gallery
        [imageIds]="illustrationImageIds"
        [editable]="true"
        [layout]="'EDITORIAL'"
        (imageIdsChange)="illustrationImageIds = $event">
      </app-image-gallery>
      <small class="field-hint">Portraits, ambiances, scenes marquantes du chapitre.</small>
    </div>

    <!-- Cartes & plans -->
    <div class="field">
      <label>Cartes &amp; plans</label>
      <app-image-gallery
        [imageIds]="mapImageIds"
        [editable]="true"
        [layout]="'MAPS'"
        (imageIdsChange)="mapImageIds = $event">
      </app-image-gallery>
      <small class="field-hint">Cartes regionales, plans de donjon, schemas utiles a la table.</small>
    </div>

    <div class="field">
      <label for="chapter-edit-name">Titre du chapitre *</label>
      <input
        id="chapter-edit-name"
        type="text"
        formControlName="name"
        placeholder="Ex: Chapitre 1: Les Disparitions"
        [class.invalid]="form.get('name')?.invalid && form.get('name')?.touched"
        />
    </div>

    <div class="field">
      <label for="chapter-edit-description">Synopsis du chapitre</label>
      <textarea
        id="chapter-edit-description"
        formControlName="description"
        placeholder="Décrivez brièvement ce qui se passe dans ce chapitre..."
        rows="5">
      </textarea>
    </div>

    <div class="field">
      <label>Icône</label>
      <app-icon-picker [options]="campaignIconOptions" [(selected)]="selectedIcon"></app-icon-picker>
    </div>

    <div class="field">
      <label for="chapter-edit-gm-notes">Notes du Maître de Jeu</label>
      <textarea
        id="chapter-edit-gm-notes"
        formControlName="gmNotes"
        placeholder="Vos notes privées sur le déroulement du chapitre, les événements clés, les rebondissements..."
        rows="6">
      </textarea>
      <small class="field-hint">Ces notes sont privées et ne seront pas exportées vers FoundryVTT.</small>
    </div>

    <div class="field-row">
      <div class="field">
        <label for="chapter-edit-player-objectives">Objectifs des joueurs</label>
        <textarea
          id="chapter-edit-player-objectives"
          formControlName="playerObjectives"
          placeholder="Que doivent accomplir les joueurs dans ce chapitre ?"
          rows="4">
        </textarea>
      </div>
      <div class="field">
        <label for="chapter-edit-narrative-stakes">Enjeux narratifs</label>
        <textarea
          id="chapter-edit-narrative-stakes"
          formControlName="narrativeStakes"
          placeholder="Quels sont les enjeux dramatiques ?"
          rows="4">
        </textarea>
      </div>
    </div>

    <!-- ===== Pages Lore associées (B2 cross-context) ===== -->
    @if (loreId) {
      <div class="field">
        <label>Pages Lore associées</label>
        <app-lore-link-picker
          [value]="relatedPageIds"
          [availablePages]="availablePages"
          [loreId]="loreId"
          (valueChange)="relatedPageIds = $event">
        </app-lore-link-picker>
        <small class="field-hint">
          Liez ce chapitre à des PNJ, lieux ou éléments du Lore qui y apparaissent.
        </small>
      </div>
    }

    @if (!loreId) {
      <div class="field">
        <small class="field-hint">
          💡 Cette campagne n'est associée à aucun univers. Associez-la à un Lore dans l'écran de la campagne
          pour pouvoir lier ce chapitre à des pages du Lore.
        </small>
      </div>
    }

  </form>

</div>

<!-- Drawer chat IA (hors .edit-page pour couvrir le viewport à droite) -->
<app-ai-chat-drawer
  [campaignId]="campaignId"
  entityType="chapter"
  [entityId]="chapterId"
  [isOpen]="chatOpen"
  welcomeMessage="Je vois ce chapitre. Demande-moi d'étoffer ses objectifs, ses enjeux ou sa scène d'ouverture."
  [quickSuggestions]="chatQuickSuggestions"
  (close)="chatOpen = false">
</app-ai-chat-drawer>
