"""Migration: add companies.is_partner and companies.is_deleted columns.

Fixes audit findings M1 (dedicated partner flag) and L4 (missing is_deleted).

Usage:
    cd /home/vincent/projects/command-sovereignty
    source venv/bin/activate
    python scripts/migrate_company_flags.py
"""
import sys
import os

sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from app import create_app
from app.models import db

app = create_app()

with app.app_context():
    inspector = db.inspect(db.engine)
    columns = [col['name'] for col in inspector.get_columns('companies')]

    with db.engine.connect() as conn:
        if 'is_partner' not in columns:
            print("Adding companies.is_partner column...")
            conn.execute(db.text(
                "ALTER TABLE companies ADD COLUMN is_partner BOOLEAN NOT NULL DEFAULT 0"
            ))
            # Backfill: legacy heuristic was name contains 'partner'
            conn.execute(db.text(
                "UPDATE companies SET is_partner = 1 WHERE LOWER(name) LIKE '%partner%'"
            ))
            print("  ✓ Added (backfilled from name heuristic)")
        else:
            print("  ✓ companies.is_partner already exists")

        if 'is_deleted' not in columns:
            print("Adding companies.is_deleted column...")
            conn.execute(db.text(
                "ALTER TABLE companies ADD COLUMN is_deleted BOOLEAN NOT NULL DEFAULT 0"
            ))
            conn.execute(db.text(
                "CREATE INDEX IF NOT EXISTS ix_companies_is_deleted ON companies(is_deleted)"
            ))
            print("  ✓ Added")
        else:
            print("  ✓ companies.is_deleted already exists")

        conn.commit()

    print("\nMigration complete!")