<?php /** @var array $rows */ /** @var array $stats */ /** @var array $filters */ /** @var array $generatedBy */ /** @var string $generatedAt */ ?>
<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>Export Maintenance FTTH</title>
  <style>
    @page { margin: 22px 18px; }
    body {
      font-family: DejaVu Sans, sans-serif;
      color: #183247;
      font-size: 11px;
      line-height: 1.45;
    }
    .header {
      border-bottom: 2px solid #1f7a8c;
      padding-bottom: 12px;
      margin-bottom: 18px;
    }
    .kicker {
      font-size: 10px;
      text-transform: uppercase;
      letter-spacing: .08em;
      color: #1f7a8c;
      font-weight: bold;
      margin-bottom: 6px;
    }
    h1 {
      margin: 0 0 6px 0;
      font-size: 24px;
      line-height: 1.15;
      color: #12344d;
    }
    .subtitle {
      color: #5d7281;
      margin: 0;
    }
    .meta {
      margin-top: 10px;
      font-size: 10px;
      color: #58707f;
    }
    .stats {
      width: 100%;
      border-collapse: separate;
      border-spacing: 10px 0;
      margin: 14px -10px 18px;
    }
    .stat-card {
      background: #f3f8fa;
      border: 1px solid #dbe7ef;
      border-radius: 10px;
      padding: 10px 12px;
      width: 25%;
      vertical-align: top;
    }
    .stat-label {
      display: block;
      font-size: 10px;
      text-transform: uppercase;
      color: #6b7f8c;
      margin-bottom: 6px;
    }
    .stat-value {
      display: block;
      font-size: 20px;
      font-weight: bold;
      color: #12344d;
    }
    .section-title {
      margin: 18px 0 8px;
      font-size: 13px;
      text-transform: uppercase;
      letter-spacing: .05em;
      color: #12344d;
    }
    .filters,
    .summary-table,
    .data-table {
      width: 100%;
      border-collapse: collapse;
    }
    .filters th,
    .filters td,
    .summary-table th,
    .summary-table td,
    .data-table th,
    .data-table td {
      border: 1px solid #dbe7ef;
      padding: 7px 8px;
      vertical-align: top;
    }
    .filters th,
    .summary-table th,
    .data-table th {
      background: #eff6f8;
      color: #355266;
      text-align: left;
      font-size: 10px;
    }
    .filters td,
    .summary-table td {
      background: #fff;
    }
    .data-table {
      margin-top: 8px;
      font-size: 9px;
    }
    .data-table th {
      font-size: 9px;
    }
    .badge {
      display: inline-block;
      padding: 2px 6px;
      border-radius: 999px;
      background: #edf5f8;
      color: #1f5f71;
      font-size: 9px;
      font-weight: bold;
    }
    .muted {
      color: #6b7f8c;
    }
    .empty {
      padding: 14px;
      border: 1px solid #dbe7ef;
      background: #f8fbfd;
      color: #5d7281;
    }
    .footer {
      margin-top: 18px;
      font-size: 9px;
      color: #6b7f8c;
      text-align: right;
    }
  </style>
