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

/**
 * Visite des newsletters (canal e-mail).
 *
 * L'écran a trois particularités qu'il ne dit pas, toutes vérifiées dans
 * `NewsletterController` :
 *
 *  - **créer, c'est envoyer.** `store()` crée la newsletter PUIS dépêche
 *    immédiatement un envoi par destinataire. Il n'y a ni brouillon, ni aperçu,
 *    ni envoi de test, et supprimer la ligne ensuite ne rappelle aucun courriel.
 *  - **la liste est filtrée sur l'AUTEUR**, et pas sur la franchise :
 *    `index()` compare `created_by` à `coHostUser()->id`, alors que `store()`
 *    écrit `Auth::id()`. Une newsletter écrite par un membre d'équipe n'apparaît
 *    donc jamais dans la liste — elle est bien partie, elle est juste invisible.
 *  - **le crayon ne modifie rien** : `newsletters/edit.tsx` poste vers
 *    `newsletters.store`, et le contrôleur n'a pas de méthode `update()`.
 *    Enregistrer depuis cet écran crée une seconde newsletter et renvoie les
 *    courriels.
 *
 * Ancres posées dans `pages/newsletters/index.tsx` et `newsletters/columns.tsx`
 * uniquement : le tableau vient de `@/components/data-table`, partagé par
 * beaucoup d'écrans, où l'on ne pose rien.
 * Textes dans `lang/{fr,en}/tours.php`, clés `newsletters.<key>.title|content`.
 */
export const newslettersTour: AppTour = {
    id: 'newsletters',
    components: ['newsletters/index'],
    steps: [
        {
            anchor: 'newsletters-channels',
            key: 'channels',
            order: 10,
        },
        {
            anchor: 'newsletters-create',
            key: 'create',
            order: 20,
        },
        {
            anchor: 'newsletters-list',
            key: 'list',
            order: 30,
        },
        {
            // Cellule de la première ligne : absente tant qu'aucune newsletter
            // n'a été envoyée.
            anchor: 'newsletters-actions',
            key: 'actions',
            order: 40,
            optional: true,
        },
    ],
};
