"""add_ui_view_form

Revision ID: 454ebbe0c58d
Revises: 1df3e9836e54
Create Date: 2022-11-06 16:11:50.831459

"""
# Так делать запрещено:
# from cmf.base_error import CmfError
# from common.models.cmf_active_entity import CmfActiveEntity

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '454ebbe0c58d'
down_revision = '1df3e9836e54'
branch_labels = None
depends_on = None


def upgrade():
    # for model in CmfActiveEntity.iter_subclasses():
    #     try:
    #         op.add_column(model.tablename, sa.Column('ui_view_form', sa.String(length=32), nullable=False, server_default=model.ui_name.lower()))
    #     except:
    #         pass
        # op.execute(f'update {model.tablename} set ui_view_form = "{model.ui_name.lower()}"')
        # op.alter_column(model.tablename, 'ui_view_form', nullable=False)

    # # ### commands auto generated by Alembic - please adjust! ###
    op.add_column('cmf_chat_group', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_chat_topic', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_company', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_deal', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_document', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_folder', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_import', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_invoice', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_lead', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_list', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_mail', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_payment', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_pipeline', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_project', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_purchase_order', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_purchase_order_items', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_roadmap', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_scheme_wf', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_stock_incoming_order', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_stock_initial', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_stock_inventory', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_stock_move', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_stock_outcoming_order', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_task', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_task_filter', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_task_report', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    op.add_column('cmf_u_work_post', sa.Column('ui_view_form', sa.String(length=64), nullable=False, server_default='crud'))
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_column('cmf_u_work_post', 'ui_view_form')
    op.drop_column('cmf_task_report', 'ui_view_form')
    op.drop_column('cmf_task_filter', 'ui_view_form')
    op.drop_column('cmf_task', 'ui_view_form')
    op.drop_column('cmf_stock_outcoming_order', 'ui_view_form')
    op.drop_column('cmf_stock_move', 'ui_view_form')
    op.drop_column('cmf_stock_inventory', 'ui_view_form')
    op.drop_column('cmf_stock_initial', 'ui_view_form')
    op.drop_column('cmf_stock_incoming_order', 'ui_view_form')
    op.drop_column('cmf_scheme_wf', 'ui_view_form')
    op.drop_column('cmf_roadmap', 'ui_view_form')
    op.drop_column('cmf_purchase_order_items', 'ui_view_form')
    op.drop_column('cmf_purchase_order', 'ui_view_form')
    op.drop_column('cmf_project', 'ui_view_form')
    op.drop_column('cmf_pipeline', 'ui_view_form')
    op.drop_column('cmf_payment', 'ui_view_form')
    op.drop_column('cmf_mail', 'ui_view_form')
    op.drop_column('cmf_list', 'ui_view_form')
    op.drop_column('cmf_lead', 'ui_view_form')
    op.drop_column('cmf_invoice', 'ui_view_form')
    op.drop_column('cmf_import', 'ui_view_form')
    op.drop_column('cmf_folder', 'ui_view_form')
    op.drop_column('cmf_document', 'ui_view_form')
    op.drop_column('cmf_deal', 'ui_view_form')
    op.drop_column('cmf_company', 'ui_view_form')
    op.drop_column('cmf_chat_topic', 'ui_view_form')
    op.drop_column('cmf_chat_group', 'ui_view_form')
    # ### end Alembic commands ###
