Refactor contact handling across backend and frontend

Replaced usage of "ContactPerson" with "Contact" for consistency across the codebase. Updated related component props, state variables, API calls, and database queries to align with the new model. Also enhanced backend functionality with stricter validations and added support for handling active pgroups in contact management.
This commit is contained in:
GotthardG
2025-01-22 16:31:08 +01:00
parent 6cde57f783
commit 382b1eaba8
24 changed files with 627 additions and 373 deletions

View File

@ -366,25 +366,24 @@ class Results(BaseModel):
pass
class ContactPersonBase(BaseModel):
class ContactCreate(BaseModel):
pgroups: str
firstname: str
lastname: str
phone_number: str
email: EmailStr
class ContactPersonCreate(ContactPersonBase):
pass
class ContactPerson(ContactPersonBase):
class Contact(ContactCreate):
id: int
status: str = "active"
class Config:
from_attributes = True
class ContactPersonUpdate(BaseModel):
class ContactUpdate(BaseModel):
pgroups: str
firstname: Optional[str] = None
lastname: Optional[str] = None
phone_number: Optional[str] = None
@ -510,7 +509,7 @@ class DewarBase(BaseModel):
shipping_date: Optional[date]
arrival_date: Optional[date]
returning_date: Optional[date]
contact_person_id: Optional[int]
contact_id: Optional[int]
return_address_id: Optional[int]
pucks: List[PuckCreate] = []
@ -525,7 +524,7 @@ class DewarCreate(DewarBase):
class Dewar(DewarBase):
id: int
shipment_id: Optional[int]
contact_person: Optional[ContactPerson]
contact: Optional[Contact]
return_address: Optional[Address]
pucks: List[Puck] = [] # List of pucks within this dewar
@ -544,7 +543,7 @@ class DewarUpdate(BaseModel):
shipping_date: Optional[date] = None
arrival_date: Optional[date] = None
returning_date: Optional[date] = None
contact_person_id: Optional[int] = None
contact_id: Optional[int] = None
address_id: Optional[int] = None
@ -553,7 +552,7 @@ class DewarSchema(BaseModel):
dewar_name: str
tracking_number: str
status: str
contact_person_id: int
contact_id: int
return_address_id: int
class Config:
@ -574,7 +573,7 @@ class Shipment(BaseModel):
shipment_date: date
shipment_status: str
comments: Optional[str]
contact_person: Optional[ContactPerson]
contact: Optional[Contact]
return_address: Optional[Address]
proposal: Optional[Proposal]
dewars: List[Dewar] = []
@ -588,7 +587,7 @@ class ShipmentCreate(BaseModel):
shipment_date: date
shipment_status: str
comments: Optional[constr(max_length=200)]
contact_person_id: int
contact_id: int
return_address_id: int
proposal_id: int
dewars: List[DewarCreate] = []
@ -621,7 +620,7 @@ class SlotSchema(BaseModel):
retrievedTimestamp: Optional[str]
beamlineLocation: Optional[str]
shipment_name: Optional[str]
contact_person: Optional[str]
contact: Optional[str]
local_contact: Optional[str]
class Config: