export const dynamic = 'force-dynamic' import { redirect } from 'next/navigation' import { createClient } from '@/lib/supabase/server' import { UserManager, type AdminUser, type SiteOption } from '@/components/admin/user-manager' import { SiteZoneManager, type SiteWithZones } from '@/components/admin/site-zone-manager' export default async function AdminHome() { const supabase = await createClient() const { data: { user } } = await supabase.auth.getUser() if (!user) redirect('/login') const { data: profile } = await supabase .from('users').select('role').eq('id', user.id).single() if (!profile || profile.role !== 'admin') redirect('/login') const [{ data: users }, { data: sites }] = await Promise.all([ supabase .from('users') .select('id, name, email, role, department, site_id, active') .order('created_at', { ascending: false }), supabase .from('sites') .select('id, name, address, zones (id, name, qr_code_token)') .order('name'), ]) const siteOptions: SiteOption[] = (sites ?? []).map(s => ({ id: s.id, name: s.name })) return (

Admin

) }