from pydantic import BaseModel, Field from typing import List class Order_Detail(BaseModel): index: int = Field(description="STT, ví dụ như: 1, 2") code: str = Field(description="Mã hàng, ví dụ như TL_SAMSUNG_200") name: str = Field(description="Tên hàng hóa, dịch vụ, ví dụ như: Tủ lạnh Samsung 200 lít") unit: str = Field(description="Đơn vị tính, ví dụ như: Chiếc") quantity: int = Field(description="Số lượng, ví dụ như: 1, 2") price: float = Field(description="Đơn giá, ví dụ như: 8.000.000") total: float = Field(description="Thành tiền, ví dụ như: 8.000.000") class Invoice(BaseModel): template_number: str = Field(description="Mẫu số, ví dụ như: 12GTKT0/123") serial: str = Field(description="Ký hiệu, ví dụ như: HM/12E") number: str = Field(description="Số, ví dụ như: 0000001") invoice_date: str = Field(description="Ngày Hóa Đơn, ví dụ như: Ngày 11 tháng 12 năm 2018") seller_company: str = Field(description="Đơn Vị Bán Hàng, ví dụ Công ty cổ phần ABC") seller_tax_number: str = Field(description="Mã số thuế, ví dụ như: 0123456789") seller_address:str = Field(description="Địa chỉ, ví dụ như: 123 Phố Nguyễn Du, Hà Nội") seller_account:str = Field(description="Số tài khoản, ví dụ như: 1234567892242") buyer: str = Field(description="Họ tên người mua hàng, ví dụ Nguyễn Văn An") buyer_company: str = Field(description="Tên đơn vị, ví dụ Công ty XYZ") buyer_tax_number: str = Field(description="Mã số thuế, ví dụ như: 1234567890") buyer_address:str = Field(description="Địa chỉ, ví dụ như: 456 Phố Trần Nhân Tông, Hà Nội") payment_type:str = Field(description="Hình thức thanh toán, nhận ba giá trị CK hoặc TM hoặc CK/TM, ví dụ như: CK") buyer_account:str = Field(description="Số tài khoản, ví dụ như: 234567898393") order_details:List[Order_Detail] = Field(description="Chi tiết đơn hàng")