import uuid from datetime import datetime from pydantic import BaseModel, ConfigDict class DomainCreate(BaseModel): slug: str name: str description: str | None = None class DomainUpdate(BaseModel): name: str | None = None description: str | None = None status: str | None = None class DomainRename(BaseModel): new_slug: str new_name: str class RepoStub(BaseModel): model_config = ConfigDict(from_attributes=True) id: uuid.UUID slug: str name: str local_path: str | None = None remote_url: str | None = None status: str class DomainRead(BaseModel): model_config = ConfigDict(from_attributes=True) id: uuid.UUID slug: str name: str description: str | None = None status: str created_at: datetime updated_at: datetime class DomainDetail(DomainRead): """Domain with entity counts and repo list.""" topic_count: int = 0 workstream_count: int = 0 ep_count: int = 0 td_count: int = 0 repos: list[RepoStub] = [] class DomainSummary(BaseModel): """Lightweight domain stats for the state summary.""" slug: str name: str repo_count: int = 0 active_workstream_count: int = 0 ep_count: int = 0 td_count: int = 0