"""
Erwartungshorizont Templates — Analyse templates.

Contains templates for:
- Textanalyse (pragmatische Texte)
- Gedichtanalyse / Lyrikinterpretation
- Prosaanalyse
- Dramenanalyse
"""

from .eh_templates_types import EHTemplate, EHKriterium


def get_textanalyse_template() -> EHTemplate:
    """Template for pragmatic text analysis."""
    return EHTemplate(
        id="template_textanalyse_pragmatisch",
        aufgabentyp="textanalyse_pragmatisch",
        name="Textanalyse pragmatischer Texte",
        beschreibung="Vorlage fuer die Analyse von Sachtexten, Reden, Kommentaren und Essays",
        kriterien=[
            EHKriterium(
                id="inhalt",
                name="Inhaltliche Leistung",
                beschreibung="Erfassung und Wiedergabe des Textinhalts",
                gewichtung=40,
                erwartungen=[
                    "Korrekte Erfassung der Textaussage/These",
                    "Vollstaendige Wiedergabe der Argumentationsstruktur",
                    "Erkennen von Intention und Adressatenbezug",
                    "Einordnung in den historischen/gesellschaftlichen Kontext",
                    "Beruecksichtigung aller relevanten Textaspekte"
                ]
            ),
            EHKriterium(
                id="struktur",
                name="Aufbau und Struktur",
                beschreibung="Logischer Aufbau und Gliederung der Analyse",
                gewichtung=15,
                erwartungen=[
                    "Sinnvolle Einleitung mit Basisinformationen",
                    "Logische Gliederung des Hauptteils",
                    "Stringente Gedankenfuehrung",
                    "Angemessener Schluss mit Fazit/Wertung",
                    "Absatzgliederung und Ueberlaenge"
                ]
            ),
            EHKriterium(
                id="analyse",
                name="Analytische Qualitaet",
                beschreibung="Tiefe und Qualitaet der Analyse",
                gewichtung=15,
                erwartungen=[
                    "Erkennen rhetorischer Mittel",
                    "Funktionale Deutung der Stilmittel",
                    "Analyse der Argumentationsweise",
                    "Beruecksichtigung von Wortwahl und Satzbau",
                    "Verknuepfung von Form und Inhalt"
                ]
            ),
            EHKriterium(
                id="rechtschreibung",
                name="Sprachliche Richtigkeit (Rechtschreibung)",
                beschreibung="Orthografische Korrektheit",
                gewichtung=15,
                erwartungen=[
                    "Korrekte Rechtschreibung",
                    "Korrekte Gross- und Kleinschreibung",
                    "Korrekte Getrennt- und Zusammenschreibung",
                    "Korrekte Fremdwortschreibung"
                ]
            ),
            EHKriterium(
                id="grammatik",
                name="Sprachliche Richtigkeit (Grammatik)",
                beschreibung="Grammatische Korrektheit und Zeichensetzung",
                gewichtung=15,
                erwartungen=[
                    "Korrekter Satzbau",
                    "Korrekte Flexion",
                    "Korrekte Zeichensetzung",
                    "Korrekte Bezuege und Kongruenz"
                ]
            )
        ],
        einleitung_hinweise=[
            "Nennung von Autor, Titel, Textsorte, Erscheinungsjahr",
            "Benennung des Themas",
            "Formulierung der Kernthese/Hauptaussage",
            "Ggf. Einordnung in den Kontext"
        ],
        hauptteil_hinweise=[
            "Systematische Analyse der Argumentationsstruktur",
            "Untersuchung der sprachlichen Gestaltung",
            "Funktionale Deutung der Stilmittel",
            "Beruecksichtigung von Adressatenbezug und Intention",
            "Textbelege durch Zitate"
        ],
        schluss_hinweise=[
            "Zusammenfassung der Analyseergebnisse",
            "Bewertung der Ueberzeugungskraft",
            "Ggf. aktuelle Relevanz",
            "Persoenliche Stellungnahme (wenn gefordert)"
        ],
        sprachliche_aspekte=[
            "Fachsprachliche Begriffe korrekt verwenden",
            "Konjunktiv fuer indirekte Rede",
            "Praesens als Tempus der Analyse",
            "Sachlicher, analytischer Stil"
        ]
    )


