aaredb/backend/app/models.py
2024-11-01 14:13:38 +01:00

61 lines
1.5 KiB
Python

from pydantic import BaseModel
from typing import List, Optional
class ContactPerson(BaseModel):
id: Optional[int] = None
firstname: str
lastname: str
phone_number: str
email: str
class Address(BaseModel):
id: Optional[int] = None
street: str
city: str
zipcode: str
country: str
class Proposal(BaseModel):
id: Optional[int] = None
number: str
class Dewar(BaseModel):
id: Optional[str] = None
dewar_name: str
tracking_number: Optional[str] = None
number_of_pucks: int
number_of_samples: int
return_address: List[Address]
contact_person: List[ContactPerson]
status: str
ready_date: Optional[str] = None
shipping_date: Optional[str] = None
arrival_date: Optional[str] = None
returning_date: Optional[str] = None
qrcode: str
class Shipment(BaseModel):
shipment_id: Optional[str] = None
shipment_name: str
shipment_date: str
shipment_status: str
contact_person: List[ContactPerson]
proposal_number: List[Proposal]
return_address: List[Address]
comments: Optional[str] = None
dewars: List[Dewar]
def get_number_of_dewars(self) -> int:
return len(self.dewars)
def get_shipment_contact_persons(self) -> List[ContactPerson]:
return self.contact_person
def get_shipment_return_addresses(self) -> List[Address]:
return self.return_address
def get_proposals(self) -> List[Proposal]:
return self.proposal_number
class Config:
from_attributes = True