// data/comparateur/fournisseurs.ts
import type { FournisseurId } from "@/lib/comparateur/types";

export type FournisseurProfile = "C5" | "C4" | "C3";

export type Fournisseur = {
  id: FournisseurId;
  nom: string;
  logoUrl: string;
  profilsServis: FournisseurProfile[];
  typesContrat: ("fixe" | "indexe" | "spot" | "hybride" | "sur-mesure")[];
  scoresQualitatifs: {
    prix: number;
    qualiteService: number;
    vert: number;
    multiSites: number;
    expertiseB2B: number;
  };
  prixUnitaire: { C5: number; C4: number; C3: number }; // €/MWh HTVA estimé 2026
  forces: string[];
  faiblesses: string[];
  urlOfficiel: string;
};

// Sources prix unitaire 2026 : références marché CRE Q2 2026 + EPEX Spot moyen + observations courtage Acieb.
// À rafraîchir tous les trimestres.
export const FOURNISSEURS: Fournisseur[] = [
  {
    id: "edf",
    nom: "EDF Pro",
    logoUrl: "/logo/fournisseurs/edf.svg",
    profilsServis: ["C5", "C4", "C3"],
    typesContrat: ["fixe", "indexe", "sur-mesure"],
    scoresQualitatifs: { prix: 65, qualiteService: 80, vert: 70, multiSites: 90, expertiseB2B: 95 },
    prixUnitaire: { C5: 232, C4: 198, C3: 165 },
    forces: ["Acteur historique, solidité financière", "Couverture multi-sites complète", "Expertise grands comptes"],
    faiblesses: ["Tarifs rarement les plus agressifs", "Process administratif parfois lourd"],
    urlOfficiel: "https://entreprises.edf.fr",
  },
  {
    id: "engie",
    nom: "ENGIE Pro",
    logoUrl: "/logo/fournisseurs/engie.svg",
    profilsServis: ["C5", "C4", "C3"],
    typesContrat: ["fixe", "indexe", "hybride", "sur-mesure"],
    scoresQualitatifs: { prix: 70, qualiteService: 75, vert: 85, multiSites: 85, expertiseB2B: 90 },
    prixUnitaire: { C5: 226, C4: 192, C3: 160 },
    forces: ["Offres vertes structurées (PPA, GO)", "Présence Europe pour ETI"],
    faiblesses: ["Service client variable selon segment"],
    urlOfficiel: "https://particuliers.engie.fr/electricite",
  },
  {
    id: "totalenergies",
    nom: "TotalEnergies Pro",
    logoUrl: "/logo/fournisseurs/totalenergies.svg",
    profilsServis: ["C5", "C4", "C3"],
    typesContrat: ["fixe", "indexe", "sur-mesure"],
    scoresQualitatifs: { prix: 75, qualiteService: 70, vert: 75, multiSites: 80, expertiseB2B: 80 },
    prixUnitaire: { C5: 220, C4: 188, C3: 158 },
    forces: ["Tarifs compétitifs sur le marché", "Offres multi-énergie (gaz + élec)"],
    faiblesses: ["Image corporate parfois clivante"],
    urlOfficiel: "https://www.totalenergies.fr/professionnels",
  },
  {
    id: "alpiq",
    nom: "Alpiq",
    logoUrl: "/logo/fournisseurs/alpiq.svg",
    profilsServis: ["C4", "C3"],
    typesContrat: ["fixe", "indexe", "spot", "sur-mesure"],
    scoresQualitatifs: { prix: 80, qualiteService: 75, vert: 80, multiSites: 70, expertiseB2B: 85 },
    prixUnitaire: { C5: 235, C4: 185, C3: 152 },
    forces: ["Spécialiste B2B grands comptes", "Achat par tranches/clics"],
    faiblesses: ["Pas adapté aux TPE/petits sites"],
    urlOfficiel: "https://www.alpiq.fr",
  },
  {
    id: "plum",
    nom: "Plüm Énergie",
    logoUrl: "/logo/fournisseurs/plum.png",
    profilsServis: ["C5", "C4"],
    typesContrat: ["fixe", "indexe"],
    scoresQualitatifs: { prix: 78, qualiteService: 88, vert: 95, multiSites: 60, expertiseB2B: 65 },
    prixUnitaire: { C5: 215, C4: 195, C3: 172 },
    forces: ["Engagement vert renforcé", "Service client noté très haut"],
    faiblesses: ["Multi-sites limité", "Peu de visibilité sur grands comptes"],
    urlOfficiel: "https://plum.fr",
  },
  {
    id: "ekwateur",
    nom: "ekWateur",
    logoUrl: "/logo/fournisseurs/ekwateur.svg",
    profilsServis: ["C5", "C4"],
    typesContrat: ["fixe", "indexe"],
    scoresQualitatifs: { prix: 82, qualiteService: 82, vert: 90, multiSites: 65, expertiseB2B: 70 },
    prixUnitaire: { C5: 210, C4: 192, C3: 168 },
    forces: ["Offres 100% renouvelable", "Tarifs agressifs TPE/PME"],
    faiblesses: ["Peu de produits sur-mesure"],
    urlOfficiel: "https://ekwateur.fr",
  },
  {
    id: "mint",
    nom: "Mint Energie",
    logoUrl: "/logo/fournisseurs/mint.svg",
    profilsServis: ["C5", "C4"],
    typesContrat: ["fixe", "indexe"],
    scoresQualitatifs: { prix: 85, qualiteService: 78, vert: 88, multiSites: 60, expertiseB2B: 65 },
    prixUnitaire: { C5: 205, C4: 188, C3: 170 },
    forces: ["Prix bas TPE", "Énergie verte locale"],
    faiblesses: ["Croissance rapide, mais structure jeune"],
    urlOfficiel: "https://mint-energie.com",
  },
  {
    id: "eni",
    nom: "Eni",
    logoUrl: "/logo/fournisseurs/eni.svg",
    profilsServis: ["C4", "C3"],
    typesContrat: ["fixe", "indexe", "sur-mesure"],
    scoresQualitatifs: { prix: 72, qualiteService: 70, vert: 65, multiSites: 75, expertiseB2B: 78 },
    prixUnitaire: { C5: 225, C4: 190, C3: 156 },
    forces: ["Gaz + élec couplés", "Présence européenne"],
    faiblesses: ["Mix énergétique moins vert que la concurrence"],
    urlOfficiel: "https://eni.fr/professionnels",
  },
];

export function getFournisseur(id: FournisseurId): Fournisseur {
  const f = FOURNISSEURS.find((x) => x.id === id);
  if (!f) throw new Error(`Fournisseur introuvable: ${id}`);
  return f;
}

export function getFournisseursForProfil(profil: "C5" | "C4" | "C3"): Fournisseur[] {
  return FOURNISSEURS.filter((f) => f.profilsServis.includes(profil));
}
