"""Add task_parent tree

Revision ID: 7e5904b3d166
Revises: 9ea98cfdd74b
Create Date: 2022-11-04 21:00:49.636641

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '7e5904b3d166'
down_revision = '9ea98cfdd74b'
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column('cmf_task', sa.Column('cache_branch_gantt_path', sa.TEXT(), nullable=True))
    op.add_column('cmf_task', sa.Column('has_child_tasks', sa.Boolean(), nullable=True))
    op.add_column('cmf_task', sa.Column('epic_id', sa.String(length=64), nullable=True))
    op.add_column('cmf_task', sa.Column('subproject_id', sa.String(length=64), nullable=True))
    op.create_index(op.f('ix_cmf_task_epic_id'), 'cmf_task', ['epic_id'], unique=False)
    op.create_index(op.f('ix_cmf_task_subproject_id'), 'cmf_task', ['subproject_id'], unique=False)
    op.create_foreign_key(None, 'cmf_task', 'cmf_task', ['epic_id'], ['id'])
    op.create_foreign_key(None, 'cmf_task', 'cmf_task', ['subproject_id'], ['id'])
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_constraint(None, 'cmf_task', type_='foreignkey')
    op.drop_constraint(None, 'cmf_task', type_='foreignkey')
    op.drop_index(op.f('ix_cmf_task_subproject_id'), table_name='cmf_task')
    op.drop_index(op.f('ix_cmf_task_epic_id'), table_name='cmf_task')
    op.drop_column('cmf_task', 'subproject_id')
    op.drop_column('cmf_task', 'epic_id')
    op.drop_column('cmf_task', 'has_child_tasks')
    op.drop_column('cmf_task', 'cache_branch_gantt_path')
    # ### end Alembic commands ###
