from sqlalchemy import Column, String, Enum from sqlalchemy.orm import relationship import enum from app.db.base import BaseModel class UserRole(str, enum.Enum): CHILD = "CHILD" PARENT = "PARENT" EDUCATOR = "EDUCATOR" class User(BaseModel): __tablename__ = "users" email = Column(String(255), unique=True, nullable=False, index=True) hashed_password = Column(String(255), nullable=False) role = Column(Enum(UserRole), nullable=False, default=UserRole.CHILD) full_name = Column(String(255), nullable=True) # Relationships schedules = relationship("Schedule", back_populates="user", cascade="all, delete-orphan") rewards = relationship("Reward", back_populates="user", cascade="all, delete-orphan") conversations = relationship("AIConversation", back_populates="user", cascade="all, delete-orphan")