from typing import Optional from pydantic import BaseModel from app.models.documents import ( ManufacturerInfo, ProductDetails, ComplianceBadge, QRStyle, ) from app.models.enums import QRType, ProductStatus class OrgCreate(BaseModel): name: str gstin: Optional[str] = None pan: Optional[str] = None contact_email: Optional[str] = None phone: Optional[str] = None website: Optional[str] = None address: Optional[str] = None class BrandCreate(BaseModel): name: str description: Optional[str] = None logo_url: Optional[str] = None class ProductCreate(BaseModel): brand_id: str name: str sku: Optional[str] = None category: Optional[str] = None description: Optional[str] = None image_url: Optional[str] = None manufacturer: Optional[ManufacturerInfo] = None details: Optional[ProductDetails] = None compliance_badges: list[ComplianceBadge] = [] recycling_info: Optional[str] = None internal_notes: Optional[str] = None qr_type: str = "dynamic" display_brand_logo: bool = True status: ProductStatus = ProductStatus.draft class BatchCreate(BaseModel): product_id: str batch_number: Optional[str] = None mfg_date: Optional[str] = None expiry_date: Optional[str] = None quantity: int = 1 qr_type: QRType = QRType.batch notes: Optional[str] = None class QRGenerateIn(BaseModel): batch_id: str style: Optional[QRStyle] = None