"""Pydantic request/response schemas for the compliance-check route.""" from __future__ import annotations from pydantic import BaseModel class ExtractTextRequest(BaseModel): url: str class DocumentInput(BaseModel): doc_type: str # dse, agb, impressum, cookie, widerruf, avv, loeschkonzept, etc. url: str = "" text: str = "" # text has priority over URL class ComplianceCheckRequest(BaseModel): documents: list[DocumentInput] use_agent: bool = False recipient: str = "dsb@breakpilot.local" # P12: Override fuer TDM-Vorbehalt bei dokumentierter Kunden-Erlaubnis. # Pflichtfeld tdm_override_reason wenn tdm_override=True # (z.B. "Auftragsbeziehung Safetykon GmbH, Email Hr. X 18.05.2026"). tdm_override: bool = False tdm_override_reason: str = "" # P79: 8-Feld Pre-Scan-Wizard (Branche, B2B/B2C, Direkt-Vertrieb, # Rechtsform, Konzern, MA, Besondere Daten, Drittland). Wird im # Snapshot persistiert und filtert die MC-Auswertung (P72). scan_context: dict | None = None # Frontend-eingegebene Firma + Origin-Domain. Priorisiert vor # LLM-extracted_profile-Inferenz. Wenn leer: Fallback auf Heuristik # aus URL-Domains und DSE-Text. company_name: str | None = None origin_domain: str | None = None class ComplianceCheckStartResponse(BaseModel): check_id: str status: str = "running" class ComplianceCheckStatusResponse(BaseModel): check_id: str status: str progress: str = "" progress_pct: int = 0 result: dict | None = None error: str = ""