session.py 1.0 KB

123456789101112131415161718192021222324
  1. """
  2. 会话模型
  3. """
  4. from datetime import datetime
  5. from app.utils.timezone import beijing_now_naive
  6. from sqlalchemy import Column, Integer, String, DateTime, Boolean
  7. from app.database import Base
  8. class Session(Base):
  9. """会话表"""
  10. __tablename__ = "sessions"
  11. id = Column(Integer, primary_key=True, autoincrement=True, comment="主键ID")
  12. session_id = Column(String(64), unique=True, nullable=False, comment="会话ID(UUID)")
  13. user_id = Column(Integer, nullable=False, comment="用户ID")
  14. machine_code = Column(String(255), nullable=False, comment="机器码")
  15. is_active = Column(Boolean, default=True, comment="是否激活")
  16. expires_at = Column(DateTime, nullable=False, comment="过期时间")
  17. created_at = Column(DateTime, default=beijing_now_naive, comment="创建时间")
  18. updated_at = Column(DateTime, default=beijing_now_naive, onupdate=beijing_now_naive, comment="更新时间")
  19. def __repr__(self):
  20. return f"<Session(id={self.id}, session_id='{self.session_id}', user_id={self.user_id})>"