backend:
  name: github
  repo: lukepower/hotel-website2
  branch: main
  base_url: https://new.hotel-interski.com
  auth_endpoint: api/auth

media_folder: public/images
public_folder: /images

# Enable i18n
i18n:
  structure: multiple_folders
  locales: [de, en, it]
  default_locale: de

# ------------------------------------------------------------------
# Collections
# ------------------------------------------------------------------
collections:

  # ----------------------------------------------------------------
  # Site settings (single file, no i18n)
  # ----------------------------------------------------------------
  - name: settings
    label: Site Settings
    files:
      - name: site
        label: General Settings
        file: src/content/settings/site.json
        fields:
          - label: Active Season
            name: season
            widget: select
            options:
              - { label: Summer, value: summer }
              - { label: Winter, value: winter }
          - label: Summer Hero — HD (desktop ≥641px)
            name: heroVideoSummerHD
            widget: string
            hint: "R2 URL, e.g. https://assets.hotel-interski.com/video/sommer.hd.mp4"
          - label: Summer Hero — SD (mobile ≤640px)
            name: heroVideoSummerSD
            widget: string
            hint: "R2 URL, e.g. https://assets.hotel-interski.com/video/sommer.sd.mp4"
          - label: Winter Hero — HD (desktop ≥641px)
            name: heroVideoWinterHD
            widget: string
            required: false
            hint: "R2 URL for winter video, HD version"
          - label: Winter Hero — SD (mobile ≤640px)
            name: heroVideoWinterSD
            widget: string
            required: false
          - label: Hero Poster Image
            name: heroVideoPoster
            widget: image
          - label: Booking Widget HTML
            name: bookingWidgetCode
            widget: text
            hint: "Booking Südtirol widget (widget.bookingsuedtirol.com, accommodationId 10039). Change lang per language version."
          - label: Voucher Widget HTML
            name: voucherWidgetCode
            widget: text
            hint: "Yanovis coupon widget (cdn.yanovis.com, uuid 21c035ff-ba9a-4770-bdb3-df052fcce924). Change lang attribute per language."

  # ----------------------------------------------------------------
  # Hero image carousels
  # ----------------------------------------------------------------
  - name: hero_carousels
    label: "Hero Karussells"
    folder: src/content/hero-carousels
    extension: json
    format: json
    create: true
    i18n: true
    slug: "{{slug}}"
    summary: "{{pageId}}"
    fields:
      - { label: Sprache, name: lang, widget: hidden, default: '{{locale}}', i18n: true }
      - { label: Seiten-ID, name: pageId, widget: string, i18n: duplicate,
          hint: "Z. B. hotel / wandern / wellness" }
      - { label: Overlay Eyebrow, name: overlayEyebrow, widget: string, required: false, i18n: true }
      - { label: Overlay Titel, name: overlayTitle, widget: string, required: false, i18n: true }
      - label: Slides
        name: slides
        widget: list
        i18n: duplicate
        summary: "{{fields.alt}}"
        min: 1
        fields:
          - { label: Bild, name: src, widget: image, i18n: false }
          - { label: Alt Text, name: alt, widget: string, i18n: true }
          - { label: Caption, name: caption, widget: string, required: false, i18n: true }

  # ----------------------------------------------------------------
  # Pages
  # ----------------------------------------------------------------
  - name: pages
    label: "Seiten"
    folder: src/content/pages
    create: true
    i18n: true
    slug: "{{slug}}"
    summary: "{{title}} ({{section}}/{{slug}})"
    view_groups:
      - label: "Bereich"
        field: "section"
    fields:
      - { label: Seitentitel, name: title, widget: string, i18n: true }
      - { label: Untertitel, name: subtitle, widget: string, required: false, i18n: true }
      - { label: Sprache, name: lang, widget: hidden, default: '{{locale}}', i18n: true }
      - { label: Seiten-ID (sprachübergreifend identisch), name: pageId, widget: string, i18n: duplicate,
          hint: "Beispiel: hotel-overview (für DE/EN/IT gleich)" }
      - label: Bereich
        name: section
        widget: select
        i18n: duplicate
        options:
          - { label: Zimmer, value: rooms }
          - { label: Wellness, value: wellness }
          - { label: Wandern, value: hiking }
          - { label: Aktiv, value: active }
          - { label: Hotel, value: hotel }
          - { label: Val Gardena, value: valley }
          - { label: Buchen, value: book }
          - { label: Magazin, value: magazine }
          - { label: Info, value: info }
      - { label: SEO Beschreibung, name: description, widget: text, required: false, i18n: true }
      - { label: Hero Bild, name: heroImage, widget: image, required: false, i18n: false }
      - { label: Hero Video (optional), name: heroVideo, widget: file, required: false, i18n: false }
      - label: "Hero Karussell (Nur in DE editieren)"
        name: heroCarousel
        widget: list
        required: false
        i18n: duplicate
        summary: "{{fields.image}} - {{fields.video}}"
        fields:
          - { label: Bild, name: image, widget: image, i18n: false }
          - { label: Video (optional), name: video, widget: file, required: false, i18n: false }
      - { label: Slug Override (SEO-Pfad für EN/IT, z. B. 'brewery' für EN 'bierbrauerei'), name: slugOverride, widget: string, required: false, i18n: true }
      - { label: Alte URL (für Redirect-Tracking), name: oldUrl, widget: string, required: false, i18n: duplicate }
      - label: "Fotogalerie Bilder (Nur für Galerie-Seite)"
        name: photos
        widget: list
        required: false
        i18n: duplicate
        summary: "{{fields.alt}} ({{fields.category}})"
        fields:
          - { label: Bild, name: src, widget: image, i18n: false }
          - { label: Alternativtext, name: alt, widget: string, i18n: true }
          - label: Kategorie
            name: category
            widget: select
            i18n: duplicate
            options:
              - { label: Hotel, value: hotel }
              - { label: Wellness, value: wellness }
              - { label: Aktiv, value: aktiv }
      - { label: Seiteninhalt, name: body, widget: markdown, i18n: true }

  # ----------------------------------------------------------------
  # Rooms
  # ----------------------------------------------------------------
  - name: rooms
    label: "Zimmer"
    folder: src/content/rooms
    create: true
    i18n: true
    slug: "{{slug}}"
    summary: "{{title}} ({{roomId}})"
    fields:
      - { label: Zimmertitel, name: title, widget: string, i18n: true }
      - { label: Untertitel, name: subtitle, widget: string, required: false, i18n: true }
      - { label: Sprache, name: lang, widget: hidden, default: '{{locale}}', i18n: true }
      - { label: Zimmer-ID (sprachübergreifend identisch), name: roomId, widget: string, i18n: duplicate,
          hint: "Beispiel: sella (für DE/EN/IT gleich)" }
      - { label: SEO Beschreibung, name: description, widget: text, required: false, i18n: true }
      - { label: Hero Bild, name: heroImage, widget: image, required: false, i18n: false }
      - label: Galerie Bilder
        name: gallery
        widget: list
        required: false
        i18n: false
        field: { label: Bild, widget: image }
      - { label: Mindestbelegung (Personen), name: minPersons, widget: number, value_type: int, default: 2, required: false, i18n: false }
      - { label: Maximalbelegung (Personen), name: maxPersons, widget: number, value_type: int, default: 4, required: false, i18n: false }
      - label: Balkon
        name: balcony
        widget: select
        required: false
        i18n: false
        options:
          - { label: "Ja (Balkon/Terrasse)", value: yes }
          - { label: "Teilweise (großteils mit Balkon)", value: partially }
          - { label: "Nein (kein Balkon)", value: no }
        default: yes
      - { label: Südblick (Blick nach Süden/Langkofel/Plattkofel), name: viewSouth, widget: boolean, default: false, required: false, i18n: false }
      - { label: Slug Override (SEO-Pfad für EN/IT, z. B. 'dolomiti-comfort'), name: slugOverride, widget: string, required: false, i18n: true }
      - { label: Zimmergröße, name: sizeBadge, widget: string, required: false, i18n: true, hint: "Z.B. 25m²" }
      - { label: Personenanzahl, name: capacityBadge, widget: string, required: false, i18n: true, hint: "Z.B. für 1 - 3 Personen" }
      - { label: Preis ab, name: price, widget: string, required: false, i18n: true, hint: "Z.B. ab 135,00 €" }
      - { label: Preis Hinweis, name: priceNote, widget: string, required: false, i18n: true, hint: "Z.B. pro Person/Übernachtung inkl. Verwöhnpension" }
      - { label: Subnavigation, name: subnavKey, widget: hidden, default: rooms, i18n: duplicate }
      - { label: Zimmerbeschreibung, name: body, widget: markdown, i18n: true }

  # ----------------------------------------------------------------
  # Offers
  # ----------------------------------------------------------------
  - name: offers
    label: "Angebote"
    folder: src/content/offers
    create: true
    i18n: true
    slug: "{{slug}}"
    fields:
      - { label: Title, name: title, widget: string, i18n: true }
      - { label: Subtitle, name: subtitle, widget: string, required: false, i18n: true }
      - { label: Language, name: lang, widget: hidden, default: '{{locale}}', i18n: true }
      - { label: Offer ID, name: offerId, widget: string, i18n: duplicate }
      - { label: Teaser Image, name: image, widget: image, required: false, i18n: false }
      - { label: Price (display string), name: price, widget: string, required: false, i18n: true,
          hint: "e.g. € 350 pro Person" }
      - { label: Start Date, name: startDate, widget: datetime, required: false, i18n: duplicate }
      - { label: End Date, name: endDate, widget: datetime, required: false, i18n: duplicate }
      - { label: Featured on homepage, name: featured, widget: boolean, default: false, i18n: duplicate }
      - label: Highlights
        name: highlights
        widget: list
        required: false
        i18n: true
        field: { label: Item, name: item, widget: string, i18n: true }
      - { label: Booking URL, name: bookingUrl, widget: string, required: false, i18n: true }
      - { label: Body, name: body, widget: markdown, i18n: true }

  # ----------------------------------------------------------------
  # Magazine
  # ----------------------------------------------------------------
  - name: magazine
    label: "Magazin"
    folder: src/content/magazine
    create: true
    i18n: true
    slug: "{{slug}}"
    fields:
      - { label: Title, name: title, widget: string, i18n: true }
      - { label: Language, name: lang, widget: hidden, default: '{{locale}}', i18n: true }
      - { label: Article ID, name: articleId, widget: string, i18n: duplicate }
      - { label: Publish Date, name: publishDate, widget: datetime, required: false, i18n: duplicate }
      - { label: Hero Image, name: heroImage, widget: image, required: false, i18n: false }
      - { label: Excerpt, name: excerpt, widget: text, required: false, i18n: true }
      - { label: Body, name: body, widget: markdown, i18n: true }

  # ----------------------------------------------------------------
  # Hiking Trails
  # ----------------------------------------------------------------
  - name: trails
    label: "Wanderwege"
    folder: src/content/trails
    create: true
    i18n: true
    slug: "{{slug}}"
    summary: "{{title}}"
    fields:
      - { label: Titel, name: title, widget: string, i18n: true }
      - { label: Sprache, name: lang, widget: hidden, default: '{{locale}}', i18n: true }
      - { label: Weg-ID (eindeutig, z.B. lech-dr-dragon), name: trailId, widget: string, i18n: duplicate }
      - { label: Kurzbeschreibung (für Übersicht), name: description, widget: text, i18n: true }
      - { label: Schwierigkeit, name: difficulty, widget: select, i18n: true,
          options: [Leicht, Mittel, Mittel-Schwer, Schwer, Easy, Medium, "Medium-Hard", Hard, Facile, Medio, "Medio-Difficile", Difficile] }
      - { label: Dauer, name: duration, widget: string, i18n: true, hint: "z.B. 3-4 Stunden" }
      - { label: Distanz, name: distance, widget: string, required: false, i18n: duplicate, hint: "z.B. 10 km" }
      - { label: Höhenunterschied, name: elevationGain, widget: string, required: false, i18n: duplicate, hint: "z.B. 500 m" }
      - { label: Startpunkt, name: startPoint, widget: string, required: false, i18n: true }
      - { label: Endpunkt, name: endPoint, widget: string, required: false, i18n: true }
      - { label: Hero Bild, name: heroImage, widget: image, required: false, i18n: false }
      - { label: Kartenbild, name: mapImage, widget: image, required: false, i18n: false }
      - { label: Beschreibungstext, name: body, widget: markdown, i18n: true }
      - { label: Auf Übersichtsseite anzeigen, name: featured, widget: boolean, default: true, i18n: duplicate }
      - { label: Reihenfolge (für Sortierung), name: order, widget: number, default: 0, i18n: duplicate }

  # ----------------------------------------------------------------
  # Homepage (Startseite)
  # ----------------------------------------------------------------
  - name: homepage
    label: "Startseite (Homepage)"
    folder: src/content/homepage
    extension: json
    format: json
    create: false
    delete: false
    i18n: true
    slug: "{{slug}}"
    fields:
      - { label: Titel, name: title, widget: string, i18n: true }
      - label: "Hero Karussell"
        name: carousel
        widget: list
        i18n: duplicate
        summary: "{{fields.heading}}"
        min: 1
        fields:
          - label: "Typ"
            name: type
            widget: select
            i18n: duplicate
            options:
              - { label: "Bild", value: "image" }
              - { label: "Saisonales Hauptvideo", value: "main_video" }
              - { label: "Wellness-Video", value: "wellness_video" }
            default: "image"
          - { label: "Bild / Poster", name: image, widget: image, i18n: false }
          - { label: "Überschrift", name: heading, widget: string, i18n: true }
          - { label: "Untertitel", name: subheading, widget: string, i18n: true }
          - { label: "Link", name: href, widget: string, i18n: true, hint: "Z. B. /de/hotel/" }
      - { label: Intro Eyebrow, name: introEyebrow, widget: string, i18n: true }
      - { label: Intro Überschrift, name: introHeading, widget: string, i18n: true }
      - { label: Intro Tagline, name: introTagline, widget: string, i18n: true }
      - { label: Intro Text Paragraph 1, name: introText, widget: text, i18n: true }
      - { label: Intro Text Paragraph 2, name: introTextParagraph2, widget: text, required: false, i18n: true }
      - { label: Intro Guide Text, name: introGuideText, widget: string, required: false, i18n: true }
      - label: Feature Kacheln (Tiles)
        name: tiles
        widget: list
        min: 6
        max: 6
        i18n: duplicate
        fields:
          - { label: Label, name: label, widget: string, i18n: true }
          - { label: Untertitel, name: sub, widget: string, i18n: true }
          - { label: Link, name: href, widget: string, i18n: true }
          - { label: Bild, name: img, widget: image, i18n: false }
      - { label: Zimmer Eyebrow, name: roomsEyebrow, widget: string, i18n: true }
      - { label: Zimmer Überschrift, name: roomsHeading, widget: string, i18n: true }
      - { label: Zimmer Text, name: roomsText, widget: text, i18n: true }
      - { label: Zimmer Karte Titel, name: roomsCardTitle, widget: string, i18n: true }
      - { label: Zimmer Karte Text, name: roomsCardText, widget: text, i18n: true }
      - { label: Zimmer Karte Button, name: roomsCardBtn, widget: string, i18n: true }
      - { label: Angebote Karte Titel, name: offersCardTitle, widget: string, i18n: true }
      - { label: Angebote Karte Text, name: offersCardText, widget: text, i18n: true }
      - { label: Angebote Karte Button, name: offersCardBtn, widget: string, i18n: true }
      - { label: Buchen CTA Überschrift, name: bookCtaHeading, widget: string, i18n: true }
      - { label: Buchen CTA Untertitel, name: bookCtaSubheading, widget: string, i18n: true }

  # ----------------------------------------------------------------
  # Section Overviews (Landing Pages)
  # ----------------------------------------------------------------
  - name: section_overviews
    label: "Bereichs-Übersichtsseiten (Landing Pages)"
    folder: src/content/section-overviews
    extension: json
    format: json
    create: false
    delete: false
    i18n: true
    slug: "{{slug}}"
    fields:
      - { label: Titel, name: title, widget: string, i18n: true }
      - { label: Beschreibung (SEO), name: description, widget: string, i18n: true }
      - { label: Hero Bild (wenn statisch), name: heroImage, widget: image, required: false, i18n: false }
      - { label: "Hero Karussell", name: carouselKey, widget: relation, collection: hero_carousels, value_field: "{{slug}}", search_fields: ["pageId"], display_fields: ["pageId"], required: false, i18n: duplicate }
      - { label: Intro Eyebrow, name: introEyebrow, widget: string, i18n: true }
      - { label: Intro Überschrift, name: introHeading, widget: string, i18n: true }
      - { label: Intro Tagline, name: introTagline, widget: string, i18n: true }
      - { label: Intro Text, name: introText, widget: text, i18n: true }
      - label: Kärtchen (Cards)
        name: cards
        widget: list
        min: 3
        max: 3
        i18n: duplicate
        fields:
          - { label: Titel, name: title, widget: string, i18n: true }
          - { label: Beschreibung, name: desc, widget: string, i18n: true }
          - { label: Bild, name: img, widget: image, i18n: false }
      - { label: CTA Überschrift, name: ctaHeading, widget: string, i18n: true }
      - { label: CTA Untertitel, name: ctaSubheading, widget: string, i18n: true }
