name: backups
meta:
    isBackupcollection: true

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

    # token als Zusatzsicherung gegen Spam, mehr siehe Hook
    "token:${PUBLIC_TOKEN}":
        methods:
            get: false
            post: true
            put: false
            delete: false

hooks:
    post:
        create:
            type: javascript
            file: hooks/backups/post_create.js
        return:
            type: javascript
            file: hooks/clear_cache.js
    put:
        return:
            type: javascript
            file: hooks/clear_cache.js

fields:
    - name: collectionName
      type: string
      meta:
          label: 
            de: Collection Name
            en: Collection Name

    - name: entryId
      type: string
      meta:
          label:
            de: Entry ID
            en: Entry ID

    - name: versionNr
      type: number
      meta:
          label:
            de: Version Nr
            en: Version Nr

    - name: manipulatedBy
      type: string
      meta:
          label:
            de: Manipulated By
            en: Manipulated By

    - name: eventDescription
      type: string
      meta:
          label: Event Description
          widget: select
          choices:
              - id: create
                name: 
                  de: Erstellt
                  en: Create
              - id: update
                name: 
                  de: Update
                  en: Update
              - id: delete
                name: 
                  de: Gelöscht
                  en: Delete
              - id: recreate
                name:
                  de: Wiederhergestellt
                  en: Recreate
              - id: activate
                name: 
                  de: Aktiviert
                  en: Activate

    - name: updateLogs
      type: object[]
      meta:
          label: 
            de: Veränderungen
            en: Update Logs

      subFields:
          - name: field
            type: string
            meta:
                label: 
                  de: Feldname
                  en: Fieldname

          - name: previous
            type: string
            meta:
                label: 
                  de: Vorheriger Wert
                  en: Previous Value

          - name: current
            type: string
            meta:
                label: 
                
                  de: Aktueller Wert
                  en: Current Value

    - name: entry
      type: object
      meta:
          label:
            de: Eintrag
            en: Entry
