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

$response = ['success' => false, 'message' => ''];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $nombre = $_POST['nombre'] ?? '';
    $precio = $_POST['precio'] ?? '';
    $descripcion = $_POST['descripcion'] ?? '';
    $indice = $_POST['indice'] ?? '';

    if (empty($nombre) || empty($precio)) {
        $response['message'] = 'Nombre y precio son obligatorios.';
        echo json_encode($response);
        exit;
    }

    $imagen_nombre = '';
    if (isset($_FILES['imagen']) && $_FILES['imagen']['error'] === UPLOAD_ERR_OK) {
        $upload_dir = 'imagenes/';
        if (!is_dir($upload_dir)) mkdir($upload_dir, 0777, true);
        $file_tmp_name = $_FILES['imagen']['tmp_name'];
        $file_name = uniqid() . '_' . basename($_FILES['imagen']['name']);
        $target_file = $upload_dir . $file_name;

        if (move_uploaded_file($file_tmp_name, $target_file)) {
            $imagen_nombre = $target_file;
        } else {
            $response['message'] = 'Error al subir la imagen.';
            echo json_encode($response);
            exit;
        }
    }

    $productos_file = 'productos.json';
    $productos = file_exists($productos_file) ? json_decode(file_get_contents($productos_file), true) : [];

    if ($indice !== '' && is_numeric($indice) && isset($productos[(int)$indice])) {
        // Editar
        $producto_viejo = $productos[(int)$indice];
        $productos[(int)$indice] = [
            'nombre' => $nombre,
            'precio' => $precio,
            'descripcion' => $descripcion,
            'imagen' => $imagen_nombre !== '' ? $imagen_nombre : $producto_viejo['imagen']
        ];
        $response['message'] = 'Producto editado exitosamente.';
    } else {
        // Nuevo
        $productos[] = [
            'nombre' => $nombre,
            'precio' => $precio,
            'descripcion' => $descripcion,
            'imagen' => $imagen_nombre
        ];
        $response['message'] = 'Producto guardado exitosamente.';
    }

    if (file_put_contents($productos_file, json_encode($productos, JSON_PRETTY_PRINT))) {
        $response['success'] = true;
    } else {
        $response['message'] = 'Error al guardar el producto en el archivo.';
    }

} else {
    $response['message'] = 'Método de solicitud no permitido.';
}

echo json_encode($response);
