Co-authored-by: eddgranados12 <eddgranados12@users.noreply.github.com>
Co-authored-by: MENDOZA BALLARDO GAEL RICARDO <gael-meb123@users.noreply.github.com> Co-authored-by: Azareth-Tr <Azareth-Tr@users.noreply.github.com> modificacion de vistas panel admin, login, animaciones y implementacion de mascota
This commit is contained in:
91
backend/app/schemas/admin.py
Normal file
91
backend/app/schemas/admin.py
Normal file
@@ -0,0 +1,91 @@
|
||||
from typing import Optional, Literal
|
||||
from pydantic import BaseModel, EmailStr
|
||||
|
||||
|
||||
# ── Users ─────────────────────────────────────────────────────────────────────
|
||||
class AdminUser(BaseModel):
|
||||
id: str
|
||||
name: Optional[str] = None
|
||||
email: Optional[str] = None
|
||||
phone: Optional[str] = None
|
||||
role: str = "citizen"
|
||||
|
||||
|
||||
class AdminUserCreate(BaseModel):
|
||||
name: str
|
||||
password: str
|
||||
email: Optional[EmailStr] = None
|
||||
phone: Optional[str] = None
|
||||
role: Literal["citizen", "driver", "admin"] = "citizen"
|
||||
|
||||
|
||||
class AdminUserUpdate(BaseModel):
|
||||
name: Optional[str] = None
|
||||
email: Optional[EmailStr] = None
|
||||
role: Optional[Literal["citizen", "driver", "admin"]] = None
|
||||
|
||||
|
||||
# ── Routes ────────────────────────────────────────────────────────────────────
|
||||
class AdminRoute(BaseModel):
|
||||
id: str
|
||||
name: Optional[str] = None
|
||||
truck_id: Optional[int] = None
|
||||
turno: Optional[str] = None
|
||||
status: str = "pendiente"
|
||||
current_position_id: int = 1
|
||||
|
||||
|
||||
class AdminRouteCreate(BaseModel):
|
||||
id: str
|
||||
name: Optional[str] = None
|
||||
truck_id: Optional[int] = None
|
||||
turno: Optional[Literal["matutino", "vespertino", "Matutino", "Vespertino"]] = None
|
||||
status: Optional[
|
||||
Literal["pendiente", "en_ruta", "completada", "diferida", "reasignada"]
|
||||
] = "pendiente"
|
||||
|
||||
|
||||
class AdminRouteUpdate(BaseModel):
|
||||
name: Optional[str] = None
|
||||
truck_id: Optional[int] = None
|
||||
turno: Optional[Literal["matutino", "vespertino", "Matutino", "Vespertino"]] = None
|
||||
status: Optional[
|
||||
Literal["pendiente", "en_ruta", "completada", "diferida", "reasignada"]
|
||||
] = None
|
||||
|
||||
|
||||
# ── Units (camiones) ──────────────────────────────────────────────────────────
|
||||
class AdminUnit(BaseModel):
|
||||
id: int
|
||||
plate: Optional[str] = None
|
||||
status: str = "active"
|
||||
|
||||
|
||||
class AdminUnitCreate(BaseModel):
|
||||
id: int
|
||||
plate: Optional[str] = None
|
||||
status: Literal["active", "inactive", "maintenance"] = "active"
|
||||
|
||||
|
||||
class AdminUnitUpdate(BaseModel):
|
||||
plate: Optional[str] = None
|
||||
status: Optional[Literal["active", "inactive", "maintenance"]] = None
|
||||
|
||||
|
||||
# ── Drivers ───────────────────────────────────────────────────────────────────
|
||||
class AdminDriver(BaseModel):
|
||||
id: str
|
||||
user_id: str
|
||||
user_name: Optional[str] = None
|
||||
user_email: Optional[str] = None
|
||||
unit_id: Optional[int] = None
|
||||
plate: Optional[str] = None
|
||||
|
||||
|
||||
class AdminDriverCreate(BaseModel):
|
||||
user_id: str
|
||||
unit_id: Optional[int] = None
|
||||
|
||||
|
||||
class AdminDriverUpdate(BaseModel):
|
||||
unit_id: Optional[int] = None
|
||||
Reference in New Issue
Block a user