<?php
// ✅ Encabezados CORS y respuesta JSON
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Methods: POST, OPTIONS");
header("Access-Control-Max-Age: 86400");
header("Content-Type: application/json");

// ✅ Carpeta de destino
$carpeta = "../uploads/";
if (!file_exists($carpeta)) mkdir($carpeta, 0777, true);

// ✅ Validación de archivo recibido
if (isset($_FILES['archivo']) && $_FILES['archivo']['error'] === UPLOAD_ERR_OK) {
    $nombreTemp = $_FILES['archivo']['tmp_name'];
    $nombreOriginal = basename($_FILES['archivo']['name']);
    $extension = strtolower(pathinfo($nombreOriginal, PATHINFO_EXTENSION));

    // ✅ Extensiones permitidas
    $permitidos = ['mp3', 'wav', 'ogg', 'm4a'];
    if (!in_array($extension, $permitidos)) {
        echo json_encode([
            'success' => false,
            'message' => 'Formato de audio no permitido. Usa MP3, WAV, OGG o M4A.'
        ]);
        exit;
    }

    // ✅ Validar tamaño máximo (5 MB)
    if ($_FILES['archivo']['size'] > 5 * 1024 * 1024) {
        echo json_encode([
            'success' => false,
            'message' => 'El archivo supera el límite de 5 MB.'
        ]);
        exit;
    }

    // ✅ Guardar archivo con nombre único
    $nuevoNombre = uniqid('audio_') . '.' . $extension;
    $rutaDestino = $carpeta . $nuevoNombre;

    if (move_uploaded_file($nombreTemp, $rutaDestino)) {
        echo json_encode([
            'success' => true,
            'url' => 'https://server40.vps.webdock.cloud/api_gold/uploads/' . $nuevoNombre
        ]);
        exit;
    } else {
        echo json_encode([
            'success' => false,
            'message' => 'Error al guardar el archivo.'
        ]);
        exit;
    }
}

echo json_encode(['success' => false, 'message' => 'Archivo no recibido.']);
