43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class AppNavConfigOut(BaseModel):
|
|
id: int
|
|
key: str
|
|
label: str
|
|
page_path: str
|
|
icon: str
|
|
active_icon: str
|
|
color: str
|
|
active_color: str
|
|
is_active: bool
|
|
sort_order: int
|
|
updated_at: datetime | None = None
|
|
|
|
model_config = {"from_attributes": True}
|
|
|
|
|
|
class AppNavConfigCreate(BaseModel):
|
|
key: str = Field(min_length=1, max_length=50)
|
|
label: str = Field(min_length=1, max_length=50)
|
|
page_path: str = Field(min_length=1, max_length=200)
|
|
icon: str = Field(min_length=1, max_length=50)
|
|
active_icon: str = Field(min_length=1, max_length=50)
|
|
color: str = Field(min_length=4, max_length=20)
|
|
active_color: str = Field(min_length=4, max_length=20)
|
|
is_active: bool = True
|
|
sort_order: int = 0
|
|
|
|
|
|
class AppNavConfigUpdate(BaseModel):
|
|
label: str | None = Field(default=None, min_length=1, max_length=50)
|
|
page_path: str | None = Field(default=None, min_length=1, max_length=200)
|
|
icon: str | None = Field(default=None, min_length=1, max_length=50)
|
|
active_icon: str | None = Field(default=None, min_length=1, max_length=50)
|
|
color: str | None = Field(default=None, min_length=4, max_length=20)
|
|
active_color: str | None = Field(default=None, min_length=4, max_length=20)
|
|
is_active: bool | None = None
|
|
sort_order: int | None = None
|