<?php
require_once 'db_config.php';
require_once 'security.php';

header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type, Authorization');

// Valider le token et appliquer rate limiting/whitelist
$auth = new ApiSecurity();
$tokenData = $auth->requireAuth(true);
header('X-RateLimit-Remaining: ' . ($auth->checkRateLimit()['remaining'] ?? 'unknown'));

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    sendError('Méthode non autorisée');
}

$siteID = isset($_POST['siteID']) ? trim($_POST['siteID']) : '';

if (empty($siteID)) {
    sendError('SiteID requis');
}

$conn = getConnectionPointage();
if (!$conn) {
    sendError('Erreur de connexion à la base de données');
}

// Récupérer les guichetiers (utilisateurs) du site
$sql = "SELECT id, NomPrenom, Role, SiteID 
        FROM Utilisateurs 
        WHERE SiteID = ? AND statut = 'ACTIF'
        ORDER BY NomPrenom ASC";

$stmt = $conn->prepare($sql);
if (!$stmt) {
    sendError('Erreur de préparation de la requête');
}

$stmt->bind_param("s", $siteID);
$stmt->execute();
$result = $stmt->get_result();

$guichetiers = array();
while ($row = $result->fetch_assoc()) {
    $guichetiers[] = array(
        'id' => $row['id'],
        'NomPrenom' => $row['NomPrenom'],
        'Role' => $row['Role'],
        'SiteID' => $row['SiteID']
    );
}

sendResponse($guichetiers, true, 'Guichetiers récupérés avec succès');

$stmt->close();
$conn->close();
?>