import type { AppTour } from '../types';

/**
 * Visite de l'écran « Nouveau document » du CRM.
 *
 * La liste des documents a sa propre visite (`documents`) : celle-ci ne
 * réexplique pas le cycle de vie, elle explique le FORMULAIRE — c'est-à-dire
 * les trois points de départ et ce que le bouton final fait réellement.
 *
 * Faits vérifiés qui portent les textes (`SignableDocumentController`,
 * `StoreSignableDocumentRequest`, `SendSignableDocumentRequest`,
 * `CRM/documents/create.tsx`, `template-gallery.tsx`) :
 *  - `store()` redirige vers `crm.documents.edit` avec « Document créé. » :
 *    créer n'envoie RIEN, aucun courriel ne part, le destinataire n'est
 *    prévenu de rien ;
 *  - `recipient_name` / `recipient_email` sont `nullable` à la création, mais
 *    `send()` refuse un document dont l'email est vide — et accepte de le
 *    corriger au moment de l'envoi ;
 *  - le mode par défaut est « Depuis un modèle », et le premier modèle intégré
 *    (« Contrat de Partenariat TLL ») est déjà sélectionné au chargement ;
 *  - `selectTemplate()` fait `if (sel.category) setCategory(sel.category)` :
 *    choisir un modèle ÉCRASE la catégorie saisie plus bas ;
 *  - le corps d'un modèle enregistré est chargé à la demande, et `submit()`
 *    refuse la création tant que cet aperçu charge ;
 *  - le PDF est limité à `max:10240`, soit 10 Mo, et `mimes:pdf` ;
 *  - `title` est le seul champ que le formulaire vérifie côté navigateur.
 *
 * Deux étapes sont `optional` parce que les cartes « Modèle » et « Importer un
 * PDF » sont montées à l'exclusive, selon le point de départ choisi : lancer la
 * visite en mode « Document vierge » n'en affiche aucune des deux, et c'est un
 * état normal.
 *
 * Ancres : `CRM/documents/create.tsx`. Textes dans `lang/{fr,en}/tours.php`,
 * clés `document-create.<key>.title|content`.
 */
export const crmDocumentCreateTour: AppTour = {
    id: 'document-create',
    components: ['CRM/documents/create'],
    steps: [
        { anchor: 'document-create-start', key: 'start', order: 10 },
        // Montée seulement en mode « Depuis un modèle » (le mode par défaut).
        { anchor: 'document-create-template', key: 'template', order: 20, optional: true },
        // Montée seulement en mode « Importer un PDF ».
        { anchor: 'document-create-pdf', key: 'pdf', order: 30, optional: true },
        { anchor: 'document-create-title', key: 'title', order: 40 },
        { anchor: 'document-create-category', key: 'category', order: 50 },
        { anchor: 'document-create-recipient', key: 'recipient', order: 60 },
        { anchor: 'document-create-submit', key: 'submit', order: 70 },
    ],
};
