Enhance Dewar handling and display in logistics system
Added new fields and enriched data representations in DewarStatusTab, backend schemas, and APIs to improve dewar tracking and management. Introduced new API endpoint `/dewar/table` for simplified data rendering. Applied logging and validations for missing relationships.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
from typing import List, Optional
|
||||
from typing import List, Optional, Union
|
||||
from datetime import datetime
|
||||
from pydantic import BaseModel, EmailStr, constr, Field, field_validator
|
||||
from datetime import date
|
||||
@ -410,6 +410,13 @@ class ContactUpdate(BaseModel):
|
||||
email: Optional[EmailStr] = None
|
||||
|
||||
|
||||
class ContactMinimal(BaseModel):
|
||||
firstname: str
|
||||
lastname: str
|
||||
email: EmailStr
|
||||
id: int
|
||||
|
||||
|
||||
class AddressCreate(BaseModel):
|
||||
pgroups: str
|
||||
house_number: Optional[str] = None
|
||||
@ -438,6 +445,16 @@ class AddressUpdate(BaseModel):
|
||||
country: Optional[str] = None
|
||||
|
||||
|
||||
class AddressMinimal(BaseModel):
|
||||
house_number: str
|
||||
street: str
|
||||
city: str
|
||||
state: Optional[str] = None
|
||||
zipcode: str
|
||||
country: str
|
||||
id: int
|
||||
|
||||
|
||||
class Sample(BaseModel):
|
||||
id: int
|
||||
sample_name: str
|
||||
@ -578,6 +595,28 @@ class DewarSchema(BaseModel):
|
||||
# Tracking will also become an event
|
||||
|
||||
|
||||
class DewarTable(BaseModel):
|
||||
id: int
|
||||
pgroups: Optional[str] = None # Make "pgroups" optional
|
||||
shipment_id: Optional[int] = None # Make "shipment_id" optional
|
||||
shipment_name: str
|
||||
dewar_name: str
|
||||
tracking_number: Optional[str] = None
|
||||
dewar_type_id: Optional[int] = None
|
||||
dewar_serial_number_id: Optional[int] = None
|
||||
unique_id: Optional[str] = None
|
||||
status: Optional[str] = None
|
||||
contact: Optional[List[ContactMinimal]] = None
|
||||
address: Optional[List[AddressMinimal]] = None
|
||||
event_id: Optional[int] = None
|
||||
slot_id: Optional[int] = None
|
||||
events: Optional[Union[str, int]] = None
|
||||
last_updated: Optional[datetime] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class Proposal(BaseModel):
|
||||
id: int
|
||||
number: str
|
||||
|
Reference in New Issue
Block a user