"""Quality review: tone, opinion, sources, redundancy."""
from rich.console import Console
from rich.panel import Panel

console = Console()

_SYSTEM = """Du bist ein strenger Redaktions-Qualitätsprüfer für die KNIEPUNKT-Kolumne.
Flagge Probleme klar mit: [SCHWACHE QUELLE] [FEHLENDER BELEG] [ZU TECHNISCH] [FEHLENDE MEINUNG] [FEHLENDE EINORDNUNG] [REDUNDANZ] [TON-PROBLEM] [FAKTENPROBLEM]
Sei direkt und konstruktiv. Weise auch auf Stärken hin."""


def review(client, draft: str, source_assessment: str, episodes_context: str) -> str:
    """Full quality review of the draft."""
    from kniepunkt.llm import chat

    console.print("\n[yellow]Qualitätsprüfung...[/yellow]")

    prompt = f"""Führe eine vollständige Qualitätsprüfung dieses KNIEPUNKT-Entwurfs durch.

Entwurf:
{draft}

Quellenbewertung:
{source_assessment[:800]}

Frühere Episoden (Redundanzcheck):
{episodes_context[:1500]}

Prüfe:
1. **Ton** – Kolumnenhaft, amüsant, pointiert? Zielgruppengerecht?
2. **Meinung** – Kommt die Autorenmeinung deutlich vor?
3. **Einordnung** – Lesernahe Interpretation oder nur Nachrichtenzusammenfassung?
4. **Quellen** – Belege ausreichend? Schwache oder fehlende Quellen?
5. **Redundanz** – Allegorien, Referenzen oder Winkel aus früheren Episoden wiederholt?
6. **Technische Tiefe** – Zu technisch für die Zielgruppe?
7. **Fakten** – Ungesicherte oder widersprüchliche Aussagen?
8. **Stärken** – Was funktioniert besonders gut?

Gesamtbewertung: 🟢 bereit zur Freigabe / 🟡 kleine Anpassungen nötig / 🔴 überarbeiten"""

    return chat(client, [{"role": "user", "content": prompt}], _SYSTEM, max_tokens=2048)
