hub-core/hub_core/schemas/domain.py

50 lines
984 B
Python
Raw Normal View History

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)