#!/usr/bin/env python3
"""Création de deux comptes de test pour le reset password"""

import psycopg2
import hashlib
import secrets
import os

# Configuration PostgreSQL (identique à l'API)
DB_CONFIG = {
    'host': 'web-sentinel-db',
    'port': 5432,
    'database': 'websentinel_prod',
    'user': 'websentinel_user',
    'password': 'WebSentinelDB2025!'
}

def hash_password(password: str) -> str:
    """Hash le mot de passe avec SHA256 + salt (format utilisé par l'API)"""
    salt = secrets.token_hex(16)
    password_hash = hashlib.sha256((password + salt).encode()).hexdigest()
    return f"{password_hash}:{salt}"

print("🔐 Création de comptes de test pour reset password")
print("=" * 60)
print()

try:
    conn = psycopg2.connect(**DB_CONFIG)
    cursor = conn.cursor()
    
    # Compte 1 : bruno@taaazzz.be (PRO)
    email1 = "bruno@taaazzz.be"
    name1 = "Bruno"
    password1 = "@51008473@ZoE@"
    password_hash1 = hash_password(password1)
    
    print(f"📝 [1/2] Création compte PRO: {email1}")
    cursor.execute("""
        INSERT INTO users (email, name, password_hash, tier, is_active, created_at)
        VALUES (%s, %s, %s, 'pro', true, NOW())
        ON CONFLICT (email) DO UPDATE 
        SET password_hash = EXCLUDED.password_hash,
            tier = 'pro'
    """, (email1, name1, password_hash1))
    
    print(f"   ✅ Compte {email1} créé/mis à jour (tier: PRO)")
    print()
    
    # Compte 2 : contact@taaazzz-prog.fr (ENTREPRISE)
    email2 = "contact@taaazzz-prog.fr"
    name2 = "Contact Taaazzz"
    password2 = "@51008473@ZoE@"
    password_hash2 = hash_password(password2)
    
    print(f"📝 [2/2] Création compte ENTREPRISE: {email2}")
    cursor.execute("""
        INSERT INTO users (email, name, password_hash, tier, is_active, created_at)
        VALUES (%s, %s, %s, 'entreprise', true, NOW())
        ON CONFLICT (email) DO UPDATE 
        SET password_hash = EXCLUDED.password_hash,
            tier = 'entreprise'
    """, (email2, name2, password_hash2))
    
    print(f"   ✅ Compte {email2} créé/mis à jour (tier: ENTREPRISE)")
    print()
    
    conn.commit()
    
    # Vérification
    print("🔍 Vérification des comptes créés:")
    cursor.execute("SELECT id, email, name, tier FROM users WHERE email IN (%s, %s)", (email1, email2))
    users = cursor.fetchall()
    
    for user in users:
        print(f"   - ID: {user[0]}, Email: {user[1]}, Nom: {user[2]}, Tier: {user[3]}")
    
    cursor.close()
    conn.close()
    
    print()
    print("=" * 60)
    print("✅ Comptes créés avec succès !")
    print()
    print("Vous pouvez maintenant tester le reset password avec:")
    print(f"  - {email1} (PRO)")
    print(f"  - {email2} (ENTREPRISE)")
    
except Exception as e:
    print(f"❌ Erreur: {type(e).__name__}")
    print(f"   Message: {e}")
    import traceback
    traceback.print_exc()
