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

/**
 * Visite des recouvrements.
 *
 * Le piège central, vérifié dans `RecoveryController` et `Reservation` : la
 * colonne « Montant payé » et la pastille de statut ne comptent PAS la même
 * chose. La colonne ne retient que les encaissements reconnus (signés, ou
 * anciens sans état de signature) ; la pastille additionne tout ce qui n'est
 * pas annulé, y compris ce qui attend une signature. Une réservation peut donc
 * afficher « Payé » avec un reste à payer non nul — c'est cohérent, pas cassé.
 *
 * S'y ajoutent : la période filtre la DATE D'ARRIVÉE et non les paiements, les
 * contrats supprimés sont masqués par défaut, et « Payé » est un arrondi.
 *
 * Textes dans `lang/{fr,en}/tours.php`, clés `recouvrements.<key>.title|content`.
 */
export const recouvrementsTour: AppTour = {
    id: 'recouvrements',
    components: ['recouvrements/index'],
    steps: [
        // Onglets du groupe, dans la barre du haut (FinanceBarre) : absents quand un seul écran est permis.
        { anchor: 'recouvrements-onglets', key: 'onglets', order: 5, optional: true },
        { anchor: 'recouvrements-daterange', key: 'daterange', order: 10 },
        { anchor: 'recouvrements-paymentstatus', key: 'paymentstatus', order: 20 },
        { anchor: 'recouvrements-contractstatus', key: 'contractstatus', order: 30 },
        { anchor: 'recouvrements-table', key: 'table', order: 40 },
        // Actions de ligne, sur la première réservation affichée.
        { anchor: 'recouvrements-row-view', key: 'rowView', order: 50, optional: true },
        { anchor: 'recouvrements-row-collect', key: 'rowCollect', order: 60, optional: true },
        { anchor: 'recouvrements-row-history', key: 'rowHistory', order: 70, optional: true },
    ],
};
