Files
eventspace/backend/app/models/user.py
Felipe Cardoso cd92cd9780 Remove token revocation logic and unused dependencies
Eliminated the `RevokedToken` model and associated logic for managing token revocation. Removed unused files, related tests, and outdated dependencies in authentication modules. Simplified token decoding, user validation, and dependency injection by streamlining the flow and enhancing maintainability.
2025-03-02 11:04:12 +01:00

30 lines
1.1 KiB
Python

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)
# Fix relationships with explicit foreign_keys
created_events = relationship("Event", back_populates="creator", foreign_keys="Event.created_by")
# Specify which foreign key to use in EventManager (this is the key fix)
managed_events = relationship(
"EventManager",
back_populates="user",
foreign_keys="EventManager.user_id"
)
guest_profiles = relationship("Guest", back_populates="user", foreign_keys="Guest.user_id")
def __repr__(self):
return f"<User {self.email}>"