user.py 973 B

123456789101112131415161718192021222324
  1. from typing import TYPE_CHECKING
  2. from sqlalchemy import Boolean, Column, Integer, String, ForeignKey
  3. from sqlalchemy.orm import relationship
  4. from app.db.base_class import Base
  5. if TYPE_CHECKING:
  6. from .enum import Membership
  7. class User(Base):
  8. id = Column(Integer, primary_key=True, index=True)
  9. full_name = Column(String(20), index=True)
  10. email = Column(String(50), unique=True, index=True, nullable=False)
  11. hashed_password = Column(String(100), nullable=False)
  12. membership_status = Column(String(10),
  13. ForeignKey("membership.status", onupdate="CASCADE", ondelete="RESTRICT"),
  14. default="normal")
  15. available_time = Column(Integer, default=0)
  16. is_active = Column(Boolean(), default=True)
  17. is_superuser = Column(Boolean(), default=False)
  18. videos = relationship("Video", back_populates="owner")
  19. articles = relationship("Article", back_populates="owner")
  20. payments = relationship("Payment", back_populates="owner")