<?php
/**
 * SAC 2025 - UPDATE MAINTENANCE STATUS
 * Gestiona cambios de estado y sella tiempos de respuesta automáticamente.
 */
require_once 'config.php';

checkAccess(['admin', 'programmer', 'board']);

$data = json_decode(file_get_contents("php://input"), true);

if (!isset($data['id']) || !isset($data['status'])) {
    response(["error" => "Faltan parámetros"], 400);
}

$id = $data['id'];
$status = $data['status'];
$now = date('Y-m-d H:i:s');

try {
    // Lógica de sellado de tiempo
    if ($status === 'En Proceso') {
        $stmt = $pdo->prepare("UPDATE maintenance_requests SET status = ?, attended_at = ? WHERE id = ?");
        $stmt->execute([$status, $now, $id]);
    } elseif ($status === 'Completado') {
        $stmt = $pdo->prepare("UPDATE maintenance_requests SET status = ?, closed_at = ? WHERE id = ?");
        $stmt->execute([$status, $now, $id]);
    } else {
        $stmt = $pdo->prepare("UPDATE maintenance_requests SET status = ? WHERE id = ?");
        $stmt->execute([$status, $id]);
    }

    logSystemAction("Cambió estatus de ticket ID $id a: $status", "SERVICIOS");
    response(["success" => true]);

} catch (PDOException $e) {
    response(["error" => $e->getMessage()], 500);
}
?>