import { NextRequest } from "next/server";
import { fail, ok } from "@/server/http";
import { requireUser } from "@/server/security/auth";
import { ensureWallet } from "@/server/wallet/ledger";

export const dynamic = "force-dynamic";

export async function GET(request: NextRequest) {
  try {
    const { user } = await requireUser(request);
    const currency = user.profile?.currency ?? "EUR";
    const wallet = await ensureWallet(user.id, currency);
    return ok({
      walletId: wallet.id,
      currency,
      accounts: wallet.accounts.map((account) => ({
        type: account.type,
        balance: account.balance.toString()
      }))
    });
  } catch (error) {
    return fail(error);
  }
}
