"""New Sl fields

Revision ID: 227df639798d
Revises: d5229e4bbc52
Create Date: 2022-11-14 21:13:30.095138

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '227df639798d'
down_revision = 'd5229e4bbc52'
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column('cmf_project', sa.Column('sl_deadline_shift', sa.Integer(), nullable=True))
    op.add_column('cmf_project', sa.Column('sl_only_owner_approve', sa.Boolean(), nullable=False, server_default="true"))
    op.add_column('cmf_project', sa.Column('sl_deny_no_approve', sa.Boolean(), nullable=False, server_default="true"))
    op.add_column('cmf_project', sa.Column('sl_allow_executor_change_nofatal_deadline', sa.Boolean(), nullable=False, server_default="false"))
    op.add_column('cmf_project', sa.Column('sl_task_need_approve', sa.Boolean(), nullable=False, server_default="false"))
    op.add_column('cmf_project', sa.Column('sl_task_only_owner_close', sa.Boolean(), nullable=False, server_default="true"))
    op.add_column('cmf_workflow', sa.Column('enable_sl_control', sa.Boolean(), nullable=False, server_default="false"))
    op.add_column('cmf_workflow', sa.Column('sl_only_owner_approve', sa.Boolean(), nullable=False, server_default="true"))
    op.add_column('cmf_workflow', sa.Column('sl_deny_no_approve', sa.Boolean(), nullable=False, server_default="true"))
    op.add_column('cmf_workflow', sa.Column('sl_allow_executor_change_nofatal_deadline', sa.Boolean(), nullable=False, server_default="false"))
    op.drop_column('cmf_workflow', 'disable_simple_logic_control')
    op.alter_column('cmf_workflow', 'default_task_need_approve', new_column_name='sl_task_need_approve')
    op.alter_column('cmf_workflow', 'default_deadline_shift', new_column_name='sl_deadline_shift')
    op.alter_column('cmf_workflow', 'default_task_only_owner_close', new_column_name='sl_task_only_owner_close')

    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column('cmf_workflow', sa.Column('default_task_only_owner_close', sa.BOOLEAN(), server_default=sa.text('false'), autoincrement=False, nullable=False))
    op.add_column('cmf_workflow', sa.Column('default_deadline_shift', sa.INTEGER(), autoincrement=False, nullable=True))
    op.add_column('cmf_workflow', sa.Column('disable_simple_logic_control', sa.BOOLEAN(), server_default=sa.text('false'), autoincrement=False, nullable=False))
    op.add_column('cmf_workflow', sa.Column('default_task_need_approve', sa.BOOLEAN(), server_default=sa.text('false'), autoincrement=False, nullable=False))
    op.drop_column('cmf_workflow', 'sl_task_only_owner_close')
    op.drop_column('cmf_workflow', 'sl_task_need_approve')
    op.drop_column('cmf_workflow', 'sl_allow_executor_change_nofatal_deadline')
    op.drop_column('cmf_workflow', 'sl_deny_no_approve')
    op.drop_column('cmf_workflow', 'sl_only_owner_approve')
    op.drop_column('cmf_workflow', 'sl_deadline_shift')
    op.drop_column('cmf_workflow', 'enable_sl_control')
    op.drop_column('cmf_project', 'sl_task_only_owner_close')
    op.drop_column('cmf_project', 'sl_task_need_approve')
    op.drop_column('cmf_project', 'sl_allow_executor_change_nofatal_deadline')
    op.drop_column('cmf_project', 'sl_deny_no_approve')
    op.drop_column('cmf_project', 'sl_only_owner_approve')
    op.drop_column('cmf_project', 'sl_deadline_shift')
    # ### end Alembic commands ###
