import uuid

from pydantic import BaseModel


class SystemStatus(BaseModel):
    ollama_reachable: bool
    database_reachable: bool
    cpu_percent: float
    memory_percent: float
    disk_percent: float


class ProjectSummary(BaseModel):
    id: uuid.UUID
    name: str
    knowledge_source_count: int
    dataset_example_count: int


class DashboardSummary(BaseModel):
    knowledge_sources_by_status: dict[str, int]
    dataset_examples_by_status: dict[str, int]
    recent_projects: list[ProjectSummary]
    system: SystemStatus
