""" add type field to organisation model

Revision ID: 86c0f6b6a176
Revises: 7937dae319b5
Create Date: 2021-02-09 03:29:03.763016

"""
from alembic import op
import sqlalchemy as sa

from backend.models.postgis.statuses import OrganisationType


# revision identifiers, used by Alembic.
revision = "86c0f6b6a176"
down_revision = "7937dae319b5"
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column("organisations", sa.Column("type", sa.Integer(), nullable=True))
    op.execute("UPDATE organisations SET type = {}".format(OrganisationType.FREE.value))
    op.alter_column("organisations", "type", nullable=False)
    op.drop_index(
        "idx_task_validation_mapper_status_composite",
        table_name="task_invalidation_history",
    )
    op.create_index(
        "idx_task_validation_mapper_status_composite",
        "task_invalidation_history",
        ["mapper_id", "is_closed"],
        unique=False,
    )
    op.create_index(
        "idx_task_validation_validator_status_composite",
        "task_invalidation_history",
        ["invalidator_id", "is_closed"],
        unique=False,
    )
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_index(
        "idx_task_validation_mapper_status_composite",
        table_name="task_invalidation_history",
    )
    op.drop_index(
        "idx_task_validation_validator_status_composite",
        table_name="task_invalidation_history",
    )
    op.create_index(
        "idx_task_validation_mapper_status_composite",
        "task_invalidation_history",
        ["invalidator_id", "is_closed"],
        unique=False,
    )
    op.drop_column("organisations", "type")
    # ### end Alembic commands ###
