// ── Taxonomie des conversations — SOURCE UNIQUE ─────────────────────────────── // Avant : le « type » d'une conversation vivait dans 4 endroits désynchronisables // - TYPES + l'énumération du prompt IA → inbox-triage.js // - QUEUE_OF (type→file) + QUEUES → conversation.js // Conséquence réelle : `telephonie`/`television` existaient dans QUEUE_OF mais PAS // dans TYPES → jamais produits par le triage (clés inertes). On centralise ici pour // que toute évolution de catégorie se fasse à UN seul endroit. // // ⚠️ CONTRAT : le prompt système de `classifyEmail` (inbox-triage.js) énumère les // valeurs de TYPES À LA MAIN (contrainte du modèle). Si tu ajoutes un type ici, // ajoute-le AUSSI dans cette énumération du prompt, sinon le triage ne le produira pas. // Les 4 FILES de l'inbox partagé (= labels F fiables, vs 30 départements). const QUEUES = ['Facturations', 'Service à la clientèle', 'Supports', 'Technicien'] // Types de demande que le triage peut produire (doivent matcher l'énumération du prompt IA). const TYPES = ['support', 'facturation', 'vente', 'installation', 'autre'] // type → FILE de routage. (telephonie/television : réservés — routent vers Technicien si un jour produits.) const QUEUE_OF = { facturation: 'Facturations', vente: 'Service à la clientèle', support: 'Supports', installation: 'Technicien', telephonie: 'Technicien', television: 'Technicien', autre: '', } // type → catégorie de TICKET (ERPNext Issue). const CAT = { facturation: 'Facturation', vente: 'Commercial', installation: 'Installation', support: 'Support', autre: 'Autre' } // issue_type (ERPNext Issue — 40+ valeurs héritées de F) → une des 4 FILES omnichannel. '' / absent = non classé. // Sert « Mes départements » sur la page Tickets : un agent voit les tickets des files dont il est membre. // Les 4 noms de files sont eux-mêmes des Issue Type valides (identité). Mapping éditable — affiner au besoin. const ISSUE_TYPE_QUEUE = { // → Facturations Facturation: 'Facturations', Facturations: 'Facturations', Recouvrement: 'Facturations', 'Compte Payable': 'Facturations', Suspension: 'Facturations', 'Changement forfait': 'Facturations', Achat: 'Facturations', // → Service à la clientèle Vente: 'Service à la clientèle', 'Service à la clientèle': 'Service à la clientèle', 'Satisfaction client': 'Service à la clientèle', 'Rétention': 'Service à la clientèle', Representant: 'Service à la clientèle', Suivi: 'Service à la clientèle', Direction: 'Service à la clientèle', // → Supports Support: 'Supports', Supports: 'Supports', 'Support Informatique': 'Supports', 'Support COM': 'Supports', 'Sys Admin': 'Supports', 'Net Admin': 'Supports', ToDo: 'Supports', Projet: 'Supports', Developpement: 'Supports', Conception: 'Supports', // → Technicien Technicien: 'Technicien', Monteur: 'Technicien', Reparation: 'Technicien', Installation: 'Technicien', Desinstallation: 'Technicien', 'Téléphonie': 'Technicien', 'Reparation Fibre': 'Technicien', 'Installation Fibre': 'Technicien', Garage: 'Technicien', Domotique: 'Technicien', Fusionneur: 'Technicien', Relais: 'Technicien', 'Télévision': 'Technicien', Inventaire: 'Technicien', 'Install/Reparation Télé': 'Technicien', Activation: 'Technicien', } module.exports = { QUEUES, TYPES, QUEUE_OF, CAT, ISSUE_TYPE_QUEUE }