"""staff_control

Revision ID: f0f802302606
Revises: 4b51cd621a47
Create Date: 2024-06-25 19:48:00.616341

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'f0f802302606'
down_revision = '4b51cd621a47'
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('cmf_person_staff_control_blocked_tasks',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_person_staff_control_blocked_tasks_left_id'), 'cmf_person_staff_control_blocked_tasks', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_staff_control_blocked_tasks_parent_id'), 'cmf_person_staff_control_blocked_tasks', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_staff_control_blocked_tasks_right_id'), 'cmf_person_staff_control_blocked_tasks', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_staff_control_blocked_tasks_root_id'), 'cmf_person_staff_control_blocked_tasks', ['root_id'], unique=False)
    op.create_index(op.f('ix_cmf_asset_deadline'), 'cmf_asset', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_chat_group_deadline'), 'cmf_chat_group', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_chat_topic_deadline'), 'cmf_chat_topic', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_company_deadline'), 'cmf_company', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_component_deadline'), 'cmf_component', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_dashboard_deadline'), 'cmf_dashboard', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_deal_deadline'), 'cmf_deal', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_document_deadline'), 'cmf_document', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_folder_deadline'), 'cmf_folder', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_import_deadline'), 'cmf_import', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_invoice_deadline'), 'cmf_invoice', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_kanban_board_deadline'), 'cmf_kanban_board', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_lead_deadline'), 'cmf_lead', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_list_deadline'), 'cmf_list', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_mail_handler_deadline'), 'cmf_mail_handler', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_payment_deadline'), 'cmf_payment', ['deadline'], unique=False)
    op.add_column('cmf_person', sa.Column('no_staff_control_today', sa.Boolean(), nullable=False, server_default="false"))
    op.add_column('cmf_person', sa.Column('staff_control_blocked_date', sa.TIMESTAMP(timezone=True), nullable=True))
    op.create_index(op.f('ix_cmf_pipeline_deadline'), 'cmf_pipeline', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_project_deadline'), 'cmf_project', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_purchase_order_deadline'), 'cmf_purchase_order', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_purchase_order_items_deadline'), 'cmf_purchase_order_items', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_roadmap_deadline'), 'cmf_roadmap', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_scheme_wf_deadline'), 'cmf_scheme_wf', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_stock_incoming_order_deadline'), 'cmf_stock_incoming_order', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_stock_initial_deadline'), 'cmf_stock_initial', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_stock_inventory_deadline'), 'cmf_stock_inventory', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_stock_move_deadline'), 'cmf_stock_move', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_stock_outcoming_order_deadline'), 'cmf_stock_outcoming_order', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_task_deadline'), 'cmf_task', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_task_filter_deadline'), 'cmf_task_filter', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_task_queue_deadline'), 'cmf_task_queue', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_task_report_deadline'), 'cmf_task_report', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_u_work_post_deadline'), 'cmf_u_work_post', ['deadline'], unique=False)
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_index(op.f('ix_cmf_u_work_post_deadline'), table_name='cmf_u_work_post')
    op.drop_index(op.f('ix_cmf_task_report_deadline'), table_name='cmf_task_report')
    op.drop_index(op.f('ix_cmf_task_queue_deadline'), table_name='cmf_task_queue')
    op.drop_index(op.f('ix_cmf_task_filter_deadline'), table_name='cmf_task_filter')
    op.drop_index(op.f('ix_cmf_task_deadline'), table_name='cmf_task')
    op.drop_index(op.f('ix_cmf_stock_outcoming_order_deadline'), table_name='cmf_stock_outcoming_order')
    op.drop_index(op.f('ix_cmf_stock_move_deadline'), table_name='cmf_stock_move')
    op.drop_index(op.f('ix_cmf_stock_inventory_deadline'), table_name='cmf_stock_inventory')
    op.drop_index(op.f('ix_cmf_stock_initial_deadline'), table_name='cmf_stock_initial')
    op.drop_index(op.f('ix_cmf_stock_incoming_order_deadline'), table_name='cmf_stock_incoming_order')
    op.drop_index(op.f('ix_cmf_scheme_wf_deadline'), table_name='cmf_scheme_wf')
    op.drop_index(op.f('ix_cmf_roadmap_deadline'), table_name='cmf_roadmap')
    op.drop_index(op.f('ix_cmf_purchase_order_items_deadline'), table_name='cmf_purchase_order_items')
    op.drop_index(op.f('ix_cmf_purchase_order_deadline'), table_name='cmf_purchase_order')
    op.drop_index(op.f('ix_cmf_project_deadline'), table_name='cmf_project')
    op.drop_index(op.f('ix_cmf_pipeline_deadline'), table_name='cmf_pipeline')
    op.drop_column('cmf_person', 'staff_control_blocked_date')
    op.drop_column('cmf_person', 'no_staff_control_today')
    op.drop_index(op.f('ix_cmf_payment_deadline'), table_name='cmf_payment')
    op.drop_index(op.f('ix_cmf_mail_handler_deadline'), table_name='cmf_mail_handler')
    op.drop_index(op.f('ix_cmf_list_deadline'), table_name='cmf_list')
    op.drop_index(op.f('ix_cmf_lead_deadline'), table_name='cmf_lead')
    op.drop_index(op.f('ix_cmf_kanban_board_deadline'), table_name='cmf_kanban_board')
    op.drop_index(op.f('ix_cmf_invoice_deadline'), table_name='cmf_invoice')
    op.drop_index(op.f('ix_cmf_import_deadline'), table_name='cmf_import')
    op.drop_index(op.f('ix_cmf_folder_deadline'), table_name='cmf_folder')
    op.drop_index(op.f('ix_cmf_document_deadline'), table_name='cmf_document')
    op.drop_index(op.f('ix_cmf_deal_deadline'), table_name='cmf_deal')
    op.drop_index(op.f('ix_cmf_dashboard_deadline'), table_name='cmf_dashboard')
    op.drop_index(op.f('ix_cmf_component_deadline'), table_name='cmf_component')
    op.drop_index(op.f('ix_cmf_company_deadline'), table_name='cmf_company')
    op.drop_index(op.f('ix_cmf_chat_topic_deadline'), table_name='cmf_chat_topic')
    op.drop_index(op.f('ix_cmf_chat_group_deadline'), table_name='cmf_chat_group')
    op.drop_index(op.f('ix_cmf_asset_deadline'), table_name='cmf_asset')
    op.drop_index(op.f('ix_cmf_person_staff_control_blocked_tasks_root_id'), table_name='cmf_person_staff_control_blocked_tasks')
    op.drop_index(op.f('ix_cmf_person_staff_control_blocked_tasks_right_id'), table_name='cmf_person_staff_control_blocked_tasks')
    op.drop_index(op.f('ix_cmf_person_staff_control_blocked_tasks_parent_id'), table_name='cmf_person_staff_control_blocked_tasks')
    op.drop_index(op.f('ix_cmf_person_staff_control_blocked_tasks_left_id'), table_name='cmf_person_staff_control_blocked_tasks')
    op.drop_table('cmf_person_staff_control_blocked_tasks')
    # ### end Alembic commands ###
