proactive_message.py 1012 B

1234567891011121314151617181920212223242526
  1. """
  2. 主动消息任务模型
  3. """
  4. from sqlalchemy import Column, Integer, String, Text, DateTime, ForeignKey
  5. from sqlalchemy.orm import relationship
  6. from sqlalchemy.sql import func
  7. from app.core.database import Base
  8. class ProactiveMessageTask(Base):
  9. """主动消息任务表"""
  10. __tablename__ = "proactive_message_tasks"
  11. id = Column(Integer, primary_key=True, index=True)
  12. user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False)
  13. character_id = Column(Integer, ForeignKey("characters.id", ondelete="CASCADE"), nullable=False)
  14. scheduled_at = Column(DateTime(timezone=True), nullable=False, index=True)
  15. status = Column(String(20), default="pending", index=True) # pending | sent | failed
  16. trigger_reason = Column(String(100)) # high_affection | idle_detected
  17. message_content = Column(Text)
  18. sent_at = Column(DateTime(timezone=True))
  19. error_message = Column(Text)
  20. created_at = Column(DateTime(timezone=True), server_default=func.now())