import uuid from datetime import datetime from typing import Optional from pydantic import ConfigDict from common.models.gmodel import Res_WebPacketProtocol, WebPacketProtocol class SupplierProtocol(WebPacketProtocol): pass class Req_CreateSupplier(SupplierProtocol): name: str = "" code: Optional[str] = None manager_name: Optional[str] = None manager_email: Optional[str] = None manager_contact_number: Optional[str] = None priority: Optional[str] = None class Req_UpdateSupplier(SupplierProtocol): name: Optional[str] = None code: Optional[str] = None manager_name: Optional[str] = None manager_email: Optional[str] = None manager_contact_number: Optional[str] = None priority: Optional[str] = None class SupplierData(WebPacketProtocol): model_config = ConfigDict(from_attributes=True) supplier_id: uuid.UUID company_id: uuid.UUID user_id: uuid.UUID name: str code: Optional[str] = None manager_name: Optional[str] = None manager_email: Optional[str] = None manager_contact_number: Optional[str] = None priority: Optional[str] = None created_at: Optional[datetime] = None updated_at: Optional[datetime] = None class Res_Supplier(Res_WebPacketProtocol): supplier: Optional[SupplierData] = None class Res_SupplierList(Res_WebPacketProtocol): suppliers: list[SupplierData] = [] total: int = 0 page: int = 0 size: int = 0 class Res_DeleteSupplier(Res_WebPacketProtocol): pass class Res_ExcelUpload(Res_WebPacketProtocol): received_filename: Optional[str] = None status: str = "" message: str = ""