"""empty message

Revision ID: 55bac00887c7
Revises: b073627deba3
Create Date: 2021-11-29 20:34:22.835138

"""
import pandas as pd
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

# revision identifiers, used by Alembic.
revision = '55bac00887c7'
down_revision = 'b073627deba3'
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('kapacity_nemocnic_20',
    sa.Column('datum', sa.DateTime(), nullable=False),
    sa.Column('kraj_nuts_kod', sa.Unicode(), nullable=False),
    sa.Column('ecmo_kapacita_volna', sa.Integer(), nullable=True),
    sa.Column('ecmo_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('upv_kapacita_volna', sa.Integer(), nullable=True),
    sa.Column('upv_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('crrt_kapacita_volna', sa.Integer(), nullable=True),
    sa.Column('crrt_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('ihd_kapacita_volna', sa.Integer(), nullable=True),
    sa.Column('ihd_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('luzka_aro_jip_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('luzka_aro_jip_kapacita_volna_covid_pozitivni', sa.Integer(), nullable=True),
    sa.Column('luzka_aro_jip_kapacita_volna_covid_negativni', sa.Integer(), nullable=True),
    sa.Column('luzka_standard_kyslik_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('luzka_standard_kyslik_kapacita_volna_covid_pozitivni', sa.Integer(), nullable=True),
    sa.Column('luzka_standard_kyslik_kapacita_volna_covid_negativni', sa.Integer(), nullable=True),
    sa.Column('ventilatory_prenosne_kapacita_volna', sa.Integer(), nullable=True),
    sa.Column('ventilatory_prenosne_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('ventilatory_operacni_sal_kapacita_volna', sa.Integer(), nullable=True),
    sa.Column('ventilatory_operacni_sal_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('reprofilizovana_kapacita_luzka_aro_jip_kapacita_volna', sa.Integer(), nullable=True),
    sa.Column('reprofilizovana_kapacita_luzka_aro_jip_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('reprofilizovana_kapacita_luzka_aro_jip_kapacita_planovana', sa.Integer(), nullable=True),
    sa.Column('reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_volna', sa.Integer(), nullable=True),
    sa.Column('reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_planovana', sa.Integer(), nullable=True),
    sa.PrimaryKeyConstraint('datum', 'kraj_nuts_kod')
    )
    op.create_table('kapacity_nemocnic_21',
    sa.Column('datum', sa.DateTime(), nullable=False),
    sa.Column('zz_kod', sa.Unicode(), nullable=False),
    sa.Column('zz_nazev', sa.Unicode(), nullable=False),
    sa.Column('kraj_nuts_kod', sa.Unicode(), nullable=True),
    sa.Column('luzka_standard_kyslik_kapacita_volna_covid_pozitivni', sa.Integer(), nullable=True),
    sa.Column('luzka_standard_kyslik_kapacita_volna_covid_negativni', sa.Integer(), nullable=True),
    sa.Column('luzka_standard_kyslik_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('luzka_hfno_cpap_kapacita_volna_covid_pozitivni', sa.Integer(), nullable=True),
    sa.Column('luzka_hfno_cpap_kapacita_volna_covid_negativni', sa.Integer(), nullable=True),
    sa.Column('luzka_hfno_cpap_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('luzka_upv_niv_kapacita_volna_covid_pozitivni', sa.Integer(), nullable=True),
    sa.Column('luzka_upv_niv_kapacita_volna_covid_negativni', sa.Integer(), nullable=True),
    sa.Column('luzka_upv_niv_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('ecmo_kapacita_volna', sa.Integer(), nullable=True),
    sa.Column('ecmo_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('cvvhd_kapacita_volna', sa.Integer(), nullable=True),
    sa.Column('cvvhd_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('ventilatory_prenosne_kapacita_volna', sa.Integer(), nullable=True),
    sa.Column('ventilatory_prenosne_kapacita_celkem', sa.Integer(), nullable=True),
    sa.Column('ventilatory_operacni_sal_kapacita_volna', sa.Integer(), nullable=True),
    sa.Column('ventilatory_operacni_sal_kapacita_celkem', sa.Integer(), nullable=True),
    sa.PrimaryKeyConstraint('datum', 'zz_kod', 'zz_nazev')
    )
    op.drop_table('kapacity_nemocnic_stare')
    # ### end Alembic commands ###

    df = pd.read_csv('data/kapacity_nemocnic_20_09.csv')
    for col in df.columns:
        if col not in ['datum', 'kraj_nuts_kod']:
            df[col] = df[col].fillna('0').astype('int')

    df.to_sql('kapacity_nemocnic_20', op.get_bind(), if_exists='append', index=False)

    df = pd.read_csv('data/kapacity_nemocnic_21_03.csv')
    for col in df.columns:
        if col not in ['datum', 'zz_kod', 'zz_nazev', 'kraj_nuts_kod', 'kraj_nazev']:
            df[col] = df[col].fillna('0').astype('int')

    df = df.drop('kraj_nazev', axis=1)
    df.to_sql('kapacity_nemocnic_21', op.get_bind(), if_exists='append', index=False)


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('kapacity_nemocnic_stare',
    sa.Column('datum', postgresql.TIMESTAMP(), autoincrement=False, nullable=False),
    sa.Column('zz_kod', sa.VARCHAR(), autoincrement=False, nullable=False),
    sa.Column('zz_nazev', sa.VARCHAR(), autoincrement=False, nullable=False),
    sa.Column('kraj_nuts_kod', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('luzka_standard_kyslik_kapacita_volna_covid_pozitivni', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('luzka_standard_kyslik_kapacita_volna_covid_negativni', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('luzka_standard_kyslik_kapacita_celkem', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('luzka_hfno_cpap_kapacita_volna_covid_pozitivni', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('luzka_hfno_cpap_kapacita_volna_covid_negativni', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('luzka_hfno_cpap_kapacita_celkem', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('luzka_upv_niv_kapacita_volna_covid_pozitivni', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('luzka_upv_niv_kapacita_volna_covid_negativni', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('luzka_upv_niv_kapacita_celkem', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('ecmo_kapacita_volna', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('ecmo_kapacita_celkem', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('cvvhd_kapacita_volna', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('cvvhd_kapacita_celkem', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('ventilatory_prenosne_kapacita_volna', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('ventilatory_prenosne_kapacita_celkem', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('ventilatory_operacni_sal_kapacita_volna', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('ventilatory_operacni_sal_kapacita_celkem', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.PrimaryKeyConstraint('datum', 'zz_kod', 'zz_nazev', name='kapacity_nemocnic_stare_pkey')
    )
    op.drop_table('kapacity_nemocnic_21')
    op.drop_table('kapacity_nemocnic_20')
    # ### end Alembic commands ###
