<?php
require_once 'includes/helpers.php';
require_once 'includes/header.php';
require_once 'includes/footer.php';

requireLogin();

$driver   = currentDriver();
$driverId = $_SESSION['driver_id'];

// Cancel booking action
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['cancel_id'])) {
    $cancelId = (int) $_POST['cancel_id'];
    $stmt = db()->prepare(
        'UPDATE bookings SET status = "cancelled" WHERE id = ? AND driver_id = ? AND status IN ("pending","confirmed")'
    );
    $stmt->execute([$cancelId, $driverId]);
    if ($stmt->rowCount()) {
        // Restore availability
        $svcStmt = db()->prepare('SELECT service_type_id FROM bookings WHERE id = ?');
        $svcStmt->execute([$cancelId]);
        $svcId = $svcStmt->fetchColumn();
        if ($svcId) {
            db()->prepare(
                'UPDATE availability SET available_slots = LEAST(total_slots, available_slots + 1)
                 WHERE service_type_id = ?'
            )->execute([$svcId]);
        }
        flash('Booking cancelled successfully.', 'success');
    } else {
        flash('Could not cancel this booking.', 'error');
    }
    header('Location: my-bookings.php');
    exit;
}

// Fetch bookings
$bookings = db()->prepare(
    'SELECT b.id, b.booking_ref, b.check_in, b.check_out, b.vehicle_number, b.guests,
            b.total_amount, b.status, b.notes, s.label AS service_label, s.icon
     FROM bookings b
     JOIN service_types s ON s.id = b.service_type_id
     WHERE b.driver_id = ?
     ORDER BY b.created_at DESC'
);
$bookings->execute([$driverId]);
$rows = $bookings->fetchAll();

renderHeader('My Bookings');
?>

<div class="page-hero">
  <div class="container">
    <span class="section-label">Driver Dashboard</span>
    <h1 class="section-title">My Bookings</h1>
    <p class="section-sub" style="margin:0 auto;text-align:center">
      Hello, <strong><?= h($driver['full_name']) ?></strong>! Here are all your reservations.
    </p>
  </div>
</div>

<section class="section">
  <div class="container">

    <!-- Profile bar -->
    <div style="background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:24px 28px;margin-bottom:40px;display:flex;align-items:center;gap:24px;flex-wrap:wrap">
      <div style="width:56px;height:56px;background:rgba(245,166,35,0.12);border-radius:50%;display:grid;place-items:center;font-size:1.4rem;color:var(--amber)">
        <i class="fa fa-user-circle"></i>
      </div>
      <div style="flex:1">
        <div style="font-family:var(--font-head);font-size:1.4rem"><?= h($driver['full_name']) ?></div>
        <div style="color:var(--text-muted);font-size:0.88rem;display:flex;gap:16px;flex-wrap:wrap;margin-top:4px">
          <span><i class="fa fa-envelope" style="color:var(--amber)"></i> <?= h($driver['email']) ?></span>
          <span><i class="fa fa-phone" style="color:var(--amber)"></i> <?= h($driver['phone']) ?></span>
          <span><i class="fa fa-id-card" style="color:var(--amber)"></i> <?= h($driver['license_no']) ?></span>
          <span><i class="fa fa-car" style="color:var(--amber)"></i> <?= ucfirst($driver['vehicle_type']) ?></span>
        </div>
      </div>
      <a href="booking.php" class="btn btn-amber"><i class="fa fa-plus"></i> New Booking</a>
    </div>

    <?php if (empty($rows)): ?>
    <div style="text-align:center;padding:80px 24px">
      <div style="font-size:3rem;color:var(--amber);margin-bottom:16px"><i class="fa fa-calendar-xmark"></i></div>
      <h3 style="font-family:var(--font-head);font-size:1.8rem;margin-bottom:8px">No Bookings Yet</h3>
      <p style="color:var(--text-muted);margin-bottom:24px">You haven't made any reservations. Book your first slot now!</p>
      <a href="booking.php" class="btn btn-amber btn-lg"><i class="fa fa-calendar-check"></i> Book a Slot</a>
    </div>

    <?php else: ?>
    <div style="background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden">
      <div class="table-wrap">
        <table>
          <thead>
            <tr>
              <th>REF</th>
              <th>SERVICE</th>
              <th>CHECK-IN</th>
              <th>CHECK-OUT</th>
              <th>VEHICLE</th>
              <th>TOTAL</th>
              <th>STATUS</th>
              <th>ACTION</th>
            </tr>
          </thead>
          <tbody>
            <?php foreach ($rows as $row): ?>
            <tr>
              <td><code style="color:var(--amber);font-size:0.85rem"><?= h($row['booking_ref']) ?></code></td>
              <td>
                <div style="display:flex;align-items:center;gap:8px">
                  <span style="color:var(--amber)"><i class="fa fa-<?= h($row['icon']) ?>"></i></span>
                  <?= h($row['service_label']) ?>
                </div>
              </td>
              <td style="color:var(--text-muted);font-size:0.88rem"><?= date('d M Y, h:i A', strtotime($row['check_in'])) ?></td>
              <td style="color:var(--text-muted);font-size:0.88rem"><?= date('d M Y, h:i A', strtotime($row['check_out'])) ?></td>
              <td><?= h($row['vehicle_number'] ?: '—') ?></td>
              <td style="font-family:var(--font-cond);color:var(--amber)">
                <?= $row['total_amount'] > 0 ? '₹' . number_format($row['total_amount'], 2) : 'FREE' ?>
              </td>
              <td>
                <span class="status-badge status-<?= h($row['status']) ?>">
                  <?= strtoupper($row['status']) ?>
                </span>
              </td>
              <td>
                <?php if (in_array($row['status'], ['pending', 'confirmed'])): ?>
                <form method="POST" style="display:inline"
                      onsubmit="return confirm('Cancel booking <?= h($row['booking_ref']) ?>?')">
                  <input type="hidden" name="cancel_id" value="<?= $row['id'] ?>">
                  <button type="submit" style="background:none;border:1px solid var(--red);border-radius:4px;color:var(--red);padding:4px 12px;cursor:pointer;font-family:var(--font-cond);font-size:0.8rem">
                    Cancel
                  </button>
                </form>
                <?php else: ?>
                <span style="color:var(--text-muted);font-size:0.82rem">—</span>
                <?php endif; ?>
              </td>
            </tr>
            <?php endforeach; ?>
          </tbody>
        </table>
      </div>
    </div>
    <?php endif; ?>

  </div>
</section>

<?php renderFooter(); ?>
