<?php
// Verificar si se recibió 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;
}

// Verificar el tipo de imagen
$tipo = isset($_POST['tipo']) ? $_POST['tipo'] : null;
$imageType = isset($_POST['imageType']) ? $_POST['imageType'] : 'banner';

if (!$tipo) {
    echo json_encode(['status' => 'error', 'message' => 'No se especificó el tipo de imagen']);
    exit;
}

// Directorios según el tipo
$directorio = '';
switch ($tipo) {
    case 'categoria':
        $directorio = '../img/categorias/';
        break;
    // Añadir otros casos si es necesario
    default:
        echo json_encode(['status' => 'error', 'message' => 'Tipo de imagen no válido']);
        exit;
}

// Verificar que el directorio exista
if (!is_dir($directorio)) {
    mkdir($directorio, 0755, true);
}

// Verificar tipo de archivo
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'];
if (!in_array($_FILES['file']['type'], $allowedTypes)) {
    echo json_encode(['status' => 'error', 'message' => 'Tipo de archivo no permitido. Solo se aceptan imágenes JPEG, PNG, GIF y WebP.']);
    exit;
}

// Generar nombre único para el archivo
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
$filename = '';

// Personalizar el prefijo según el tipo de imagen
if ($imageType === 'portada') {
    $filename = 'portada_' . uniqid() . '.' . $extension;
} else {
    $filename = 'banner_' . uniqid() . '.' . $extension;
}

$ruta = $directorio . $filename;

// Intentar mover el archivo
if (move_uploaded_file($_FILES['file']['tmp_name'], $ruta)) {
    // Respuesta exitosa
    echo json_encode(['status' => 'success', 'filename' => $filename]);
} else {
    // Error al mover el archivo
    echo json_encode(['status' => 'error', 'message' => 'Error al guardar la imagen']);
}