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

/**
 * Visite de la gestion des logements.
 *
 * Ce que la visite apporte, et qui ne se lit nulle part à l'écran :
 *
 *  - la liste ne contient que les logements ACTIFS (`is_active = 1` dans
 *    `PropertyService::getFilteredProperties`) : un logement désactivé n'est
 *    pas grisé, il est absent ;
 *  - le sélecteur de dates est un filtre de DISPONIBILITÉ — il garde les
 *    logements SANS réservation confirmée sur la période, l'inverse de ce que
 *    « date » laisse attendre ;
 *  - la pastille de diffusion ne compte que les canaux de premier niveau (notre
 *    page + les canaux obligatoires), délibérément, pour qu'un canal
 *    facultatif éteint ne se lise pas comme une alerte ;
 *  - « Synchroniser » RAPATRIE la fiche depuis le gestionnaire de canaux,
 *    « Republier » POUSSE notre contenu vers eux : deux sens opposés dans le
 *    même menu.
 *
 * Ancres posées dans `pages/logements/index.tsx` et, pour les trois étapes qui
 * visent une carte, dans `logement-card.tsx` — sur la première carte seulement.
 * Textes dans `lang/{fr,en}/tours.php`, clés `logements.<key>.title|content`.
 */
export const logementsTour: AppTour = {
    id: 'logements',
    components: ['logements/index'],
    steps: [
        {
            anchor: 'logements-filters',
            key: 'filters',
            order: 10,
        },
        {
            anchor: 'logements-availability',
            key: 'availability',
            order: 20,
        },
        {
            anchor: 'logements-location',
            key: 'location',
            order: 30,
        },
        {
            anchor: 'logements-price',
            key: 'price',
            order: 40,
        },
        {
            anchor: 'logements-problems',
            key: 'problems',
            order: 50,
        },
        {
            // Réservé au siège.
            anchor: 'logements-franchise',
            key: 'franchise',
            order: 60,
            adminOnly: true,
            optional: true,
        },
        {
            anchor: 'logements-country',
            key: 'country',
            order: 70,
        },
        {
            anchor: 'logements-reset',
            key: 'reset',
            order: 80,
        },
        {
            anchor: 'logements-actions',
            key: 'actions',
            order: 90,
        },
        {
            anchor: 'logements-search',
            key: 'search',
            order: 100,
        },
        {
            anchor: 'logements-grid',
            key: 'grid',
            order: 110,
        },

        // --- La carte, sur le premier logement affiché ------------------------
        {
            // Le menu de diffusion s'ouvre au survol : sans l'ouvrir, l'étape
            // décrirait une liste de canaux que personne ne voit.
            anchor: 'logements-card-channels',
            key: 'cardChannels',
            order: 120,
            optional: true,
            openOnEnter: true,
        },
        {
            // Absent — et tant mieux — quand la fiche du premier logement est
            // complète.
            anchor: 'logements-card-problems',
            key: 'cardProblems',
            order: 130,
            optional: true,
        },
        {
            anchor: 'logements-card-menu',
            key: 'cardMenu',
            order: 140,
            optional: true,
            openOnEnter: true,
        },
        {
            anchor: 'logements-pagination',
            key: 'pagination',
            order: 150,
            optional: true,
        },
    ],
};
