"""

Revision ID: 0313_email_access_validated_at
Revises: 0312_populate_returned_letters
Create Date: 2020-01-28 18:03:22.237386

"""
from alembic import op
import sqlalchemy as sa


revision = '0313_email_access_validated_at'
down_revision = '0312_populate_returned_letters'


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column('users', sa.Column('email_access_validated_at', sa.DateTime(), nullable=True))
    # if user has email_auth, set email_access_validated_at on last login, else set it at user created_at date.
    op.execute("""
        UPDATE
            users
        SET
            email_access_validated_at = created_at
    """)
    op.execute("""
        UPDATE
            users
        SET
            email_access_validated_at = logged_in_at
        WHERE
            auth_type = 'email_auth'
        AND
            email_access_validated_at IS NOT NULL
    """)
    op.alter_column('users', 'email_access_validated_at', nullable=False)
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_column('users', 'email_access_validated_at')
    # ### end Alembic commands ###

"""

Revision ID: 0313_email_access_validated_at
Revises: 0312_populate_returned_letters
Create Date: 2020-01-28 18:03:22.237386

"""
from alembic import op
import sqlalchemy as sa


revision = '0313_email_access_validated_at'
down_revision = '0312_populate_returned_letters'


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column('users', sa.Column('email_access_validated_at', sa.DateTime(), nullable=True))
    # if user has email_auth, set email_access_validated_at on last login, else set it at user created_at date.
    op.execute("""
        UPDATE
            users
        SET
            email_access_validated_at = created_at
    """)
    op.execute("""
        UPDATE
            users
        SET
            email_access_validated_at = logged_in_at
        WHERE
            auth_type = 'email_auth'
        AND
            logged_in_at IS NOT NULL
    """)
    op.alter_column('users', 'email_access_validated_at', nullable=False)
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_column('users', 'email_access_validated_at')
    # ### end Alembic commands ###

Fix typo where wrong column name was checked for being null