// Block `prime_cee` — réutilise le composant d'origine DistributionCEE (en-tête +
// formulaire d'éligibilité + table des primes CEE par zone climatique + encart
// « à retenir » + phrase de transition). Les champs WP non remplis retombent sur
// les défauts du composant (parité pixel préservée).

import DistributionCEE from "@/components/industries/DistributionCEE";
import { arr } from "@/lib/wp/mappers";
import type { WpEntete } from "@/lib/wp/types";

export interface PrimeCeeBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  ceeZones?:
    | {
        zone?: string | null;
        regions?: string | null;
        prime?: string | null;
      }[]
    | null;
  zonesNote?: string | null;
  retenirNote?: string | null;
  transition?: string | null;
  ctaLabel?: string | null;
}

const PrimeCee = (props: PrimeCeeBlock & { position?: number }) => {
  const zones = arr(props.ceeZones)
    .filter((z) => z.zone)
    .map((z) => ({
      zone: z.zone ?? "",
      regions: z.regions ?? "",
      prime: z.prime ?? "",
    }));

  return (
    <DistributionCEE
      {...(props.entete?.badge ? { badge: props.entete.badge } : {})}
      {...(props.entete?.titre ? { titre: props.entete.titre } : {})}
      {...(props.entete?.intro ? { intro: props.entete.intro } : {})}
      {...(zones.length ? { zones } : {})}
      {...(props.zonesNote ? { zonesNote: props.zonesNote } : {})}
      {...(props.retenirNote ? { retenirNote: props.retenirNote } : {})}
      {...(props.transition ? { transition: props.transition } : {})}
      {...(props.ctaLabel ? { ctaLabel: props.ctaLabel } : {})}
    />
  );
};

export default PrimeCee;
