from decimal import Decimal
from uuid import UUID
from pydantic import BaseModel,Field
class SaleItemCreate(BaseModel): product_id:UUID;variant_id:UUID|None=None;unit_id:UUID|None=None;quantity:Decimal=Field(gt=0);unit_price:Decimal=Field(ge=0);discount:Decimal=Field(default=Decimal('0'),ge=0)
class SalePaymentCreate(BaseModel): amount:Decimal=Field(gt=0);payment_method:str;reference:str|None=None
class SaleCreate(BaseModel): branch_id:UUID;customer_id:UUID|None=None;receipt_number:str=Field(min_length=1,max_length=100);discount:Decimal=Field(default=Decimal('0'),ge=0);tax:Decimal=Field(default=Decimal('0'),ge=0);notes:str|None=None;items:list[SaleItemCreate]=Field(min_length=1);payments:list[SalePaymentCreate]=[]
