# GENERATED by scripts/generate-cms-config.mjs from lib/content-schema.ts – do not edit by hand.
backend:
  name: github
  repo: lgh-edsf/lgh-webpage
  branch: main
  base_url: https://lgh-cms.yzi.ch
  auth_endpoint: auth
  auth_methods:
    - oauth
  commit_messages:
    create: 'content: add {{collection}} "{{slug}}"'
    update: 'content: update {{collection}} "{{slug}}"'
    delete: 'content: remove {{collection}} "{{slug}}"'
    uploadMedia: 'content: upload image "{{path}}"'
    deleteMedia: 'content: remove image "{{path}}"'
publish_mode: editorial_workflow
app_title: LG Hotzenwald – Inhalte
site_url: https://lgh.yzi.ch
display_url: https://lgh.yzi.ch
media_folder: /public/images/aktuelles
public_folder: /images/aktuelles
collections:
  - name: startseite
    label: Startseite
    description: Hinweis-Banner und Termine, die auf der Startseite erscheinen.
    publish: false
    files:
      - name: announcement
        label: Hinweis-Banner
        file: content/announcement.json
        format: json
        fields:
          - name: enabled
            label: Banner anzeigen
            hint: Ausgeschaltet wird das Banner auf der Website nicht angezeigt.
            required: true
            widget: boolean
            default: false
          - name: message
            label: Text
            hint: Kurzer Satz, der oben auf jeder Seite steht.
            required: true
            widget: string
          - name: linkHref
            label: Link-Ziel
            hint: Seite der Website, z. B. /schnupperflugtag/ – oder eine vollständige Adresse mit https://
            required: true
            widget: string
          - name: linkLabel
            label: Link-Beschriftung
            hint: z. B. „Zur Anmeldung“
            required: true
            widget: string
      - name: events
        label: Termine
        file: content/events.json
        format: json
        fields:
          - name: events
            label: Termine
            label_singular: Termin
            widget: list
            root: true
            summary: "{{title}} – {{date}}"
            fields:
              - name: title
                label: Titel
                required: true
                widget: string
              - name: date
                label: Datum (Anzeige)
                hint: So steht es auf der Website, z. B. „15.05. – 22.05.2027“ oder „Sommer 2027“.
                required: true
                widget: string
              - name: startDate
                label: Beginn (für Google)
                hint: Optional. Nur bei einem genauen Datum – damit Google den Termin in der Suche anzeigen kann.
                required: false
                widget: datetime
                type: date
                format: YYYY-MM-DD
              - name: endDate
                label: Ende (für Google)
                hint: Optional, nur bei mehrtägigen Terminen. Nicht vor dem Beginn.
                required: false
                widget: datetime
                type: date
                format: YYYY-MM-DD
              - name: href
                label: Link
                hint: Optional. Seite der Website, z. B. /flugplatzfeste/ – oder eine vollständige Adresse.
                required: false
                widget: string
              - name: external
                label: Externer Link
                hint: Einschalten, wenn der Link auf eine andere Website zeigt.
                required: false
                widget: boolean
                default: false
  - name: aktuelles
    label: Aktuelles
    label_singular: Beitrag
    description: Beiträge unter „Aktuelles“.
    publish: false
    folder: content/aktuelles
    extension: json
    format: json
    create: true
    slug: "{{fields.date}}-{{title}}"
    summary: "{{date}} – {{title}}"
    identifier_field: title
    sortable_fields:
      - date
      - title
    media_folder: /public/images/aktuelles
    public_folder: /images/aktuelles
    fields:
      - name: date
        label: Datum
        hint: Veröffentlichungsdatum des Beitrags.
        required: true
        widget: datetime
        type: date
        format: YYYY-MM-DD
      - name: title
        label: Titel
        required: true
        widget: string
      - name: teaser
        label: Kurztext
        hint: Erscheint in der Übersicht unter „Aktuelles“ (zwei bis drei Sätze).
        required: true
        widget: text
      - name: slug
        label: Adresse des Beitrags
        hint: Optional. Nur Kleinbuchstaben, Ziffern und Bindestriche, z. B. „schnupperflugtag-2027“. Mit Adresse bekommt der Beitrag eine eigene Seite; ohne erscheint nur der Kurztext in der Übersicht.
        required: false
        widget: string
        pattern:
          - ^[a-z0-9]+(-[a-z0-9]+)*$
          - Nur Kleinbuchstaben, Ziffern und Bindestriche (keine Umlaute, keine Leerzeichen)
      - name: link
        label: Weiterlesen führt woanders hin
        hint: Optional. Statt einer eigenen Beitragsseite auf eine bestehende Seite verweisen.
        required: false
        widget: object
        fields:
          - name: href
            label: Link-Ziel
            hint: Seite der Website, z. B. /schnupperflugtag/ – oder eine vollständige Adresse.
            required: true
            widget: string
          - name: external
            label: Externer Link
            hint: Einschalten, wenn der Link auf eine andere Website zeigt.
            required: false
            widget: boolean
            default: false
      - name: image
        label: Titelbild
        hint: Optional. Erscheint in der Übersicht und über dem Beitrag.
        required: false
        widget: object
        fields:
          - name: src
            label: Bild
            hint: Foto hierher ziehen, „Durchsuchen“ klicken oder ein kopiertes Bild mit „Bild einfügen“ übernehmen.
            required: true
            widget: image
            choose_url: false
            accept: image/*
            media_folder: /public/images/aktuelles
            public_folder: /images/aktuelles
          - name: alt
            label: Bildbeschreibung (Alt-Text)
            hint: "Pflicht. Ein Satz: Was ist auf dem Bild zu sehen? Wird blinden Menschen vorgelesen."
            required: true
            widget: string
          - name: caption
            label: Bildunterschrift
            hint: Optional.
            required: false
            widget: string
      - name: content
        label: Inhalt
        label_singular: Baustein
        widget: list
        required: true
        typeKey: type
        types:
          - name: paragraph
            label: Absatz
            widget: object
            fields:
              - name: content
                label: Text
                required: true
                widget: text
          - name: heading
            label: Zwischenüberschrift
            widget: object
            fields:
              - name: content
                label: Überschrift
                required: true
                widget: string
              - name: level
                label: Ebene
                hint: 2 = große, 3 = mittlere, 4 = kleine Zwischenüberschrift
                required: false
                widget: number
                value_type: int
                min: 2
                max: 4
                default: 2
          - name: image
            label: Bild
            widget: object
            fields:
              - name: image
                label: Bild
                required: true
                widget: object
                fields:
                  - name: src
                    label: Bild
                    hint: Foto hierher ziehen, „Durchsuchen“ klicken oder ein kopiertes Bild mit „Bild einfügen“ übernehmen.
                    required: true
                    widget: image
                    choose_url: false
                    accept: image/*
                    media_folder: /public/images/aktuelles
                    public_folder: /images/aktuelles
                  - name: alt
                    label: Bildbeschreibung (Alt-Text)
                    hint: "Pflicht. Ein Satz: Was ist auf dem Bild zu sehen? Wird blinden Menschen vorgelesen."
                    required: true
                    widget: string
                  - name: caption
                    label: Bildunterschrift
                    hint: Optional.
                    required: false
                    widget: string
          - name: list
            label: Aufzählung
            widget: object
            fields:
              - name: items
                label: Punkte
                required: true
                widget: list
                label_singular: Punkt
          - name: quote
            label: Zitat
            widget: object
            fields:
              - name: content
                label: Zitat
                required: true
                widget: text
          - name: separator
            label: Trennlinie
            widget: object
            fields: []
