fix: value

This commit is contained in:
TheNoxium
2025-11-24 04:39:38 +07:00
parent 5aa14f5ae8
commit b28d40adaf

View File

@@ -3,66 +3,71 @@ from typing import Optional, Annotated, Literal, Any
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field
from typing import Literal, Annotated, Union
class LinkPort(BaseModel):
id: int
label: str
is_addable: Optional[bool] = None
is_addable: bool | None = None
class LineElement(BaseModel):
type: Literal['line']
type: Literal['line'] = 'line'
name: str
label: str
placeholder: Optional[str] = None
value: str = None
placeholder: str | None = None
value: str | None = None
class AreaElement(BaseModel):
type: Literal['area']
type: Literal['area'] = 'area'
name: str
label: str
placeholder: Optional[str] = None
value: str = None
placeholder: str | None = None
value: str | None = None
class SelectElement(BaseModel):
type: Literal['select']
type: Literal['select'] = 'select'
name: str
label: str
data: list[str]
default: Optional[str] = None
placeholder: Optional[str] = None
value: Optional[Any] = None
default: str | None = None
placeholder: str | None = None
value: str | None = None
class NumberElement(BaseModel):
type: Literal['number']
type: Literal['number'] = 'number'
name: str
label: str
placeholder: Optional[str] = None
value: int | float
placeholder: str | None = None
value: int | float | None = None
class DateElement(BaseModel):
type: Literal['date']
type: Literal['date'] = 'date'
name: str
label: str
placeholder: Optional[str] = None
value: str = None
placeholder: str | None = None
value: str | None = None
FieldElement = Annotated[
LineElement | AreaElement | SelectElement | NumberElement | DateElement,
Field(discriminator='type'),
Field(discriminator='type')
]
class RowElement(BaseModel):
type: Literal['row']
type: Literal['row'] = 'row'
name: str
label: str
link_port: Optional[LinkPort] = None
elements: Optional[list[FieldElement]] = None
link_port: LinkPort | None = None
elements: list[FieldElement] | None = None
class FormDescriptor(BaseModel):