<?php
/**
 * Delete serial number - PHP 5.3 COMPATIBLE
 */

// Turn off ALL error reporting for clean JSON
error_reporting(0);
ini_set('display_errors', 0);

// Clear any existing output buffers
while (ob_get_level()) ob_end_clean();

require_once '../../config/database.php';
require_once '../../config/session.php';

header('Content-Type: application/json');

$response = array('success' => false, 'message' => '');

// Check login
if (!SessionManager::isLoggedIn()) {
    $response['message'] = 'Not logged in';
    echo json_encode($response);
    exit;
}

// Get raw input
$input = file_get_contents('php://input');
$data = json_decode($input, true);

if (!$data) {
    $response['message'] = 'Invalid JSON data';
    echo json_encode($response);
    exit;
}

$serial_id = isset($data['serial_id']) ? intval($data['serial_id']) : 0;

if ($serial_id <= 0) {
    $response['message'] = 'Serial ID required';
    echo json_encode($response);
    exit;
}

try {
    $db = Database::getInstance();
    $conn = $db->getConnection();
    
    // Check if serial is sold
    $check_sql = "SELECT product_id, status FROM product_serials WHERE id = $serial_id";
    $check_result = $db->query($check_sql);
    
    if (!$check_result || $check_result->num_rows == 0) {
        $response['message'] = 'Serial not found';
        echo json_encode($response);
        exit;
    }
    
    $serial = $check_result->fetch_assoc();
    
    if ($serial['status'] == 'sold') {
        $response['message'] = 'Cannot delete sold serial number';
        echo json_encode($response);
        exit;
    }
    
    // Delete serial
    $delete_sql = "DELETE FROM product_serials WHERE id = $serial_id";
    $db->query($delete_sql);
    
    // If it was in stock, decrement left_p
    if ($serial['status'] == 'in_stock') {
        $db->query("UPDATE products SET left_p = left_p - 1 WHERE product_id = " . $serial['product_id']);
    }
    
    $response['success'] = true;
    $response['message'] = 'Serial deleted';
    
} catch (Exception $e) {
    $response['message'] = $e->getMessage();
}

// Clean and output
while (ob_get_level()) ob_end_clean();
echo json_encode($response);
exit;
?>