<?php
/**
 * distribuidores-transacciones.php — Últimas transacciones de un distribuidor
 * GET /admin/api/distribuidores-transacciones.php?id=ID_INVER
 */
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, 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;
}

// ── Parámetros ───────────────────────────────────────────────────────────────
$id = (int)($_GET['id'] ?? 0);
if (!$id) {
    echo json_encode(['ok' => false, 'error' => 'ID requerido']);
    exit;
}

// ── Query — últimas transacciones (6 meses) ──────────────────────────────────
$stmt = $db->prepare("
    SELECT
        t.idtransacciones,
        DATE_FORMAT(t.fechat, '%d/%m/%Y')  AS fechat,
        t.tipostr_idtipostr                AS tipotransaccion,
        COALESCE(d.puntos, 0)              AS unidades,
        COALESCE(d.cantidad, 0)            AS monto_mxn,
        COALESCE(t.statusentrega, '-')     AS statusentrega
    FROM transacciones t
    JOIN depositos d ON d.transacciones_idtransacciones = t.idtransacciones
    LEFT JOIN pagovta pv ON pv.idtransacciones = t.idtransacciones
    WHERE t.inversionista_id_inver = ?
      AND t.fechat >= DATE_SUB(NOW(), INTERVAL 6 MONTH)
      AND t.tipostr_idtipostr IN (6, 10, 11, 12)
    ORDER BY t.fechat DESC, t.idtransacciones DESC
    LIMIT 50
");
$stmt->execute([$id]);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

echo json_encode(['ok' => true, 'transacciones' => $rows]);
