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

/**
 * Visite de l'intégration des propriétaires (CRM).
 *
 * Cet écran a la particularité d'exister en DEUX présentations exclusives —
 * « Liste » et « Tableau » — qui montrent la même chose autrement. Plutôt que
 * deux visites, une seule : les étapes propres à une présentation sont
 * `optional`, donc simplement retirées quand l'autre est affichée. L'ordre a
 * été choisi pour rester lisible dans les deux cas.
 *
 * Les six étapes du pipeline (100 → 150) portent l'ancre
 * `onboarding-stage-<key>`, posée sur l'en-tête de colonne en Tableau et sur la
 * puce du rail en Liste. Elles sont TOUTES `optional` : la liste des étapes
 * vient de la base et une franchise peut en ajouter, en cacher ou les renommer.
 *
 * Ancres posées dans `pages/CRM/onboarding/index.tsx` et
 * `pages/CRM/onboarding/components/FolderListView.tsx`.
 * Textes dans `lang/{fr,en}/tours.php`, clés `onboarding.<key>.title|content`.
 */
export const onboardingTour: AppTour = {
    id: 'onboarding',
    components: ['CRM/onboarding/index'],
    steps: [
        {
            anchor: 'onboarding-intro',
            key: 'intro',
            order: 10,
        },
        {
            anchor: 'onboarding-add',
            key: 'add',
            order: 20,
        },
        {
            anchor: 'onboarding-views',
            key: 'views',
            order: 30,
        },
        {
            // Le sélecteur de présentation n'existe que sur « En cours » :
            // l'historique n'a qu'une seule présentation.
            anchor: 'onboarding-layout',
            key: 'layout',
            order: 40,
            optional: true,
        },

        // --- Propres à la présentation « Liste » -------------------------------
        {
            anchor: 'onboarding-rail',
            key: 'rail',
            order: 50,
            optional: true,
        },
        {
            anchor: 'onboarding-search',
            key: 'search',
            order: 60,
            optional: true,
        },

        // --- Les six étapes du pipeline, une par une ---------------------------
        {
            anchor: 'onboarding-stage-new',
            key: 'stageNew',
            order: 100,
            optional: true,
        },
        {
            anchor: 'onboarding-stage-contract',
            key: 'stageContract',
            order: 110,
            optional: true,
        },
        {
            anchor: 'onboarding-stage-insurance',
            key: 'stageInsurance',
            order: 120,
            optional: true,
        },
        {
            anchor: 'onboarding-stage-quality',
            key: 'stageQuality',
            order: 130,
            optional: true,
        },
        {
            anchor: 'onboarding-stage-listing',
            key: 'stageListing',
            order: 140,
            optional: true,
        },
        {
            anchor: 'onboarding-stage-update',
            key: 'stageUpdate',
            order: 150,
            optional: true,
        },

        // --- Le dossier lui-même ----------------------------------------------
        {
            // Absent quand aucun dossier n'est en cours, ou quand la recherche
            // ne ramène rien.
            anchor: 'onboarding-card',
            key: 'card',
            order: 200,
            optional: true,
        },
        {
            // Posée sur le PREMIER dossier qui a des manques. Absente — et c'est
            // la bonne nouvelle — quand tous les dossiers sont complets.
            anchor: 'onboarding-warning',
            key: 'warning',
            order: 210,
            optional: true,
        },
        {
            anchor: 'onboarding-actions',
            key: 'actions',
            order: 220,
            optional: true,
        },
        {
            anchor: 'onboarding-move',
            key: 'move',
            order: 230,
            optional: true,
        },
    ],
};
