<?php
require __DIR__ . '/api/config.php';

$ALLOWED = "'car','suv','sedan'";   // public categories (bike/bus/truck hidden)

$typeSlug = isset($_GET['type']) ? $mysqli->real_escape_string(trim($_GET['type'])) : '';
if ($typeSlug!=='' && !in_array($typeSlug,['car','suv','sedan'])) $typeSlug='';
// brand: ab slug (skoda) se aata hai; purana numeric id bhi chalega
$brandParam = isset($_GET['brand']) ? trim($_GET['brand']) : '';
$brandId = 0; $brandSlug = '';
if ($brandParam !== '') {
    if (ctype_digit($brandParam)) {
        $brandId = (int)$brandParam;
    } else {
        $bp = strtolower($mysqli->real_escape_string($brandParam));
        $br = $mysqli->query("SELECT id,name FROM brands WHERE LOWER(name)='$bp' OR LOWER(REPLACE(name,' ','-'))='$bp' LIMIT 1");
        if ($br && ($row=$br->fetch_assoc())) { $brandId=(int)$row['id']; $brandSlug=brand_slug($row['name']); }
    }
}
// numeric id se aaya to uska slug nikaalo (canonical links ke liye)
if ($brandId && $brandSlug==='') {
    $br=$mysqli->query("SELECT name FROM brands WHERE id=$brandId LIMIT 1");
    if ($br && ($row=$br->fetch_assoc())) $brandSlug=brand_slug($row['name']);
}
// aage ke saare links/hidden-fields slug use karein (id nahi)
$_GET['brand'] = $brandId ? $brandSlug : '';
$fuel     = isset($_GET['fuel']) ? $mysqli->real_escape_string(trim($_GET['fuel'])) : '';
$q        = isset($_GET['q']) ? trim($_GET['q']) : '';
$minp     = isset($_GET['minp']) ? (int)$_GET['minp'] : 0;
$maxp     = isset($_GET['maxp']) ? (int)$_GET['maxp'] : 0;
$sort     = $_GET['sort'] ?? 'new';

// ---- budget dropdown (maps to minp/maxp; includes 20L+) ----
$budgetMap = [
  'u5'    => [0, 500000],
  '5-10'  => [500000, 1000000],
  '10-20' => [1000000, 2000000],
  'a20'   => [2000000, 0],
];
$budget = $_GET['budget'] ?? '';
if ($budget!=='' && isset($budgetMap[$budget])) { $minp=$budgetMap[$budget][0]; $maxp=$budgetMap[$budget][1]; }
else { // derive selected budget from minp/maxp (so homepage links preselect)
  foreach($budgetMap as $k=>$mm){ if($minp==$mm[0] && $maxp==$mm[1]){ $budget=$k; break; } }
}

$where = ["v.status=1", "t.slug IN ($ALLOWED)"];
if ($typeSlug!=='') $where[]="t.slug='$typeSlug'";
if ($brandId)       $where[]="v.brand_id=$brandId";
if ($fuel!=='')     $where[]="EXISTS (SELECT 1 FROM variants vx WHERE vx.vehicle_id=v.id AND vx.fuel_type='$fuel')";
if ($q!=='')        { $qe=$mysqli->real_escape_string($q); $where[]="(v.name LIKE '%$qe%' OR b.name LIKE '%$qe%')"; }
if ($minp)          $where[]="v.base_price>=$minp";
if ($maxp)          $where[]="v.base_price<=$maxp";
$whereSql=implode(' AND ',$where);

if ($sort==='low') $order='v.base_price ASC';
elseif ($sort==='high') $order='v.base_price DESC';
elseif ($sort==='name') $order='v.name ASC';
else $order='v.id DESC';

