name: content
meta:
    label: Inhalt
    muiIcon: tableOfContents
    allowExportAll: true
    backup:
        active: true
        collectionName: backups
    defaultSort:
        field: insertTime
        order: DESC
    views:
        - type: simpleList
          selectionPriority: 0
          primaryText: name
          secondaryText: path
          mediaQuery: "(min-width: 0px)"
          tertiaryText: type
        - type: table
          selectionPriority: 1
          mediaQuery: "(min-width: 700px)"
          columns:
              - source: active
                name: Aktiv
                filter: true
              - source: type
                name: Typ
                filter: true
              - source: name
                name: Name
                filter: true
              - source: path
                name: Pfad
                filter: true

    tablist:
        activeTab: general
        tabs:
            - name: general
              label:
                  de: Allgemein
                  en: General
              subFields:
                  - source: active
                  - source: type
                  - source: name
                  - source: question
                  - source: path
                  - source: alternativePaths
                  - source: products

            - name: block
              label:
                  de: Inhalt
                  en: Content
              subFields:
                  - source: blocks

            - name: meta
              label:
                  de: Meta
                  en: Meta
              subFields:
                  - source: meta

    subNavigation:
        - name: modalForeign
          defaultSort:
              field: name
              order: ASC
          views:
              - type: table
                columns:
                    - source: active
                      name: Aktiv
                      filter: true
                    - source: name
                      name: Name
                      filter: true
          setDefault:
              field: type
              value: block
          defaultCallback:
              eval: |
                  (entry) => {
                    parent.selectEntry(entry)
                  }

        - name: page
          label:
              de: Seiten
              en: pages
          muiIcon: book-open-page-variant
          defaultSort:
              field: insertTime
              order: DESC
          setDefault:
              field: type
              value: page
          views:
              - type: table
                columns:
                    - source: active
                      name: Aktiv
                      filter: true
                    - source: name
                      name: Name
                      filter: true
                    - source: path
                      name: Pfad
                      filter: true
          filter:
              type: page

        - name: block
          label:
              de: Blöcke
              en: blocks
          muiIcon: view-grid
          defaultSort:
              #   field: "sort"
              #   order: "MANUALLY"
              field: insertTime
              order: DESC
          setDefault:
              field: type
              value: block
          views:
              - type: table
                columns:
                    - source: active
                      name: Aktiv
                      filter: true
                    - source: name
                      name: Name
                      filter: true

          filter:
              type: block

permissions:
    public:
        methods:
            get: true
            post: false
            put: false
            delete: false
    user:
        methods:
            get: true
            post: true
            put: true
            delete: true

projections:
    navigation:
        select:
            path: 1

fields:
    - !include fields/active.yml
    - !include fields/contentType.yml

    - name: products
      type: number[]
      meta:
          label:
              de: Produkte
              en: Products
          widget: foreignKey
          dependsOn:
              eval: $.type == "product"
          foreign:
              collection: bigCommerceProduct
              id: bigCommerceId
              subNavigation: 0
              render:
                  defaultCollectionViews: true

    - name: name
      type: string
      meta:
          label:
              de: Name
              en: Name
          helperText:
              de: "Der Name wird nur intern verwendet."
              en: "The name is only used internally."
          containerProps:
              layout:
                  breakAfter: true
                  size:
                      default: "col-6"
                      small: "col-12"
                      large: "col-6"

    - type: string
      name: path
      index: [single]
      meta:
          label:
              de: Pfad
              en: Path
          helperText:
              de: "Ein Pfad sollte mit einem / starten und ohne enden."
              en: "A path should start with a / and end without one."
          dependsOn:
              eval: $.type == "page"
          containerProps:
              layout:
                  size:
                      default: "col-6"
                      small: "col-12"
                      large: "col-6"

    - !include fields/contentBlocks.yml
    - !include fields/contentMeta.yml
indexes:
    - name: fulltext #  Ein eindeutiger Name für den Index. Es ist optional, wird jedoch empfohlen, um den Index später leicht identifizieren zu können.
      key: # Bestimmt, auf welche Felder der Index angewendet werden soll. Dies kann ein einfacher String sein, wenn der Index nur ein Feld umfasst, oder ein Array von Strings, wenn der Index mehrere Felder umfasst.
          - $text:$**
