const TALOS_STAGES = [
  { id: 'detect', label: 'Nouvel impayé', hint: 'Importé — pas encore relancé', color: '#64748b' },
  { id: 'r1', label: 'Relance 1', hint: '+30 j après install', color: '#1c3a8f' },
  { id: 'avis', label: 'Dernier avis', hint: '+45 j — avant poursuite', color: '#c77800' },
  { id: 'ctx', label: 'Contentieux', hint: '+52 j — juridique', color: '#e11d33' },
  { id: 'ok', label: 'Recouvré', hint: 'Dossier soldé', color: '#1a7f4e' },
];
const TALOS_POLES = { ITE: '#1c3a8f', PV: '#c77800', PAC: '#0e7490' };
const TALOS_DOSSIERS = [
  { id: 100000, prenom: 'Julien', nom: 'MARTIN', tel: '06 10 10 10 10', cp: '62122', pole: 'ITE', affilie: false, dateFacture: '12/11/2025', total: 29400, impaye: 18435, recupere: 0, email: 'julien.martin@exemple.fr', stage: 'ctx', huissier: true, med: false, jours: 264, boucle: false,
    appels: [{dir:'out',d:'20/04/2026',duree:'4 min',resume:'Conteste l’épaisseur du polystyrène, refuse tout règlement avant expertise.'},{dir:'in',d:'28/04/2026',duree:'2 min',resume:'Demande les coordonnées de notre assurance décennale.'}],
    note: 'Chantier stoppé par le client. Conteste l\u2019épaisseur du polystyrène (3,85 vendu / 3,75 posé selon lui).',
    relances: [ {t:'email',d:'14/04/2026',s:'Intervention équipe à domicile — sans suite'}, {t:'email',d:'23/04/2026',s:'Passage contentieux notifié'}, {t:'email',d:'11/05/2026',s:'NRP mail'} ] },
  { id: 101234, prenom: 'Thomas', nom: 'GIRARD', tel: '06 17 23 27 33', cp: '71330', pole: 'ITE', affilie: false, dateFacture: '01/03/2025', total: 20880, impaye: 14616, recupere: 0, email: 'thomas.girard@exemple.fr', stage: 'ctx', huissier: true, med: false, jours: 520,
    note: 'Chantier non terminé, PV non signé. Intervention chef de chantier planifiée pour clôture.',
    relances: [ {t:'email',d:'23/04/2026',s:'NRP mail'}, {t:'email',d:'27/04/2026',s:'NRP mail'} ] },
  { id: 102468, prenom: 'Nicolas', nom: 'LEROY', tel: '06 24 36 44 56', cp: '17740', pole: 'ITE', affilie: false, dateFacture: '30/09/2025', total: 21700, impaye: 15190, recupere: 0, email: 'nicolas.leroy@exemple.fr', stage: 'avis', huissier: false, med: false, jours: 307, boucle: true,
    appels: [{dir:'out',d:'15/04/2026',duree:'NRP',resume:'Messagerie — aucun retour.'}],
    note: 'RIB envoyé pour virement — client NRP depuis.',
    relances: [ {t:'email',d:'02/04/2026',s:'Envoi RIB pour virement'}, {t:'sms',d:'17/04/2026',s:'Rappel virement — NRP'} ] },
  { id: 103702, prenom: 'Antoine', nom: 'MOREAU', tel: '06 31 49 61 79', cp: '44130', pole: 'ITE', affilie: true, dateFacture: '05/03/2026', total: 34960, impaye: 20976, recupere: 0, email: 'antoine.moreau@exemple.fr', stage: 'ctx', huissier: true, med: true, jours: 151, boucle: false, cheque: { montant: 8740, date: '18/03/2026', motif: 'Opposition du tireur', statut: 'Transmis huissier' },
    note: 'Travaux terminés, silence radio. Recommandé retourné non réclamé (13/05). À appeler après 19h30.',
    relances: [ {t:'email',d:'23/03/2026',s:'NRP mail'}, {t:'email',d:'25/03/2026',s:'Mail envoyé par notre équipe'}, {t:'courrier',d:'13/05/2026',s:'LRAR retournée non réclamée'} ] },
  { id: 104936, prenom: 'Sophie', nom: 'DUBOIS', tel: '06 38 62 78 13', cp: '08170', pole: 'ITE', affilie: false, dateFacture: '22/01/2026', total: 20700, impaye: 6210, recupere: 0, email: 'sophie.dubois@exemple.fr', stage: 'avis', huissier: false, med: false, jours: 193, boucle: true, echeancier: { accord: 'Remise commerciale 1 500 € validée', echeances: [{d:'15/05/2026',m:2355,statut:'impayée'},{d:'15/06/2026',m:2355,statut:'impayée'}] },
    appels: [{dir:'out',d:'05/03/2026',duree:'11 min',resume:'Négociation : accord trouvé avec remise commerciale de 1 500 €, règlement en 2 fois.'}],
    note: 'Accord trouvé : 1 500 € de remise commerciale. Ne répond plus depuis — bascule contentieux si silence.',
    relances: [ {t:'email',d:'10/03/2026',s:'Confirmation accord remise 1 500 €'}, {t:'sms',d:'02/05/2026',s:'Relance accord — NRP'} ] },
  { id: 106170, prenom: 'Camille', nom: 'FONTAINE', tel: '06 45 75 95 36', cp: '06530', pole: 'ITE', affilie: false, dateFacture: '13/04/2026', total: 23880, impaye: 9828, recupere: 0, email: 'camille.fontaine@exemple.fr', stage: 'r1', huissier: false, med: false, jours: 112, boucle: true,
    note: 'Suivi le commercial.',
    relances: [ {t:'email',d:'18/05/2026',s:'Relance 1 — facture jointe'} ] },
  { id: 107404, prenom: 'Lucas', nom: 'ROUSSEL', tel: '06 52 88 23 59', cp: '59247', pole: 'PV', affilie: false, dateFacture: '10/01/2024', total: 8900, impaye: 2100, recupere: 0, email: 'lucas.roussel@exemple.fr', stage: 'r1', huissier: false, med: false, jours: 936, boucle: true,
    note: 'NRP mail (13/05).',
    relances: [ {t:'email',d:'13/05/2026',s:'NRP mail'} ] },
  { id: 108638, prenom: 'Hugo', nom: 'MERCIER', tel: '06 59 12 40 82', cp: '83600', pole: 'PV', affilie: false, dateFacture: '25/07/2023', total: 8300, impaye: 750, recupere: 0, email: 'hugo.mercier@exemple.fr', stage: 'detect', huissier: false, med: false, jours: 1105, boucle: false, cheque: { montant: 750, date: '12/06/2026', motif: 'Provision insuffisante', statut: 'À représenter' },
    note: 'Solde résiduel détecté à l\u2019import CRM.', relances: [] },
  { id: 109872, prenom: 'Emma', nom: 'BLANC', tel: '06 66 25 57 16', cp: '62940', pole: 'PV', affilie: false, dateFacture: '02/12/2025', total: 7200, impaye: 1000, recupere: 1000, email: 'emma.blanc@exemple.fr', stage: 'r1', huissier: false, med: false, jours: 244, boucle: true, cheque: { montant: 1000, date: '10/04/2026', motif: 'Chèque non signé', statut: 'En attente virement' },
    note: 'Chèque non signé — en attente du virement (13/04).',
    relances: [ {t:'email',d:'13/04/2026',s:'Chèque non signé, demande de virement'} ] },
  { id: 111106, prenom: 'Léa', nom: 'GARNIER', tel: '06 73 38 74 39', cp: '87290', pole: 'PV', affilie: false, dateFacture: '15/02/2026', total: 19190, impaye: 1707, recupere: 4050, email: 'la.garnier@exemple.fr', stage: 'avis', huissier: false, med: false, jours: 169, boucle: false, cheque: { montant: 5757, date: '02/04/2026', motif: 'Provision insuffisante', statut: 'Échéancier en cours' }, echeancier: { accord: 'Délai 15 j accordé après paiement partiel 1 500 €', echeances: [{d:'27/05/2026',m:2128,statut:'payée'},{d:'15/06/2026',m:2129,statut:'impayée'}] },
    appels: [{dir:'in',d:'12/05/2026',duree:'6 min',resume:'A payé 1 500 €, demande un délai de 15 jours pour le solde.'},{dir:'out',d:'20/07/2026',duree:'3 min',resume:'Promet de rappeler le 24/07.'}],
    note: 'Chèque revenu impayé 5 757 €. A payé 1 500 €, délai 15 j accordé. Rappelle le 24/07.',
    relances: [ {t:'email',d:'07/04/2026',s:'Règlement 5 757 € en 2× proposé'}, {t:'sms',d:'12/05/2026',s:'Paiement partiel 1 500 € reçu'}, {t:'email',d:'28/05/2026',s:'NRP mail'}, {t:'email',d:'04/06/2026',s:'Virement annoncé pour le 15 juin'} ] },
  { id: 112340, prenom: 'Paul', nom: 'CHEVALIER', tel: '06 80 51 91 62', cp: '57480', pole: 'PV', affilie: false, dateFacture: '20/03/2026', total: 19990, impaye: 90, recupere: 19900, email: 'paul.chevalier@exemple.fr', stage: 'ok', huissier: false, med: false, jours: 136, boucle: false,
    appels: [{dir:'out',d:'21/04/2026',duree:'5 min',resume:'Virement confirmé pendant l’appel.'}],
    note: 'Virement reçu suite appel (21/04).',
    relances: [ {t:'sms',d:'21/04/2026',s:'Appel — virement confirmé'} ] },
  { id: 113574, prenom: 'Manon', nom: 'ROBIN', tel: '06 87 64 19 85', cp: '60890', pole: 'PV', affilie: false, dateFacture: '08/10/2025', total: 3000, impaye: 0, recupere: 3000, email: 'manon.robin@exemple.fr', stage: 'ok', huissier: false, med: false, jours: 299, boucle: false,
    note: 'Soldé intégralement.', relances: [] },
  { id: 114808, prenom: 'Alexandre', nom: 'MASSON', tel: '06 94 77 36 19', cp: '34420', pole: 'PAC', affilie: false, dateFacture: '08/04/2024', total: 18340, impaye: 13140, recupere: 0, email: 'alexandre.masson@exemple.fr', stage: 'r1', huissier: false, med: false, jours: 847, boucle: true,
    appels: [{dir:'in',d:'02/04/2026',duree:'9 min',resume:'Conditionne le paiement au passage du SAV attendu depuis 2 ans.'}],
    note: 'Attend un SAV depuis 2 ans — conditionne le paiement au passage SAV (RDV fin avril).',
    relances: [ {t:'sms',d:'02/04/2026',s:'NRP SMS puis contact — attend SAV'} ] },
  { id: 116042, prenom: 'Chloé', nom: 'NOEL', tel: '06 12 90 53 42', cp: '95300', pole: 'PAC', affilie: false, dateFacture: '04/02/2026', total: 5520, impaye: 3312, recupere: 0, email: 'chlo.noel@exemple.fr', stage: 'avis', huissier: false, med: false, jours: 180, boucle: true,
    note: 'Sous-traitant le sous-traitant. Virement promis, jamais reçu.',
    relances: [ {t:'email',d:'30/03/2026',s:'NRP'}, {t:'email',d:'07/04/2026',s:'NRP mail'}, {t:'email',d:'05/05/2026',s:'NRP mail'} ] },
  { id: 117276, prenom: 'Maxime', nom: 'HENRY', tel: '06 19 14 70 65', cp: '71290', pole: 'PAC', affilie: false, dateFacture: '08/09/2025', total: 16400, impaye: 16400, recupere: 0, email: 'maxime.henry@exemple.fr', stage: 'ctx', huissier: false, med: true, jours: 329, boucle: false,
    note: 'Conteste la décennale — refuse tout paiement. Dossier transmis à l\u2019avocat.',
    relances: [ {t:'email',d:'12/03/2026',s:'Relance 1'}, {t:'courrier',d:'02/04/2026',s:'Mise en demeure'}, {t:'email',d:'25/04/2026',s:'Transmission avocat notifiée'} ] },
  { id: 118510, prenom: 'Sarah', nom: 'PERRIN', tel: '06 26 27 87 88', cp: '86330', pole: 'PAC', affilie: false, dateFacture: '01/10/2024', total: 7900, impaye: 7900, recupere: 0, email: 'sarah.perrin@exemple.fr', stage: 'ctx', huissier: false, med: true, jours: 671, boucle: false,
    note: 'Rien réglé. Dossier avocat.',
    relances: [ {t:'email',d:'15/01/2026',s:'Relance 1'}, {t:'courrier',d:'20/02/2026',s:'Mise en demeure'} ] },
];
const fmtEUR = n => n.toLocaleString('fr-FR', { maximumFractionDigits: 0 }) + ' €';
const TALOS_TEMPLATES = {
  r1_email: { label: 'Mail — Relance 1 (+30 j)', ar: true, body: d => `Bonjour ${d.prenom} ${d.nom},\n\nNos équipes sont intervenues à votre domicile pour vos travaux (pôle ${d.pole}). Le chantier a été achevé et réceptionné — procès-verbal de fin de chantier à l’appui.\n\nÀ ce jour, votre facture du ${d.dateFacture} présente un solde dû de ${fmtEUR(d.impaye)}.\nMerci de procéder au règlement dès réception de ce message.\n\n── Informations de paiement ──\nMontant : ${fmtEUR(d.impaye)}\nRéférence à rappeler : ${d.id}-${d.pole}\nIBAN : FR76 XXXX XXXX XXXX XXXX XXXX XXX\n\nNotre service client reste à votre écoute pour toute question ou difficulté : 01 84 80 12 34.\n\nService recouvrement — Groupe Verlaine` },
  r2_email: { label: 'Mail — Relance 2 / Dernier avis (+45 j)', ar: true, body: d => `Bonjour ${d.prenom} ${d.nom},\n\nMalgré notre courriel du mois dernier concernant le solde de ${fmtEUR(d.impaye)} sur votre facture du ${d.dateFacture} (réf. ${d.id}-${d.pole}), nous n’avons reçu aucun règlement ni retour de votre part.\n\nSans paiement intégral sous 7 jours, votre dossier sera transféré à notre service contentieux. Des pénalités de retard et frais de dossier s’ajouteront alors au montant dû, conformément à nos conditions générales.\n\nIl est encore temps de régulariser ou de convenir d’un échéancier : notre service client est joignable au 01 84 80 12 34.\n\nService recouvrement — Groupe Verlaine` },
  r1_sms: { label: 'SMS — Relance 1', ar: false, body: d => `Groupe Verlaine : solde de ${fmtEUR(d.impaye)} dû sur votre facture du ${d.dateFacture} (réf. ${d.id}-${d.pole}). Merci de régulariser. Service client : 01 84 80 12 34.` },
  r2_sms: { label: 'SMS — Dernier avis', ar: false, body: d => `Groupe Verlaine : dernier avis avant contentieux. Solde de ${fmtEUR(d.impaye)} (réf. ${d.id}-${d.pole}) à régler sous 7 jours, sinon transfert au juridique avec pénalités. 01 84 80 12 34.` },
};
Object.assign(window, { TALOS_STAGES, TALOS_POLES, TALOS_DOSSIERS, TALOS_TEMPLATES, fmtEUR });
