from pydantic import BaseModel, EmailStr from typing import Optional from datetime import datetime class GuestBase(BaseModel): first_name: str last_name: str email: Optional[EmailStr] = None phone_number: Optional[str] = None rsvp_status: str = "pending" meal_preference: Optional[str] = None has_plus_one: bool = False plus_one_name: Optional[str] = None owner: Optional[str] = None notes: Optional[str] = None table_number: Optional[int] = None class GuestCreate(GuestBase): pass class GuestUpdate(GuestBase): first_name: Optional[str] = None last_name: Optional[str] = None class Guest(GuestBase): id: int created_at: datetime updated_at: Optional[datetime] = None class Config: from_attributes = True class GuestPublicUpdate(BaseModel): """Schema for public guest self-service updates""" first_name: Optional[str] = None last_name: Optional[str] = None rsvp_status: Optional[str] = None meal_preference: Optional[str] = None has_plus_one: Optional[bool] = None plus_one_name: Optional[str] = None