"""
Schemas for System & Security Audit Logs.
"""

from datetime import datetime
from typing import Any
from uuid import UUID

from pydantic import BaseModel, ConfigDict


class AuditLogResponse(BaseModel):
    id: UUID
    lab_id: UUID
    action: str
    category: str
    severity: str
    actor_id: UUID | None
    actor_name: str
    actor_role: str
    target_type: str | None
    target_id: str | None
    description: str
    ip_address: str | None
    details: dict[str, Any] | None
    created_at: datetime

    model_config = ConfigDict(from_attributes=True)


class AuditMetricsResponse(BaseModel):
    total_events: int
    security_events: int
    clinical_events: int
    admin_events: int
    billing_events: int
