<?php
// CORS
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: *");
header("Access-Control-Allow-Methods: POST, OPTIONS");
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(204); exit; }

// --- VALIDACIONES BÁSICAS ---
if (!isset($_FILES['image']) || !isset($_POST['slug'])) {
    echo json_encode(["success" => false, "message" => "Faltan parámetros"]);
    exit;
}
if (!is_uploaded_file($_FILES['image']['tmp_name'])) {
    echo json_encode(["success" => false, "message" => "Archivo inválido"]);
    exit;
}

$slug   = preg_replace('/[^a-zA-Z0-9_\-]/', '_', $_POST['slug']);
$folder = __DIR__ . "/../tiendas/$slug/banners/";
if (!is_dir($folder)) {
    // 0775 para permitir que el webserver escriba; true para crear recursivo
    if (!mkdir($folder, 0775, true)) {
        echo json_encode(["success" => false, "message" => "No se pudo crear el directorio"]);
        exit;
    }
}

// --- DETECTAR MIME Y EXTENSIÓN PERMITIDAS ---
$tmpPath = $_FILES['image']['tmp_name'];
$mime    = mime_content_type($tmpPath);

// Permitidos (sin pérdida)
$extByMime = [
    'image/jpeg' => 'jpg',
    'image/png'  => 'png',
    'image/webp' => 'webp',
    // Agrega más si necesitas subirlos tal cual:
    // 'image/gif'  => 'gif',
    // 'image/avif' => 'avif',
];

if (!isset($extByMime[$mime])) {
    echo json_encode(["success" => false, "message" => "Tipo de imagen no soportado ($mime)"]);
    exit;
}

// --- GENERAR NOMBRE (CONSERVANDO FORMATO ORIGINAL) ---
$ext           = $extByMime[$mime];
$nombreArchivo = 'banner_' . time() . '_' . rand(100, 999) . '.' . $ext;
$destino       = $folder . $nombreArchivo;

// --- MOVER SIN PROCESAR (SIN PÉRDIDA) ---
if (!move_uploaded_file($tmpPath, $destino)) {
    echo json_encode(["success" => false, "message" => "No se pudo mover el archivo"]);
    exit;
}

// Permisos de archivo (lectura pública)
@chmod($destino, 0644);

// --- URL PÚBLICA (AJUSTA A TU DOMINIO/HTTPS SI APLICA) ---
$basePublica = "https://nivor.co"; // cambia a https://tu-dominio si ya tienes SSL
$urlPublica  = rtrim($basePublica, '/') . "/tiendas/$slug/banners/$nombreArchivo";

echo json_encode([
    "success" => true,
    "url"     => $urlPublica,
    "mime"    => $mime,
    "filename"=> $nombreArchivo
]);
