<?php
declare(strict_types=1);
require_once dirname(__FILE__) . '/../config.php';

if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
    jsonErr(405, 'Metodo no permitido.');
}

$jwt = auth();
$db  = getDB();

$id_tx = isset($_GET['idtransacciones']) ? (int)$_GET['idtransacciones'] : 0;
if ($id_tx <= 0) {
    jsonErr(400, 'ID de transaccion requerido.');
}

try {
    // Asignaciones realizadas a partir de esta nota (nsalida = id_tx)
    $stmt = $db->prepare(
        "SELECT
            t.idtransacciones,
            i.nombre,
            i.appat,
            i.apmat,
            i.referencia,
            d.puntos,
            d.cantidad,
            t.fechat
         FROM transacciones t
         JOIN asignaciones a  ON t.idtransacciones = a.idtransacciones
         JOIN inversionista i ON t.inversionista_id_inver = i.id_inver
         JOIN depositos d     ON d.transacciones_idtransacciones = t.idtransacciones
         WHERE a.nsalida = ?
         ORDER BY t.idtransacciones ASC"
    );
    $stmt->execute([$id_tx]);
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

    $asignaciones = [];
    $total_puntos = 0;
    foreach ($rows as $r) {
        $puntos = (int)$r['puntos'];
        $total_puntos += $puntos;
        $asignaciones[] = [
            'idtransacciones' => (int)$r['idtransacciones'],
            'nombre'          => trim($r['nombre'] . ' ' . $r['appat'] . ' ' . ($r['apmat'] ?? '')),
            'referencia'      => $r['referencia'] ?? '',
            'puntos'          => $puntos,
            'cantidad'        => (float)$r['cantidad'],
            'fechat'          => $r['fechat'],
        ];
    }

    jsonOk([
        'asignaciones'  => $asignaciones,
        'total_puntos'  => $total_puntos,
        'total_registros' => count($asignaciones),
    ]);

} catch (Throwable $e) {
    http_response_code(500);
    echo json_encode([
        'success' => false,
        'message' => 'Error interno: ' . $e->getMessage(),
    ], JSON_UNESCAPED_UNICODE);
    exit;
}
