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:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user