password_reset_request.py 1.2 KB

12345678910111213141516171819202122232425
  1. """
  2. 找回密码工单模型
  3. """
  4. from datetime import datetime
  5. from sqlalchemy import Column, Integer, String, DateTime, ForeignKey
  6. from app.database import Base
  7. from app.utils.timezone import beijing_now_naive
  8. class PasswordResetRequest(Base):
  9. """找回密码工单表"""
  10. __tablename__ = "password_reset_requests"
  11. id = Column(Integer, primary_key=True, autoincrement=True, comment="主键ID")
  12. user_id = Column(Integer, ForeignKey("users.id"), nullable=False, comment="用户ID")
  13. username = Column(String(100), nullable=False, comment="用户名")
  14. email = Column(String(255), nullable=False, comment="用户邮箱")
  15. status = Column(String(20), nullable=False, default="pending",
  16. comment="状态: pending-待处理, processing-处理中, sent-已发送, failed-失败")
  17. error_message = Column(String(500), nullable=True, comment="失败时错误信息")
  18. created_at = Column(DateTime, default=beijing_now_naive, nullable=False, comment="申请时间")
  19. processed_at = Column(DateTime, nullable=True, comment="处理完成时间")
  20. def __repr__(self):
  21. return f"<PasswordResetRequest(id={self.id}, username='{self.username}', status='{self.status}')>"