test(T05): contact router, rental router, email service, rate limiting tests + retry queue
This commit is contained in:
@@ -4,5 +4,6 @@ from app.models.rental_request import RentalRequest, RentalRequestItem
|
||||
from app.models.contact import Contact
|
||||
from app.models.admin_user import AdminUser
|
||||
from app.models.sync_log import SyncLog
|
||||
from app.models.email_queue import EmailQueue
|
||||
|
||||
__all__ = ["EquipmentCache", "RentalRequest", "RentalRequestItem", "Contact", "AdminUser", "SyncLog"]
|
||||
__all__ = ["EquipmentCache", "RentalRequest", "RentalRequestItem", "Contact", "AdminUser", "SyncLog", "EmailQueue"]
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,18 @@
|
||||
"""Email queue model for failed email retry."""
|
||||
from sqlalchemy import Column, Integer, String, Text, TIMESTAMP, func
|
||||
from app.database import Base
|
||||
|
||||
|
||||
class EmailQueue(Base):
|
||||
__tablename__ = "email_queue"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
to_addr = Column(String(255), nullable=False)
|
||||
subject = Column(String(255), nullable=False)
|
||||
html_body = Column(Text, nullable=False)
|
||||
text_body = Column(Text)
|
||||
reply_to = Column(String(255))
|
||||
status = Column(String(32), default="pending", nullable=False)
|
||||
attempts = Column(Integer, default=0, nullable=False)
|
||||
created_at = Column(TIMESTAMP, server_default=func.now())
|
||||
updated_at = Column(TIMESTAMP, server_default=func.now(), onupdate=func.now())
|
||||
Reference in New Issue
Block a user