#!/usr/bin/env python3
"""Script pour générer une licence ENTERPRISE pour bruno."""

import sys
from pathlib import Path
from datetime import datetime, timezone, timedelta

# Ajouter le package principal au path
sys.path.insert(0, str(Path(__file__).parent.parent))

from web_sentinel.license.generators.license_generator import generate_seed, encrypt_config
from web_sentinel.license.crypto_utils import load_private_key

def create_enterprise_license():
    """Créer une licence ENTERPRISE pour l'utilisateur bruno."""
    
    # Configuration licence ENTERPRISE
    license_config = {
        "licence_id": "ENT-BRUNO-001",
        "tier": "enterprise", 
        "user_email": "bruno@taaazzz-prog.fr",
        "max_users": 50,
        "max_domains": 1000,
        "valid_until": (datetime.now(timezone.utc) + timedelta(days=365)).isoformat(),
        "issued_at": datetime.now(timezone.utc).isoformat(),
        "features": {
            "allow_invasive": True,
            "html_reports": True,
            "api_access": True,
            "priority_support": True,
            "custom_branding": True,
            "sso_integration": True,
            "audit_logs": True
        }
    }
    
    # Générer seed et chiffrer
    seed = generate_seed()
    encrypted_config = encrypt_config(seed, license_config)
    
    # Charger clé privée pour signature
    private_key_path = Path(__file__).parent.parent / "web_sentinel" / "license" / "keys" / "license_private.pem"
    
    if not private_key_path.exists():
        print(f"❌ Clé privée non trouvée : {private_key_path}")
        print("💡 Générez d'abord les clés avec le générateur de clés")
        return None
        
    try:
        private_key = load_private_key(private_key_path)
        
        # TODO: Ajouter signature (simplifié pour ce test)
        signature = "MOCK_SIGNATURE_FOR_TESTING"
        
        license_data = {
            "data": encrypted_config,
            "signature": signature
        }
        
        # Sauvegarder licence
        license_path = Path.home() / ".web-sentinel" / "license.lic"
        license_path.parent.mkdir(parents=True, exist_ok=True)
        
        import json
        with open(license_path, 'w') as f:
            json.dump(license_data, f, indent=2)
            
        print(f"✅ Licence ENTERPRISE créée : {license_path}")
        print(f"📧 Utilisateur : {license_config['user_email']}")
        print(f"🎯 Tier : {license_config['tier'].upper()}")
        print(f"📅 Valide jusqu'au : {license_config['valid_until']}")
        
        return license_path
        
    except Exception as e:
        print(f"❌ Erreur lors de la création : {e}")
        return None

if __name__ == "__main__":
    create_enterprise_license()