added pucks and samples
This commit is contained in:
@ -3,7 +3,7 @@ from pydantic import BaseModel, EmailStr, constr
|
||||
from datetime import date
|
||||
|
||||
|
||||
# Base class for Contact Person
|
||||
# Contact Person schemas
|
||||
class ContactPersonBase(BaseModel):
|
||||
firstname: str
|
||||
lastname: str
|
||||
@ -11,12 +11,10 @@ class ContactPersonBase(BaseModel):
|
||||
email: EmailStr
|
||||
|
||||
|
||||
# Create schema for Contact Person
|
||||
class ContactPersonCreate(ContactPersonBase):
|
||||
pass
|
||||
|
||||
|
||||
# Response schema for Contact Person with ID
|
||||
class ContactPerson(ContactPersonBase):
|
||||
id: int
|
||||
|
||||
@ -24,7 +22,7 @@ class ContactPerson(ContactPersonBase):
|
||||
from_attributes = True
|
||||
|
||||
|
||||
# Create schema for Address
|
||||
# Address schemas
|
||||
class AddressCreate(BaseModel):
|
||||
street: str
|
||||
city: str
|
||||
@ -32,7 +30,6 @@ class AddressCreate(BaseModel):
|
||||
country: str
|
||||
|
||||
|
||||
# Response schema for Address with ID
|
||||
class Address(AddressCreate):
|
||||
id: int
|
||||
|
||||
@ -40,8 +37,44 @@ class Address(AddressCreate):
|
||||
from_attributes = True
|
||||
|
||||
|
||||
# Create schema for Dewar
|
||||
class DewarCreate(BaseModel):
|
||||
# Sample schemas
|
||||
class Sample(BaseModel):
|
||||
id: int
|
||||
sample_name: str
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
# Puck schemas
|
||||
class PuckBase(BaseModel):
|
||||
puck_name: str
|
||||
puck_type: str
|
||||
puck_location_in_dewar: int
|
||||
|
||||
|
||||
class PuckCreate(PuckBase):
|
||||
positions: List[int] = []
|
||||
|
||||
|
||||
class PuckUpdate(BaseModel):
|
||||
puck_name: Optional[str] = None
|
||||
puck_type: Optional[str] = None
|
||||
puck_location_in_dewar: Optional[int] = None
|
||||
dewar_id: Optional[int] = None
|
||||
positions: Optional[List[int]] = None
|
||||
|
||||
|
||||
class Puck(PuckBase):
|
||||
id: int
|
||||
positions: List[Sample] = []
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
# Dewar schemas
|
||||
class DewarBase(BaseModel):
|
||||
dewar_name: str
|
||||
tracking_number: str
|
||||
number_of_pucks: int
|
||||
@ -56,28 +89,37 @@ class DewarCreate(BaseModel):
|
||||
return_address_id: Optional[int]
|
||||
|
||||
|
||||
# Response schema for Dewar
|
||||
class Dewar(BaseModel):
|
||||
class DewarCreate(DewarBase):
|
||||
pass
|
||||
|
||||
|
||||
class Dewar(DewarBase):
|
||||
id: str
|
||||
dewar_name: str
|
||||
tracking_number: str
|
||||
number_of_pucks: int
|
||||
number_of_samples: int
|
||||
status: str
|
||||
ready_date: Optional[date]
|
||||
shipping_date: Optional[date]
|
||||
arrival_date: Optional[date]
|
||||
returning_date: Optional[date]
|
||||
qrcode: str
|
||||
shipment_id: Optional[str]
|
||||
contact_person: Optional[ContactPerson]
|
||||
return_address: Optional[Address]
|
||||
pucks: Optional[List[Puck]] = []
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
# Proposal schema
|
||||
class DewarUpdate(BaseModel):
|
||||
dewar_name: Optional[str] = None
|
||||
tracking_number: Optional[str] = None
|
||||
number_of_pucks: Optional[int] = None
|
||||
number_of_samples: Optional[int] = None
|
||||
status: Optional[str] = None
|
||||
ready_date: Optional[date] = None
|
||||
shipping_date: Optional[date] = None
|
||||
arrival_date: Optional[date] = None
|
||||
returning_date: Optional[date] = None
|
||||
qrcode: Optional[str] = None
|
||||
contact_person_id: Optional[int] = None
|
||||
address_id: Optional[int] = None
|
||||
|
||||
|
||||
# Proposal schemas
|
||||
class Proposal(BaseModel):
|
||||
id: int
|
||||
number: str
|
||||
@ -86,7 +128,7 @@ class Proposal(BaseModel):
|
||||
from_attributes = True
|
||||
|
||||
|
||||
# Response schema for Shipment
|
||||
# Shipment schemas
|
||||
class Shipment(BaseModel):
|
||||
shipment_id: str
|
||||
shipment_name: str
|
||||
@ -101,20 +143,6 @@ class Shipment(BaseModel):
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class DewarUpdate(BaseModel):
|
||||
dewar_id: str
|
||||
dewar_name: Optional[str] = None
|
||||
tracking_number: Optional[str] = None
|
||||
number_of_pucks: Optional[int] = None
|
||||
number_of_samples: Optional[int] = None
|
||||
status: Optional[str] = None
|
||||
ready_date: Optional[date] = None
|
||||
shipping_date: Optional[date] = None
|
||||
arrival_date: Optional[date] = None
|
||||
returning_date: Optional[date] = None
|
||||
qrcode: Optional[str] = None
|
||||
contact_person_id: Optional[int] = None
|
||||
address_id: Optional[int] = None # Added
|
||||
|
||||
class ShipmentCreate(BaseModel):
|
||||
shipment_name: str
|
||||
|
Reference in New Issue
Block a user