<?php use App\Core\Auth; $title = 'Rapport final — ' . htmlspecialchars($incident['ticket_id'] ?? ('INC-'.$incident['id'])); ?>
<div class="card shadow-sm">
  <div class="card-header d-flex justify-content-between align-items-center">
    <h5 class="mb-0"><i class="fas fa-file-signature me-2"></i> Rapport final</h5>
    <a href="<?= htmlspecialchars(route_url('/incidents/detail', ['id'=>$incident['id']])) ?>" class="btn btn-sm btn-secondary">← Retour</a>
  </div>
  <div class="card-body">
    <form method="post" action="<?= htmlspecialchars(route_url('/incidents/final-report/save')) ?>" enctype="multipart/form-data">
      <input type="hidden" name="incident_id" value="<?= (int)$incident['id'] ?>">
      <div class="row g-3">
        <div class="col-12 col-md-6">
          <label class="form-label">Date et heure de remontée</label>
          <?php
            $val = '';
            if (!empty($finalReport['restoration_at'])) {
              $val = date('Y-m-d\TH:i', strtotime($finalReport['restoration_at']));
            }
          ?>
          <input type="datetime-local" class="form-control" name="restoration_at" value="<?= htmlspecialchars($val) ?>" required>
          <small class="text-muted">Horodatage de rétablissement du service.</small>
        </div>
        <div class="col-12 col-md-6">
          <label class="form-label">Superviseur</label>
          <input type="text" class="form-control" value="<?= htmlspecialchars(Auth::user()['name'] ?? 'Utilisateur') ?>" disabled>
          <div class="form-text">Renseigné automatiquement. L'identifiant sera sauvegardé.</div>
        </div>
        <div class="col-12">
          <label class="form-label">Commentaire</label>
          <textarea name="comments" class="form-control" rows="4" placeholder="Observations finales, contexte, suites éventuelles..."><?= htmlspecialchars($finalReport['comments'] ?? '') ?></textarea>
        </div>
        <div class="col-12">
          <label class="form-label">Pièces jointes</label>
          <input type="file" class="form-control" name="final_attachments[]" multiple>
          <small class="text-muted">Formats acceptés: images, PDF, etc. Plusieurs fichiers possibles.</small>
        </div>
      </div>
      <?php
        // Lister pièces jointes existantes si table présente
        try {
          $pdo = \App\Core\Database::pdo();
          $st = $pdo->prepare('SELECT a.path FROM incident_final_report_attachments a JOIN incident_final_reports fr ON fr.id=a.final_report_id WHERE fr.incident_id=? ORDER BY a.id ASC');
          $st->execute([(int)$incident['id']]);
          $rows = $st->fetchAll();
        } catch (\Throwable $e) { $rows = []; }
        if (!empty($rows)) {
          echo '<div class="mt-3"><label class="form-label">Pièces jointes déjà ajoutées</label><div class="d-flex flex-wrap gap-2">';
          foreach ($rows as $r) {
            $path = $r['path'];
            $clean = ltrim($path, '/');
            if (str_starts_with($clean, 'storage/uploads/')) { $clean = substr($clean, strlen('storage/uploads/')); }
            if (!str_starts_with($clean, 'incidents/')) { $clean = 'incidents/' . $incident['id'] . '/final/' . basename($clean); }
            $url = upload_url($clean);
            $ext = strtolower(pathinfo($clean, PATHINFO_EXTENSION));
            $isImg = in_array($ext, ['png','jpg','jpeg','gif','webp','svg']);
            echo '<a href="' . htmlspecialchars($url) . '" class="btn btn-sm btn-outline-secondary js-open-file" data-file-url="' . htmlspecialchars($url) . '">' . ($isImg ? '<i class="fas fa-image me-1"></i> Image' : '<i class="fas fa-paperclip me-1"></i> Fichier') . '</a>';
          }
          echo '</div></div>';
        }
      ?>
      <div class="mt-4 d-flex gap-2">
        <button type="submit" class="btn btn-primary"><i class="fas fa-save me-1"></i> Enregistrer</button>
        <a href="<?= htmlspecialchars(route_url('/incidents/detail', ['id'=>$incident['id']])) ?>" class="btn btn-outline-secondary">Annuler</a>
      </div>
    </form>
  </div>
</div>

<!-- Modal de prévisualisation de fichier -->
<div class="modal fade" id="filePreviewModal" tabindex="-1" aria-hidden="true">
  <div class="modal-dialog modal-lg modal-dialog-centered">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title"><i class="fas fa-file me-2"></i> Aperçu</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fermer"></button>
      </div>
      <div class="modal-body p-0">
        <iframe id="filePreviewFrame" src="" class="w-100 border-0" style="height:70vh; background:#fff"></iframe>
      </div>
      <div class="modal-footer">
        <a id="fileDownloadLink" href="#" class="btn btn-primary" target="_blank"><i class="fas fa-download me-1"></i> Ouvrir</a>
        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fermer</button>
      </div>
    </div>
  </div>
</div>

<script>
  // Ouverture modal pour fichiers (délégation)
  (function(){
    const modalEl = document.getElementById('filePreviewModal');
    const frame = document.getElementById('filePreviewFrame');
    const dl = document.getElementById('fileDownloadLink');
    let modal;
    if (modalEl) { modal = new bootstrap.Modal(modalEl); }
    document.addEventListener('click', function(e){
      const a = e.target.closest && e.target.closest('a.js-open-file');
      if (!a) return;
      e.preventDefault();
      const url = a.getAttribute('data-file-url') || a.getAttribute('href');
      if (!url || !frame) return;
      frame.src = url;
      if (dl) dl.href = url;
      modal && modal.show();
    });
  })();
</script>
