"""Enhance audit logs with activity tracking fields

Revision ID: 004_enhance_audit_logs
Revises: 003_add_application_fields
Create Date: 2025-03-07

"""
from alembic import op
import sqlalchemy as sa

# revision identifiers, used by Alembic.
revision = '004_enhance_audit_logs'
down_revision = '003_add_application_fields'
branch_labels = None
depends_on = None


def upgrade():
    # Add new columns to audit_logs
    op.add_column('audit_logs', sa.Column('log_type', sa.String(50), server_default='general'))
    op.add_column('audit_logs', sa.Column('status', sa.String(20), server_default='success'))
    op.add_column('audit_logs', sa.Column('user_agent', sa.String(500), nullable=True))

    # Create indexes for filtering
    op.create_index('idx_audit_logs_log_type', 'audit_logs', ['log_type'])
    op.create_index('idx_audit_logs_status', 'audit_logs', ['status'])
    op.create_index('idx_audit_logs_created_at', 'audit_logs', ['created_at'])


def downgrade():
    op.drop_index('idx_audit_logs_created_at', 'audit_logs')
    op.drop_index('idx_audit_logs_status', 'audit_logs')
    op.drop_index('idx_audit_logs_log_type', 'audit_logs')
    op.drop_column('audit_logs', 'user_agent')
    op.drop_column('audit_logs', 'status')
    op.drop_column('audit_logs', 'log_type')
