from uuid import UUID, uuid4
from datetime import datetime
from pydantic import BaseModel, Field, model_validator
from decimal import Decimal

class CADTakeoff(BaseModel):
    id: UUID = Field(default_factory=uuid4)
    project_id: UUID
    drawing_reference: str
    material_code: str
    quantity: Decimal = Field(..., max_digits=18, decimal_places=4)
    unit: str
    created_at: datetime = Field(default_factory=datetime.utcnow)

    @model_validator(mode='after')
    def validate_quantity(self):
        if self.quantity <= 0:
            raise ValueError("Khối lượng bóc tách phải lớn hơn 0")
        return self
