import uuid from datetime import datetime from pydantic import BaseModel, ConfigDict, Field 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): repos: list[RepoStub] = Field(default_factory=list) extension_counts: dict[str, int] = Field(default_factory=dict)