def get_gedichtanalyse_template() -> EHTemplate:
    """Template for poetry analysis."""
    return EHTemplate(
        id="template_gedichtanalyse",
        aufgabentyp="gedichtanalyse",
        name="Gedichtanalyse / Lyrikinterpretation",
        beschreibung="Vorlage fuer die Analyse und Interpretation lyrischer Texte",
        kriterien=[
            EHKriterium(
                id="inhalt",
                name="Inhaltliche Leistung",
                beschreibung="Erfassung und Deutung des Gedichtinhalts",
                gewichtung=40,
                erwartungen=[
                    "Korrekte Erfassung des lyrischen Ichs und der Sprechsituation",
                    "Vollstaendige inhaltliche Erschliessung aller Strophen",
                    "Erkennen der zentralen Motive und Themen",
                    "Epochenzuordnung und literaturgeschichtliche Einordnung",
                    "Deutung der Bildlichkeit und Symbolik"
                ]
            ),
            EHKriterium(
                id="struktur",
                name="Aufbau und Struktur",
                beschreibung="Logischer Aufbau der Interpretation",
                gewichtung=15,
                erwartungen=[
                    "Einleitung mit Basisinformationen",
                    "Systematische strophenweise oder aspektorientierte Analyse",
                    "Verknuepfung von Form- und Inhaltsanalyse",
                    "Schluessige Gesamtdeutung im Schluss"
                ]
            ),
            EHKriterium(
                id="formanalyse",
                name="Formale Analyse",
                beschreibung="Analyse der lyrischen Gestaltungsmittel",
                gewichtung=15,
                erwartungen=[
                    "Bestimmung von Metrum und Reimschema",
                    "Analyse der Klanggestaltung",
                    "Erkennen von Enjambements und Zaesuren",
                    "Deutung der formalen Mittel",
                    "Verknuepfung von Form und Inhalt"
                ]
            ),
            EHKriterium(
                id="rechtschreibung",
                name="Sprachliche Richtigkeit (Rechtschreibung)",
                beschreibung="Orthografische Korrektheit",
                gewichtung=15,
                erwartungen=[
                    "Korrekte Rechtschreibung",
                    "Korrekte Gross- und Kleinschreibung",
                    "Korrekte Getrennt- und Zusammenschreibung"
                ]
            ),
            EHKriterium(
                id="grammatik",
                name="Sprachliche Richtigkeit (Grammatik)",
                beschreibung="Grammatische Korrektheit und Zeichensetzung",
                gewichtung=15,
                erwartungen=[
                    "Korrekter Satzbau",
                    "Korrekte Flexion",
                    "Korrekte Zeichensetzung"
                ]
            )
        ],
        einleitung_hinweise=[
            "Autor, Titel, Entstehungsjahr/Epoche",
            "Thema/Motiv des Gedichts",
            "Erste Deutungshypothese",
            "Formale Grunddaten (Strophen, Verse)"
        ],
        hauptteil_hinweise=[
            "Inhaltliche Analyse (strophenweise oder aspektorientiert)",
            "Formale Analyse (Metrum, Reim, Klang)",
            "Sprachliche Analyse (Stilmittel, Bildlichkeit)",
            "Funktionale Verknuepfung aller Ebenen",
            "Textbelege durch Zitate mit Versangabe"
        ],
        schluss_hinweise=[
            "Zusammenfassung der Interpretationsergebnisse",
            "Bestaetigung/Modifikation der Deutungshypothese",
            "Einordnung in Epoche/Werk des Autors",
            "Aktualitaetsbezug (wenn sinnvoll)"
        ],
        sprachliche_aspekte=[
            "Fachbegriffe der Lyrikanalyse verwenden",
            "Zwischen lyrischem Ich und Autor unterscheiden",
            "Praesens als Analysetempus",
            "Deutende statt beschreibende Formulierungen"
        ]
    )


def get_prosaanalyse_template() -> EHTemplate:
    """Template for prose/narrative text analysis."""
    return EHTemplate(
        id="template_prosaanalyse",
        aufgabentyp="prosaanalyse",
        name="Epische Textanalyse / Prosaanalyse",
        beschreibung="Vorlage fuer die Analyse von Romanauszuegen, Kurzgeschichten und Novellen",
        kriterien=[
            EHKriterium(
                id="inhalt",
                name="Inhaltliche Leistung",
                beschreibung="Erfassung und Deutung des Textinhalts",
                gewichtung=40,
                erwartungen=[
                    "Korrekte Erfassung der Handlung",
                    "Charakterisierung der Figuren",
                    "Erkennen der Erzaehlsituation",
                    "Deutung der Konflikte und Motive",
                    "Einordnung in den Gesamtzusammenhang"
                ]
            ),
            EHKriterium(
                id="struktur",
                name="Aufbau und Struktur",
                beschreibung="Logischer Aufbau der Analyse",
                gewichtung=15,
                erwartungen=[
                    "Informative Einleitung",
                    "Systematische Analyse im Hauptteil",
                    "Verknuepfung der Analyseergebnisse",
                    "Schluessige Gesamtdeutung"
                ]
            ),
            EHKriterium(
                id="erzaehltechnik",
                name="Erzaehltechnische Analyse",
                beschreibung="Analyse narrativer Gestaltungsmittel",
                gewichtung=15,
                erwartungen=[
                    "Bestimmung der Erzaehlperspektive",
                    "Analyse von Zeitgestaltung",
                    "Raumgestaltung und Atmosphaere",
                    "Figurenrede und Bewusstseinsdarstellung",
                    "Funktionale Deutung"
                ]
            ),
            EHKriterium(
                id="rechtschreibung",
                name="Sprachliche Richtigkeit (Rechtschreibung)",
                beschreibung="Orthografische Korrektheit",
                gewichtung=15,
                erwartungen=[
                    "Korrekte Rechtschreibung",
                    "Korrekte Gross- und Kleinschreibung"
                ]
            ),
            EHKriterium(
                id="grammatik",
                name="Sprachliche Richtigkeit (Grammatik)",
                beschreibung="Grammatische Korrektheit und Zeichensetzung",
                gewichtung=15,
                erwartungen=[
                    "Korrekter Satzbau",
                    "Korrekte Zeichensetzung"
                ]
            )
        ],
        einleitung_hinweise=[
            "Autor, Titel, Textsorte, Erscheinungsjahr",
            "Einordnung des Auszugs in den Gesamttext",
            "Thema und Deutungshypothese"
        ],
        hauptteil_hinweise=[
            "Kurze Inhaltsangabe des Auszugs",
            "Analyse der Handlungsstruktur",
            "Figurenanalyse mit Textbelegen",
            "Erzaehltechnische Analyse",
            "Sprachliche Analyse",
            "Verknuepfung aller Ebenen"
        ],
        schluss_hinweise=[
            "Zusammenfassung der Analyseergebnisse",
            "Bestaetigung der Deutungshypothese",
            "Bedeutung fuer Gesamtwerk",
            "Ggf. Aktualitaetsbezug"
        ],
        sprachliche_aspekte=[
            "Fachbegriffe der Erzaehltextanalyse",
            "Zwischen Erzaehler und Autor unterscheiden",
            "Praesens als Analysetempus",
            "Deutende Formulierungen"
        ]
    )


