Add sequential numbering for broadcast messages

We need that to send broadcast messages using proprietary IBAG
format that Vodafone currently uses.
This commit is contained in:
Pea Tyczynska
2020-12-02 15:59:41 +00:00
parent 6405c1695f
commit 2a04148ea1
2 changed files with 67 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ from flask import url_for, current_app
from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.schema import Sequence
from sqlalchemy.dialects.postgresql import (
UUID,
JSON,
@@ -2483,6 +2484,24 @@ class BroadcastProviderMessage(db.Model):
UniqueConstraint(broadcast_event_id, provider)
class BroadcastProviderMessageNumber(db.Model):
"""
To send IBAG messages via the CBC proxy to Nokia CBC appliances, Notify must generate and store a numeric
message_number alongside the message ID (GUID).
Subsequent messages (Update, Cancel) in IBAG format must reference the original message_number & message_id.
This model relates broadcast_provider_message_id to that numeric message_number.
"""
__tablename__ = 'broadcast_provider_message_number'
sequence = Sequence('broadcast_provider_message_number_seq')
broadcast_provider_message_number = db.Column(
db.Integer, sequence, server_default=sequence.next_value(), primary_key=True
)
broadcast_provider_message_id = db.Column(
UUID(as_uuid=True), db.ForeignKey('broadcast_provider_message.id'), nullable=False
)
class ServiceBroadcastProviderRestriction(db.Model):
"""
Most services don't send broadcasts. Of those that do, most send to all broadcast providers.