35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
from sqlalchemy import Boolean, Column, Integer, String, DateTime
|
|
from sqlalchemy.sql import func
|
|
from database import Base
|
|
|
|
|
|
class Guest(Base):
|
|
__tablename__ = "guests"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
first_name = Column(String, nullable=False)
|
|
last_name = Column(String, nullable=False)
|
|
email = Column(String, unique=True, index=True)
|
|
phone_number = Column(String)
|
|
|
|
# RSVP status: pending, accepted, declined
|
|
rsvp_status = Column(String, default="pending")
|
|
|
|
# Meal preferences
|
|
meal_preference = Column(String) # vegetarian, vegan, gluten-free, no-preference, etc.
|
|
|
|
# Plus one information
|
|
has_plus_one = Column(Boolean, default=False)
|
|
plus_one_name = Column(String, nullable=True)
|
|
|
|
# Owner tracking (who added this guest)
|
|
owner = Column(String, nullable=True) # e.g., 'me', 'fiancé', or specific name
|
|
|
|
# Additional notes
|
|
notes = Column(String, nullable=True)
|
|
table_number = Column(Integer, nullable=True)
|
|
|
|
# Timestamps
|
|
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
|
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
|