Files

73 lines
2.9 KiB
PHP

<?php
// api.php
header('Content-Type: application/json; charset=utf-8');
require_once __DIR__ . '/includes/db.php';
$action = $_GET['action'] ?? $_POST['action'] ?? '';
switch ($action) {
case 'get_tires':
$tires = TireStore::getTires();
$brand = $_GET['brand'] ?? '';
$rim = $_GET['rim'] ?? '';
$season = $_GET['season'] ?? '';
$category = $_GET['category'] ?? '';
$q = trim($_GET['q'] ?? '');
$filtered = array_filter($tires, function($t) use ($brand, $rim, $season, $category, $q) {
if ($brand && $t['brand'] !== $brand) return false;
if ($rim && (string)$t['rim'] !== (string)$rim) return false;
if ($season && $t['season'] !== $season) return false;
if ($category && stripos($t['category'], $category) === false) return false;
if ($q) {
$searchContent = $t['name'] . ' ' . $t['brand'] . ' ' . $t['size_str'] . ' ' . implode(' ', $t['vehicles'] ?? []);
if (stripos($searchContent, $q) === false) return false;
}
return true;
});
echo json_encode(["status" => "success", "count" => count($filtered), "data" => array_values($filtered)], JSON_UNESCAPED_UNICODE);
break;
case 'get_tire':
$id = $_GET['id'] ?? '';
$tire = TireStore::getTireById($id);
if ($tire) {
echo json_encode(["status" => "success", "data" => $tire], JSON_UNESCAPED_UNICODE);
} else {
echo json_encode(["status" => "error", "message" => "تایر مورد نظر یافت نشد."], JSON_UNESCAPED_UNICODE);
}
break;
case 'submit_consultation':
$name = trim($_POST['name'] ?? '');
$phone = trim($_POST['phone'] ?? '');
$car = trim($_POST['car'] ?? '');
$message = trim($_POST['message'] ?? '');
if (!$name || !$phone) {
echo json_encode(["status" => "error", "message" => "لطفاً نام و شماره تماس خود را وارد نمایید."], JSON_UNESCAPED_UNICODE);
exit;
}
$res = TireStore::addConsultation([
"name" => $name,
"phone" => $phone,
"car" => $car,
"message" => $message
]);
echo json_encode(["status" => "success", "message" => "درخواست مشاوره شما با موفقیت ثبت شد. کارشناسان ما به زودی با شما تماس خواهند گرفت.", "data" => $res], JSON_UNESCAPED_UNICODE);
break;
case 'export_backup':
$data = TireStore::getData();
header('Content-Disposition: attachment; filename="gasemi_tier_backup_' . date('Y-m-d_H-i') . '.json"');
echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
exit;
default:
echo json_encode(["status" => "error", "message" => "Invalid action"], JSON_UNESCAPED_UNICODE);
break;
}