<?php
// Configuration
$width = 800;
$height = 480;
$primApiKey = 'ARcxBJcenxl1werNkIQ513iQnkI9Fjo4'; // Remplace par ta clé API PRIM

// Identifiants des lignes
$lines = [
    'Metro 4' => 'line:IDFM:C01374', // Ligne 4 du métro
    'RER B' => 'line:IDFM:C01743'  // RER B
];

// Fonction pour récupérer les perturbations via l'API PRIM
function getDisruptions($lineId, $apiKey) {
    $url = "https://prim.iledefrance-mobilites.fr/marketplace/v2/navitia/line_reports/lines/" . urlencode($lineId) . "/line_reports";
    $headers = [
        'Accept: application/json',
        'apikey: ' . $apiKey
    ];
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    $response = curl_exec($ch);
    curl_close($ch);
    return json_decode($response, true);
}

// Récupérer les perturbations pour chaque ligne
$disruptions = [];
foreach ($lines as $line => $lineId) {
    $disruptions[$line] = getDisruptions($lineId, $primApiKey);
}

// Fonction pour déterminer l'état du trafic
function getTrafficStatus($disruptions) {
    $disruptions_count = count($disruptions['disruptions']);
    $disruptions_list = array();
    if (isset($disruptions['disruptions']) && $disruptions_count > 0) {
        while($disruptions_count != 0) {
            #$severity = $disruptions['disruptions'][$disruptions_count]['severity']['name'] ?? 'normal';
            $id=$disruptions_count-1;
            $status = $disruptions['disruptions'][$id]['status'] ?? 'Inconnu';
            $cause = $disruptions['disruptions'][$id]['cause'] ?? 'Inconnue';
            $message = $disruptions['disruptions'][$id]['messages'][1]['text'] ?? 'Perturbation en cours';
            $updated = $disruptions['disruptions'][$id]['updated_at'] ?? '';
            $formattedDate = date('d/m/y H:i:s', strtotime($updated));
            if (!str_contains($message, 'ascenseur')) {
                array_push($disruptions_list, ['id' => $id, 'status' => $status, 'cause' => $cause, 'message' => $message, 'last_update' => $formattedDate]);
            }
            $disruptions_count--;
        }
    }
    $actual_disruptions_count = count($disruptions_list);
    if ($actual_disruptions_count==0) {
        array_push($disruptions_list, ['id' => '0', 'status' => 'normal', 'message' => 'Aucune perturbation', 'last_update' => 'Never']);
    }
    return $disruptions_list;
}

// Déterminer l'état du trafic pour chaque ligne
$trafficStatus = [];
foreach ($disruptions as $line => $data) {
    $trafficStatus[$line] = getTrafficStatus($data);
}
?>

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=<?= $width ?>, height=<?= $height ?>, initial-scale=1.0">
    <title>État du trafic - Métro 4 & RER B</title>
    <style>
        body {
          width: 800px;
          height: 480px;
          margin: 0;
          padding: 10px;
          font-family: Arial, sans-serif;
          background-color: #f5f5f5;
          color: #222;
      }
      h1 {
          text-align: center;
          margin: 10px 0 20px;
          font-size: 22px;
      }
      .line-block {
          margin-bottom: 20px;
          padding: 10px 15px;
          background: #fff;
          border-radius: 8px;
          box-shadow: 0 1px 3px rgba(0,0,0,0.1);
      }
      .line-title {
          font-size: 18px;
          font-weight: bold;
          margin-bottom: 8px;
          border-bottom: 2px solid #ddd;
          padding-bottom: 4px;
      }
      .item {
          margin: 5px 0;
          padding: 6px 10px;
          border-left: 4px solid transparent;
      }
      .item.normal { border-color: #28a745; }
      .item.active { border-color: #dc3545; }
      .item.future { border-color: #ffc107; }
      .status {
          font-weight: bold;
          text-transform: capitalize;
      }
      .message {
          margin: 3px 0;
          font-size: 14px;
      }
      .time {
          font-size: 12px;
          color: #555;
      }
  </style>
</head>
<body>

    <?php #echo '<pre>'; print_r($trafficStatus); echo '</pre>'; ?>

    <h1>État du trafic</h1>
    <?php foreach ($trafficStatus as $line => $entries): ?>
      <div class="line-block">
        <div class="line-title"><?= htmlspecialchars($line) ?></div>
        <?php foreach ($entries as $entry): ?>
          <div class="item <?= htmlspecialchars($entry['status']) ?>">
            <div class="status"><?= htmlspecialchars($entry['status']) ?></div>
            <div class="status"><?= htmlspecialchars($entry['cause']) ?></div>
            <div class="message"><?= htmlspecialchars($entry['message']) ?></div>
            <div class="time">Dernière mise à jour : <?= htmlspecialchars($entry['last_update']) ?></div>
        </div>
    <?php endforeach; ?>
</div>
<?php endforeach; ?>

<?php #echo json_encode($disruptions, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); ?>
</body>
</html> 