// Types TS du contrat de schéma WordPress (wordpress/SCHEMA.md).
// Les repeaters/flexibles vides sortent `null` en GraphQL → tout tableau est nullable.
// Le nom complet des types de layouts dépend du préfixe généré par WPGraphQL for ACF :
// `__typename` est typé `string` et le BlockRenderer matche par suffixe `...XxxLayout`.

// ---------------------------------------------------------------------------
// Briques de base
// ---------------------------------------------------------------------------

/** Image aplatie, prête pour next/image (sortie de mapImage). */
export interface WpImage {
  sourceUrl: string;
  altText: string;
  width: number | null;
  height: number | null;
}

/** Champ image brut tel que renvoyé par WPGraphQL (connection edge). */
export interface WpImageField {
  node?: {
    sourceUrl?: string | null;
    altText?: string | null;
    /** Alt traduits (postmeta exposés par covalba-core) — repliés sur `altText` en EN/ES. */
    altTextEn?: string | null;
    altTextEs?: string | null;
    mediaDetails?: { width?: number | null; height?: number | null } | null;
  } | null;
}

/** Champ fichier brut (PDF, etc.). */
export interface WpFileField {
  node?: {
    mediaItemUrl?: string | null;
    title?: string | null;
  } | null;
}

/** Clone `clone_cta`. */
export interface WpCta {
  label?: string | null;
  lien?: string | null;
  style?: "primary" | "secondary" | "ghost" | string | null;
}

/** Clone `clone_entete_section`. */
export interface WpEntete {
  badge?: string | null;
  titre?: string | null;
  intro?: string | null;
}

/** Groupe `clone_seo`, exposé sous `seo`. */
export interface WpSeo {
  titreSeo?: string | null;
  metaDescription?: string | null;
  canonical?: string | null;
  ogImage?: WpImageField | null;
  noindex?: boolean | null;
}

/** Langue Polylang (wp-graphql-polylang). `slug` = code neutre (fr/en/es). */
export interface WpLanguage {
  code?: string | null; // LanguageCodeEnum (FR/EN/ES)
  slug?: string | null; // fr/en/es
  locale?: string | null;
}

/** Node minimal d'une relationship (Produit / Industrie / Référence). */
export interface WpRelNode {
  id: string;
  slug?: string | null;
  title?: string | null;
}

export interface WpRelProduitNode extends WpRelNode {
  ficheProduit?: WpFicheProduit | null;
}

export interface WpHubspotFormField {
  cleLocale?: string | null;
  label?: string | null;
  nomInterne?: string | null;
  objectTypeId?: string | null;
  actif?: boolean | null;
  requis?: boolean | null;
}

export interface WpFicheFormulaireHubspot {
  code?: string | null;
  portalId?: string | null;
  formGuid?: string | null;
  mode?: "api" | "embed" | string | null;
  champs?: WpHubspotFormField[] | null;
}

export interface WpHubspotFormNode extends WpRelNode {
  ficheFormulaireHubspot?: WpFicheFormulaireHubspot | null;
}

export interface WpRelConnection<TNode = WpRelNode> {
  nodes?: TNode[] | null;
}

export type WpHubspotFormConnection = WpRelConnection<WpHubspotFormNode>;

/** Terme de taxonomie (secteur, type_support). */
export interface WpTermNode {
  id: string;
  slug?: string | null;
  name?: string | null;
}

export interface WpTermConnection {
  nodes?: WpTermNode[] | null;
}

// ---------------------------------------------------------------------------
// Layouts génériques (21)
// ---------------------------------------------------------------------------

export interface HeroBlock {
  __typename: string;
  origine?: string | null;
  variante?: "home" | "standard" | "compact" | string | null;
  eyebrow?: string | null;
  titre?: string | null;
  lead?: string | null;
  image?: WpImageField | null;
  stats?: { value?: string | null; label?: string | null }[] | null;
  badges?: { texte?: string | null }[] | null;
  ctaPrimaire?: WpCta | null;
  ctaSecondaire?: WpCta | null;
}

