"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_LiterarischKuenstlerisch = exports.LiterarischKuenstlerisch = void 0;
const GostFachbereich_1 = require("../../../../core/types/gost/GostFachbereich");
const GostHalbjahr_1 = require("../../../../core/types/gost/GostHalbjahr");
const GostBelegpruefung_1 = require("../../../../core/abschluss/gost/GostBelegpruefung");
const GostBelegungsfehler_1 = require("../../../../core/abschluss/gost/GostBelegungsfehler");
class LiterarischKuenstlerisch extends GostBelegpruefung_1.GostBelegpruefung {
    kunst_musik = null;
    kunst_musik_ersatz = null;
    /**
     * Erstellt eine neue Belegprüfung für den literarisch-künstlerischen Bereich.
     *
     * @param manager         der Daten-Manager für die Abiturdaten
     * @param pruefungs_art   die Art der durchzuführenden Prüfung (z.B. EF.1 oder GESAMT)
     */
    constructor(manager, pruefungs_art) {
        super(manager, pruefungs_art);
    }
    init() {
        this.kunst_musik = this.manager.getFachbelegungen(GostFachbereich_1.GostFachbereich.KUNST_MUSIK);
        this.kunst_musik_ersatz = this.manager.getFachbelegungen(GostFachbereich_1.GostFachbereich.LITERARISCH_KUENSTLERISCH_ERSATZ);
    }
    pruefeEF1() {
        if (this.manager.zaehleBelegungInHalbjahren(this.kunst_musik, GostHalbjahr_1.GostHalbjahr.EF1) === 0)
            this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.KU_MU_10);
    }
    /**
     * Gesamtprüfung Punkte 26-28:
     * Prüfe, ob ein Kurs in Kunst oder Musik mindestens von EF.1 bis Q1.2 belegt wurde
     *   oder ob ein Ersatzfach (Literatur, vokal- oder instrumentalpraktischer Grundkurs) in der
     *           Qualifikationsphase gültig belegt wurde
     */
    pruefeGesamt() {
        let hatKuMuErsatz = false;
        if (this.kunst_musik_ersatz !== null) {
            for (let fach of this.kunst_musik_ersatz) {
                if ((this.manager.zaehleBelegung(fach) === 2) && (this.manager.pruefeBelegung(fach, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12) || this.manager.pruefeBelegung(fach, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21) || this.manager.pruefeBelegung(fach, GostHalbjahr_1.GostHalbjahr.Q21, GostHalbjahr_1.GostHalbjahr.Q22))) {
                    hatKuMuErsatz = true;
                }
                else if (this.manager.zaehleBelegung(fach) > 0) {
                    this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.LI_IV_10);
                }
            }
            if (this.kunst_musik_ersatz.size() > 1)
                this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.LI_IV_11);
        }
        let hatKuMuBisQ12 = this.manager.pruefeBelegungExistiert(this.kunst_musik, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12);
        let hatKuMuBisEF2 = this.manager.pruefeBelegungExistiert(this.kunst_musik, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2);
        if ((!hatKuMuBisEF2) || (hatKuMuBisEF2 && (!hatKuMuBisQ12) && (!hatKuMuErsatz)))
            this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.KU_MU_10);
    }
    isTranspiledInstanceOf(name) {
        return ['de.nrw.schule.svws.core.abschluss.gost.GostBelegpruefung', 'de.nrw.schule.svws.core.abschluss.gost.belegpruefung.LiterarischKuenstlerisch'].includes(name);
    }
}
exports.LiterarischKuenstlerisch = LiterarischKuenstlerisch;
function cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_LiterarischKuenstlerisch(obj) {
    return obj;
}
exports.cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_LiterarischKuenstlerisch = cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_LiterarischKuenstlerisch;
//# sourceMappingURL=LiterarischKuenstlerisch.js.map