Update server with new guest rsvp endpoint
This commit is contained in:
@@ -6,6 +6,9 @@ from typing import Optional, Any, Dict
|
||||
from app.models.guest import GuestStatus
|
||||
from uuid import UUID
|
||||
|
||||
from app.schemas.rsvp import RSVPSchema, RSVPStatus
|
||||
|
||||
|
||||
class GuestBase(BaseModel):
|
||||
event_id: UUID
|
||||
invited_by: UUID
|
||||
@@ -46,4 +49,25 @@ class GuestRead(GuestBase):
|
||||
actual_additional_guests: int
|
||||
is_blocked: bool
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
invitation_code: str
|
||||
invitation_code: str
|
||||
|
||||
class GuestWithRSVPResponse(BaseModel):
|
||||
"""
|
||||
Combined response model that includes both guest and RSVP information.
|
||||
This gives the frontend a complete picture of the guest's response in a single object.
|
||||
"""
|
||||
guest: GuestRead
|
||||
rsvp: Optional[RSVPSchema] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
def map_rsvp_status_to_guest_status(rsvp_status: RSVPStatus) -> GuestStatus:
|
||||
if rsvp_status == RSVPStatus.ATTENDING:
|
||||
return GuestStatus.CONFIRMED
|
||||
elif rsvp_status == RSVPStatus.NOT_ATTENDING:
|
||||
return GuestStatus.DECLINED
|
||||
elif rsvp_status == RSVPStatus.MAYBE:
|
||||
return GuestStatus.PENDING
|
||||
else:
|
||||
return GuestStatus.INVITED
|
||||
Reference in New Issue
Block a user