Improve the frontend 3
This commit is contained in:
@@ -4,17 +4,20 @@ Pydantic schemas for supplier-related API requests and responses
|
||||
"""
|
||||
|
||||
from pydantic import BaseModel, Field, EmailStr
|
||||
from typing import List, Optional, Dict, Any
|
||||
from typing import List, Optional, Dict, Any, Union
|
||||
from uuid import UUID
|
||||
from datetime import datetime
|
||||
from decimal import Decimal
|
||||
|
||||
from app.models.suppliers import (
|
||||
SupplierType, SupplierStatus, PaymentTerms,
|
||||
PurchaseOrderStatus, DeliveryStatus,
|
||||
QualityRating, DeliveryRating, InvoiceStatus
|
||||
SupplierType, SupplierStatus, PaymentTerms,
|
||||
QualityRating
|
||||
)
|
||||
|
||||
# NOTE: PO, Delivery, and Invoice schemas remain for backward compatibility
|
||||
# but the actual tables and functionality have moved to Procurement Service
|
||||
# TODO: These schemas should be removed once all clients migrate to Procurement Service
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# SUPPLIER SCHEMAS
|
||||
@@ -51,7 +54,7 @@ class SupplierCreate(BaseModel):
|
||||
|
||||
# Additional information
|
||||
notes: Optional[str] = None
|
||||
certifications: Optional[Dict[str, Any]] = None
|
||||
certifications: Optional[Union[Dict[str, Any], List[str]]] = None
|
||||
business_hours: Optional[Dict[str, Any]] = None
|
||||
specializations: Optional[Dict[str, Any]] = None
|
||||
|
||||
@@ -88,7 +91,7 @@ class SupplierUpdate(BaseModel):
|
||||
|
||||
# Additional information
|
||||
notes: Optional[str] = None
|
||||
certifications: Optional[Dict[str, Any]] = None
|
||||
certifications: Optional[Union[Dict[str, Any], List[str]]] = None
|
||||
business_hours: Optional[Dict[str, Any]] = None
|
||||
specializations: Optional[Dict[str, Any]] = None
|
||||
|
||||
@@ -144,7 +147,7 @@ class SupplierResponse(BaseModel):
|
||||
|
||||
# Additional information
|
||||
notes: Optional[str] = None
|
||||
certifications: Optional[Dict[str, Any]] = None
|
||||
certifications: Optional[Union[Dict[str, Any], List[str]]] = None
|
||||
business_hours: Optional[Dict[str, Any]] = None
|
||||
specializations: Optional[Dict[str, Any]] = None
|
||||
|
||||
@@ -303,7 +306,7 @@ class PurchaseOrderUpdate(BaseModel):
|
||||
|
||||
class PurchaseOrderStatusUpdate(BaseModel):
|
||||
"""Schema for updating purchase order status"""
|
||||
status: PurchaseOrderStatus
|
||||
status: str # PurchaseOrderStatus - moved to Procurement Service
|
||||
notes: Optional[str] = None
|
||||
|
||||
|
||||
@@ -320,7 +323,7 @@ class PurchaseOrderResponse(BaseModel):
|
||||
supplier_id: UUID
|
||||
po_number: str
|
||||
reference_number: Optional[str] = None
|
||||
status: PurchaseOrderStatus
|
||||
status: str # PurchaseOrderStatus
|
||||
priority: str
|
||||
order_date: datetime
|
||||
required_delivery_date: Optional[datetime] = None
|
||||
@@ -376,7 +379,7 @@ class PurchaseOrderSummary(BaseModel):
|
||||
po_number: str
|
||||
supplier_id: UUID
|
||||
supplier_name: Optional[str] = None
|
||||
status: PurchaseOrderStatus
|
||||
status: str # PurchaseOrderStatus
|
||||
priority: str
|
||||
order_date: datetime
|
||||
required_delivery_date: Optional[datetime] = None
|
||||
@@ -483,7 +486,7 @@ class DeliveryUpdate(BaseModel):
|
||||
|
||||
class DeliveryStatusUpdate(BaseModel):
|
||||
"""Schema for updating delivery status"""
|
||||
status: DeliveryStatus
|
||||
status: str # DeliveryStatus
|
||||
notes: Optional[str] = None
|
||||
update_timestamps: bool = Field(default=True)
|
||||
|
||||
@@ -504,7 +507,7 @@ class DeliveryResponse(BaseModel):
|
||||
supplier_id: UUID
|
||||
delivery_number: str
|
||||
supplier_delivery_note: Optional[str] = None
|
||||
status: DeliveryStatus
|
||||
status: str # DeliveryStatus
|
||||
|
||||
# Timing
|
||||
scheduled_date: Optional[datetime] = None
|
||||
@@ -554,7 +557,7 @@ class DeliverySummary(BaseModel):
|
||||
supplier_name: Optional[str] = None
|
||||
purchase_order_id: UUID
|
||||
po_number: Optional[str] = None
|
||||
status: DeliveryStatus
|
||||
status: str # DeliveryStatus
|
||||
scheduled_date: Optional[datetime] = None
|
||||
actual_arrival: Optional[datetime] = None
|
||||
inspection_passed: Optional[bool] = None
|
||||
@@ -580,7 +583,7 @@ class SupplierSearchParams(BaseModel):
|
||||
class PurchaseOrderSearchParams(BaseModel):
|
||||
"""Search parameters for purchase orders"""
|
||||
supplier_id: Optional[UUID] = None
|
||||
status: Optional[PurchaseOrderStatus] = None
|
||||
status: Optional[str] = None # PurchaseOrderStatus
|
||||
priority: Optional[str] = None
|
||||
date_from: Optional[datetime] = None
|
||||
date_to: Optional[datetime] = None
|
||||
@@ -592,7 +595,7 @@ class PurchaseOrderSearchParams(BaseModel):
|
||||
class DeliverySearchParams(BaseModel):
|
||||
"""Search parameters for deliveries"""
|
||||
supplier_id: Optional[UUID] = None
|
||||
status: Optional[DeliveryStatus] = None
|
||||
status: Optional[str] = None # DeliveryStatus
|
||||
date_from: Optional[datetime] = None
|
||||
date_to: Optional[datetime] = None
|
||||
search_term: Optional[str] = Field(None, max_length=100)
|
||||
|
||||
Reference in New Issue
Block a user