← back to Ken

src/app/api/bankroll/route.js

27 lines

import { NextResponse } from 'next/server';
const { query } = require('../../../lib/db');

export const dynamic = 'force-dynamic';

export async function GET() {
  try {
    const [ledger, summary] = await Promise.all([
      query('SELECT * FROM bankroll_ledger ORDER BY ts DESC LIMIT 200'),
      query(`
        SELECT
          (SELECT balance_after FROM bankroll_ledger ORDER BY ts DESC LIMIT 1) as current_balance,
          (SELECT COALESCE(SUM(amount), 0) FROM bankroll_ledger WHERE event_type = 'deposit') as total_deposits,
          (SELECT COALESCE(SUM(amount), 0) FROM bankroll_ledger WHERE event_type = 'trade_pnl') as total_pnl,
          (SELECT COALESCE(SUM(ABS(amount)), 0) FROM bankroll_ledger WHERE event_type = 'fee') as total_fees
      `),
    ]);

    return NextResponse.json({
      ledger: ledger.rows,
      summary: summary.rows[0] || {},
    });
  } catch (err) {
    return NextResponse.json({ error: err.message }, { status: 500 });
  }
}