notification_outbox.py 754 B

12345678910111213141516171819
  1. from datetime import datetime
  2. from sqlalchemy import Column, Integer, String, DateTime, JSON
  3. from app.core.database import Base
  4. class NotificationOutbox(Base):
  5. __tablename__ = "notification_outbox"
  6. id = Column(Integer, primary_key=True, autoincrement=True)
  7. msg_id = Column(String(64), nullable=False, unique=True)
  8. channel = Column(String(32), nullable=False)
  9. payload = Column(JSON, nullable=False)
  10. priority = Column(Integer, default=10)
  11. status = Column(String(16), default="pending")
  12. attempts = Column(Integer, default=0)
  13. next_retry_at = Column(DateTime, nullable=True)
  14. created_at = Column(DateTime, default=datetime.utcnow)
  15. updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)