generated from coulomb/repo-seed
Extract the first reusable slice (models, schemas, routers, MCP, migrations) from state-hub with INTENT/SCOPE, agent instructions, workplan, and aligned inter_hub capability registry index.
50 lines
984 B
Python
50 lines
984 B
Python
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)
|