Add recurring scheduled messages (daily, weekly, monthly)

Extend scheduled messages with a recurrence field. After sending a
recurring message, the scheduler automatically creates the next pending
occurrence. Frontend adds repeat toggle (Once/Daily/Weekly/Monthly) and
displays recurrence in the messages table.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-03 23:30:30 -04:00
parent f5203e0466
commit 467e752629
5 changed files with 96 additions and 3 deletions
+10
View File
@@ -16,6 +16,13 @@ class MessageStatus(enum.Enum):
CANCELLED = "cancelled"
class Recurrence(enum.Enum):
NONE = "none"
DAILY = "daily"
WEEKLY = "weekly"
MONTHLY = "monthly"
class ScheduledMessage(Model):
id = fields.UUIDField(primary_key=True)
recipient = fields.CharField(max_length=255)
@@ -26,6 +33,9 @@ class ScheduledMessage(Model):
status = fields.CharEnumField(
enum_type=MessageStatus, max_length=10, default=MessageStatus.PENDING
)
recurrence = fields.CharEnumField(
enum_type=Recurrence, max_length=10, default=Recurrence.NONE
)
error_message = fields.TextField(null=True)
created_by = fields.ForeignKeyField(
"models.User", related_name="scheduled_messages"