<?php
include 'auth.php';
include '../includes/db.php';
header('Content-Type: application/json');
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$action = $_POST['action'] ?? '';
$image_id = intval($_POST['image_id'] ?? 0);
if ($image_id <= 0) {
echo json_encode(['success' => false, 'message' => 'معرف الصورة غير صحيح']);
exit;
}
switch ($action) {
case 'delete':
// Get image info before deletion
$stmt = $conn->prepare("SELECT image_name, car_id FROM car_images WHERE id = ?");
$stmt->bind_param("i", $image_id);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows === 1) {
$image = $result->fetch_assoc();
// Delete the image file
$image_path = '../uploads/cars/' . $image['image_name'];
if (file_exists($image_path)) {
unlink($image_path);
}
// Delete from database
$delete_stmt = $conn->prepare("DELETE FROM car_images WHERE id = ?");
$delete_stmt->bind_param("i", $image_id);
if ($delete_stmt->execute()) {
// If this was the primary image, set another image as primary
$check_primary = $conn->prepare("SELECT COUNT(*) as count FROM car_images WHERE car_id = ? AND is_primary = 1");
$check_primary->bind_param("i", $image['car_id']);
$check_primary->execute();
$primary_result = $check_primary->get_result();
$primary_count = $primary_result->fetch_assoc()['count'];
if ($primary_count == 0) {
// Set the first remaining image as primary
$set_primary = $conn->prepare("UPDATE car_images SET is_primary = 1 WHERE car_id = ? ORDER BY sort_order ASC LIMIT 1");
$set_primary->bind_param("i", $image['car_id']);
$set_primary->execute();
$set_primary->close();
}
$check_primary->close();
echo json_encode(['success' => true, 'message' => 'تم حذف الصورة بنجاح']);
} else {
echo json_encode(['success' => false, 'message' => 'فشل في حذف الصورة من قاعدة البيانات']);
}
$delete_stmt->close();
} else {
echo json_encode(['success' => false, 'message' => 'الصورة غير موجودة']);
}
$stmt->close();
break;
case 'set_primary':
// Get car_id for this image
$stmt = $conn->prepare("SELECT car_id FROM car_images WHERE id = ?");
$stmt->bind_param("i", $image_id);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows === 1) {
$image = $result->fetch_assoc();
$car_id = $image['car_id'];
// Start transaction
$conn->begin_transaction();
try {
// Remove primary status from all images of this car
$remove_primary = $conn->prepare("UPDATE car_images SET is_primary = 0 WHERE car_id = ?");
$remove_primary->bind_param("i", $car_id);
$remove_primary->execute();
$remove_primary->close();
// Set this image as primary
$set_primary = $conn->prepare("UPDATE car_images SET is_primary = 1 WHERE id = ?");
$set_primary->bind_param("i", $image_id);
$set_primary->execute();
$set_primary->close();
$conn->commit();
echo json_encode(['success' => true, 'message' => 'تم تعيين الصورة الرئيسية بنجاح']);
} catch (Exception $e) {
$conn->rollback();
echo json_encode(['success' => false, 'message' => 'فشل في تعيين الصورة الرئيسية']);
}
} else {
echo json_encode(['success' => false, 'message' => 'الصورة غير موجودة']);
}
$stmt->close();
break;
default:
echo json_encode(['success' => false, 'message' => 'عملية غير صحيحة']);
break;
}
} else {
echo json_encode(['success' => false, 'message' => 'طريقة الطلب غير صحيحة']);
}
$conn->close();
?>