added dewar type, serial number, generate unique id, qr code and generate label

This commit is contained in:
GotthardG
2024-11-14 23:17:20 +01:00
parent ca11a359f9
commit 6083c72a1d
8 changed files with 684 additions and 181 deletions

View File

@ -3,6 +3,38 @@ from pydantic import BaseModel, EmailStr, constr, Field
from datetime import date
class DewarTypeBase(BaseModel):
dewar_type: str
class DewarTypeCreate(DewarTypeBase):
pass
class DewarType(DewarTypeBase):
id: int
class Config:
from_attributes = True
class DewarSerialNumberBase(BaseModel):
serial_number: str
dewar_type_id: int
class DewarSerialNumberCreate(DewarSerialNumberBase):
pass
class DewarSerialNumber(DewarSerialNumberBase):
id: int
dewar_type: DewarType
class Config:
from_attributes = True
class DataCollectionParameters(BaseModel):
priority: Optional[int] = None
comments: Optional[str] = None
@ -41,7 +73,6 @@ class Results(BaseModel):
pass
# Contact Person schemas
class ContactPersonBase(BaseModel):
firstname: str
lastname: str
@ -61,13 +92,12 @@ class ContactPerson(ContactPersonBase):
class ContactPersonUpdate(BaseModel):
firstname: str | None = None
lastname: str | None = None
phone_number: str | None = None
email: EmailStr | None = None
firstname: Optional[str] = None
lastname: Optional[str] = None
phone_number: Optional[str] = None
email: Optional[EmailStr] = None
# Address schemas
class AddressCreate(BaseModel):
street: str
city: str
@ -83,10 +113,10 @@ class Address(AddressCreate):
class AddressUpdate(BaseModel):
street: str | None = None
city: str | None = None
zipcode: str | None = None
country: str | None = None
street: Optional[str] = None
city: Optional[str] = None
zipcode: Optional[str] = None
country: Optional[str] = None
class Sample(BaseModel):
@ -108,8 +138,6 @@ class SampleCreate(BaseModel):
populate_by_name = True
# Puck schemas
class PuckBase(BaseModel):
puck_name: str
puck_type: str
@ -142,9 +170,11 @@ class Puck(BaseModel):
from_attributes = True
# Dewar schemas
class DewarBase(BaseModel):
dewar_name: str
dewar_type_id: Optional[int] = None
dewar_serial_number_id: Optional[int] = None
unique_id: Optional[str] = None
tracking_number: str
number_of_pucks: int
number_of_samples: int
@ -176,6 +206,9 @@ class Dewar(DewarBase):
class DewarUpdate(BaseModel):
dewar_name: Optional[str] = None
dewar_type_id: Optional[int] = None
dewar_serial_number_id: Optional[int] = None
unique_id: Optional[str] = None
tracking_number: Optional[str] = None
status: Optional[str] = None
ready_date: Optional[date] = None
@ -186,6 +219,7 @@ class DewarUpdate(BaseModel):
contact_person_id: Optional[int] = None
address_id: Optional[int] = None
class DewarSchema(BaseModel):
id: int
dewar_name: str
@ -198,7 +232,6 @@ class DewarSchema(BaseModel):
from_attributes = True
# Proposal schemas
class Proposal(BaseModel):
id: int
number: str
@ -207,7 +240,6 @@ class Proposal(BaseModel):
from_attributes = True
# Shipment schemas
class Shipment(BaseModel):
id: int
shipment_name: str
@ -238,4 +270,4 @@ class ShipmentCreate(BaseModel):
class UpdateShipmentComments(BaseModel):
comments: str
comments: str