export interface BarreReassuranceBlock {
  __typename: string;
  origine?: string | null;
  items?: { texte?: string | null }[] | null;
}

export interface BeneficesMesurablesBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  sublabel?: string | null;
  metricMain?: string | null;
  metricSuffix?: string | null;
  metricLabel?: string | null;
  benefices?:
    | { icone?: string | null; titre?: string | null; description?: string | null }[]
    | null;
}

export interface PreuveChiffresBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  chiffres?:
    | { icone?: string | null; valeur?: string | null; libelle?: string | null }[]
    | null;
  refTitre?: string | null;
  refIntro?: string | null;
  logosTitre?: string | null;
  refLogos?:
    | { image?: WpImageField | null; nom?: string | null }[]
    | null;
}

export interface CtaFinalSimpleBlock {
  __typename: string;
  origine?: string | null;
  titre?: string | null;
  sousTitre?: string | null;
  bandeauPreuve?: string | null;
  ctaPrimaire?: WpCta | null;
  ctaSecondaire?: WpCta | null;
}

export interface CtaFinalEnrichiBlock {
  __typename: string;
  origine?: string | null;
  eyebrow?: string | null;
  titre?: string | null;
  texte?: string | null;
  ctaPrimaire?: WpCta | null;
  ctaSecondaire?: WpCta | null;
  pastilles?:
    | { icone?: string | null; titre?: string | null }[]
    | null;
}

export interface ExpertiseBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  cartes?:
    | {
        icone?: string | null;
        titre?: string | null;
        texte?: string | null;
        featured?: boolean | null;
      }[]
    | null;
}

export interface LogosPresseBlock {
  __typename: string;
  origine?: string | null;
  label?: string | null;
  medias?:
    | { image?: WpImageField | null; nom?: string | null; lien?: string | null }[]
    | null;
}

export interface AvantagesProduitBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  avantages?:
    | { icone?: string | null; titre?: string | null; description?: string | null }[]
    | null;
}

export interface ConstatBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  constatPoints?: { titre?: string | null; description?: string | null }[] | null;
  image?: WpImageField | null;
  note?: string | null;
}

export interface CoolRoofExplainerBlock {
  __typename: string;
  origine?: string | null;
  titre?: string | null;
  paragraphe?: string | null;
  image?: WpImageField | null;
  note?: string | null;
  cta?: WpCta | null;
}

export interface ApplicateursBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  applicateursBenefices?: { texte?: string | null }[] | null;
  image?: WpImageField | null;
  cta?: WpCta | null;
}

export interface GrilleFrictionsBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  frictionsItems?:
    | {
        image?: WpImageField | null;
        kicker?: string | null;
        titre?: string | null;
        description?: string | null;
      }[]
    | null;
}

export interface PrincipeCoolRoofBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  classicTitre?: string | null;
  classicPoint?: string | null;
  classicImage?: WpImageField | null;
  coolTitre?: string | null;
  coolPoint?: string | null;
  coolImage?: WpImageField | null;
  principeBenefices?:
    | { icone?: string | null; label?: string | null }[]
    | null;
  ctaLabel?: string | null;
  ctaHref?: string | null;
}

export interface SystemeCouchesBlock {
  __typename?: string;
  origine?: string | null;
  entete?: WpEntete | null;
  image?: WpImageField | null;
  couchesEtapes?:
    | {
        num?: string | null;
        titre?: string | null;
        description?: string | null;
        expert?: string | null;
      }[]
    | null;
}

export interface GrilleCardsBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  cards?:
    | {
        icone?: string | null;
        titre?: string | null;
        texte?: string | null;
        image?: WpImageField | null;
        lien?: string | null;
      }[]
    | null;
  colonnes?: "2" | "3" | "4" | string | null;
  theme?: "clair" | "sombre" | "accent" | string | null;
  transition?: string | null;
}

