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

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['status' => 'error', 'message' => 'Método no permitido']);
    exit;
}

if (!isset($_FILES['file']) || $_FILES['file']['error'] !== UPLOAD_ERR_OK) {
    echo json_encode(['status' => 'error', 'message' => 'Error al subir el archivo']);
    exit;
}

$file = $_FILES['file'];
$field = $_POST['field'] ?? 'unknown';

// Validar que sea un PDF
$allowedTypes = ['application/pdf'];
$fileType = $file['type'];

if (!in_array($fileType, $allowedTypes)) {
    echo json_encode(['status' => 'error', 'message' => 'Solo se permiten archivos PDF']);
    exit;
}

// Validar tamaño del archivo (máximo 10MB)
$maxSize = 10 * 1024 * 1024; // 10MB en bytes
if ($file['size'] > $maxSize) {
    echo json_encode(['status' => 'error', 'message' => 'El archivo es demasiado grande. Máximo 10MB']);
    exit;
}

// Crear directorio si no existe
$uploadDir = '../pdf/productos/';
if (!file_exists($uploadDir)) {
    mkdir($uploadDir, 0755, true);
}

// Generar nombre único para el archivo
$originalName = pathinfo($file['name'], PATHINFO_FILENAME);
$extension = pathinfo($file['name'], PATHINFO_EXTENSION);
$timestamp = time();
$randomString = bin2hex(random_bytes(8));
$fileName = $field . '_' . $timestamp . '_' . $randomString . '.' . $extension;

$filePath = $uploadDir . $fileName;

// Mover el archivo
if (move_uploaded_file($file['tmp_name'], $filePath)) {
    echo json_encode([
        'status' => 'success',
        'filename' => $fileName,
        'original_name' => $file['name'],
        'size' => $file['size'],
        'field' => $field
    ]);
} else {
    echo json_encode(['status' => 'error', 'message' => 'Error al guardar el archivo']);
}
?>