"""create_campaign_approving_tables Revision ID: 5e9e6ce14214 Revises: 04bdaa2ef7fc Create Date: 2022-08-11 11:50:22.640278 """ from alembic import op import sqlalchemy as sa from sqlalchemy.dialects import postgresql # revision identifiers, used by Alembic. revision = '5e9e6ce14214' down_revision = '04bdaa2ef7fc' branch_labels = None depends_on = None def upgrade(): op.create_table('ApprovalRequest', sa.Column('id', sa.BigInteger(), nullable=False), sa.Column('email_uuid', postgresql.UUID(as_uuid=True), nullable=False), sa.Column('project_id', sa.BigInteger(), nullable=True), sa.Column('requested_at', sa.TIMESTAMP(timezone=True), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False), sa.Column('requester_id', sa.Integer(), nullable=False), sa.Column('reviewer_id', sa.Integer(), nullable=False), sa.Column('message', sa.String(), nullable=True), sa.ForeignKeyConstraint(['project_id'], ['Project.id'], name=op.f('fk_ApprovalRequest_project_id_Project'), ondelete='CASCADE'), sa.ForeignKeyConstraint(['requester_id'], ['User.id'], name=op.f('fk_ApprovalRequest_requester_id_User')), sa.ForeignKeyConstraint(['reviewer_id'], ['User.id'], name=op.f('fk_ApprovalRequest_reviewer_id_User')), sa.PrimaryKeyConstraint('id', name=op.f('pk_ApprovalRequest')), sa.UniqueConstraint('email_uuid', name=op.f('uq_ApprovalRequest_email_uuid')) ) op.create_index('ix_ApprovalRequest_reviewer_id', 'ApprovalRequest', ['reviewer_id']) op.create_table('ApprovalRequestCampaign', sa.Column('id', sa.BigInteger(), nullable=False), sa.Column('approval_request_id', sa.BigInteger(), nullable=False), sa.Column('campaign_uuid', postgresql.UUID(as_uuid=True), nullable=False), sa.Column('expiration_date', sa.Date(), nullable=False), sa.Column('completed_at', sa.TIMESTAMP(timezone=True), nullable=True), sa.Column('is_approved', sa.Boolean(), server_default='FALSE', nullable=False), sa.Column('is_deleted', sa.Boolean(), server_default='FALSE', nullable=False), sa.ForeignKeyConstraint(['approval_request_id'], ['ApprovalRequest.id'], name=op.f('fk_ApprovalRequestCampaign_approval_request_id_ApprovalRequest'), ondelete='CASCADE'), sa.ForeignKeyConstraint(['campaign_uuid'], ['Campaign.uuid'], name=op.f('fk_ApprovalRequestCampaign_campaign_uuid_Campaign'), ondelete='CASCADE'), sa.PrimaryKeyConstraint('id', name=op.f('pk_ApprovalRequestCampaign')) ) op.create_index('ix_ApprovalRequestCampaign_campaign_uuid', 'ApprovalRequestCampaign', ['campaign_uuid']) op.create_index('unique_active_approval_request_campaign', 'ApprovalRequestCampaign', ['campaign_uuid'], unique=True, postgresql_where=sa.text('completed_at IS NULL AND is_deleted = false')) def downgrade(): op.drop_index('ix_ApprovalRequest_reviewer_id', table_name='ApprovalRequest') op.drop_index('ix_ApprovalRequestCampaign_campaign_uuid', table_name='ApprovalRequestCampaign') op.drop_index('unique_active_approval_request_campaign', table_name='ApprovalRequestCampaign', postgresql_where=sa.text('completed_at IS NULL AND is_deleted = false')) op.drop_table('ApprovalRequestCampaign') op.drop_table('ApprovalRequest')