export interface TexteImageBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  contenu?: string | null;
  image?: WpImageField | null;
  positionImage?: "gauche" | "droite" | string | null;
  liste?: { texte?: string | null }[] | null;
  note?: string | null;
  cta?: WpCta | null;
}

export interface ChiffresBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  figures?:
    | { value?: string | null; label?: string | null; sublabel?: string | null }[]
    | null;
  theme?: "clair" | "sombre" | string | null;
}

export interface TableauComparatifBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  entetesColonnes?: { texte?: string | null }[] | null;
  lignesComparatif?: { cellules?: { texte?: string | null }[] | null }[] | null;
  colonneMiseEnAvant?: number | null;
  texteApres?: string | null;
  cta?: WpCta | null;
}

export interface TableauSituationsBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  lignesSituations?:
    | {
        situation?: string | null;
        recommandation?: string | null;
        justification?: string | null;
      }[]
    | null;
  cta?: WpCta | null;
}

export interface EtapesBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  etapes?:
    | { titre?: string | null; texte?: string | null; image?: WpImageField | null }[]
    | null;
  reassurance?: string | null;
  videoUrl?: string | null;
}

export interface FaqBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  questions?: { question?: string | null; reponse?: string | null }[] | null;
  jsonLd?: boolean | null;
  cta?: WpCta | null;
}

export interface CtaBlock {
  __typename: string;
  origine?: string | null;
  variante?: "mid" | "final" | "banner" | string | null;
  titre?: string | null;
  texte?: string | null;
  reassurances?: { texte?: string | null }[] | null;
  ctaPrimaire?: WpCta | null;
  ctaSecondaire?: WpCta | null;
  formulaireHubspot?: WpHubspotFormConnection | null;
  hubspotFormId?: string | null;
}

export interface TemoignagesVideoBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  temoignages?:
    | {
        videoUrl?: string | null;
        citation?: string | null;
        nom?: string | null;
        role?: string | null;
        entreprise?: string | null;
        contexte?: string | null;
      }[]
    | null;
}

export interface VideoBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  videoUrl?: string | null;
  pointsCles?: { label?: string | null; texte?: string | null }[] | null;
}

export interface LogosBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  source?: "clients" | "presse" | "custom" | string | null;
  logosCustom?:
    | { image?: WpImageField | null; nom?: string | null; lien?: string | null }[]
    | null;
}

export interface CitationBlock {
  __typename: string;
  origine?: string | null;
  texte?: string | null;
  auteur?: string | null;
  role?: string | null;
  photo?: WpImageField | null;
}

export interface ContenuSeoBlock {
  __typename: string;
  origine?: string | null;
  intro?: string | null;
  sections?: { titre?: string | null; contenu?: string | null }[] | null;
  sources?: { label?: string | null; url?: string | null }[] | null;
  replie?: boolean | null;
}

export interface CompatibiliteSupportsBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  supports?:
    | { type?: string | null; detail?: string | null; image?: WpImageField | null }[]
    | null;
  noteCouverture?: string | null;
  rendu?: "tabs" | "grille" | string | null;
}

export interface GrilleSecteursBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  mode?: "auto" | "manuel" | string | null;
  secteurs?: WpRelConnection | null;
}

export interface GrilleSolutionsBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  produits?: WpRelConnection<WpRelProduitNode> | null;
  affichage?: "cards" | "compact" | string | null;
}

export interface ReferencesGrilleBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  mode?: "toutes" | "secteur" | "manuel" | string | null;
  secteur?: WpTermConnection | null;
  limite?: number | null;
  referencesManuel?: WpRelConnection | null;
  filtres?: boolean | null;
}

export interface TimelineBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  jalons?:
    | {
        annee?: string | null;
        titre?: string | null;
        texte?: string | null;
        image?: WpImageField | null;
      }[]
    | null;
}

export interface ComposantReactBlock {
  __typename: string;
  origine?: string | null;
  composant?:
    | "simulateur_energie"
    | "diagnostic_toiture"
    | "estimation"
    | "climate_dashboard"
    | "applicateur_screener"
    | "formulaire_hubspot"
    | "carte_intervention"
    | string
    | null;
  titre?: string | null;
  formulaireHubspot?: WpHubspotFormConnection | null;
  hubspotFormId?: string | null;
}

