37 lines
605 B
Python
37 lines
605 B
Python
from typing import Any
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class WebBlockBase(BaseModel):
|
|
type: str = Field(..., max_length=64)
|
|
order: int
|
|
data: dict[str, Any]
|
|
|
|
|
|
class WebBlockResponse(WebBlockBase):
|
|
id: str
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class WebTheme(BaseModel):
|
|
tokens: dict[str, Any]
|
|
|
|
|
|
class WebPageResponse(BaseModel):
|
|
slug: str
|
|
blocks: list[WebBlockResponse]
|
|
theme: WebTheme | None = None
|
|
|
|
|
|
class WebPageUpdate(BaseModel):
|
|
blocks: list[WebBlockBase]
|
|
theme: WebTheme | None = None
|
|
|
|
|
|
class WebUploadResponse(BaseModel):
|
|
url: str
|
|
|