"""Add gst_registered column to users table

Revision ID: add_gst_registered
Revises: 7839e3474de5
Create Date: 2025-10-29 00:00:00.000000

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'add_gst_registered'
down_revision = '4bf0f7199242'
branch_labels = None
depends_on = None


def upgrade():
    """Add gst_registered column if it doesn't exist"""
    conn = op.get_bind()
    inspector = sa.inspect(conn)
    
    # Check if users table exists
    if 'users' in inspector.get_table_names():
        existing_columns = [col['name'] for col in inspector.get_columns('users')]
        
        # Add gst_registered column if it doesn't exist
        if 'gst_registered' not in existing_columns:
            with op.batch_alter_table('users', schema=None) as batch_op:
                batch_op.add_column(
                    sa.Column('gst_registered', sa.Boolean(), nullable=False, server_default='false')
                )


def downgrade():
    """Remove gst_registered column"""
    conn = op.get_bind()
    inspector = sa.inspect(conn)
    
    if 'users' in inspector.get_table_names():
        existing_columns = [col['name'] for col in inspector.get_columns('users')]
        
        if 'gst_registered' in existing_columns:
            with op.batch_alter_table('users', schema=None) as batch_op:
                batch_op.drop_column('gst_registered')
