# Der Name des Feldes wird in der Datenbank zum Objekt ebenso
# wie in der Ein- und Ausgabe über die API verwendet.
name: date

# Über "type" wird der Datentyp in der Datenbank festgelegt.
# Mögliche Typen sind weiter unten aufgelistet.
type: date

# Direkt am Feld kann eine Index-Definition erfolgen.
# Folgende mögliche Werte können ihn die Liste aufgenommen werden:
# "single" - Standard-Index für diese Feld
# "unique" - Das Feld muss einen eindeutigen Wert haben
# "text"   - Alle "text"-Indexanganben aller Felder werden zu einem
#            gemeinsamen Volltext-Index kombiniert
#
# Die Angabe des Volltextindex ist besser unter "collections.X.indexes"
# vorzunehmen.
index:
    - single

# Jede Datenübertragung an des Server wird validiert, d.h. es werden
# keine Datentypen angenommen, die nicht zu "type" passen.
# Darüber hinaus kann via "validator" eine zusätzliche Validierung
# vorgenommen werden.
# Dazu gibt es ein extra Kapitel.
validator:
    required: true
    eval: new Date($this) > new Date()

# Und natürlich gibt es auch hier ein "meta" Objekt zur Steuerung
# der Admin-UI.
meta:
    # Das "label" des Feldes wird als Label vor dem Widget verwendet.
    label:
        de: Titel
        en: title

    # Abgelkeitet vom "type" gibt es Standard-Widgets. für spezielle
    # Aufgaben stehen aber eine Hand voll Widgets bereit, die später
    # beschrieben werden.
    widget: text

    # Standardwerte für neue Enträge können entweder direkt angegeben
    # werden oder via Javascript client-seitig generiert werden.
    # In den Kontext injizierte Variablen werden später beschrieben.
    defaultValue:
        # Das Ergebnis von "eval" wird hier als Standardwert verwendet.
        # (hier das aktuelle Datum)
        eval: new Date()

    # Sollen Felder abhängig von bestimmten Bedingungen ein- oder
    # ausgeblendet werden, geschieht das über Anweisungen in "dependsOn".
    dependsOn:
        # Das Feld wird nur eingeblendet wenn der Wert von "type"
        # (auf gleicher Ebene wie das Feld "date" selbst)
        #  gleich "news" ist.
        eval: $parent.type == "news"