<?php
/**
 * API: Actualizar campos de un producto en base de datos
 * POST: JSON { producto_id, nombre_comercial, nombre_generico, codigo_barra }
 */
header('Content-Type: application/json; charset=utf-8');
require_once __DIR__ . '/../config/db.php';

try {
    $input = json_decode(file_get_contents('php://input'), true);

    if (!$input || !isset($input['producto_id'])) {
        throw new Exception('Faltan datos obligatorios');
    }

    $pid = intval($input['producto_id']);
    $pdo = getConnection();

    if (isset($input['nombre_comercial'])) {
        $nombreComercial = trim($input['nombre_comercial']);
        if (empty($nombreComercial)) {
            throw new Exception('El nombre comercial no puede estar vacío');
        }
        $stmt = $pdo->prepare("UPDATE productos SET NombreComercial = :val WHERE id = :id");
        $stmt->execute([':val' => $nombreComercial, ':id' => $pid]);
    }

    if (isset($input['nombre_generico'])) {
        $nombreGenerico = trim($input['nombre_generico']);
        // El nombre genérico puede ser nulo o vacío
        $stmt = $pdo->prepare("UPDATE productos SET NombreGenerico = :val WHERE id = :id");
        $stmt->execute([':val' => $nombreGenerico !== '' ? $nombreGenerico : null, ':id' => $pid]);
    }

    if (isset($input['codigo_barra'])) {
        $codigoBarra = trim($input['codigo_barra']);
        // El código de barra puede ser nulo o vacío
        $stmt = $pdo->prepare("UPDATE productos SET CodigoBarra = :val WHERE id = :id");
        $stmt->execute([':val' => $codigoBarra !== '' ? $codigoBarra : null, ':id' => $pid]);
    }

    echo json_encode([
        'success' => true,
        'message' => 'Producto actualizado correctamente'
    ]);

} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['success' => false, 'error' => $e->getMessage()]);
}
