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

/**
 * Visite du tableau de bord financier.
 *
 * C'est l'écran où une lecture naïve coûte le plus cher, parce que trois
 * réglages décisifs sont invisibles ou repliés :
 *
 *  - la période filtre sur la DATE D'ARRIVÉE par défaut, pas sur la date de
 *    réservation, et la « base de période » qui en décide est cachée dans
 *    « Plus de filtres » (`RevenueFilters::$dateBasis`) ;
 *  - un filtre de statut VIDE ne veut pas dire « tous les statuts » mais
 *    « confirmées seulement » (`DEFAULT_STATUSES`) ;
 *  - les séjours propriétaire sont exclus en permanence, sans réglage
 *    (`excludingOwnerReservations()`).
 *
 * S'ajoute une exception assumée : le taux d'annulation IGNORE le filtre de
 * statut et se recalcule sur confirmées + annulées — c'est la seule tuile dont
 * le périmètre diffère du reste de l'écran (`cancellationRate()`).
 *
 * Ancres posées dans `pages/revenu/filter-bar.tsx` et `pages/revenu/index.tsx`.
 * Textes dans `lang/{fr,en}/tours.php`, clés `revenue.<key>.title|content`.
 */
export const revenueTour: AppTour = {
    id: 'revenue',
    components: ['revenu/index'],
    steps: [
        {
            anchor: 'revenue-quickranges',
            key: 'quickranges',
            order: 10,
        },
        {
            anchor: 'revenue-more',
            key: 'more',
            order: 20,
        },
        {
            anchor: 'revenue-compare',
            key: 'compare',
            order: 30,
        },
        {
            // Réservé au siège.
            anchor: 'revenue-franchise',
            key: 'franchise',
            order: 40,
            adminOnly: true,
            optional: true,
        },
        {
            anchor: 'revenue-summary',
            key: 'summary',
            order: 50,
        },
        {
            anchor: 'revenue-earnings',
            key: 'earnings',
            order: 60,
        },
        {
            anchor: 'revenue-ratios',
            key: 'ratios',
            order: 70,
        },
        {
            // Camembert et courbes disparaissent quand la période ne contient
            // aucune réservation : l'écran affiche alors « aucun résultat ».
            anchor: 'revenue-pie',
            key: 'pie',
            order: 80,
            optional: true,
        },
        {
            anchor: 'revenue-charts',
            key: 'charts',
            order: 90,
            optional: true,
        },
    ],
};
