import { NextRequest, NextResponse } from "next/server"; import { connectDb } from "@/lib/server/db"; import { Transaction } from "@/lib/server/models/Transaction"; import { authorize, branchParam } from "@/lib/server/auth"; import { startOfTodayNairobi } from "@/lib/server/businessDay"; export const runtime = "nodejs"; export const dynamic = "force-dynamic"; export async function GET(req: NextRequest) { await connectDb(); const gate = authorize(req); if (!gate.ok) return gate.response; const auth = gate.auth; const scope = branchParam(auth, req.nextUrl.searchParams.get("branchId")); if (!scope.ok) return scope.response; const branchId = scope.branchId; const limit = Math.min(Number(req.nextUrl.searchParams.get("limit")) || 50, 200); const filter: Record = { businessId: auth.businessId }; if (branchId) filter.branchId = branchId; filter.createdAt = { $gte: startOfTodayNairobi() }; const transactions = await Transaction.find(filter) .sort({ createdAt: -1 }) .limit(limit) .populate("branchId", "branchName") .lean(); return NextResponse.json({ transactions }); }