Files
eventspace/backend/app/schemas/rsvp.py
Felipe Cardoso cd22418786
All checks were successful
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Successful in 47s
Build and Push Docker Images / build-frontend (push) Has been skipped
Add event_id and guest_id fields to RSVPSchemaBase
This update introduces event_id and guest_id fields to the RSVPSchemaBase model, ensuring better tracking of RSVP details. These additions enhance data association and model usability.
2025-03-19 08:38:22 +01:00

63 lines
1.6 KiB
Python

from uuid import UUID
from typing import Optional, Any
from pydantic import BaseModel, Field, ConfigDict
from datetime import datetime
from enum import Enum
class RSVPStatus(str, Enum):
ATTENDING = "attending"
NOT_ATTENDING = "not_attending"
MAYBE = "maybe"
class RSVPSchemaBase(BaseModel):
event_id: UUID
guest_id: UUID
status: RSVPStatus = Field(...)
number_of_guests: int = Field(default=1, ge=1)
response_message: str | None = None
dietary_requirements: str | None = None
additional_info: Any = None
class RSVPSchemaCreate(RSVPSchemaBase):
event_id: UUID
guest_id: UUID
number_of_guests: int = Field(default=1, ge=1)
class RSVPSchemaUpdate(BaseModel):
status: RSVPStatus | None = None
number_of_guests: int | None = Field(default=None, ge=1)
response_message: str | None = None
dietary_requirements: str | None = None
additional_info: dict[str, Any] | None = None
model_config = ConfigDict(from_attributes=True)
class RSVPSchemaInDBBase(RSVPSchemaBase):
id: UUID
response_message: str | None = None
dietary_requirements: str | None = None
additional_info: dict[str, Any] | None = None
response_date: datetime
created_at: datetime
updated_at: datetime
model_config = ConfigDict(from_attributes=True)
class RSVPSchema(RSVPSchemaBase):
id: UUID
response_date: datetime
created_at: datetime
updated_at: datetime
model_config = ConfigDict(from_attributes=True, arbitrary_types_allowed=True)
class RSVPSchemaInDB(RSVPSchemaBase):
id: str
created_at: datetime
updated_at: datetime
model_config = ConfigDict(from_attributes=True)