<?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');
}

$sql = "SELECT id, name, statut, SiteID 
        FROM operators_circuits 
        WHERE statut = 'actif' AND SiteID = ?
        ORDER BY name 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();

$operateurs = array();
while ($row = $result->fetch_assoc()) {
    $operateurs[] = array(
        'id' => $row['id'],
        'name' => $row['name'],
        'statut' => $row['statut'],
        'SiteID' => $row['SiteID']
    );
}

sendResponse($operateurs, true, 'Opérateurs récupérés avec succès');

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