diff --git a/app/models.py b/app/models.py index 9e2d573cd..bfd6339a2 100644 --- a/app/models.py +++ b/app/models.py @@ -297,29 +297,6 @@ service_email_branding = db.Table( ) -class LetterBranding(db.Model): - __tablename__ = 'letter_branding' - id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) - name = db.Column(db.String(255), unique=True, nullable=False) - filename = db.Column(db.String(255), unique=True, nullable=False) - - def serialize(self): - return { - "id": str(self.id), - "name": self.name, - "filename": self.filename, - } - - -service_letter_branding = db.Table( - 'service_letter_branding', - db.Model.metadata, - # service_id is a primary key as you can only have one letter branding per service - db.Column('service_id', UUID(as_uuid=True), db.ForeignKey('services.id'), primary_key=True, nullable=False), - db.Column('letter_branding_id', UUID(as_uuid=True), db.ForeignKey('letter_branding.id'), nullable=False), -) - - INTERNATIONAL_SMS_TYPE = 'international_sms' INBOUND_SMS_TYPE = 'inbound_sms' SCHEDULE_NOTIFICATIONS = 'schedule_notifications' diff --git a/app/schemas.py b/app/schemas.py index b83382350..dad38f84b 100644 --- a/app/schemas.py +++ b/app/schemas.py @@ -229,15 +229,11 @@ class ServiceSchema(BaseSchema, UUIDsAsStringsMixin): created_by = field_for(models.Service, 'created_by', required=True) organisation_type = field_for(models.Service, 'organisation_type') - letter_logo_filename = fields.Method(dump_only=True, serialize='get_letter_logo_filename') permissions = fields.Method("serialize_service_permissions", "deserialize_service_permissions") email_branding = field_for(models.Service, 'email_branding') organisation = field_for(models.Service, 'organisation') go_live_at = field_for(models.Service, 'go_live_at', format=DATETIME_FORMAT_NO_TIMEZONE) - def get_letter_logo_filename(self, service): - return service.letter_branding and service.letter_branding.filename - def serialize_service_permissions(self, service): return [p.permission for p in service.permissions] @@ -272,7 +268,6 @@ class ServiceSchema(BaseSchema, UUIDsAsStringsMixin): 'inbound_sms', 'jobs', 'letter_contacts', - 'letter_logo_filename', 'reply_to_email_addresses', 'returned_letters', 'service_sms_senders', diff --git a/migrations/versions/0384_remove_letter_branding_.py b/migrations/versions/0384_remove_letter_branding_.py new file mode 100644 index 000000000..688224222 --- /dev/null +++ b/migrations/versions/0384_remove_letter_branding_.py @@ -0,0 +1,44 @@ +""" + +Revision ID: 1358d15190ba +Revises: 0383_update_default_templates.py +Create Date: 2023-02-09 22:24:07.187569 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +revision = '1358d15190ba' +down_revision = '0383_update_default_templates.py' + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint('fk_organisation_letter_branding_id', 'organisation', type_='foreignkey') + op.drop_column('organisation', 'letter_branding_id') + op.drop_table('service_letter_branding') + op.drop_table('letter_branding') + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('organisation', sa.Column('letter_branding_id', postgresql.UUID(), autoincrement=False, nullable=True)) + op.create_foreign_key('fk_organisation_letter_branding_id', 'organisation', 'letter_branding', ['letter_branding_id'], ['id']) + op.create_table('service_letter_branding', + sa.Column('service_id', postgresql.UUID(), autoincrement=False, nullable=False), + sa.Column('letter_branding_id', postgresql.UUID(), autoincrement=False, nullable=False), + sa.ForeignKeyConstraint(['letter_branding_id'], ['letter_branding.id'], name='service_letter_branding_letter_branding_id_fkey'), + sa.ForeignKeyConstraint(['service_id'], ['services.id'], name='service_letter_branding_service_id_fkey'), + sa.PrimaryKeyConstraint('service_id', name='service_letter_branding_pkey') + ) + op.create_table('letter_branding', + sa.Column('id', postgresql.UUID(), autoincrement=False, nullable=False), + sa.Column('name', sa.VARCHAR(length=255), autoincrement=False, nullable=False), + sa.Column('filename', sa.VARCHAR(length=255), autoincrement=False, nullable=False), + sa.PrimaryKeyConstraint('id', name='letter_branding_pkey'), + sa.UniqueConstraint('filename', name='letter_branding_filename_key'), + sa.UniqueConstraint('name', name='letter_branding_name_key') + ) + # ### end Alembic commands ###