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

/**
 * Visite des dépenses.
 *
 * Trois faits vérifiés dans `ExpenseController::index()` portent cette visite :
 *
 *  - la fenêtre par défaut n'est pas « tout » mais **trois mois en arrière et
 *    trois mois en avant** — elle masque donc l'ancien et montre du futur ;
 *  - le filtre de dates porte sur `date_dep` (la date de la dépense saisie),
 *    alors que la PREMIÈRE colonne du tableau est la date de création : trier
 *    sur ce qu'on voit ne trie pas sur ce qui est filtré ;
 *  - la requête impose `whereHas('property')`, donc une dépense sans logement
 *    — celles du fond de caisse — ne peut jamais apparaître ici.
 *
 * S'ajoute une absence qui se remarque : il n'y a **aucun total** sur cet
 * écran, et les montants sont mis en forme côté serveur, donc triés comme du
 * texte.
 *
 * Ancres posées dans `pages/depenses/index.tsx`.
 * Textes dans `lang/{fr,en}/tours.php`, clés `depenses.<key>.title|content`.
 */
export const depensesTour: AppTour = {
    id: 'depenses',
    components: ['depenses/index'],
    steps: [
        // Onglets du groupe, dans la barre du haut (FinanceBarre) : absents quand un seul écran est permis.
        { anchor: 'depenses-onglets', key: 'onglets', order: 5, optional: true },
        {
            anchor: 'depenses-daterange',
            key: 'daterange',
            order: 10,
        },
        {
            anchor: 'depenses-property',
            key: 'property',
            order: 20,
        },
        {
            // Réservé au siège.
            anchor: 'depenses-franchise',
            key: 'franchise',
            order: 30,
            adminOnly: true,
            optional: true,
        },
        {
            anchor: 'depenses-reset',
            key: 'reset',
            order: 40,
        },
        {
            anchor: 'depenses-add',
            key: 'add',
            order: 50,
        },
        {
            anchor: 'depenses-table',
            key: 'table',
            order: 60,
        },
        // TL-304 — en-tête de la colonne Prix (columns.tsx) : montant facturé au
        // propriétaire, frais de service compris. L'en-tête existe même liste vide.
        { anchor: 'depenses-prix', key: 'prix', order: 65 },
        // Actions de ligne, sur la première dépense affichée.
        { anchor: 'depenses-row-view', key: 'rowView', order: 70, optional: true },
        { anchor: 'depenses-row-edit', key: 'rowEdit', order: 80, optional: true },
        { anchor: 'depenses-row-delete', key: 'rowDelete', order: 90, optional: true },
    ],
};
