<?php
require('config.php');
include "core/autoload.php";
date_default_timezone_set("America/La_Paz");

if (!isset($_POST['procedure_id']) || !isset($_POST['user_id'])) {
    echo json_encode(['success' => false, 'message' => 'Datos incompletos']);
    exit;
}

$procedure_id = (int)$_POST['procedure_id'];
$user_id      = (int)$_POST['user_id'];
$response_data = isset($_POST['response_data']) ? $_POST['response_data'] : (isset($_POST['form_data']) ? $_POST['form_data'] : '{}');

// Procesar imágenes si se enviaron
$image_paths = [];
if (isset($_FILES['images']) && is_array($_FILES['images']['name'])) {
    $upload_dir = __DIR__ . '/uploads/procedure_images/';
    if (!is_dir($upload_dir)) {
        mkdir($upload_dir, 0775, true);
    }
    $allowed_types = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'];
    $max_size = 5 * 1024 * 1024; // 5MB

    foreach ($_FILES['images']['name'] as $idx => $original_name) {
        if ($_FILES['images']['error'][$idx] !== UPLOAD_ERR_OK) continue;
        if ($_FILES['images']['size'][$idx] > $max_size) continue;
        if (!in_array($_FILES['images']['type'][$idx], $allowed_types)) continue;

        $ext = pathinfo($original_name, PATHINFO_EXTENSION);
        $new_name = 'proc_' . $procedure_id . '_' . time() . '_' . $idx . '.' . $ext;
        $dest = $upload_dir . $new_name;

        if (move_uploaded_file($_FILES['images']['tmp_name'][$idx], $dest)) {
            $image_paths[] = 'uploads/procedure_images/' . $new_name;
        }
    }
}

$image_paths_json = count($image_paths) > 0 ? json_encode($image_paths) : null;

$stmt = $connexion->prepare(
    "INSERT INTO form_responses (procedure_id, user_id, response_data, image_paths, created_at) VALUES (?, ?, ?, ?, NOW())"
);
$stmt->bind_param("iiss", $procedure_id, $user_id, $response_data, $image_paths_json);

if ($stmt->execute()) {
    echo json_encode(['success' => true, 'message' => 'Informe guardado correctamente', 'images' => $image_paths]);
} else {
    echo json_encode(['success' => false, 'message' => 'Error al guardar el informe: ' . $stmt->error]);
}
$stmt->close();
