# Decap CMS — Énergie Solaire Québec
# Admin : /admin/
#
# Login en ligne : OAuth GitHub via Cloudflare Functions (/api/auth)
# Login local    : npm run cms  +  npm run dev  (local_backend)

local_backend: true

backend:
  name: github
  repo: chrisboulet/esq-quebec
  branch: main
  # Repo privé → scope string (pas un tableau)
  auth_scope: repo
  # OAuth hébergé sur notre démo Cloudflare (pas Netlify — sinon « not-found »)
  site_domain: esq-quebec-demo.pages.dev
  base_url: https://esq-quebec-demo.pages.dev
  auth_endpoint: api/auth

commit_messages:
  create: "cms: créer {{collection}} « {{slug}} »"
  update: "cms: mettre à jour {{collection}} « {{slug}} »"
  delete: "cms: supprimer {{collection}} « {{slug}} »"
  uploadMedia: "cms: média « {{path}} »"
  deleteMedia: "cms: retirer média « {{path}} »"

media_folder: public/media/uploads
public_folder: /media/uploads

locale: fr

collections:
  - name: articles
    label: Articles
    label_singular: Article
    folder: src/content/articles
    create: true
    delete: true
    slug: "{{slug}}"
    extension: json
    format: json
    identifier_field: title
    summary: "{{title}} ({{dateLabel}})"
    fields:
      - { label: "Slug (URL)", name: slug, widget: string, hint: "ex. solaire-now" }
      - { label: "Titre", name: title, widget: string }
      - { label: "Date (ISO)", name: date, widget: datetime, date_format: "YYYY-MM-DD", time_format: false, format: "YYYY-MM-DD" }
      - { label: "Date affichée", name: dateLabel, widget: string, required: false }
      - { label: "Auteur", name: author, widget: string, default: "Patrick Goulet" }
      - { label: "Extrait", name: excerpt, widget: text, required: false }
      - { label: "Image à la une", name: featured, widget: image, required: false }
      - { label: "Corps (HTML)", name: body, widget: text }

  - name: ca
    label: Membres du CA
    label_singular: Membre
    folder: src/content/ca
    create: true
    delete: true
    slug: "{{slug}}"
    extension: json
    format: json
    identifier_field: name
    summary: "{{order}} — {{name}}"
    sortable_fields: ["order", "name"]
    fields:
      - { label: "Ordre d'affichage", name: order, widget: number, value_type: int, default: 10 }
      - { label: "Nom", name: name, widget: string }
      - { label: "Rôle", name: role, widget: string }
      - { label: "Photo", name: photo, widget: image, required: false }
      - { label: "Biographie", name: bio, widget: text }

  - name: pages
    label: Pages
    label_singular: Page
    folder: src/content/pages
    create: false
    delete: false
    slug: "{{slug}}"
    extension: json
    format: json
    identifier_field: title
    summary: "{{title}}"
    fields:
      - { label: "Slug", name: slug, widget: string }
      - { label: "Titre", name: title, widget: string }
      - { label: "Contenu (HTML)", name: body, widget: text }
      - { label: "Modifié le", name: modified, widget: string, required: false }

  # Répertoire installateurs / consultants
  - name: repertoire
    label: Répertoire
    label_singular: Fiche entreprise
    folder: src/content/repertoire
    create: true
    delete: true
    slug: "{{slug}}"
    extension: json
    format: json
    identifier_field: name
    summary: "{{name}} — {{city}} [{{status}}]"
    sortable_fields: ["name", "city", "status"]
    view_filters:
      - { label: "Publiées", field: status, pattern: published }
      - { label: "En attente", field: status, pattern: pending }
      - { label: "Archivées", field: status, pattern: archived }
    fields:
      - label: "Statut"
        name: status
        widget: select
        options:
          - { label: "Publiée (visible)", value: published }
          - { label: "En attente", value: pending }
          - { label: "Archivée", value: archived }
        default: pending
      - { label: "Nom de l'entreprise", name: name, widget: string }
      - { label: "Adresse (texte complet)", name: address, widget: string, required: false }
      - { label: "Rue", name: street, widget: string, required: false }
      - { label: "Bureau / unité", name: unit, widget: string, required: false }
      - { label: "Ville", name: city, widget: string, required: false }
      - { label: "Province", name: province, widget: string, default: "QC", required: false }
      - { label: "Code postal", name: postal, widget: string, required: false }
      - { label: "Pays", name: country, widget: string, default: "Canada", required: false }
      - { label: "Téléphone", name: phone, widget: string, required: false }
      - { label: "Courriel", name: email, widget: string, required: false }
      - { label: "Site web", name: website, widget: string, required: false }
      - { label: "N° RBQ", name: rbq, widget: string, required: false }
      - label: "Métiers"
        name: metiers
        widget: select
        multiple: true
        required: false
        options:
          - Photovoltaïque
          - Consultant
          - Thermique
      - label: "Services (filtres)"
        name: services
        widget: select
        multiple: true
        required: false
        options:
          - Autonome
          - Réseau
          - Résidentiel / chalet
          - Commercial / industriel
          - Véhicules récréatifs
          - Chauffe-eau
          - Chauffe-air
          - Chauffe-piscine
          - Stockage
          - Formation
          - Distribution
      - label: "Détails de services (libellés carte)"
        name: serviceDetails
        widget: list
        required: false
        summary: "{{label}} — {{value}}"
        fields:
          - { label: "Libellé", name: label, widget: string }
          - { label: "Valeur", name: value, widget: string, required: false }
      - { label: "Description (HTML ou texte)", name: description, widget: text, required: false }
      - { label: "Membre CMEQ", name: membreCmeq, widget: boolean, default: false, required: false }
      - label: "Certifications"
        name: certifications
        widget: list
        required: false
        field: { label: "Certification", name: item, widget: string }
      - label: "Formations"
        name: formations
        widget: list
        required: false
        field: { label: "Formation", name: item, widget: string }
      - { label: "Notes internes / affichées", name: notes, widget: text, required: false, hint: "Une note par ligne" }
      - { label: "Latitude", name: lat, widget: number, value_type: float, required: false }
      - { label: "Longitude", name: lng, widget: number, value_type: float, required: false }
      - label: "IDs source (import WPGMZA)"
        name: sourceIds
        widget: list
        required: false
        field: { label: "ID", name: item, widget: string }
