<?php
// Script para subir imágenes de productos
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Directorio donde se guardarán las imágenes
    $uploadDir = '../img/productos/';
    
    // Crear el directorio si no existe
    if (!file_exists($uploadDir)) {
        mkdir($uploadDir, 0755, true);
    }
    
    // Validar que se haya enviado un archivo
    if (!isset($_FILES['file']) || $_FILES['file']['error'] !== UPLOAD_ERR_OK) {
        echo json_encode(['status' => 'error', 'message' => 'No se recibió ningún archivo o hubo un error en la carga']);
        exit;
    }
    
    // Obtener información del archivo
    $tempFile = $_FILES['file']['tmp_name'];
    $fileInfo = pathinfo($_FILES['file']['name']);
    $extension = strtolower($fileInfo['extension']);
    
    // Validar el tipo de archivo
    $allowedExtensions = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
    if (!in_array($extension, $allowedExtensions)) {
        echo json_encode(['status' => 'error', 'message' => 'Formato de archivo no permitido. Solo se permiten imágenes (JPG, PNG, GIF, WEBP)']);
        exit;
    }
    
    // Validar tamaño (máximo 2MB)
    $maxSize = 2 * 1024 * 1024; // 2MB en bytes
    if ($_FILES['file']['size'] > $maxSize) {
        echo json_encode(['status' => 'error', 'message' => 'El archivo excede el tamaño máximo permitido (2MB)']);
        exit;
    }
    
    // Generar un nombre único para el archivo
    $filename = 'producto_' . uniqid() . '.' . $extension;
    $targetFile = $uploadDir . $filename;
    
    // Intentar mover el archivo
    if (move_uploaded_file($tempFile, $targetFile)) {
        echo json_encode(['status' => 'success', 'message' => 'Archivo subido correctamente', 'filename' => $filename]);
    } else {
        echo json_encode(['status' => 'error', 'message' => 'Hubo un error al subir el archivo']);
    }
} else {
    echo json_encode(['status' => 'error', 'message' => 'Método no permitido']);
}