// ---------------------------------------------------------------------------
// Layouts spécifiques (5)
// ---------------------------------------------------------------------------

export interface SpecsTechniquesBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  colonnesSpecs?: { nom?: string | null }[] | null;
  lignesSpecs?:
    | { label?: string | null; valeurs?: { texte?: string | null }[] | null }[]
    | null;
  colonneMiseEnAvant?: number | null;
  ficheTechnique?: WpFileField | null;
}

export interface CertificationsBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  itemsCertifications?:
    | { logo?: WpImageField | null; nom?: string | null; description?: string | null }[]
    | null;
}

export interface VariantesProduitBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  variantes?:
    | {
        nom?: string | null;
        description?: string | null;
        garantie?: string | null;
        sri?: string | null;
        usage?: string | null;
      }[]
    | null;
}

export interface AvantApresBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  imageAvant?: WpImageField | null;
  imageApres?: WpImageField | null;
  legendeAvant?: string | null;
  legendeApres?: string | null;
}

export interface FicheChantierBlock {
  __typename: string;
  origine?: string | null;
  afficher?: boolean | null;
}

export interface ProduitShowcaseBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  showcaseVariantes?:
    | {
        nom?: string | null;
        usage?: string | null;
        description?: string | null;
        image?: WpImageField | null;
      }[]
    | null;
  note?: string | null;
}

export interface DuelComparatifBlock {
  __typename: string;
  origine?: string | null;
  entete?: WpEntete | null;
  duelCartes?:
    | {
        titre?: string | null;
        label?: string | null;
        tone?: string | null;
        image?: WpImageField | null;
        metric?: string | null;
        metricLabel?: string | null;
        duelCartesArguments?: { texte?: string | null }[] | null;
      }[]
    | null;
  duelPointsCles?: { icone?: string | null; label?: string | null }[] | null;
  transition?: string | null;
}

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;
}

export interface WinterObjectionBlock {
  __typename: string;
  origine?: string | null;
  titre?: string | null;
  intro?: string | null;
  paragraphe1?: string | null;
  paragraphe2?: string | null;
  image?: WpImageField | null;
}

export interface RseSectionBlock {
  __typename: string;
  origine?: string | null;
  badge?: string | null;
  titre?: string | null;
  rseItems?:
    | { icone?: string | null; titre?: string | null; texte?: string | null }[]
    | null;
  image?: WpImageField | null;
}

export interface IndustrieHeroBlock {
  __typename: string;
  origine?: string | null;
  eyebrow?: string | null;
  titre?: string | null;
  lead?: string | null;
  image?: WpImageField | null;
  badgeTitre?: string | null;
  industrieHeroStats?:
    | { icone?: string | null; value?: string | null; label?: string | null }[]
    | null;
  ctaPrimaire?: WpCta | null;
  ctaSecondaire?: WpCta | null;
}

export interface SecteurHeroBlock {
  __typename: string;
  origine?: string | null;
  eyebrow?: string | null;
  titre?: string | null;
  lead?: string | null;
  image?: WpImageField | null;
  ctaLabel?: string | null;
  secteurStats?:
    | { icone?: string | null; value?: string | null; label?: string | null }[]
    | null;
  secteurLogos?:
    | { name?: string | null; logo?: WpImageField | null }[]
    | null;
  logosTitle?: string | null;
}

export interface RoofHeroBlock {
  __typename: string;
  origine?: string | null;
  breadcrumb?: string | null;
  titre?: string | null;
  lead?: string | null;
  image?: WpImageField | null;
  roofHeroStats?: { value?: string | null; label?: string | null }[] | null;
}

// ---------------------------------------------------------------------------
// Union des sections
// ---------------------------------------------------------------------------

