#!/usr/bin/env python3
"""
SmartEye SENTINEL - Handler d'Acquittement
============================================
Appelé par alert_ack.php pour mettre à jour le statut d'une alerte.

Usage : python3 alert_ack_handler.py <alert_id> <status> [detail]

Auteur : Unigest Solutions / SmartEye V30
"""

import sys
import json

sys.path.insert(0, '/var/www/lucas')
from alert_manager import mettre_a_jour_statut, get_alerte, AlertStatus

def main():
    if len(sys.argv) < 3:
        print(json.dumps({"success": False, "error": "Usage: alert_ack_handler.py <alert_id> <status> [detail]"}))
        sys.exit(1)
    
    alert_id = sys.argv[1]
    status = sys.argv[2].upper()
    detail = sys.argv[3] if len(sys.argv) > 3 else None
    
    # Vérifier que l'alerte existe
    alerte = get_alerte(alert_id)
    if not alerte:
        print(json.dumps({
            "success": False, 
            "error": f"Alerte {alert_id} non trouvée (peut-être déjà résolue ou expirée)"
        }))
        sys.exit(0)
    
    # Mettre à jour
    result = mettre_a_jour_statut(alert_id, status, detail)
    
    if result:
        print(json.dumps({
            "success": True,
            "message": f"Alerte {alert_id[:8]}... mise à jour : {status}",
            "alert_id": alert_id,
            "new_status": status,
            "previous_status": alerte.get("status", "?")
        }))
    else:
        print(json.dumps({
            "success": False,
            "error": f"Impossible de passer au statut {status} (statut actuel: {alerte.get('status', '?')})"
        }))

if __name__ == "__main__":
    main()