"""Start

Revision ID: 471121a9ff68
Revises: 
Create Date: 2025-03-06 11:11:13.342808

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '471121a9ff68'
down_revision = None
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('licenze',
    sa.Column('idlicenze', sa.Integer(), nullable=False),
    sa.Column('codFitre', sa.String(length=64), nullable=True),
    sa.Column('desFitre', sa.String(length=64), nullable=True),
    sa.Column('codMatrix', sa.String(length=64), nullable=True),
    sa.Column('desMatrix', sa.String(length=64), nullable=True),
    sa.PrimaryKeyConstraint('idlicenze')
    )
    with op.batch_alter_table('licenze', schema=None) as batch_op:
        batch_op.create_index(batch_op.f('ix_licenze_codFitre'), ['codFitre'], unique=False)
        batch_op.create_index(batch_op.f('ix_licenze_codMatrix'), ['codMatrix'], unique=False)
        batch_op.create_index(batch_op.f('ix_licenze_desFitre'), ['desFitre'], unique=False)
        batch_op.create_index(batch_op.f('ix_licenze_desMatrix'), ['desMatrix'], unique=False)

    op.create_table('user',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('username', sa.String(length=64), nullable=True),
    sa.Column('name', sa.String(length=64), nullable=True),
    sa.Column('email', sa.String(length=120), nullable=True),
    sa.Column('password_hash', sa.String(length=128), nullable=True),
    sa.Column('admin', sa.String(length=1), nullable=True),
    sa.Column('insert', sa.String(length=1), nullable=True),
    sa.Column('stat', sa.String(length=1), nullable=True),
    sa.Column('send', sa.String(length=1), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    with op.batch_alter_table('user', schema=None) as batch_op:
        batch_op.create_index(batch_op.f('ix_user_email'), ['email'], unique=True)
        batch_op.create_index(batch_op.f('ix_user_name'), ['name'], unique=False)
        batch_op.create_index(batch_op.f('ix_user_username'), ['username'], unique=True)

    op.create_table('PIN',
    sa.Column('idPIN', sa.Integer(), nullable=False),
    sa.Column('data', sa.DateTime(), nullable=True),
    sa.Column('licenza', sa.Integer(), nullable=True),
    sa.Column('ragsoc', sa.String(length=75), nullable=True),
    sa.Column('codcliente', sa.String(length=64), nullable=True),
    sa.Column('email', sa.String(length=120), nullable=True),
    sa.Column('nsrif', sa.String(length=64), nullable=True),
    sa.Column('pin', sa.String(length=64), nullable=True),
    sa.Column('ordcl', sa.String(length=64), nullable=True),
    sa.Column('dataordcl', sa.Date(), nullable=True),
    sa.ForeignKeyConstraint(['licenza'], ['licenze.idlicenze'], ),
    sa.PrimaryKeyConstraint('idPIN')
    )
    with op.batch_alter_table('PIN', schema=None) as batch_op:
        batch_op.create_index(batch_op.f('ix_PIN_codcliente'), ['codcliente'], unique=False)
        batch_op.create_index(batch_op.f('ix_PIN_data'), ['data'], unique=False)
        batch_op.create_index(batch_op.f('ix_PIN_dataordcl'), ['dataordcl'], unique=False)
        batch_op.create_index(batch_op.f('ix_PIN_email'), ['email'], unique=False)
        batch_op.create_index(batch_op.f('ix_PIN_nsrif'), ['nsrif'], unique=False)
        batch_op.create_index(batch_op.f('ix_PIN_ordcl'), ['ordcl'], unique=False)
        batch_op.create_index(batch_op.f('ix_PIN_pin'), ['pin'], unique=False)
        batch_op.create_index(batch_op.f('ix_PIN_ragsoc'), ['ragsoc'], unique=False)

    op.create_table('lic_cli',
    sa.Column('idlic_cli', sa.Integer(), nullable=False),
    sa.Column('data', sa.Date(), nullable=True),
    sa.Column('ordine', sa.String(length=64), nullable=True),
    sa.Column('cod_cli', sa.String(length=64), nullable=True),
    sa.Column('serialPBX', sa.String(length=64), nullable=True),
    sa.Column('macPBX', sa.String(length=64), nullable=True),
    sa.Column('licatt', sa.String(length=128), nullable=True),
    sa.Column('codLic', sa.String(length=64), nullable=True),
    sa.Column('pin', sa.String(length=64), nullable=True),
    sa.Column('licNEW', sa.String(length=128), nullable=True),
    sa.Column('attiva', sa.Integer(), nullable=True),
    sa.Column('ragsoc', sa.String(length=75), nullable=True),
    sa.Column('email', sa.String(length=120), nullable=True),
    sa.Column('nome', sa.String(length=64), nullable=True),
    sa.Column('cognome', sa.String(length=64), nullable=True),
    sa.ForeignKeyConstraint(['codLic'], ['licenze.codFitre'], ),
    sa.PrimaryKeyConstraint('idlic_cli')
    )
    with op.batch_alter_table('lic_cli', schema=None) as batch_op:
        batch_op.create_index(batch_op.f('ix_lic_cli_cod_cli'), ['cod_cli'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_cli_cognome'), ['cognome'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_cli_data'), ['data'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_cli_email'), ['email'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_cli_licNEW'), ['licNEW'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_cli_licatt'), ['licatt'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_cli_macPBX'), ['macPBX'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_cli_nome'), ['nome'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_cli_ordine'), ['ordine'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_cli_pin'), ['pin'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_cli_ragsoc'), ['ragsoc'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_cli_serialPBX'), ['serialPBX'], unique=False)

    op.create_table('lic_price',
    sa.Column('idlic_price', sa.Integer(), nullable=False),
    sa.Column('licenza', sa.Integer(), nullable=True),
    sa.Column('lic_cod', sa.String(length=64), nullable=True),
    sa.Column('lic_name', sa.String(length=64), nullable=True),
    sa.Column('price', sa.Float(), nullable=True),
    sa.Column('start_date', sa.Date(), nullable=True),
    sa.Column('end_date', sa.Date(), nullable=True),
    sa.ForeignKeyConstraint(['licenza'], ['licenze.idlicenze'], ),
    sa.PrimaryKeyConstraint('idlic_price')
    )
    with op.batch_alter_table('lic_price', schema=None) as batch_op:
        batch_op.create_index(batch_op.f('ix_lic_price_end_date'), ['end_date'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_price_lic_cod'), ['lic_cod'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_price_lic_name'), ['lic_name'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_price_price'), ['price'], unique=False)
        batch_op.create_index(batch_op.f('ix_lic_price_start_date'), ['start_date'], unique=False)

    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    with op.batch_alter_table('lic_price', schema=None) as batch_op:
        batch_op.drop_index(batch_op.f('ix_lic_price_start_date'))
        batch_op.drop_index(batch_op.f('ix_lic_price_price'))
        batch_op.drop_index(batch_op.f('ix_lic_price_lic_name'))
        batch_op.drop_index(batch_op.f('ix_lic_price_lic_cod'))
        batch_op.drop_index(batch_op.f('ix_lic_price_end_date'))

    op.drop_table('lic_price')
    with op.batch_alter_table('lic_cli', schema=None) as batch_op:
        batch_op.drop_index(batch_op.f('ix_lic_cli_serialPBX'))
        batch_op.drop_index(batch_op.f('ix_lic_cli_ragsoc'))
        batch_op.drop_index(batch_op.f('ix_lic_cli_pin'))
        batch_op.drop_index(batch_op.f('ix_lic_cli_ordine'))
        batch_op.drop_index(batch_op.f('ix_lic_cli_nome'))
        batch_op.drop_index(batch_op.f('ix_lic_cli_macPBX'))
        batch_op.drop_index(batch_op.f('ix_lic_cli_licatt'))
        batch_op.drop_index(batch_op.f('ix_lic_cli_licNEW'))
        batch_op.drop_index(batch_op.f('ix_lic_cli_email'))
        batch_op.drop_index(batch_op.f('ix_lic_cli_data'))
        batch_op.drop_index(batch_op.f('ix_lic_cli_cognome'))
        batch_op.drop_index(batch_op.f('ix_lic_cli_cod_cli'))

    op.drop_table('lic_cli')
    with op.batch_alter_table('PIN', schema=None) as batch_op:
        batch_op.drop_index(batch_op.f('ix_PIN_ragsoc'))
        batch_op.drop_index(batch_op.f('ix_PIN_pin'))
        batch_op.drop_index(batch_op.f('ix_PIN_ordcl'))
        batch_op.drop_index(batch_op.f('ix_PIN_nsrif'))
        batch_op.drop_index(batch_op.f('ix_PIN_email'))
        batch_op.drop_index(batch_op.f('ix_PIN_dataordcl'))
        batch_op.drop_index(batch_op.f('ix_PIN_data'))
        batch_op.drop_index(batch_op.f('ix_PIN_codcliente'))

    op.drop_table('PIN')
    with op.batch_alter_table('user', schema=None) as batch_op:
        batch_op.drop_index(batch_op.f('ix_user_username'))
        batch_op.drop_index(batch_op.f('ix_user_name'))
        batch_op.drop_index(batch_op.f('ix_user_email'))

    op.drop_table('user')
    with op.batch_alter_table('licenze', schema=None) as batch_op:
        batch_op.drop_index(batch_op.f('ix_licenze_desMatrix'))
        batch_op.drop_index(batch_op.f('ix_licenze_desFitre'))
        batch_op.drop_index(batch_op.f('ix_licenze_codMatrix'))
        batch_op.drop_index(batch_op.f('ix_licenze_codFitre'))

    op.drop_table('licenze')
    # ### end Alembic commands ###
