def upgrade()

in src/dispatch/database/revisions/tenant/versions/2022-10-27_01aa49ca0470.py [0:0]


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_table("signal")
    op.create_table(
        "assoc_duplication_rule_tag_types",
        sa.Column("duplication_rule_id", sa.Integer(), nullable=False),
        sa.Column("tag_type_id", sa.Integer(), nullable=False),
        sa.ForeignKeyConstraint(
            ["duplication_rule_id"], ["duplication_rule.id"], ondelete="CASCADE"
        ),
        sa.ForeignKeyConstraint(["tag_type_id"], ["tag_type.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("duplication_rule_id", "tag_type_id"),
    )
    op.create_table(
        "assoc_suppression_rule_tags",
        sa.Column("suppression_rule_id", sa.Integer(), nullable=False),
        sa.Column("tag_id", sa.Integer(), nullable=False),
        sa.ForeignKeyConstraint(
            ["suppression_rule_id"], ["suppression_rule.id"], ondelete="CASCADE"
        ),
        sa.ForeignKeyConstraint(["tag_id"], ["tag.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("suppression_rule_id", "tag_id"),
    )
    op.create_table(
        "signal",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("owner", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("external_url", sa.String(), nullable=True),
        sa.Column("external_id", sa.String(), nullable=True),
        sa.Column("source_id", sa.Integer(), nullable=True),
        sa.Column("variant", sa.String(), nullable=True),
        sa.Column("case_type_id", sa.Integer(), nullable=True),
        sa.Column("case_priority_id", sa.Integer(), nullable=True),
        sa.Column("duplication_rule_id", sa.Integer(), nullable=True),
        sa.Column("suppression_rule_id", sa.Integer(), nullable=True),
        sa.Column("search_vector", sqlalchemy_utils.types.ts_vector.TSVectorType(), nullable=True),
        sa.Column("project_id", sa.Integer(), nullable=True),
        sa.Column("created_at", sa.DateTime(), nullable=True),
        sa.Column("updated_at", sa.DateTime(), nullable=True),
        sa.ForeignKeyConstraint(
            ["case_priority_id"],
            ["case_priority.id"],
        ),
        sa.ForeignKeyConstraint(
            ["case_type_id"],
            ["case_type.id"],
        ),
        sa.ForeignKeyConstraint(
            ["duplication_rule_id"],
            ["duplication_rule.id"],
        ),
        sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.ForeignKeyConstraint(
            ["source_id"],
            ["source.id"],
        ),
        sa.ForeignKeyConstraint(
            ["suppression_rule_id"],
            ["suppression_rule.id"],
        ),
        sa.PrimaryKeyConstraint("id"),
    )
    op.create_index(
        "signal_search_vector_idx",
        "signal",
        ["search_vector"],
        unique=False,
        postgresql_using="gin",
    )
    op.create_table(
        "signal_instance",
        sa.Column("id", postgresql.UUID(as_uuid=True), nullable=False),
        sa.Column("case_id", sa.Integer(), nullable=True),
        sa.Column("signal_id", sa.Integer(), nullable=True),
        sa.Column("fingerprint", sa.String(), nullable=True),
        sa.Column("duplication_rule_id", sa.Integer(), nullable=True),
        sa.Column("suppression_rule_id", sa.Integer(), nullable=True),
        sa.Column("raw", postgresql.JSONB(astext_type=sa.Text()), nullable=True),
        sa.Column("project_id", sa.Integer(), nullable=True),
        sa.Column("updated_at", sa.DateTime(), nullable=True),
        sa.Column("created_at", sa.DateTime(), nullable=True),
        sa.ForeignKeyConstraint(
            ["case_id"],
            ["case.id"],
        ),
        sa.ForeignKeyConstraint(
            ["duplication_rule_id"],
            ["duplication_rule.id"],
        ),
        sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.ForeignKeyConstraint(
            ["signal_id"],
            ["signal.id"],
        ),
        sa.ForeignKeyConstraint(
            ["suppression_rule_id"],
            ["suppression_rule.id"],
        ),
        sa.PrimaryKeyConstraint("id"),
    )
    op.create_table(
        "assoc_signal_instance_tags",
        sa.Column("signal_instance_id", postgresql.UUID(), nullable=False),
        sa.Column("tag_id", sa.Integer(), nullable=False),
        sa.ForeignKeyConstraint(["signal_instance_id"], ["signal_instance.id"], ondelete="CASCADE"),
        sa.ForeignKeyConstraint(["tag_id"], ["tag.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("signal_instance_id", "tag_id"),
    )
    op.add_column("duplication_rule", sa.Column("window", sa.Integer(), nullable=True))
    op.drop_constraint("duplication_rule_name_project_id_key", "duplication_rule", type_="unique")
    op.drop_index("duplication_rule_search_vector_idx", table_name="duplication_rule")
    op.drop_constraint("duplication_rule_creator_id_fkey", "duplication_rule", type_="foreignkey")
    op.drop_column("duplication_rule", "expression")
    op.drop_column("duplication_rule", "creator_id")
    op.drop_column("duplication_rule", "description")
    op.drop_column("duplication_rule", "name")
    op.drop_column("duplication_rule", "search_vector")
    op.drop_constraint("suppression_rule_name_project_id_key", "suppression_rule", type_="unique")
    op.drop_index("suppression_rule_search_vector_idx", table_name="suppression_rule")
    op.drop_constraint("suppression_rule_creator_id_fkey", "suppression_rule", type_="foreignkey")
    op.drop_column("suppression_rule", "expression")
    op.drop_column("suppression_rule", "creator_id")
    op.drop_column("suppression_rule", "description")
    op.drop_column("suppression_rule", "name")
    op.drop_column("suppression_rule", "search_vector")