def get_dramenanalyse_template() -> EHTemplate:
    """Template for drama analysis."""
    return EHTemplate(
        id="template_dramenanalyse",
        aufgabentyp="dramenanalyse",
        name="Dramenanalyse",
        beschreibung="Vorlage fuer die Analyse dramatischer Texte und Szenen",
        kriterien=[
            EHKriterium(
                id="inhalt",
                name="Inhaltliche Leistung",
                beschreibung="Erfassung und Deutung des Szeneninhalts",
                gewichtung=40,
                erwartungen=[
                    "Korrekte Erfassung der Handlung",
                    "Analyse der Figurenkonstellation",
                    "Erkennen des dramatischen Konflikts",
                    "Einordnung in den Handlungsverlauf",
                    "Deutung der Szene im Gesamtzusammenhang"
                ]
            ),
            EHKriterium(
                id="struktur",
                name="Aufbau und Struktur",
                beschreibung="Logischer Aufbau der Analyse",
                gewichtung=15,
                erwartungen=[
                    "Einleitung mit Kontextualisierung",
                    "Systematische Szenenanalyse",
                    "Verknuepfung der Analyseergebnisse",
                    "Schluessige Deutung"
                ]
            ),
            EHKriterium(
                id="dramentechnik",
                name="Dramentechnische Analyse",
                beschreibung="Analyse dramatischer Gestaltungsmittel",
                gewichtung=15,
                erwartungen=[
                    "Analyse der Dialoggestaltung",
                    "Regieanweisungen und Buehnenraum",
                    "Dramatische Spannung",
                    "Monolog/Dialog-Formen",
                    "Funktionale Deutung"
                ]
            ),
            EHKriterium(
                id="rechtschreibung",
                name="Sprachliche Richtigkeit (Rechtschreibung)",
                beschreibung="Orthografische Korrektheit",
                gewichtung=15,
                erwartungen=[
                    "Korrekte Rechtschreibung"
                ]
            ),
            EHKriterium(
                id="grammatik",
                name="Sprachliche Richtigkeit (Grammatik)",
                beschreibung="Grammatische Korrektheit und Zeichensetzung",
                gewichtung=15,
                erwartungen=[
                    "Korrekter Satzbau",
                    "Korrekte Zeichensetzung"
                ]
            )
        ],
        einleitung_hinweise=[
            "Autor, Titel, Urauffuehrungsjahr, Dramenform",
            "Einordnung der Szene in den Handlungsverlauf",
            "Thema und Deutungshypothese"
        ],
        hauptteil_hinweise=[
            "Situierung der Szene",
            "Analyse des Dialogverlaufs",
            "Figurenanalyse im Dialog",
            "Sprachliche Analyse",
            "Dramentechnische Mittel",
            "Bedeutung fuer den Konflikt"
        ],
        schluss_hinweise=[
            "Zusammenfassung der Analyseergebnisse",
            "Funktion der Szene im Drama",
            "Bedeutung fuer die Gesamtdeutung"
        ],
        sprachliche_aspekte=[
            "Fachbegriffe der Dramenanalyse",
            "Praesens als Analysetempus",
            "Korrekte Zitierweise mit Akt/Szene/Zeile"
        ]
    )
