""" AI System (AI Act) 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, ) # ============================================================================ # AI System Schemas (AI Act Compliance) # ============================================================================ class AISystemBase(BaseModel): name: str description: Optional[str] = None purpose: Optional[str] = None sector: Optional[str] = None classification: str = "unclassified" status: str = "draft" obligations: Optional[List[str]] = None class AISystemCreate(AISystemBase): pass class AISystemUpdate(BaseModel): name: Optional[str] = None description: Optional[str] = None purpose: Optional[str] = None sector: Optional[str] = None classification: Optional[str] = None status: Optional[str] = None obligations: Optional[List[str]] = None class AISystemResponse(AISystemBase): id: str assessment_date: Optional[datetime] = None assessment_result: Optional[Dict[str, Any]] = None risk_factors: Optional[List[Dict[str, Any]]] = None recommendations: Optional[List[str]] = None created_at: datetime updated_at: datetime model_config = ConfigDict(from_attributes=True) class AISystemListResponse(BaseModel): systems: List[AISystemResponse] total: int