<?php
/**
 * API Login simple - Version autonome pour desktop app
 */

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");
header("Content-Type: application/json; charset=UTF-8");

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit;
}

// Connexion directe à la base - utiliser localhost pour cPanel
$host = '127.0.0.1';
$dbname = 'transubd_GGR';
$user = 'transubd_transub_user';
$pass = 'Tr@nsub2@24';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $user, $pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    http_response_code(500);
    echo json_encode(['success' => false, 'message' => 'Erreur connexion BD: ' . $e->getMessage()]);
    exit;
}

// Récupérer les données POST
$input = json_decode(file_get_contents('php://input'), true);
if (!$input) {
    // Essayer aussi les données form-urlencoded
    $input = $_POST;
}

$username = $input['username'] ?? '';
$password = $input['password'] ?? '';

if (empty($username) || empty($password)) {
    http_response_code(400);
    echo json_encode(['success' => false, 'message' => 'Username et password requis']);
    exit;
}

try {
    $stmt = $pdo->prepare("
        SELECT code_utilisateur, mot_de_passe, Nom, Prenom, NomPrenom, role, SiteID 
        FROM Utilisateurs 
        WHERE code_utilisateur = ? AND statut = 'ACTIF'
        LIMIT 1
    ");
    $stmt->execute([$username]);
    $user = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$user) {
        http_response_code(404);
        echo json_encode(['success' => false, 'message' => 'Utilisateur non trouvé ou inactif']);
        exit;
    }
    
    // Vérifier le mot de passe
    $passwordMatch = false;
    if ($user['mot_de_passe'] === $password) {
        $passwordMatch = true;
    } elseif (password_verify($password, $user['mot_de_passe'])) {
        $passwordMatch = true;
    }
    
    if (!$passwordMatch) {
        http_response_code(401);
        echo json_encode(['success' => false, 'message' => 'Mot de passe incorrect']);
        exit;
    }
    
    // Succès
    echo json_encode([
        'success' => true,
        'message' => 'Connexion réussie',
        'user' => [
            'id' => $user['code_utilisateur'],
            'username' => $user['code_utilisateur'],
            'nom' => $user['NomPrenom'] ?? ($user['Nom'] . ' ' . $user['Prenom']),
            'role' => $user['role'],
            'site_id' => $user['SiteID']
        ]
    ]);
    
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['success' => false, 'message' => 'Erreur: ' . $e->getMessage()]);
}