# fields in curricular description
# leaning on methods in OpenAPI 3.0 

#
# Modulname
#
name:
    type: str
    label: {
        de: "Modulname",
        en: "name of course"
    }

#
# Modulverantwortliche:r
#
instructor: 
    type: str
    translatable: false
    label: 
        de: "Modulverantwortlicher/Modulverantwortliche"
        en: "module instructor"
    

#
# Kürzel / ID
#
id: 
    type: str
    translatable: false
    label: {
        de: "Kürzel",
        en: "code"
    }


#
# Qualifikationsziele
#

# Welche fachbezogenen, methodischen, fachübergreifende Kompetenzen, 
# Schlüsselqualifikationen - werden erzielt (erworben)? Diese sind 
# an der zu definierenden Gesamtqualifikation (angestrebter Abschluss) auszurichten.
# 
# Lernergebnisse sind Aussagen darüber, was ein Studierender nach Abschluss des Moduls weiß,
#  versteht und in der Lage ist zu tun. Die Formulierung sollte sich am Qualifikationsrahmen 
# für Deutsche Hochschulabschlüsse orientieren und Inhaltswiederholungen vermeiden.
# 
# Des Weiteren finden Sie im QM-Portal die „Handreichung zur Beschreibung von Lernzielen“ 
# als Formulierungshilfe.

goal:
    type: str
    label: {
        de: "Qualifikationsziele",
        en: "educational goal"
    }

#
# Modulinhalte
#

# Welche fachlichen, methodischen, fachpraktischen und fächerübergreifenden 
# Inhalte sollen vermittelt werden? 
# 
# Es ist ein stichpunktartiges Inhaltsverzeichnis zu erstellen.

content: 
    type: str
    label: {
        de: "Modulinhalte",
        en: "content"
    }

#
# Lehrform
#

#
# Welche Lehr- und Lernformen werden angewendet? 
# (Vorlesungen, Übungen, Seminare, Praktika, 
# Projektarbeit, Selbststudium)
#
# Es sind nur Werte aus der Prüfungsordung zugelassen
# 
form-of-instruction: 
    label: {
        de: "Lehrform(en)",
        en: "form of instruction"
    }
    type: multikey 
    keys: {
        'lecture' : {
            de: "Vorlesung",
            en: "lecture"
        },
        'lecture_seminar' : {
            de: "Seminaristische Vorlesung",
            en: "lecture and seminar"
        },
        'seminar' : {
            de: "Seminar",
            en: "seminar"
        },
        'exersise' : {
            de: "Übung",
            en: "lab exersise"
        },
        'pc_lab' : {
            de: "Rechnergestütztes Praktikum",
            en: "PC exersise"
        },
        'project' : {
            de: "Project",
            en: "project"
        }
    }
    template: 
        de: "${key} (${value}SWS)"
        en: "${key} (${value}SWS)"

#
# Voraussetzungen für die Teilnahme
#

# Für jedes Modul sind die Voraussetzungen für die Teilnahme zu beschreiben. 
# Welche Kenntnisse, Fähigkeiten und Fertigkeiten sind für eine
# erfolgreiche Teilnahme vorauszusetzen?
# 
# Alternativ können die Module benannt werden welche für die erfolgreiche 
# Teilnahme im Vorfeld zu belegen sind.

prerequisites: 
    type: str
    label: {
        de: "Voraussetzungen für die Teilnahme",
        en: "prerequisites"
    }

#
# Literatur und multimediale Lehr- und Lernprogramme
#
# 
# Wie können die Studierenden sich auf die Teilnahme an diesem Modul vorbereiten?
# 
media-of-instruction:     
    type: str
    label: {
        de: "Literatur und multimediale Lehr- und Lernprogramme",
        en: "media of instruction"
    }

#
# Lehrbriefautor
#
author-of-indenture: 
    type: str
    label: {
        de: "Lehrbriefautor",
        en: "author of indenture"
    }

#
# Verwendung in (Studienprogramm)
#
used-in:
    type: str
    label: {
        de: "Verwendung",
        en: "used in study programs"
    }

#
# Arbeitsaufwand
#
workload:
    type: str
    label: {
        de: "Arbeitsaufwand / Gesamtworkload",
        en: "workload"
    }
#
# credits/ECTS
#
credits: 
    label: { 
        en: "credits and weight of mark",
        de: "Kreditpunkte und Gewichtung der Note in der Gesamtnote"
    }
    type: int
    template: 
        de: "${value}CP Gewichtung: ${value}CP von 120CP "
        en: "${value}CP weight: ${value} / 120 "    
    

#
# Leistungsnachweis
#
form-of-exam: 
    label: {
        de: "Leistungsnachweis",
        en: "form of examination"
    }
    type: enum 
    values: {
        'written' : {
            de: "Schriftliche Prüfung",
            en: "written exam"
        },
        'oral' : { 
            de: "Mündliche Prüfung",
            en: "oral exam"
        },
        'alternative' : {
            de: "Alternative Prüfungunsleistung",
            en: "alternative examination"
        }
    }
    spec: true
    template:
        de: "${value} (${spec})" 
        en: "${value} (${spec})"


#
# Semester
#
term: 
    label: {
        de: "Semester",
        en: "term"
    }
    type: int
    template: 
        de: " ${value}. Semester"
        en: " ${value}. semester"

#
# Häufigkeit des Angebots
#
frequency: 
    label: {
        de: "Häufigkeit des Angebots",
        en: "frequency of Offer"
    }
    type: "enum"
    values: {
        'once_per_term' : {
            de: "jedes Semester",
            en: "every term"
        },
        'once_per_year' : {
            de: "einmal im Studienjahr",
            en: "once per study year"
        }
    }

duration: 
    type: int
    label:
        de: Dauer
        en: duration
    template: 
        de: "$value Semester"
        en: "$value term(s)"

kind:
    type: enum
    label: {
        de: 'Art der Veranstaltung (Pflicht, Wahl, etc.)',
        en: 'kind of module (compulsory, elective)'
    }
    values: {
        'compulsory': {
            de: "Pflicht",
            en: "compulsory"
        },
        'elective' : {
            de: "Wahl/Wahlpflicht",
            en: "elective"
        }
    }

remarks:     
    type: str
    label: {
        de: "Besonderes",
        en: "remarks"
    }