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

/**
 * Visite du journal d'activité (TL-293).
 *
 * Faits portés par la visite, lus dans le contrat `resources/js/types/activity.ts`
 * et dans la page :
 *
 *  - une ligne du flux regroupe les écritures d'un même geste (même auteur,
 *    même page, à deux secondes près) — d'où la mention « actions liées » ;
 *  - l'état d'un membre (actif / calme / inactif) se lit sur sa dernière
 *    ACTION, pas sur sa dernière connexion ;
 *  - les actions automatiques sont comptées au siège seulement, et restent
 *    hors du flux tant que la case n'est pas cochée ;
 *  - rien n'existe avant la date de début du suivi, affichée sur le flux ;
 *  - tous les filtres sont écrits dans l'adresse de la page ;
 *  - la période affichée est toujours celle réellement appliquée (7 derniers
 *    jours par défaut, `activity.default_range_days`) ;
 *  - les compteurs des onglets de module suivent tous les autres filtres, sauf
 *    le module (contrat `ActivityModuleCounts`).
 *
 * Deux onglets, un seul écran : les étapes du flux sont `optional` parce
 * qu'elles sont absentes quand la visite est lancée depuis l'onglet Équipe, et
 * inversement. Le panneau de détail n'existe pas tant qu'aucune ligne n'est
 * ouverte : il est décrit dans l'étape de la ligne.
 *
 * Ancres posées dans `pages/activity/index.tsx` et ses composants.
 * Textes dans `lang/{fr,en}/tours.php`, clés `activity.<key>.title|content`.
 */
export const activityTour: AppTour = {
    id: 'activity',
    components: ['activity/index'],
    steps: [
        { anchor: 'activity-tabs', key: 'tabs', order: 10 },
        // Bouton d'export : rendu seulement pour le compte TLL master (seul lecteur du journal), onglet Flux.
        { anchor: 'activity-export', key: 'export', order: 15, optional: true },
        { anchor: 'activity-kpis', key: 'kpis', order: 20 },
        { anchor: 'activity-filters', key: 'filters', order: 30 },
        // Onglet Flux seulement.
        { anchor: 'activity-feed', key: 'feed', order: 40, optional: true },
        // Onglets de module en tête du flux — onglet Flux seulement.
        { anchor: 'activity-modules', key: 'modules', order: 45, optional: true },
        // Première ligne du flux — absente quand la sélection est vide.
        { anchor: 'activity-row', key: 'row', order: 50, optional: true },
        // Onglet Équipe seulement.
        { anchor: 'activity-team', key: 'team', order: 60, optional: true },
    ],
};