</head>
<body>
  <div class="header">
    <div class="kicker">Maintenance FTTH B2B</div>
    <h1>Export structuré des maintenances</h1>
    <p class="subtitle">Synthèse du portefeuille filtré avec état des tickets, assignations et progression terrain.</p>
    <div class="meta">
      Généré le <?= htmlspecialchars(date('d/m/Y H:i', strtotime($generatedAt))) ?>
      <?php if (!empty($generatedBy['name'])): ?>
        par <?= htmlspecialchars((string)$generatedBy['name']) ?>
      <?php endif; ?>
    </div>
  </div>

  <table class="stats">
    <tr>
      <td class="stat-card">
        <span class="stat-label">Total tickets</span>
        <span class="stat-value"><?= (int)($stats['total'] ?? 0) ?></span>
      </td>
      <td class="stat-card">
        <span class="stat-label">Tickets ouverts</span>
        <span class="stat-value"><?= (int)($stats['open'] ?? 0) ?></span>
      </td>
      <td class="stat-card">
        <span class="stat-label">Rapports validés</span>
        <span class="stat-value"><?= (int)($stats['validated'] ?? 0) ?></span>
      </td>
      <td class="stat-card">
        <span class="stat-label">Filtres actifs</span>
        <span class="stat-value"><?= count(array_filter([
          $filters['status'] ?? '',
          $filters['search'] ?? '',
          $filters['sro'] ?? '',
          $filters['company'] ?? '',
          $filters['progress'] ?? '',
          $filters['source'] ?? '',
        ], static fn($value) => $value !== '')) ?></span>
      </td>
    </tr>
  </table>

  <div class="section-title">Filtres appliqués</div>
  <table class="filters">
    <tr>
      <th style="width: 16%">Recherche</th>
      <td style="width: 17%"><?= htmlspecialchars((string)($filters['search'] ?: 'Toutes')) ?></td>
      <th style="width: 16%">Statut</th>
      <td style="width: 17%"><?= htmlspecialchars((string)($filters['status'] ?: 'Tous')) ?></td>
      <th style="width: 16%">SRO</th>
      <td style="width: 18%"><?= htmlspecialchars((string)($filters['sro'] ?: 'Tous')) ?></td>
    </tr>
    <tr>
      <th>Entreprise</th>
      <td><?= htmlspecialchars((string)($filters['company'] ?: 'Toutes')) ?></td>
      <th>Avancement</th>
      <td><?= htmlspecialchars((string)($filters['progress'] ?: 'Tous')) ?></td>
      <th>Origine</th>
      <td><?= htmlspecialchars((string)($filters['source'] ?: 'Toutes')) ?></td>
    </tr>
  </table>

  <div class="section-title">Répartition par statut</div>
  <table class="summary-table">
    <tr>
      <th>Statut</th>
      <th>Volume</th>
    </tr>
    <?php if (!empty($stats['by_status'])): ?>
      <?php foreach ($stats['by_status'] as $status => $count): ?>
      <tr>
        <td><?= htmlspecialchars((string)$status) ?></td>
        <td><?= (int)$count ?></td>
      </tr>
      <?php endforeach; ?>
    <?php else: ?>
      <tr>
        <td colspan="2">Aucune donnée</td>
      </tr>
    <?php endif; ?>
  </table>

  <div class="section-title">Détail des maintenances</div>
  <?php if (empty($rows)): ?>
    <div class="empty">Aucune maintenance ne correspond aux critères d'export.</div>
  <?php else: ?>
    <table class="data-table">
      <tr>
        <th style="width: 8%">Référence</th>
        <th style="width: 12%">Client</th>
        <th style="width: 8%">Code client</th>
        <th style="width: 7%">Ligne fixe</th>
        <th style="width: 12%">Topologie</th>
        <th style="width: 9%">Entreprise</th>
        <th style="width: 9%">Nature / Avancement</th>
        <th style="width: 8%">Statut ticket</th>
        <th style="width: 7%">Équipes</th>
        <th style="width: 10%">Assignations / Rapport</th>
        <th style="width: 18%">Commentaires terrain</th>
        <th style="width: 8%">Import</th>
      </tr>
      <?php foreach ($rows as $row): ?>
      <tr>
        <td>
          <strong><?= htmlspecialchars((string)($row['ref_code'] ?: '—')) ?></strong><br>
          <span class="muted">Priorité <?= htmlspecialchars((string)($row['priority'] ?: 'Moyenne')) ?></span>
        </td>
        <td>
          <strong><?= htmlspecialchars((string)($row['client_name'] ?: '—')) ?></strong><br>
          <span class="muted"><?= htmlspecialchars((string)($row['client_phone'] ?: '')) ?></span>
          <?php if (!empty($row['client_phone2'])): ?><br><span class="muted"><?= htmlspecialchars((string)$row['client_phone2']) ?></span><?php endif; ?>
          <?php if (!empty($row['client_address'])): ?><br><span class="muted"><?= htmlspecialchars((string)$row['client_address']) ?></span><?php endif; ?>
        </td>
        <td><?= htmlspecialchars((string)($row['client_code'] ?: '—')) ?></td>
        <td><?= htmlspecialchars((string)($row['fixed_line'] ?: '—')) ?></td>
        <td>
          <strong>SRO:</strong> <?= htmlspecialchars((string)($row['sro_client'] ?: '—')) ?><br>
          <strong>JDV:</strong> <?= htmlspecialchars((string)($row['jdv_client'] ?: '—')) ?><br>
          <strong>PCO:</strong> <?= htmlspecialchars((string)($row['pco_client'] ?: '—')) ?>
        </td>
        <td><?= htmlspecialchars((string)($row['company_name'] ?: '—')) ?></td>
        <td>
          <strong><?= htmlspecialchars((string)($row['nature_intervention'] ?: '—')) ?></strong><br>
          <span class="badge"><?= htmlspecialchars((string)($row['avancement'] ?: 'Non renseigné')) ?></span>
        </td>
        <td>
          <span class="badge"><?= htmlspecialchars((string)($row['status'] ?: 'nouveau')) ?></span><br>
          <span class="muted">Clôture: <?= htmlspecialchars((string)($row['date_cloture'] ?: '—')) ?></span>
        </td>
        <td><?= htmlspecialchars((string)($row['equipes'] ?: '—')) ?></td>
        <td>
          <strong><?= htmlspecialchars((string)($row['assigned_to'] ?: 'Non assigné')) ?></strong><br>
          <span class="muted">Rapport: <?= htmlspecialchars((string)($row['report_status'] ?: 'Aucun')) ?></span><br>
          <span class="muted">Intervention: <?= htmlspecialchars((string)($row['client_visit_status'] ?: '—')) ?></span>
        </td>
        <td>
          <strong>Constat</strong><br>
          <span class="muted"><?= nl2br(htmlspecialchars((string)($row['constat_comments'] ?: '—'))) ?></span><br><br>
          <strong>Intervention</strong><br>
          <span class="muted"><?= nl2br(htmlspecialchars((string)($row['general_comments'] ?: '—'))) ?></span>
        </td>
        <td>
          <?= !empty($row['imported_at']) ? htmlspecialchars(date('d/m/Y H:i', strtotime((string)$row['imported_at']))) : '—' ?><br>
          <span class="muted"><?= htmlspecialchars((string)($row['imported_by_name'] ?: (((string)($row['source_channel'] ?? '')) === 'e-intervention' ? 'e-Intervention' : 'Opérateur direct'))) ?></span>
        </td>
      </tr>
      <?php endforeach; ?>
    </table>
  <?php endif; ?>

  <div class="footer">
    Document généré automatiquement depuis la liste Maintenance FTTH.
  </div>
</body>
</html>
