gigafibre-fsm/apps/ops/src/data/client-constants.js
louispaulb 512c4a5f1b feat(ops): dispatch auto complet + perf Boîte/rapports + fix session
Planificateur « Suggérer » : 4 stratégies (smart / meilleurs d'abord / équilibré /
juste ce qu'il faut), compétences+niveaux par tech (édition inline), niveau requis
par compétence + par job, carte des tournées (1 couleur/tech, domicile→arrêts,
sélecteur de jour), fenêtre de dispatch auj.+demain (dates sélectionnées), règle
week-end + placeholder « en attente du quart », clustering + lasso + filtre-date
sur la carte, accès rapide « À assigner » (badge).

Boîte : liste /conversations allégée (45 Mo → ~1 Mo, 17×) + messages chargés à
l'ouverture. Rapports : cache SWR sur revenue-explorer (22×). Session : keep-alive
+ timeout fetch global + authFetch durci → fin des rechargements manuels.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 08:49:35 -04:00

34 lines
1.9 KiB
JavaScript

export const locInlineFields = [
{ field: 'city', placeholder: 'Ville', prefix: null },
{ field: 'postal_code', placeholder: 'Code postal', prefix: ', ' },
{ field: 'location_name', placeholder: 'Nom du lieu', prefix: ' — ' },
{ field: 'contact_name', placeholder: 'Contact', prefix: ' \u00b7 Contact: ' },
{ field: 'contact_phone', placeholder: 'Téléphone', prefix: ' ' },
]
export const equipTypeOptions = ['ONT', 'Routeur', 'Modem', 'Décodeur TV', 'VoIP', 'Switch', 'AP', 'Amplificateur', 'Splitter', 'Autre']
export const equipStatusOptions = ['Actif', 'En inventaire', 'Défectueux', 'Retourné', 'Perdu']
export const equipScanTypeMap = { ont: 'ONT', onu: 'ONT', router: 'Router', modem: 'Modem', decoder: 'Décodeur', switch: 'Switch' }
export const phoneLabelMap = { cell_phone: 'Cell', tel_home: 'Maison', tel_office: 'Bureau' }
export const defaultSectionsOpen = { locations: true, tickets: true, invoices: false, payments: false, voip: false, paymentMethods: false, arrangements: false, quotations: false, serviceContracts: false, notes: false }
// Modules réordonnables de la fiche client 360 (colonne principale). L'ordre de ce tableau = ordre PAR DÉFAUT ;
// chaque utilisateur peut réordonner/masquer (persisté via useUserPrefs 'client360'). key = clé sectionsOpen.
export const CLIENT_360_MODULES = [
{ key: 'locations', label: 'Lieux de service', icon: 'location_on' },
{ key: 'tickets', label: 'Tickets', icon: 'confirmation_number' },
{ key: 'invoices', label: 'Factures', icon: 'receipt_long' },
{ key: 'payments', label: 'Paiements', icon: 'payments' },
{ key: 'voip', label: 'Lignes VoIP', icon: 'call' },
{ key: 'serviceContracts', label: 'Contrats de service', icon: 'description' },
{ key: 'quotations', label: 'Soumissions', icon: 'request_quote' },
]
export const defaultNewEquip = () => ({
equipment_type: 'ONT', serial_number: '', brand: '', model: '', mac_address: '', ip_address: '', status: 'Actif',
})