from datetime import datetime from typing import Optional, List, Any from pydantic import BaseModel class AuditLogResponse(BaseModel): id: str event_type: str resource_type: str resource_id: Optional[str] user_id: Optional[str] action: str changes: Optional[List[dict]] request_metadata: Optional[dict] sensitivity_level: str checksum: str created_at: datetime user_name: Optional[str] = None user_email: Optional[str] = None class Config: from_attributes = True class AuditLogListResponse(BaseModel): logs: List[AuditLogResponse] total: int offset: int limit: int class AuditAlertResponse(BaseModel): id: str audit_log_id: str alert_type: str recipients: List[str] message: Optional[str] is_acknowledged: bool acknowledged_by: Optional[str] acknowledged_at: Optional[datetime] created_at: datetime class Config: from_attributes = True class AuditAlertListResponse(BaseModel): alerts: List[AuditAlertResponse] total: int class IntegrityCheckRequest(BaseModel): start_date: datetime end_date: datetime class IntegrityCheckResponse(BaseModel): total_checked: int valid_count: int invalid_count: int invalid_records: List[str]