import AdminOrdersPanel from "@/components/admin/AdminOrdersPanel"; import { getAdminUser } from "@/lib/admin-permissions"; import { getActiveBrandId } from "@/lib/brand-scope"; import { getAdminOrders } from "@/actions/orders"; import AdminAccessDenied from "@/components/admin/AdminAccessDenied"; import { PageHeader } from "@/components/admin/design-system"; import { redirect } from "next/navigation"; import { supabase } from "@/lib/supabase"; export const dynamic = "force-dynamic"; export default async function AdminOrdersPage() { const adminUser = await getAdminUser(); if (!adminUser) return ; if (!adminUser.can_manage_orders) { redirect("/admin/pickup"); } const activeBrandId = await getActiveBrandId(adminUser); // Platform admin can browse all brands' orders; everyone else must have a brand if (!activeBrandId && adminUser.role !== "platform_admin") { return ; } const { orders, stops } = await getAdminOrders(); const brandStops = activeBrandId ? stops.filter((s) => s.brand_id === activeBrandId) : stops; const brandOrders = activeBrandId ? orders.filter( (o) => o.stops && brandStops.some((s) => s.id === o.stop_id) ) : orders; // Fetch active products for this brand (for admin "New Order" item picker) let brandProducts: Array<{ id: string; name: string; price: number; type?: string | null; active?: boolean }> = []; try { let prodQuery = supabase .from("products") .select("id, name, price, type, active") .eq("active", true) .is("deleted_at", null) .order("name") .limit(200); if (activeBrandId) { prodQuery = prodQuery.eq("brand_id", activeBrandId); } const { data: prods } = await prodQuery; brandProducts = (prods ?? []).map((p) => ({ id: String(p.id), name: String(p.name ?? ""), price: Number(p.price), type: p.type as string | null ?? null, active: Boolean(p.active ?? true), })); } catch { // non-fatal for the orders list } return (

Operations

} />
{/* Content */}
); }