#!/usr/bin/env python3
"""
🔧 Générateur de licence de test pour Web Sentinel

Crée une licence valide pour permettre le test des fonctionnalités.
"""

import sys
from pathlib import Path
from datetime import datetime, timezone, timedelta

# Ajouter le chemin du projet
project_root = Path(__file__).parent
sys.path.insert(0, str(project_root))

def create_test_license():
    """Crée une licence de test valide."""
    print("🔧 Création d'une licence de test...")
    
    try:
        from web_sentinel.license.license_generator import LicenseGenerator
        from web_sentinel.license.crypto_manager import CryptoManager
        
        # Initialiser le crypto manager
        crypto_manager = CryptoManager()
        
        try:
            private_key_path = crypto_manager.get_private_key_path()
            print(f"✅ Clé privée trouvée : {private_key_path}")
        except Exception as e:
            print(f"❌ Erreur clé privée : {e}")
            return False
        
        # Créer le générateur
        generator = LicenseGenerator(private_key_path)
        
        # Configuration de la licence
        config = LicenseGenerator.default_config(
            licence_id="WS-TEST-20251015",
            tier="pro",
            valid_until=datetime.now(timezone.utc) + timedelta(days=90),
            max_users=5,
            max_domains=50,
            features={
                'invasive_tests': True,
                'html_export': True,
                'api_access': True,
                'multi_user': True
            },
            super_admin_email="bruno@taaazzz-prog.fr"
        )
        
        # Générer la licence
        license_path = project_root / "license.lic"
        generator.generate(config, license_path)
        
        print(f"✅ Licence créée : {license_path}")
        print(f"📋 ID Licence : {config['licenseId']}")
        print(f"🎯 Tier : {config['subscription']['tier']}")
        print(f"👤 Max utilisateurs : {config['subscription']['maxUsers']}")
        print(f"🌐 Max domaines : {config['subscription']['maxDomains']}")
        print(f"⏰ Valide jusqu'au : {config['subscription']['validUntil']}")
        
        return True
        
    except Exception as e:
        print(f"❌ Erreur génération licence : {e}")
        return False

def main():
    """Point d'entrée principal."""
    print("🚀 Générateur de licence de test Web Sentinel")
    print("=" * 50)
    
    success = create_test_license()
    
    if success:
        print("\n🎉 Licence de test créée avec succès !")
        print("Vous pouvez maintenant lancer l'admin panel.")
    else:
        print("\n❌ Échec de la création de licence")
        print("Vérifiez les erreurs ci-dessus.")

if __name__ == "__main__":
    main()