export type WpSection =
  | HeroBlock
  | BarreReassuranceBlock
  | GrilleCardsBlock
  | TexteImageBlock
  | ChiffresBlock
  | TableauComparatifBlock
  | TableauSituationsBlock
  | EtapesBlock
  | FaqBlock
  | CtaBlock
  | TemoignagesVideoBlock
  | VideoBlock
  | LogosBlock
  | CitationBlock
  | ContenuSeoBlock
  | CompatibiliteSupportsBlock
  | GrilleSecteursBlock
  | GrilleSolutionsBlock
  | ReferencesGrilleBlock
  | TimelineBlock
  | ComposantReactBlock
  | SpecsTechniquesBlock
  | CertificationsBlock
  | VariantesProduitBlock
  | AvantApresBlock
  | FicheChantierBlock
  | ProduitShowcaseBlock
  | DuelComparatifBlock
  | PrimeCeeBlock
  | WinterObjectionBlock
  | RseSectionBlock
  | IndustrieHeroBlock
  | SecteurHeroBlock;

/** Champ group `sections` (field group) → flexible `sections`. */
export interface WpSectionsField {
  sections?: WpSection[] | null;
}

// ---------------------------------------------------------------------------
// Groupes structurés hors flexible
// ---------------------------------------------------------------------------

export interface WpFicheProduit {
  productName?: string | null;
  tagline?: string | null;
  accentColor?: string | null;
  garantie?: string | null;
  sri?: string | null;
  prix?: string | null;
  ficheTechniquePdf?: WpFileField | null;
}

export interface WpFicheReference {
  clientName?: string | null;
  location?: string | null;
  produit?: WpRelConnection<WpRelProduitNode> | null;
  support?: string | null;
  surface?: string | null;
  metrics?: { value?: string | null; label?: string | null }[] | null;
  quote?: {
    texte?: string | null;
    auteur?: string | null;
    role?: string | null;
  } | null;
  videoUrl?: string | null;
  showInGrid?: boolean | null;
}

export interface WpLieuReference {
  nom?: string | null;
  slug?: string | null;
  typeZone?: string | null;
}

export interface WpFicheLieu {
  pageType?: "ville" | "departement" | "region" | string | string[] | null;
  pays?: "FR" | "CH" | "BE" | string | string[] | null;
  ville?: string | null;
  departement?: string | null;
  departementNom?: string | null;
  departementNum?: string | null;
  region?: string | null;
  typeZone?: string | null;
  slugVille?: string | null;
  slugDepartement?: string | null;
  slugRegion?: string | null;
  isDepartementPage?: boolean | null;
  heroImage?: WpImageField | null;
  heroImageCredit?: string | null;
  heroImageSource?: string | null;
  villesDepartement?: WpLieuReference[] | null;
  villesProches?: { nom?: string | null }[] | null;
  maillage?: WpLieuReference[] | null;
  maillageScope?: string | string[] | null;
  climatDescription?: string | null;
  zoneClimatique?: "H1" | "H2" | "H3" | string | string[] | null;
  zoneClimatiqueCee?: "H1" | "H2" | "H3" | string | string[] | null;
  descriptionClimatique?: string | null;
  joursSup30c?: number | null;
  tempMoyEstivale?: number | null;
  picHistorique?: number | null;
  joursSup30c10ans?: number | null;
  tempMoyEstivale10ans?: number | null;
  joursSup30c20ans?: number | null;
  tempMoyEstivale20ans?: number | null;
  reductionSousToiture?: number | null;
  introSection?: {
    hook?: string | null;
    accroche?: string | null;
    kpis?: { value?: string | null; label?: string | null }[] | null;
    contexte?: string | null;
    coutCache?: string | null;
    trustLine?: string | null;
    urgenceLine?: string | null;
  } | null;
  content?: {
    activitesIntro?: string | null;
    secteurs?:
      | {
          label?: string | null;
          image?: WpImageField | string | null;
          stat?: string | null;
          description?: string | null;
        }[]
      | null;
    problemeTitlePart1?: string | null;
    problemeTitlePart2?: string | null;
    problemeParagraph?: string | null;
    solutionTitlePart1?: string | null;
    solutionTitlePart2?: string | null;
    solutionParagraph?: string | null;
    preuveBigStat1?: string | null;
    preuveBigStat2?: string | null;
    preuveParagraph?: string | null;
  } | null;
  seoContent?: {
    h2?: string | null;
    intro?: string | null;
    sections?: { h3?: string | null; content?: string | null }[] | null;
  } | null;
}

