# Sveltia CMS configuration
# Drop-in compatible with Decap CMS config format.
# Docs: https://sveltia.com/docs/configuration/backend

# In local development, swap the `backend` block for:
#   backend:
#     name: test-repo
# to edit without GitHub auth. Before deploying, restore the github
# backend + fill in the OAuth proxy URL.

backend:
  name: github
  repo: YOUR_GITHUB_ORG/YOUR_REPO
  branch: main
  base_url: https://freudeakademie-oauth.YOUR-SUBDOMAIN.workers.dev
  auth_endpoint: api/v1/auth

publish_mode: editorial_workflow
site_url: https://freudeakademie.pages.dev
display_url: https://freudeakademie.pages.dev
logo_url: /images/logo.svg
search_engine: true
locale: en

media_folder: public/images/uploads
public_folder: /images/uploads

# Rich-text editor used in CMS fields marked `widget: markdown` or `body`.
rich_text_editor:
  - markdown

# ─────────────  COLLECTIONS  ─────────────
collections:
  # Generic "pages" collection (about, contact, services, etc.),
  # fully editable from the CMS — these become static pages at
  # build time thanks to the dynamic route in src/pages/[slug].astro.
  - name: pages
    label: Halaman
    label_singular: Halaman
    folder: src/content/pages
    create: true
    slug: '{{slug}}'
    extension: md
    format: yaml-frontmatter
    summary: '{{title}} — {{nav_label}}'
    sortable_fields: ['title', 'nav_label', 'weight']
    fields:
      - { label: Judul Halaman, name: title, widget: string }
      - { label: Label Menu, name: nav_label, widget: string }
      - { label: Urutan Menu, name: weight, widget: number, default: 0, value_type: int, min: 0 }
      - { label: Deskripsi Singkat, name: description, widget: text, required: false }
      - { label: Tampilkan di Menu, name: show_in_nav, widget: boolean, default: true }
      - { label: Hero Sub-judul, name: hero_subtitle, widget: text, required: false }
      - { label: Konten Halaman, name: body, widget: markdown }

  # Blog-style articles (German learning tips, grammar, etc.)
  - name: articles
    label: Artikel
    label_singular: Artikel
    folder: src/content/articles
    create: true
    slug: '{{year}}-{{month}}-{{day}}-{{slug}}'
    extension: md
    format: yaml-frontmatter
    summary: '{{title}} — {{author}}'
    sortable_fields: ['title', 'date', 'author']
    fields:
      - { label: Judul, name: title, widget: string }
      - { label: Ringkasan, name: description, widget: text }
      - { label: Penulis, name: author, widget: string, default: 'Tim Freude' }
      - { label: Tanggal, name: date, widget: datetime, picker_utc: false, format: 'YYYY-MM-DD HH:mm' }
      - { label: Gambar Sampul, name: cover, widget: image, required: false, allow_multiple: false }
      - { label: Tag, name: tags, widget: list, required: false, default: ['Bahasa Jerman'] }
      - { label: Tayang, name: draft, widget: boolean, default: false, hint: 'Centang untuk menyembunyikan dari publik' }
      - { label: Konten, name: body, widget: markdown }

  # News / announcements (pengumuman)
  - name: news
    label: Berita & Pengumuman
    label_singular: Berita
    folder: src/content/news
    create: true
    slug: '{{year}}-{{month}}-{{day}}-{{slug}}'
    extension: md
    format: yaml-frontmatter
    summary: '{{title}} — {{date | date("YYYY-MM-DD")}}'
    sortable_fields: ['title', 'date', 'pinned']
    fields:
      - { label: Judul, name: title, widget: string }
      - { label: Ringkasan, name: description, widget: text, required: false }
      - { label: Tanggal, name: date, widget: datetime, picker_utc: false, format: 'YYYY-MM-DD HH:mm' }
      - { label: Gambar, name: cover, widget: image, required: false, allow_multiple: false }
      - { label: Disematkan, name: pinned, widget: boolean, default: false, hint: 'Tampil di paling atas daftar' }
      - { label: Tayang, name: draft, widget: boolean, default: false }
      - { label: Konten, name: body, widget: markdown }

  # Course offerings (German language programs) — drives the
  # /layanan page. Single source of truth, edited from CMS.
  - name: courses
    label: Program Kursus
    label_singular: Kursus
    folder: src/content/courses
    create: true
    slug: '{{level}}'
    extension: md
    format: yaml-frontmatter
    summary: '{{title}} ({{level_label}}) — {{price}}'
    sortable_fields: ['title', 'level', 'price']
    fields:
      - label: Identitas
        name: identitas
        widget: object
        collapsed: false
        fields:
          - { label: Judul Program, name: title, widget: string }
          - { label: Kode Level, name: level, widget: select, options: ['a1','a2','b1','b2','c1','c2','kinder','konversation','exam'], default: 'a1' }
          - { label: Label Level, name: level_label, widget: string, hint: 'Mis. A1 — Pemula' }
          - { label: Harga, name: price, widget: string, hint: 'Mis. Rp 1.200.000 / 8 pertemuan' }
      - label: Konten
        name: konten
        widget: object
        collapsed: true
        fields:
          - { label: Ringkasan, name: summary, widget: text }
          - { label: Deskripsi Panjang, name: body, widget: markdown }
          - { label: Yang Akan Dipelajari, name: outcomes, widget: list, field: { label: Poin, name: poin, widget: string } }
          - { label: Cocok Untuk, name: audience, widget: string, required: false }
          - { label: Durasi, name: duration, widget: string, required: false, hint: 'Mis. 8 minggu • 16 SKS' }
          - { label: Gambar Sampul, name: cover, widget: image, required: false, allow_multiple: false }
      - { label: Urutan Tampil, name: weight, widget: number, default: 0, value_type: int, min: 0 }
      - { label: Tayang, name: draft, widget: boolean, default: false }
