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

/**
 * Visite des contrats de séjour (Réservations & Séjours › Contrats).
 *
 * L'écran a deux pièges que rien n'y signale, et qui font l'essentiel de cette
 * visite : la période filtre sur la date de CHECK-IN alors que le tableau
 * s'ouvre sur la date de signature, et le filtre de statut ne s'applique que
 * lorsqu'une SEULE case est cochée (les deux, ou aucune, laissent tout passer —
 * cf. `ReservationService::getFilteredReservationsContracts`).
 *
 * Ancres posées dans `pages/reservations/contracts/index.tsx` et, pour les deux
 * étapes qui visent une cellule, dans `contracts/columns.tsx` — sur la PREMIÈRE
 * ligne seulement.
 * Textes dans `lang/{fr,en}/tours.php`, clés `contracts.<key>.title|content`.
 */
export const contractsTour: AppTour = {
    id: 'contracts',
    components: ['reservations/contracts/index'],
    steps: [
        {
            anchor: 'contracts-filters',
            key: 'filters',
            order: 10,
        },
        {
            anchor: 'contracts-daterange',
            key: 'daterange',
            order: 20,
        },
        {
            anchor: 'contracts-property',
            key: 'property',
            order: 30,
        },
        {
            anchor: 'contracts-status',
            key: 'status',
            order: 40,
        },
        {
            // Réservé au siège.
            anchor: 'contracts-franchise',
            key: 'franchise',
            order: 50,
            adminOnly: true,
            optional: true,
        },
        {
            anchor: 'contracts-country',
            key: 'country',
            order: 60,
        },
        {
            anchor: 'contracts-reset',
            key: 'reset',
            order: 70,
        },
        {
            anchor: 'contracts-table',
            key: 'table',
            order: 80,
        },
        {
            // Cellules de la première ligne : absentes quand la période et les
            // filtres ne ramènent aucun contrat, ce qui est un état normal.
            anchor: 'contracts-signature',
            key: 'signature',
            order: 85,
            optional: true,
        },
        {
            anchor: 'contracts-open',
            key: 'open',
            order: 90,
            optional: true,
        },
    ],
};