// ---------------------------------------------------------------------------
// Options du site (page d'options ACF, graphql `optionsSite`, 6 onglets)
// ---------------------------------------------------------------------------

export interface WpMenuSousItem {
  label?: string | null;
  lien?: string | null;
  description?: string | null;
}

export interface WpMenuItem {
  label?: string | null;
  lien?: string | null;
  sousItems?: WpMenuSousItem[] | null;
}

export interface WpColonneFooter {
  titre?: string | null;
  liens?: { label?: string | null; lien?: string | null }[] | null;
}

export interface WpReseauSocial {
  reseau?: "linkedin" | "youtube" | "instagram" | "x" | string | null;
  url?: string | null;
}

export interface WpOptionsSite {
  // 1. Navigation
  menuPrincipal?: WpMenuItem[] | null;
  ctaNavbar?: WpCta | null;
  // 2. Footer
  colonnesFooter?: WpColonneFooter[] | null;
  texteLegal?: string | null;
  reseauxSociaux?: WpReseauSocial[] | null;
  // 3. Coordonnées
  telephone?: string | null;
  email?: string | null;
  adresse?: string | null;
  horaires?: string | null;
  // 4. CTA globaux
  stickyCtaLabel?: string | null;
  stickyCtaLien?: string | null;
  reassurancesDefaut?: { texte?: string | null }[] | null;
  // 5. Preuves
  logosClients?: { image?: WpImageField | null; nom?: string | null }[] | null;
  logosPresse?:
    | { image?: WpImageField | null; nom?: string | null; lien?: string | null }[]
    | null;
  chiffresCles?: { value?: string | null; label?: string | null }[] | null;
  // 6. SEO défaut
  ogImageDefaut?: WpImageField | null;
  suffixeTitle?: string | null;
}

export interface WpChatbotSettings {
  enabled?: boolean | null;
  widgetUrl?: string | null;
}

// ---------------------------------------------------------------------------
// Contenus principaux (retours de queries)
// ---------------------------------------------------------------------------

export interface WpPage {
  id: string;
  title?: string | null;
  uri?: string | null;
  seo?: WpSeo | null;
  sections?: WpSectionsField | null;
  language?: WpLanguage | null;
  translations?: WpPage[] | null;
}

export interface WpProduit {
  id: string;
  slug?: string | null;
  title?: string | null;
  seo?: WpSeo | null;
  ficheProduit?: WpFicheProduit | null;
  sections?: WpSectionsField | null;
  language?: WpLanguage | null;
  translations?: WpProduit[] | null;
}

export interface WpToiture {
  id: string;
  slug?: string | null;
  title?: string | null;
  seo?: WpSeo | null;
  sections?: WpSectionsField | null;
  language?: WpLanguage | null;
  translations?: WpToiture[] | null;
}

export interface WpIndustrie {
  id: string;
  slug?: string | null;
  title?: string | null;
  seo?: WpSeo | null;
  sections?: WpSectionsField | null;
  language?: WpLanguage | null;
  translations?: WpIndustrie[] | null;
}

export interface WpReference {
  id: string;
  slug?: string | null;
  title?: string | null;
  seo?: WpSeo | null;
  ficheReference?: WpFicheReference | null;
  secteurs?: WpTermConnection | null;
  sections?: WpSectionsField | null;
  language?: WpLanguage | null;
  translations?: WpReference[] | null;
}

export interface WpLieu {
  id: string;
  slug?: string | null;
  title?: string | null;
  seo?: WpSeo | null;
  ficheLieu?: WpFicheLieu | null;
}