$rows=[]; $r=$mysqli->query(
  "SELECT v.id,v.slug,v.name,v.base_price,v.main_image,b.name brand,t.name type_name
   FROM vehicles v JOIN brands b ON b.id=v.brand_id JOIN vehicle_types t ON t.id=v.type_id
   WHERE $whereSql ORDER BY $order");
while($x=$r->fetch_assoc())$rows[]=$x;

$types=[]; $tq=$mysqli->query("SELECT slug,name FROM vehicle_types WHERE slug IN ($ALLOWED) ORDER BY id"); while($t=$tq->fetch_assoc())$types[]=$t;
$brands=[]; $bq=$mysqli->query(
  "SELECT DISTINCT b.id,b.name FROM brands b
   JOIN vehicles v ON v.brand_id=b.id AND v.status=1
   JOIN vehicle_types t ON t.id=v.type_id AND t.slug IN ($ALLOWED)
   ORDER BY b.name");
while($b=$bq->fetch_assoc())$brands[]=$b;
$fuels=[]; $fq=$mysqli->query("SELECT DISTINCT fuel_type FROM variants WHERE fuel_type<>'' ORDER BY fuel_type"); while($f=$fq->fetch_assoc())$fuels[]=$f['fuel_type'];

function qs($over){
  $base=['type'=>$_GET['type']??'','brand'=>$_GET['brand']??'','fuel'=>$_GET['fuel']??'','q'=>$_GET['q']??'','budget'=>$_GET['budget']??'','minp'=>$_GET['minp']??'','maxp'=>$_GET['maxp']??'','sort'=>$_GET['sort']??''];
  foreach($over as $k=>$val)$base[$k]=$val;
  $c=array(); foreach($base as $k=>$val){ if($val!=='')$c[$k]=$val; }
  return 'browse?'.http_build_query($c);
}
$hasFilter = ($typeSlug||$brandId||$fuel||$q||$minp||$maxp||$budget);
?>
<!doctype html>
<html lang="en"><head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>Browse <?= $typeSlug?e(ucfirst($typeSlug)).'s':'Cars' ?> — Prices, Specs &amp; Offers | Wheels2Value</title>
<meta name="description" content="Browse and compare cars, SUVs and sedans by brand, budget and fuel. Prices, specifications and the best offers on Wheels2Value.">
<link rel="stylesheet" href="assets/style.css?v=<?php echo @filemtime(__DIR__.'/assets/style.css'); ?>">
</head><body>
<?php render_nav(); ?>
<div class="wrap">

  <form class="hsearch" method="get" action="browse" style="margin:22px 0 6px">
    <input type="text" name="q" value="<?= e($q) ?>" placeholder="Search by brand or model">
    <?php foreach(['type','brand','fuel','budget','minp','maxp','sort'] as $k){ if(($_GET[$k]??'')!=='') echo '<input type="hidden" name="'.$k.'" value="'.e($_GET[$k]).'">'; } ?>
    <button class="btn" type="submit">Search</button>
  </form>

  <div class="tabs">
    <a class="tab <?= $typeSlug===''?'active':'' ?>" href="<?= qs(['type'=>'']) ?>">All</a>
    <?php foreach($types as $t): ?>
      <a class="tab <?= $typeSlug===$t['slug']?'active':'' ?>" href="<?= qs(['type'=>$t['slug']]) ?>"><?= e($t['name']) ?></a>
    <?php endforeach; ?>
  </div>

  <form class="filters" method="get" action="browse" id="ff">
    <?php foreach(['type','q'] as $k){ if(($_GET[$k]??'')!=='') echo '<input type="hidden" name="'.$k.'" value="'.e($_GET[$k]).'">'; } ?>
    <span class="lbl">Brand</span>
    <select name="brand" onchange="document.getElementById('ff').submit()">
      <option value="">All brands</option>
      <?php foreach($brands as $b): $bsl=brand_slug($b['name']); ?><option value="<?= e($bsl) ?>" <?= $brandSlug===$bsl?'selected':'' ?>><?= e($b['name']) ?></option><?php endforeach; ?>
    </select>
    <span class="lbl">Budget</span>
    <select name="budget" onchange="document.getElementById('ff').submit()">
      <option value="">Any budget</option>
      <option value="u5"    <?= $budget==='u5'?'selected':'' ?>>Under ₹5 Lakh</option>
      <option value="5-10"  <?= $budget==='5-10'?'selected':'' ?>>₹5 – 10 Lakh</option>
      <option value="10-20" <?= $budget==='10-20'?'selected':'' ?>>₹10 – 20 Lakh</option>
      <option value="a20"   <?= $budget==='a20'?'selected':'' ?>>Above ₹20 Lakh</option>
    </select>
    <span class="lbl">Fuel</span>
    <select name="fuel" onchange="document.getElementById('ff').submit()">
      <option value="">Any fuel</option>
      <?php foreach($fuels as $f): ?><option value="<?= e($f) ?>" <?= $fuel===$f?'selected':'' ?>><?= e($f) ?></option><?php endforeach; ?>
    </select>
    <span class="lbl">Sort</span>
    <select name="sort" onchange="document.getElementById('ff').submit()">
      <option value="new"  <?= $sort==='new'?'selected':'' ?>>Newest</option>
      <option value="low"  <?= $sort==='low'?'selected':'' ?>>Price: Low → High</option>
      <option value="high" <?= $sort==='high'?'selected':'' ?>>Price: High → Low</option>
      <option value="name" <?= $sort==='name'?'selected':'' ?>>Name: A → Z</option>
    </select>
    <?php if($hasFilter): ?><a class="btn btn-ghost" href="browse" style="padding:9px 16px">Clear all</a><?php endif; ?>
  </form>

  <p style="color:var(--muted);font-size:.9rem;margin:4px 0 12px"><b><?= count($rows) ?></b> vehicle<?= count($rows)==1?'':'s' ?> found<?= $q?(' for "'.e($q).'"'):'' ?></p>

  <?php if($rows): ?>
  <div class="grid">
    <?php foreach($rows as $v): ?>
      <div class="vcard">
        <div class="thumb"><?php if(!empty($v['main_image'])): ?><img src="<?= e($v['main_image']) ?>" alt="<?= e($v['name']) ?>"><?php else: ?><span>📷 image</span><?php endif; ?></div>
        <div class="body">
          <span class="eb"><?= e($v['brand']) ?> · <?= e($v['type_name']) ?></span>
          <h3><?= e($v['name']) ?></h3>
          <div class="vp"><?= price_inr($v['base_price']) ?><?php if((float)$v['base_price']>0): ?> <small>onwards</small><?php endif; ?></div>
          <a class="more" href="vehicle<?= !empty($v['slug']) ? '/'.rawurlencode($v['slug']) : '?id='.(int)$v['id'] ?>">View details →</a>
        </div>
      </div>
    <?php endforeach; ?>
  </div>
  <?php else: ?><div class="empty">No vehicles match these filters. Try changing or clearing the filters.</div><?php endif; ?>

  <?php render_footer(); ?>
</div></body></html>