def upgrade()

in src/dispatch/database/revisions/tenant/versions/2022-07-28_2ef7baab2916.py [0:0]


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table(
        "case_priority",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("color", sa.String(), nullable=True),
        sa.Column("enabled", sa.Boolean(), nullable=True),
        sa.Column("default", sa.Boolean(), nullable=True),
        sa.Column("view_order", 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.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("id"),
        sa.UniqueConstraint("name", "project_id"),
    )
    op.create_index(
        "case_priority_search_vector_idx",
        "case_priority",
        ["search_vector"],
        unique=False,
        postgresql_using="gin",
    )
    op.create_table(
        "case_severity",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("color", sa.String(), nullable=True),
        sa.Column("enabled", sa.Boolean(), nullable=True),
        sa.Column("default", sa.Boolean(), nullable=True),
        sa.Column("view_order", 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.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("id"),
        sa.UniqueConstraint("name", "project_id"),
    )
    op.create_index(
        "case_severity_search_vector_idx",
        "case_severity",
        ["search_vector"],
        unique=False,
        postgresql_using="gin",
    )
    op.create_table(
        "case_type",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("slug", sa.String(), nullable=True),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("visibility", sa.String(), nullable=True),
        sa.Column("default", sa.Boolean(), nullable=True),
        sa.Column("enabled", sa.Boolean(), nullable=True),
        sa.Column("exclude_from_metrics", sa.Boolean(), nullable=True),
        sa.Column("search_vector", sqlalchemy_utils.types.ts_vector.TSVectorType(), nullable=True),
        sa.Column("project_id", sa.Integer(), nullable=True),
        sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("id"),
        sa.UniqueConstraint("name", "project_id"),
    )
    op.create_index(
        "case_type_search_vector_idx",
        "case_type",
        ["search_vector"],
        unique=False,
        postgresql_using="gin",
    )
    op.create_table(
        "case",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("title", sa.String(), nullable=False),
        sa.Column("description", sa.String(), nullable=False),
        sa.Column("resolution", sa.String(), nullable=True),
        sa.Column("status", sa.String(), nullable=True),
        sa.Column("visibility", sa.String(), nullable=False),
        sa.Column("reported_at", sa.DateTime(), nullable=True),
        sa.Column("stable_at", sa.DateTime(), nullable=True),
        sa.Column("closed_at", sa.DateTime(), nullable=True),
        sa.Column("search_vector", sqlalchemy_utils.types.ts_vector.TSVectorType(), nullable=True),
        sa.Column("assignee_id", sa.Integer(), nullable=True),
        sa.Column("duplicate_id", sa.Integer(), nullable=True),
        sa.Column("source_id", sa.Integer(), 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(
            ["assignee_id"],
            ["dispatch_core.dispatch_user.id"],
        ),
        sa.ForeignKeyConstraint(
            ["duplicate_id"],
            ["case.id"],
        ),
        sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.ForeignKeyConstraint(
            ["source_id"],
            ["source.id"],
        ),
        sa.PrimaryKeyConstraint("id"),
        sa.UniqueConstraint("name", "project_id"),
    )
    op.create_index(
        "case_search_vector_idx", "case", ["search_vector"], unique=False, postgresql_using="gin"
    )
    op.create_table(
        "assoc_case_case_priority",
        sa.Column("case_id", sa.Integer(), nullable=False),
        sa.Column("case_priority_id", sa.Integer(), nullable=False),
        sa.Column("created_at", sa.DateTime(), nullable=True),
        sa.ForeignKeyConstraint(
            ["case_id"],
            ["case.id"],
        ),
        sa.ForeignKeyConstraint(
            ["case_priority_id"],
            ["case_priority.id"],
        ),
        sa.PrimaryKeyConstraint("case_id", "case_priority_id"),
    )
    op.create_table(
        "assoc_case_case_severity",
        sa.Column("case_id", sa.Integer(), nullable=False),
        sa.Column("case_severity_id", sa.Integer(), nullable=False),
        sa.Column("created_at", sa.DateTime(), nullable=True),
        sa.ForeignKeyConstraint(
            ["case_id"],
            ["case.id"],
        ),
        sa.ForeignKeyConstraint(
            ["case_severity_id"],
            ["case_severity.id"],
        ),
        sa.PrimaryKeyConstraint("case_id", "case_severity_id"),
    )
    op.create_table(
        "assoc_case_case_type",
        sa.Column("case_id", sa.Integer(), nullable=False),
        sa.Column("case_type_id", sa.Integer(), nullable=False),
        sa.Column("created_at", sa.DateTime(), nullable=True),
        sa.ForeignKeyConstraint(
            ["case_id"],
            ["case.id"],
        ),
        sa.ForeignKeyConstraint(
            ["case_type_id"],
            ["case_type.id"],
        ),
        sa.PrimaryKeyConstraint("case_id", "case_type_id"),
    )
    op.create_table(
        "assoc_case_tags",
        sa.Column("case_id", sa.Integer(), nullable=False),
        sa.Column("tag_id", sa.Integer(), nullable=False),
        sa.ForeignKeyConstraint(["case_id"], ["case.id"], ondelete="CASCADE"),
        sa.ForeignKeyConstraint(["tag_id"], ["tag.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("case_id", "tag_id"),
    )
    op.add_column("incident", sa.Column("case_id", sa.Integer(), nullable=True))
    op.create_foreign_key(None, "incident", "case", ["case_id"], ["id"], ondelete="CASCADE")
    op.add_column("ticket", sa.Column("case_id", sa.Integer(), nullable=True))
    op.create_foreign_key(None, "ticket", "case", ["case_id"], ["id"], ondelete="CASCADE")