"""Désactive le compte de démonstration admin.

Revision ID: b9c3d4e5f6a7
Revises: a8b2c3d4e5f6
"""
from alembic import op

revision = "b9c3d4e5f6a7"
down_revision = "a8b2c3d4e5f6"
branch_labels = None
depends_on = None

def upgrade():
    # Ne désactive le compte de démonstration que si un autre administrateur
    # actif permet de conserver l'accès à l'application.
    op.execute("""
        UPDATE users
        SET is_active = 0
        WHERE username = 'admin'
          AND EXISTS (
              SELECT 1 FROM (
                  SELECT id FROM users
                  WHERE role = 'admin' AND is_active = 1 AND username <> 'admin'
              ) AS active_admins
          )
    """)

def downgrade():
    # Une migration de sécurité ne réactive jamais automatiquement un compte.
    pass
