Files
cotizador/api/app/models/paquete.py
T
2026-06-10 02:04:37 -06:00

56 lines
1.4 KiB
Python

from __future__ import annotations
from datetime import datetime
from pydantic import BaseModel, Field
class FasePaqueteInput(BaseModel):
nombre: str = Field(..., min_length=1)
orden: int = Field(0, ge=0)
class PaqueteCreate(BaseModel):
nombre: str = Field(..., min_length=1, description="Nombre del paquete")
descripcion: str | None = None
fases: list[FasePaqueteInput] = Field(default_factory=list)
class PaqueteUpdate(BaseModel):
nombre: str | None = Field(None, min_length=1)
descripcion: str | None = None
activo: bool | None = None
class ManageAction(BaseModel):
action: str = Field(..., description="Acción: addFase, updateFase, deleteFase, addServicio, removeServicio")
faseId: str | None = None
nombre: str | None = None
orden: int | None = None
servicioCatalogoId: str | None = None
fasePaqueteId: str | None = None
class FasePaqueteResponse(BaseModel):
id: str
paqueteId: str
nombre: str
orden: int
createdAt: datetime
updatedAt: datetime
servicios: list[dict] | None = None
model_config = {"from_attributes": True}
class PaqueteResponse(BaseModel):
id: str
nombre: str
descripcion: str | None
activo: bool
createdAt: datetime
updatedAt: datetime
fases: list[FasePaqueteResponse] | None = None
model_config = {"from_attributes": True}