"""utc_timestamp

Revision ID: eb659f4dd1c9
Revises: 24b025d48e0a
Create Date: 2025-07-07 19:12:35.616363

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

# revision identifiers, used by Alembic.
revision = 'eb659f4dd1c9'
down_revision = '24b025d48e0a'
branch_labels = None
depends_on = None


def upgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.alter_column(
        'async_jobs', 'expires',
        existing_type=postgresql.TIMESTAMP(),
        type_=postgresql.TIMESTAMP(timezone=True),
        existing_comment='Job expiry time',
        existing_nullable=True,
    )
    op.alter_column(
        'async_jobs', 'created',
        existing_type=postgresql.TIMESTAMP(),
        type_=postgresql.TIMESTAMP(timezone=True),
        existing_comment='Creation timestamp',
        existing_nullable=False,
        existing_server_default=sa.text('CURRENT_TIMESTAMP'),
    )
    op.alter_column(
        'async_jobs', 'locked_until',
        existing_type=postgresql.TIMESTAMP(),
        type_=postgresql.TIMESTAMP(timezone=True),
        existing_comment='Timestamp at which the lock expires',
        existing_nullable=True,
    )
    op.alter_column(
        'async_jobs', 'completed',
        existing_type=postgresql.TIMESTAMP(),
        type_=postgresql.TIMESTAMP(timezone=True),
        existing_comment='Timestamp at which this job was marked as completed',
        existing_nullable=True,
    )
    op.alter_column(
        'chat_history', 'created',
        existing_type=postgresql.TIMESTAMP(),
        type_=sa.DateTime(timezone=True),
        existing_nullable=False,
        existing_server_default=sa.text('CURRENT_TIMESTAMP'),
    )
    op.alter_column(
        'config', 'created',
        existing_type=postgresql.TIMESTAMP(),
        type_=postgresql.TIMESTAMP(timezone=True),
        existing_comment='Creation timestamp',
        existing_nullable=False,
        existing_server_default=sa.text('CURRENT_TIMESTAMP'),
    )
    op.alter_column(
        'config', 'modified',
        existing_type=postgresql.TIMESTAMP(),
        type_=postgresql.TIMESTAMP(timezone=True),
        existing_comment='Last update timestamp',
        existing_nullable=False,
        existing_server_default=sa.text('CURRENT_TIMESTAMP'),
    )
    op.create_unique_constraint('uq_config_key', 'config', ['config_key'])
    # ### end Alembic commands ###


def downgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_constraint('uq_config_key', 'config', type_='unique')
    op.alter_column(
        'config', 'modified',
        existing_type=postgresql.TIMESTAMP(timezone=True),
        type_=postgresql.TIMESTAMP(),
        existing_comment='Last update timestamp',
        existing_nullable=False,
        existing_server_default=sa.text('CURRENT_TIMESTAMP'),
    )
    op.alter_column(
        'config', 'created',
        existing_type=postgresql.TIMESTAMP(timezone=True),
        type_=postgresql.TIMESTAMP(),
        existing_comment='Creation timestamp',
        existing_nullable=False,
        existing_server_default=sa.text('CURRENT_TIMESTAMP'),
    )
    op.alter_column(
        'chat_history', 'created',
        existing_type=sa.DateTime(timezone=True),
        type_=postgresql.TIMESTAMP(),
        existing_nullable=False,
        existing_server_default=sa.text('CURRENT_TIMESTAMP'),
    )
    op.alter_column(
        'async_jobs', 'completed',
        existing_type=postgresql.TIMESTAMP(timezone=True),
        type_=postgresql.TIMESTAMP(),
        existing_comment='Timestamp at which this job was marked as completed',
        existing_nullable=True,
    )
    op.alter_column(
        'async_jobs', 'locked_until',
        existing_type=postgresql.TIMESTAMP(timezone=True),
        type_=postgresql.TIMESTAMP(),
        existing_comment='Timestamp at which the lock expires',
        existing_nullable=True,
    )
    op.alter_column(
        'async_jobs', 'created',
        existing_type=postgresql.TIMESTAMP(timezone=True),
        type_=postgresql.TIMESTAMP(),
        existing_comment='Creation timestamp',
        existing_nullable=False,
        existing_server_default=sa.text('CURRENT_TIMESTAMP'),
    )
    op.alter_column(
        'async_jobs', 'expires',
        existing_type=postgresql.TIMESTAMP(timezone=True),
        type_=postgresql.TIMESTAMP(),
        existing_comment='Job expiry time',
        existing_nullable=True,
    )
    # ### end Alembic commands ###
