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

/**
 * Visite du tableau de bord.
 *
 * Les ancres correspondent aux `data-tour` posés dans
 * `resources/js/pages/Dashboard/index.tsx`. Les textes vivent dans
 * `lang/{fr,en}/tours.php`, sous les clés `dashboard.<key>.title|content`.
 */
export const dashboardTour: AppTour = {
    id: 'dashboard',
    components: ['Dashboard/index'],
    steps: [
        {
            anchor: 'dashboard-welcome',
            key: 'welcome',
            order: 10,
        },
        {
            // Réservé au siège : les franchisés ne voient pas ce sélecteur.
            anchor: 'dashboard-franchise',
            key: 'franchise',
            order: 20,
            adminOnly: true,
            optional: true,
        },
        {
            anchor: 'dashboard-filters',
            key: 'filters',
            order: 30,
        },
        {
            anchor: 'dashboard-refresh',
            key: 'refresh',
            order: 40,
        },
        {
            anchor: 'dashboard-tabs',
            key: 'tabs',
            order: 50,
        },
        {
            // Absent quand aucun départ n'est prévu — l'onglet affiche alors
            // « aucun enregistrement ». C'est un état normal, pas une panne.
            anchor: 'dashboard-cards',
            key: 'cards',
            order: 60,
            optional: true,
        },
        {
            // TL-285 — le menu de la carte : affectation du ménage et ouverture
            // de la conversation client. Absent s'il n'y a aucune carte à
            // l'écran, ou si l'utilisateur n'a droit à aucune des deux actions
            // (le menu entier disparaît alors, `hasCardActions`).
            anchor: 'dashboard-card-menu',
            key: 'cardMenu',
            order: 70,
            optional: true,
            // Le menu est fermé au repos : sans cela, l'étape décrirait deux
            // actions que l'utilisateur ne voit pas.
            openOnEnter: true,
        },
    ],
};
