<?php
/**
 * API PHP pour DTW Boumerdes - Pointage Bus
 * Endpoint: operators.php
 * 
 * Cette API récupère la liste des opérateurs avec le nombre de buses et taxis
 */

// Configuration de la base de données
$db_host = 'localhost';  // ou l'adresse IP de votre serveur MySQL
$db_name = 'transubd_PointageBus';
$db_user = 'transubd_transub_user';
$db_pass = 'Tr@nsub2@24';

header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');

// Gérer les requêtes OPTIONS pré-vol
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit;
}

try {
    // Connexion à la base de données
    $conn = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    // Requête SQL pour récupérer les opérateurs avec le nombre de buses et taxis
    $sql = "
        SELECT 
            o.id,
            o.name,
            o.contact_person,
            o.email,
            o.phone,
            o.mobile,
            o.address,
            o.site,
            o.type,
            o.description,
            o.rc,
            o.nif,
            o.ai,
            o.exonerer,
            o.code_auxiliaire,
            o.statut,
            o.creer_par,
            o.date_creation,
            o.modifier_par,
            o.date_modification,
            COALESCE(
                (SELECT COUNT(*) FROM buses b WHERE b.id_operateur = o.id AND b.type = 'Bus' AND b.actif = 1), 
                0
            ) as bus_count,
            COALESCE(
                (SELECT COUNT(*) FROM buses b WHERE b.id_operateur = o.id AND b.type = 'Taxi' AND b.actif = 1), 
                0
            ) as taxi_count
        FROM operators o
        WHERE o.statut = 'actif'
        ORDER BY o.name ASC
    ";
    
    $stmt = $conn->prepare($sql);
    $stmt->execute();
    
    $operators = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    echo json_encode($operators);
    
} catch (PDOException $e) {
    http_response_code(500);
    echo json_encode([
        'error' => 'Erreur de base de données',
        'message' => $e->getMessage()
    ]);
}
