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