Refactor guest schema and add RSVP field to GuestBase.

Reorganized imports for better readability and compliance with standards. Added an optional `rsvp` field to the `GuestBase` model to include RSVP details. This enhances the schema's flexibility and supports additional guest-related data.
This commit is contained in:
2025-03-19 20:47:12 +01:00
parent 42508af610
commit 44e6b2a6dc

View File

@@ -1,11 +1,10 @@
import uuid
from pydantic import BaseModel, EmailStr, ConfigDict
from datetime import datetime from datetime import datetime
from typing import Optional, Any, Dict from typing import Optional, Any, Dict
from app.models.guest import GuestStatus
from uuid import UUID from uuid import UUID
from pydantic import BaseModel, EmailStr, ConfigDict
from app.models.guest import GuestStatus
from app.schemas.rsvp import RSVPSchema, RSVPStatus from app.schemas.rsvp import RSVPSchema, RSVPStatus
@@ -50,6 +49,8 @@ class GuestRead(GuestBase):
is_blocked: bool is_blocked: bool
model_config = ConfigDict(from_attributes=True) model_config = ConfigDict(from_attributes=True)
invitation_code: str invitation_code: str
rsvp: Optional[RSVPSchema] = None
class GuestWithRSVPResponse(BaseModel): class GuestWithRSVPResponse(BaseModel):
""" """
@@ -62,6 +63,7 @@ class GuestWithRSVPResponse(BaseModel):
class Config: class Config:
from_attributes = True from_attributes = True
def map_rsvp_status_to_guest_status(rsvp_status: RSVPStatus) -> GuestStatus: def map_rsvp_status_to_guest_status(rsvp_status: RSVPStatus) -> GuestStatus:
if rsvp_status == RSVPStatus.ATTENDING: if rsvp_status == RSVPStatus.ATTENDING:
return GuestStatus.CONFIRMED return GuestStatus.CONFIRMED
@@ -70,4 +72,4 @@ def map_rsvp_status_to_guest_status(rsvp_status: RSVPStatus) -> GuestStatus:
elif rsvp_status == RSVPStatus.MAYBE: elif rsvp_status == RSVPStatus.MAYBE:
return GuestStatus.PENDING return GuestStatus.PENDING
else: else:
return GuestStatus.INVITED return GuestStatus.INVITED