New table returned-letters

The table will contain notification ids for services that have returned letters. This will make it easy to query the data in Notification_history since we can join on the primary key.
This commit is contained in:
Rebecca Law
2019-12-09 12:19:18 +00:00
parent 2019070536
commit e80a002c58
4 changed files with 42 additions and 2 deletions

View File

View File

@@ -2018,8 +2018,7 @@ class Complaint(db.Model):
__tablename__ = 'complaints'
id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
notification_id = db.Column(UUID(as_uuid=True), db.ForeignKey('notification_history.id'),
index=True, nullable=False)
notification_id = db.Column(UUID(as_uuid=True), index=True, nullable=False)
service_id = db.Column(UUID(as_uuid=True), db.ForeignKey('services.id'), unique=False, index=True, nullable=False)
service = db.relationship(Service, backref=db.backref('complaints'))
ses_feedback_id = db.Column(db.Text, nullable=True)
@@ -2071,3 +2070,14 @@ class ServiceDataRetention(db.Model):
"created_at": self.created_at.strftime(DATETIME_FORMAT),
"updated_at": self.updated_at.strftime(DATETIME_FORMAT) if self.updated_at else None,
}
class ReturnedLetter(db.Model):
__tablename__ = 'returned_letters'
id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
reported_at = db.Column(db.DateTime, nullable=False, default=datetime.datetime.utcnow)
service_id = db.Column(UUID(as_uuid=True), db.ForeignKey('services.id'), unique=False, index=True, nullable=False)
service = db.relationship(Service, backref=db.backref('returned_letters'))
notification_id = db.Column(UUID(as_uuid=True), unique=True, nullable=False)

View File

@@ -0,0 +1,30 @@
"""
Revision ID: 0310_returned_letters_table
Revises: 0309_add_uq_key_row_number
Create Date: 2019-12-09 12:13:49.432993
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
revision = '0310_returned_letters_table'
down_revision = '0309_add_uq_key_row_number'
def upgrade():
op.create_table('returned_letters',
sa.Column('id', postgresql.UUID(as_uuid=True), nullable=False),
sa.Column('reported_at', sa.DateTime(), nullable=False),
sa.Column('service_id', postgresql.UUID(as_uuid=True), nullable=False),
sa.Column('notification_id', postgresql.UUID(as_uuid=True), nullable=False),
sa.ForeignKeyConstraint(['service_id'], ['services.id'], ),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('notification_id')
)
op.create_index(op.f('ix_returned_letters_service_id'), 'returned_letters', ['service_id'], unique=False)
def downgrade():
op.drop_table('returned_letters')