<?php
/**
 * kyc-accion.php
 * POST → Aprobar o rechazar un KYC
 * Body JSON: { id_inver: int, accion: "aprobar"|"rechazar"|"pendiente", nota?: string }
 *
 * isVip: 0 = sin enviar, 1 = aprobado, 2 = en revisión, 3 = rechazado
 */
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, OPTIONS');
header('Access-Control-Allow-Headers: Authorization, Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(204); exit; }

require_once __DIR__ . '/../../config.php';
$db = getDB();

// ── Validar token ─────────────────────────────────────────────────────────────
$headers    = getallheaders();
$authHeader = $headers['Authorization'] ?? $headers['authorization'] ?? '';
if (!preg_match('/Bearer\s+(.+)/i', $authHeader, $m)) {
    http_response_code(401);
    echo json_encode(['ok' => false, 'error' => 'Token requerido']);
    exit;
}
$token = trim($m[1]);
$stmtTok = $db->prepare("SELECT idusuarios_sist FROM admin_sessions WHERE token = ? AND expira > NOW()");
$stmtTok->execute([$token]);
if (!$stmtTok->fetch()) {
    http_response_code(401);
    echo json_encode(['ok' => false, 'error' => 'Sesión inválida o expirada']);
    exit;
}

// ── Leer body ─────────────────────────────────────────────────────────────────
$body     = json_decode(file_get_contents('php://input'), true) ?? [];
$idInver  = (int)($body['id_inver'] ?? 0);
$accion   = $body['accion']  ?? '';

if (!$idInver || !in_array($accion, ['aprobar', 'rechazar', 'pendiente'])) {
    echo json_encode(['ok' => false, 'error' => 'Parámetros inválidos']);
    exit;
}

// Mapear acción a valor isVip
$nuevoVip = match($accion) {
    'aprobar'   => 1,
    'rechazar'  => 3,
    'pendiente' => 2,
};

// ── Actualizar isVip en inversionista ─────────────────────────────────────────
$stmt = $db->prepare("UPDATE inversionista SET isVip = ? WHERE id_inver = ?");
$stmt->execute([$nuevoVip, $idInver]);

if ($stmt->rowCount() === 0) {
    echo json_encode(['ok' => false, 'error' => 'No se encontró el distribuidor o no hubo cambios']);
    exit;
}

$labels = [1 => 'Aprobado', 2 => 'En revisión', 3 => 'Rechazado'];
echo json_encode([
    'ok'      => true,
    'mensaje' => 'KYC actualizado a: ' . ($labels[$nuevoVip] ?? $nuevoVip),
    'isVip'   => $nuevoVip,
]);
