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

/**
 * Visite de la messagerie voyageurs.
 *
 * Quatre faits portent cette visite, tous vérifiés dans
 * `GuestCommunicationController` et `config/messaging.php` :
 *
 *  - la boîte n'est PAS exhaustive : cinq types de fils sont exclus côté
 *    serveur, dont les avis et le canal « Email » (`config/messaging.php:8`) ;
 *  - ouvrir un fil le marque lu IMMÉDIATEMENT, y compris chez le canal
 *    d'origine, sans bouton ni confirmation (`markAsRead`) ;
 *  - traduire ÉCRASE le message d'origine en base — il n'y a pas de retour
 *    (`$chat->update(['body' => $translated])`) ;
 *  - la synchronisation complète est une reprise d'historique en arrière-plan,
 *    verrouillée deux heures, et non un rafraîchissement.
 *
 * Ancres posées dans `messagerie/index.tsx`, `discussions-list.tsx` et
 * `messages-view.tsx`.
 * Textes dans `lang/{fr,en}/tours.php`, clés `messagerie.<key>.title|content`.
 */
export const messagerieTour: AppTour = {
    id: 'messagerie',
    components: ['messagerie/index'],
    steps: [
        {
            // Le sélecteur n'est rendu que pour le siège (`isAdmin ? coHosts : []`).
            anchor: 'messagerie-franchise',
            key: 'franchise',
            order: 10,
            adminOnly: true,
            optional: true,
        },
        {
            anchor: 'messagerie-sync',
            key: 'sync',
            order: 20,
        },
        {
            anchor: 'messagerie-search',
            key: 'search',
            order: 30,
        },
        {
            anchor: 'messagerie-list',
            key: 'list',
            order: 40,
        },
        {
            anchor: 'messagerie-thread',
            key: 'thread',
            order: 50,
        },
        {
            // Le bouton ne vit que dans la zone de saisie, elle-même absente des
            // fils de commentaires Facebook / Instagram.
            anchor: 'messagerie-ai',
            key: 'ai',
            order: 60,
            optional: true,
        },
    ],
};
