"""starting point

Revision ID: 399a7ee7c65b
Revises: 
Create Date: 2019-07-11 13:24:58.380167

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '399a7ee7c65b'
down_revision = None
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('eng_verb',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('infinitive', sa.String(length=32), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_eng_verb_infinitive'), 'eng_verb', ['infinitive'], unique=True)
    op.create_table('person',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('name', sa.String(length=16), nullable=True),
    sa.Column('plural', sa.Boolean(), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_person_name'), 'person', ['name'], unique=True)
    op.create_table('spa_verb',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('infinitive', sa.String(length=32), nullable=True),
    sa.Column('stem', sa.String(length=32), nullable=True),
    sa.Column('ending', sa.String(length=2), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_spa_verb_infinitive'), 'spa_verb', ['infinitive'], unique=True)
    op.create_table('tense',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('name', sa.String(length=16), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_tense_name'), 'tense', ['name'], unique=True)
    op.create_table('ending',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('ending', sa.String(length=2), nullable=True),
    sa.Column('newending', sa.String(length=8), nullable=True),
    sa.Column('person_id', sa.Integer(), nullable=True),
    sa.Column('tense_id', sa.Integer(), nullable=True),
    sa.ForeignKeyConstraint(['person_id'], ['person.id'], ),
    sa.ForeignKeyConstraint(['tense_id'], ['tense.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('exception',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('conjugation', sa.String(length=32), nullable=True),
    sa.Column('verb_id', sa.Integer(), nullable=True),
    sa.Column('person_id', sa.Integer(), nullable=True),
    sa.Column('tense_id', sa.Integer(), nullable=True),
    sa.ForeignKeyConstraint(['person_id'], ['person.id'], ),
    sa.ForeignKeyConstraint(['tense_id'], ['tense.id'], ),
    sa.ForeignKeyConstraint(['verb_id'], ['spa_verb.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('pronoun',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('pronoun', sa.String(length=16), nullable=True),
    sa.Column('person_id', sa.Integer(), nullable=True),
    sa.ForeignKeyConstraint(['person_id'], ['person.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_pronoun_pronoun'), 'pronoun', ['pronoun'], unique=True)
    op.create_table('translation',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('spa_verb_id', sa.Integer(), nullable=True),
    sa.Column('eng_verb_id', sa.Integer(), nullable=True),
    sa.ForeignKeyConstraint(['eng_verb_id'], ['eng_verb.id'], ),
    sa.ForeignKeyConstraint(['spa_verb_id'], ['spa_verb.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_table('translation')
    op.drop_index(op.f('ix_pronoun_pronoun'), table_name='pronoun')
    op.drop_table('pronoun')
    op.drop_table('exception')
    op.drop_table('ending')
    op.drop_index(op.f('ix_tense_name'), table_name='tense')
    op.drop_table('tense')
    op.drop_index(op.f('ix_spa_verb_infinitive'), table_name='spa_verb')
    op.drop_table('spa_verb')
    op.drop_index(op.f('ix_person_name'), table_name='person')
    op.drop_table('person')
    op.drop_index(op.f('ix_eng_verb_infinitive'), table_name='eng_verb')
    op.drop_table('eng_verb')
    # ### end Alembic commands ###
