// SOURCE UNIQUE des icônes de compétences (skill → icône). Extraite de PlanificationPage.vue 2026-07-08
// pour être réutilisée (fiche client, dispo par motif, etc.) sans dupliquer la carte. Fonctions PURES.
import { symOutlinedHeadsetMic } from '@quasar/extras/material-symbols-outlined'

// Camion-nacelle (bucket truck) pour « monteur » — Material Symbols n'a pas d'équivalent → SVG custom au format
// q-icon Quasar (chemins séparés par && ; chaque chemin = d@@style). Aplats (carrosserie/roues/nacelle, roues
// évidées en evenodd) + bras articulé en trait épais. Hérite couleur (currentColor) et taille. viewBox 512×416.
export const BUCKET_TRUCK = 'M120,300 H440 V322 H120 Z M120,276 H310 V300 H120 Z M206,226 H280 V300 H206 Z M56,64 H160 V144 H56 Z@@fill:currentColor'
  + '&&M300,300 V250 L322,222 H408 L438,260 V300 Z M330,252 H396 V284 H330 Z@@fill:currentColor;fill-rule:evenodd'
  + '&&M144,356 a40,40 0 1,0 80,0 a40,40 0 1,0 -80,0 Z M170,356 a14,14 0 1,1 28,0 a14,14 0 1,1 -28,0 Z M352,356 a40,40 0 1,0 80,0 a40,40 0 1,0 -80,0 Z M378,356 a14,14 0 1,1 28,0 a14,14 0 1,1 -28,0 Z@@fill:currentColor;fill-rule:evenodd'
  + '&&M243,250 L384,150 L120,104@@fill:none;stroke:currentColor;stroke-width:30;stroke-linecap:round;stroke-linejoin:round'
  + '|0 0 512 416'

// Icône de COMPÉTENCE (ligature Material OU SVG custom BUCKET_TRUCK). réparation → build, installation → construction,
// sans-fil → cell_tower (PtP/tour, ≠ wifi maison), monteur → camion-nacelle, etc.
export function skillIcon (sk) {
  const s = String(sk || '').toLowerCase()
  if (/install/.test(s)) return 'construction'
  if (/r[ée]par|d[ée]pann|bris/.test(s)) return 'build'
  if (/fibre|fusion|soud|épissure|epissure/.test(s)) return 'cable'
  if (/t[ée]l[ée]vis|\btv\b|iptv|t[ée]l[ée]\b/.test(s)) return 'live_tv'
  if (/t[ée]l[ée]phon|voip|\b3cx\b/.test(s)) return 'call'
  if (/r[ée]seau|net\s?admin|router|bgp|olt|acs/.test(s)) return 'dns'
  if (/\bwifi\b|wi-?fi|mesh/.test(s)) return 'wifi' // wifi MAISON (couverture interne) → symbole wifi simple
  if (/sans.?fil|wireless|\bfwa\b|\blte\b|radio|antenne|\btour\b|micro.?onde|point.?[àa].?point|\bptp\b|liaison/.test(s)) return 'cell_tower' // sans fil = PtP inter-bâtiments/tours → tour
  if (/monteur|poteau|hauteur|nacelle|a[ée]rien|grimp/.test(s)) return BUCKET_TRUCK // monteur / aérien → camion-nacelle
  if (/d[ée]sinstall|retrait|ramass|d[ée]mant/.test(s)) return 'delete_sweep'
  if (/info|ordinateur|\bpc\b|cam[ée]ra/.test(s)) return 'computer'
  if (/vente|sales|soumission/.test(s)) return 'sell'
  if (/factur|paiement|compta/.test(s)) return 'receipt_long'
  return 'handyman' // visite générique (type non reconnu) : technicien avec outils
}

// Variante pour q-icon : quelques symboles dédiés (TV/install/support) sinon délègue à skillIcon.
export function skillSym (sk) {
  const s = String(sk || '').toLowerCase()
  if (/t[ée]l[ée]vis|\btv\b|iptv|t[ée]l[ée]\b/.test(s)) return 'live_tv' // AVANT « install » (« Install/Reparation Télé » contient « install »)
  if (/install/.test(s)) return 'router' // installation fibre = pose du routeur/ONT
  if (/support|service.?client|t[ée]l[ée]assist|\baide\b/.test(s)) return symOutlinedHeadsetMic
  return skillIcon(sk)
}

// Icône pour un MARQUEUR carte (DOM, police material-icons) : UNIQUEMENT des ligatures (pas de SVG custom).
export function markerIcon (skill) {
  const s = String(skill || '').toLowerCase()
  if (/t[ée]l[ée]vis|\btv\b|iptv/.test(s)) return 'live_tv'
  if (/install/.test(s)) return 'router'
  if (/monteur|poteau|hauteur|nacelle|a[ée]rien|grimp/.test(s)) return 'local_shipping'
  const ic = skillIcon(skill)
  return (typeof ic === 'string' && /^[a-z0-9_]+$/.test(ic)) ? ic : 'build'
}
