// National comparison tab — vs foyer alsacien moyen 4 pers / 100m²
// Sources (citées dans l'UI) :
// - ADEME/RTE/CRE : conso élec. foyer moyen hors chauffage ~4 200 kWh/an
// - ADEME "Panel Usages Électrodomestiques" : maison 100m² tout électrique ~14 500 kWh/an (chauffage inclus, hypothèse chauffage résistif)
// - RTE, Bilan électrique 2024 : intensité carbone électricité française 30,2 gCO2eq/kWh (cycle de vie complet)
// - RTE, Bilan électrique 2024 : 21,7 gCO2eq/kWh en émissions directes
const { useState, useMemo } = React;

const GRID_CO2 = 0.0302; // kg CO2eq/kWh — RTE cycle de vie complet 2024
const REF_CONSO_MENAGER = 4200; // kWh/an hors chauffage/ECS — ADEME/RTE/CRE
const REF_CONSO_MAISON_TOUT_ELEC = 14500; // kWh/an chauffage+ECS+électroménager, maison 100m² — ADEME (hypothèse chauffage résistif, PAC ferait moins)
const REF_CONSO_PAC_ESTIMATE = REF_CONSO_MAISON_TOUT_ELEC * 0.45; // avec PAC (COP~3), chauffage/ECS réduits d'environ 55% vs résistif — estimation
const REF_TOTAL = REF_CONSO_MENAGER + REF_CONSO_PAC_ESTIMATE - REF_CONSO_MENAGER * 0; // total estimé foyer PAC 100m²/4p
// Simplify to a single blended reference for a PAC-equipped 100m² house, 4 people:
const REF_HOUSE_PAC_TOTAL = 4200 + (14500 - 4200) * 0.42; // ≈ 8530 kWh/an — élec. + chauffage PAC + ECS, hors mobilité

