from pydantic import BaseModel, ConfigDict from typing import List, Optional, Union from datetime import datetime class OCItem(BaseModel): correlative: Optional[int] = None product_code: Optional[str] = None name: str description: Optional[str] = None quantity: float unit: str price: Optional[float] = None total: Optional[float] = None class PurchaseOrder(BaseModel): model_config = ConfigDict(from_attributes=True) code: str name: str status: str status_code: Optional[str] = None buyer: str buyer_rut: Optional[str] = None provider: str provider_rut: Optional[str] = None date_creation: Union[str, datetime, None] = None total_amount: Optional[float] = None currency: Optional[str] = None type: Optional[str] = None items: List[OCItem] = [] raw_data: Optional[dict] = None