<?php
/**
 * POST /api/save-fbe-qty.php
 *
 * Salvează cantitatea de recepție FBE (`products.fbe_qty`) pentru un produs.
 * Doar local — nu trimite nimic la eMAG.
 *
 * Body:
 *   - id  (id-ul produsului din aplicație) — MANDATORY
 *   - qty (număr întreg >= 0, sau gol pentru a șterge valoarea)
 */
require_once __DIR__ . '/../includes/db.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    json_response(['ok' => false, 'error' => 'Doar POST'], 405);
}
if (!csrf_check($_POST['csrf_token'] ?? null)) {
    json_response(['ok' => false, 'error' => 'CSRF invalid'], 403);
}

$id     = (int)($_POST['id'] ?? 0);
$qtyRaw = isset($_POST['qty']) ? trim((string)$_POST['qty']) : '';

if ($id <= 0) {
    json_response(['ok' => false, 'error' => 'id lipsește'], 422);
}

// Gol → NULL (șterge valoarea). Altfel întreg între 0 și 65535.
if ($qtyRaw === '') {
    $qty = null;
} else {
    if (!ctype_digit($qtyRaw)) {
        json_response(['ok' => false, 'error' => 'Cantitatea trebuie să fie un număr întreg pozitiv.'], 422);
    }
    $qty = (int)$qtyRaw;
    if ($qty > 65535) $qty = 65535;
}

$exists = db_scalar("SELECT 1 FROM products WHERE id = ?", [$id]);
if (!$exists) {
    json_response(['ok' => false, 'error' => 'Produs inexistent'], 404);
}

try {
    db_exec("UPDATE products SET fbe_qty = ? WHERE id = ?", [$qty, $id]);
} catch (Throwable $ex) {
    error_log('[save-fbe-qty] ' . $ex->getMessage());
    json_response(['ok' => false, 'error' => 'Eroare DB: ' . $ex->getMessage()], 500);
}

json_response(['ok' => true, 'id' => $id, 'fbe_qty' => $qty]);
