""" Report generation Pydantic schemas — extracted from compliance/api/schemas.py. Phase 1 Step 3: the monolithic ``compliance.api.schemas`` module is being split per domain under ``compliance.schemas``. This module is re-exported from ``compliance.api.schemas`` for backwards compatibility. """ from datetime import datetime, date from typing import Optional, List, Any, Dict from pydantic import BaseModel, ConfigDict, Field from compliance.schemas.common import ( PaginationMeta, RegulationType, ControlType, ControlDomain, ControlStatus, RiskLevel, EvidenceStatus, ) # ============================================================================ # Report Generation Schemas (Phase 3 - Sprint 3) # ============================================================================ class GenerateReportRequest(BaseModel): """Request to generate an audit report.""" session_id: str report_type: str = "full" # "full", "summary", "non_compliant_only" include_evidence: bool = True include_signatures: bool = True language: str = "de" # "de" or "en" class ReportGenerationResponse(BaseModel): """Response for report generation.""" report_id: str session_id: str status: str # "pending", "generating", "completed", "failed" report_type: str file_path: Optional[str] = None file_size_bytes: Optional[int] = None created_at: datetime completed_at: Optional[datetime] = None error_message: Optional[str] = None class ReportDownloadResponse(BaseModel): """Response for report download.""" report_id: str filename: str mime_type: str file_size_bytes: int download_url: str