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

/**
 * Visite du formulaire de création d'une réclamation.
 *
 * Ce formulaire a la particularité de déclencher, au seul clic sur
 * « Enregistrer », trois effets que l'écran ne montre nulle part : un message à
 * la personne assignée, une notification à l'équipe, et — en priorité haute —
 * l'indisponibilité du logement pour la journée sur les canaux de distribution.
 * C'est la matière de cette visite : les champs se lisent seuls, leurs
 * conséquences non.
 *
 * Ancres posées dans `pages/reclamations/create.tsx`, toutes sur des
 * conteneurs de champ qui existaient déjà (label + contrôle) : aucun composant
 * n'a eu besoin d'être modifié.
 * Textes dans `lang/{fr,en}/tours.php`, clés `reclamationCreate.<key>.title|content`.
 */
export const reclamationCreateTour: AppTour = {
    id: 'reclamationCreate',
    components: ['reclamations/create'],
    steps: [
        {
            // Le sélecteur de type est derrière `TICKETS_ENABLED` (aujourd'hui
            // `false`, cf. `pages/reclamations/shared.tsx`). L'étape est donc
            // absente en l'état — et prête le jour où le drapeau repasse à
            // `true`, ce que ce fichier n'aura pas à savoir.
            anchor: 'reclamation-type',
            key: 'type',
            order: 10,
            optional: true,
        },
        {
            anchor: 'reclamation-property',
            key: 'property',
            order: 20,
        },
        {
            anchor: 'reclamation-assignee',
            key: 'assignee',
            order: 30,
        },
        {
            anchor: 'reclamation-expense',
            key: 'expense',
            order: 40,
        },
        {
            anchor: 'reclamation-category',
            key: 'category',
            order: 50,
        },
        {
            anchor: 'reclamation-subcategory',
            key: 'subcategory',
            order: 60,
        },
        {
            anchor: 'reclamation-priority',
            key: 'priority',
            order: 70,
        },
        {
            anchor: 'reclamation-status',
            key: 'status',
            order: 80,
        },
        {
            anchor: 'reclamation-schedule',
            key: 'schedule',
            order: 90,
        },
        {
            anchor: 'reclamation-attachments',
            key: 'attachments',
            order: 100,
        },
        {
            anchor: 'reclamation-comment',
            key: 'comment',
            order: 110,
        },
        {
            anchor: 'reclamation-submit',
            key: 'submit',
            order: 120,
        },
    ],
};
