Files
pedidosClientes/app/models/albaran.py
2025-12-05 11:27:16 -03:00

58 lines
1.4 KiB
Python

from pydantic import BaseModel
from typing import Optional, List, Dict, Any
from datetime import datetime, date
from decimal import Decimal
class ReferenciaAlbaranBase(BaseModel):
referencia: str
denominacion: str
unidades: int = 1
precio_unitario: Decimal = Decimal("0")
impuesto_tipo: str = "21"
impuesto_valor: Decimal = Decimal("0")
class ReferenciaAlbaranResponse(ReferenciaAlbaranBase):
id: int
albaran_id: int
referencia_pedido_proveedor_id: Optional[int] = None
created_at: datetime
class Config:
from_attributes = True
class AlbaranBase(BaseModel):
proveedor_id: Optional[int] = None
numero_albaran: Optional[str] = None
fecha_albaran: Optional[date] = None
archivo_path: str
estado_procesado: str = "pendiente"
class AlbaranCreate(AlbaranBase):
datos_ocr: Optional[Dict[str, Any]] = {}
class AlbaranUpdate(BaseModel):
proveedor_id: Optional[int] = None
numero_albaran: Optional[str] = None
fecha_albaran: Optional[date] = None
estado_procesado: Optional[str] = None
datos_ocr: Optional[Dict[str, Any]] = None
class AlbaranResponse(AlbaranBase):
id: int
fecha_procesado: Optional[datetime] = None
datos_ocr: Dict[str, Any] = {}
created_at: datetime
updated_at: datetime
proveedor: Optional[dict] = None
referencias: Optional[List[ReferenciaAlbaranResponse]] = []
class Config:
from_attributes = True