from sqlalchemy import Column, String, JSON, Boolean from sqlalchemy.orm import relationship from .base import Base, TimestampMixin, UUIDMixin class User(Base, UUIDMixin, TimestampMixin): __tablename__ = 'users' email = Column(String, unique=True, nullable=False, index=True) password_hash = Column(String, nullable=False) first_name = Column(String, nullable=False) last_name = Column(String, nullable=False) phone_number = Column(String) is_active = Column(Boolean, default=True, nullable=False) is_superuser = Column(Boolean, default=False, nullable=False) preferences = Column(JSON) # Add relationships created_events = relationship("Event", back_populates="creator", foreign_keys="Event.created_by") managed_events = relationship("EventManager", back_populates="user") guest_profiles = relationship("Guest", back_populates="user") def __repr__(self): return f""