voip announcement

This commit is contained in:
javad committed 2026-09-28 19:37:19 +03:30
1 parent 38b1cf06df
commit c7993aae44
18 files changed
+679 -151

No files matched your search

+13 -1
View File
@@ -1,10 +1,22 @@
from datetime import timedelta
from uuid import uuid4
from django.utils import timezone
from .models import NotificationJob,NotificationPolicy
from apps.core.models import VoipConfiguration
from .models import AnnouncementJob,NotificationJob,NotificationPolicy
def enqueue(channel,event_type,ticket,dedupe_key,payload=None,customer=None,staff_user=None):
return NotificationJob.objects.get_or_create(dedupe_key=dedupe_key,defaults={"channel":channel,"event_type":event_type,"ticket":ticket,"payload":payload or {},"customer":customer,"staff_user":staff_user,"next_attempt_at":timezone.now()})[0]
def schedule_announcement(message):
"""The ticket transaction also commits this one-message reminder."""
delay = VoipConfiguration.load().announcement_delay_minutes
return AnnouncementJob.objects.get_or_create(
message=message,
defaults={
"next_attempt_at": message.created_at + timedelta(minutes=delay),
"idempotency_key": f"staff-message-{message.public_id.hex}",
},
)[0]
def enqueue_unit_supervisor_ticket_sms(ticket):
"""Queue one concise new-ticket SMS for each configured unit supervisor."""
unit = ticket.owning_unit