function NationalComparison({ summary, data, range }) {
  const year = new Date(range.to).getFullYear();
  const yearRows = useMemo(() => data.filter(r => r.year === year), [data, year]);
  const yearSummary = useMemo(() => yearRows.length ? window.aggregate(yearRows) : summary, [yearRows]);

  const consoMaison = (yearSummary.hcNoVe || 0) + (yearSummary.hp || 0); // hors VE
  const consoRatio = consoMaison / REF_HOUSE_PAC_TOTAL;

  // CO2: vous (réseau acheté + mix, hors PV auto qui ne pollue pas) vs foyer moyen 100% réseau
  const yourGridBought = Math.max(0, consoMaison - (yearSummary.pvAuto || 0));
  const yourCo2 = yourGridBought * GRID_CO2;
  const refCo2 = REF_HOUSE_PAC_TOTAL * GRID_CO2;
  const co2Ratio = yourCo2 / refCo2;

  // Per-poste comparison (kWh/an) — reference splits are rough ADEME shares for a PAC house
  const refPostes = {
    pac: REF_HOUSE_PAC_TOTAL * 0.45,       // chauffage+ECS via PAC
    cuisine: REF_HOUSE_PAC_TOTAL * 0.20,   // électroménager + cuisson
    pompe: REF_HOUSE_PAC_TOTAL * 0.15,     // prises/éclairage
    laver: REF_HOUSE_PAC_TOTAL * 0.08,     // lavage
    autres: REF_HOUSE_PAC_TOTAL * 0.12,
  };
  const yourPostes = yearSummary.breakdown || {};
  const postes = [
    { key: 'pac', label: 'Chauffage + eau chaude (PAC)', you: yourPostes.pac || 0, ref: refPostes.pac },
    { key: 'cuisine', label: 'Électroménager + cuisson', you: yourPostes.cuisine || 0, ref: refPostes.cuisine },
    { key: 'pompe', label: 'Prises & éclairage', you: yourPostes.pompe || 0, ref: refPostes.pompe },
    { key: 'laver', label: 'Lavage', you: yourPostes.laver || 0, ref: refPostes.laver },
  ];

  const genSummaryText = () => {
    const parts = [];
    if (consoRatio < 0.9) parts.push(`vous consommez ${Math.round((1-consoRatio)*100)}% de moins que la moyenne`);
    else if (consoRatio > 1.1) parts.push(`vous consommez ${Math.round((consoRatio-1)*100)}% de plus que la moyenne`);
    else parts.push(`votre consommation est proche de la moyenne`);
    if (yearSummary.pvAuto > 0) parts.push(`grâce à votre solaire (${fmt.k(yearSummary.pvAuto,0)} kWh auto-consommés)`);
    const best = postes.reduce((a,p) => (p.you/p.ref) < (a.you/a.ref) ? p : a, postes[0]);
    const worst = postes.reduce((a,p) => (p.you/p.ref) > (a.you/a.ref) ? p : a, postes[0]);
    return `En ${year}, ${parts.join(' ')}. Votre meilleur poste relatif : ${best.label.toLowerCase()}. À surveiller : ${worst.label.toLowerCase()}.`;
  };

  return (
    <>
      <section className="panel" style={{marginBottom:24}}>
        <div className="panel-head">
          <div>
            <div className="eyebrow">comparatif national</div>
            <div className="panel-title">Vous vs foyer alsacien moyen</div>
            <div className="panel-sub">4 personnes · maison 100 m² équipée d'une PAC · année {year}</div>
          </div>
        </div>
        <div className="compare-heads">
          <div className="ytd-cell">
            <div className="ytd-lbl">Conso maison (hors VE)</div>
            <div className={'ytd-val ' + (consoRatio < 1 ? 'good' : 'bad')}>{fmt.k(consoMaison,0)}<span className="unit">kWh</span></div>
            <div className="ytd-detail">Réf. foyer 100m²/4p : {fmt.k(REF_HOUSE_PAC_TOTAL,0)} kWh · {consoRatio<1?'−':'+'}{Math.abs((consoRatio-1)*100).toFixed(0)}%</div>
          </div>
          <div className="ytd-cell">
            <div className="ytd-lbl">CO₂ émis (réseau acheté)</div>
            <div className={'ytd-val ' + (co2Ratio < 1 ? 'good' : 'bad')}>{fmt.k(yourCo2,0)}<span className="unit">kg</span></div>
            <div className="ytd-detail">Réf. : {fmt.k(refCo2,0)} kg · {co2Ratio<1?'−':'+'}{Math.abs((co2Ratio-1)*100).toFixed(0)}%</div>
          </div>
        </div>
        <div className="insight-sub" style={{marginTop:14, marginBottom:6}}>{genSummaryText()}</div>
      </section>

      <section className="panel" style={{marginBottom:24}}>
        <div className="panel-head">
          <div>
            <div className="eyebrow">détail par poste</div>
            <div className="panel-title">Où vous performez, où progresser</div>
            <div className="panel-sub">Vert = mieux que la moyenne, rouge = à améliorer</div>
          </div>
        </div>
        <div className="poste-compare-list">
          {postes.map(p => {
            const ratio = p.ref > 0 ? p.you / p.ref : 0;
            const good = ratio <= 1;
            const max = Math.max(p.you, p.ref) * 1.15;
            return (
              <div key={p.key} className="poste-compare-row">
                <div className="poste-compare-label">{p.label}</div>
                <div className="poste-compare-bars">
                  <div className="pcb-row">
                    <span className="pcb-tag">Vous</span>
                    <div className="pcb-track"><div className="pcb-fill you" style={{width:`${(p.you/max)*100}%`, background: good?'var(--green)':'var(--grid-red)'}} /></div>
                    <span className="pcb-val mono">{fmt.k(p.you,0)} kWh</span>
                  </div>
                  <div className="pcb-row">
                    <span className="pcb-tag mute">Réf.</span>
                    <div className="pcb-track"><div className="pcb-fill ref" style={{width:`${(p.ref/max)*100}%`}} /></div>
                    <span className="pcb-val mono mute">{fmt.k(p.ref,0)} kWh</span>
                  </div>
                </div>
                <div className={'poste-compare-delta ' + (good?'good':'bad')}>
                  {good ? '−' : '+'}{Math.abs((ratio-1)*100).toFixed(0)}%
                </div>
              </div>
            );
          })}
        </div>
      </section>

      <section className="panel" style={{marginBottom:24}}>
        <div className="panel-sub" style={{fontSize:11, lineHeight:1.6}}>
          <strong>Sources :</strong> conso. moyenne foyer hors chauffage ≈4 200 kWh/an (ADEME / RTE / CRE) ·
          maison 100 m² tout électrique ≈14 500 kWh/an chauffage+ECS+électroménager (ADEME, hypothèse chauffage résistif — un foyer équipé PAC consomme nettement moins, ratio estimé ici) ·
          intensité carbone électricité française 30,2 gCO2eq/kWh cycle de vie complet, 21,7 gCO2eq/kWh émissions directes (RTE, Bilan électrique 2024).
          La référence "foyer PAC 100m²/4p" ({fmt.k(REF_HOUSE_PAC_TOTAL,0)} kWh/an) est une estimation combinant ces sources ; ajustez votre lecture en conséquence.
        </div>
      </section>
    </>
  );
}

window.NationalComparison = NationalComparison;
