"""add deferred_job model

Revision ID: dc63f0db5a5b
Revises: 86cca4892513
Create Date: 2023-11-02 22:52:43.506943

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'dc63f0db5a5b'
down_revision = '86cca4892513'
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('cmf_deferred_job',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('status', sa.String(length=32), nullable=False),
    sa.Column('worker_id', sa.String(), nullable=True),
    sa.Column('start_datetime', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('end_datetime', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('duration', sa.Integer(), nullable=True),
    sa.Column('name', sa.String(), nullable=False),
    sa.Column('params_json', sa.TEXT(), nullable=False),
    sa.Column('param_pickle', sa.LargeBinary(), nullable=True),
    sa.Column('result_json', sa.TEXT(), nullable=True),
    sa.Column('error_text', sa.String(), nullable=True),
    sa.Column('priority', sa.Integer(), nullable=False),
    sa.Column('person_id', sa.String(length=64), nullable=True),
    sa.Column('only_once', sa.Boolean(), nullable=False),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=False),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_deferred_job_cmf_author_id'), 'cmf_deferred_job', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_deferred_job_cmf_created_at'), 'cmf_deferred_job', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_deferred_job_status'), 'cmf_deferred_job', ['status'], unique=False)
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_index(op.f('ix_cmf_deferred_job_status'), table_name='cmf_deferred_job')
    op.drop_index(op.f('ix_cmf_deferred_job_cmf_created_at'), table_name='cmf_deferred_job')
    op.drop_index(op.f('ix_cmf_deferred_job_cmf_author_id'), table_name='cmf_deferred_job')
    op.drop_table('cmf_deferred_job')
    # ### end Alembic commands ###
