60 lines
1.5 KiB
Python
60 lines
1.5 KiB
Python
from pydantic import BaseModel
|
|
from typing import Optional, List
|
|
from datetime import datetime
|
|
|
|
|
|
class ReferenciaPedidoProveedorBase(BaseModel):
|
|
referencia: str
|
|
denominacion: str
|
|
unidades_pedidas: int = 1
|
|
estado: str = "pendiente"
|
|
|
|
|
|
class ReferenciaPedidoProveedorCreate(ReferenciaPedidoProveedorBase):
|
|
referencia_pedido_cliente_id: Optional[int] = None
|
|
|
|
|
|
class ReferenciaPedidoProveedorResponse(ReferenciaPedidoProveedorBase):
|
|
id: int
|
|
pedido_proveedor_id: int
|
|
referencia_pedido_cliente_id: Optional[int] = None
|
|
unidades_recibidas: int = 0
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class PedidoProveedorBase(BaseModel):
|
|
proveedor_id: int
|
|
numero_pedido: Optional[str] = None
|
|
tipo: str = "web"
|
|
estado: str = "pendiente_recepcion"
|
|
email_confirmacion_path: Optional[str] = None
|
|
|
|
|
|
class PedidoProveedorCreate(PedidoProveedorBase):
|
|
referencias: Optional[List[ReferenciaPedidoProveedorCreate]] = []
|
|
|
|
|
|
class PedidoProveedorUpdate(BaseModel):
|
|
proveedor_id: Optional[int] = None
|
|
numero_pedido: Optional[str] = None
|
|
tipo: Optional[str] = None
|
|
estado: Optional[str] = None
|
|
email_confirmacion_path: Optional[str] = None
|
|
|
|
|
|
class PedidoProveedorResponse(PedidoProveedorBase):
|
|
id: int
|
|
fecha_pedido: datetime
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
proveedor: Optional[dict] = None
|
|
referencias: Optional[List[ReferenciaPedidoProveedorResponse]] = []
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|