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