import { redirect } from'next/navigation'
import { createClient } from'@/lib/supabase/server'
import { getUserSession } from'@/lib/auth/permissions'
import { isAtLeastRole } from'@/lib/auth/permissions-shared'
import AppHeader from'@/components/layout/app-header'
import EmailQueueClient from'@/components/admin/email-queue-client'
import type { EmailEntry } from'@/components/admin/email-queue-client'

export default async function AdminEmailsPage() {
 const session = await getUserSession()
 if (!session || !isAtLeastRole(session,'admin')) {
 redirect('/projektanlage')
 }

 const supabase = await createClient()

 const { data: emails } = await supabase
 .from('email_queue')
 .select('id, to_email, template, status, created_at, sent_at, error')
 .order('created_at', { ascending: false })
 .limit(100)

 const entries: EmailEntry[] = (emails ?? []).map((e) => ({
 id: e.id as string,
 to_email: e.to_email as string,
 template: e.template as string,
 status: e.status as'pending'|'sent'|'failed',
 created_at: e.created_at as string,
 sent_at: (e.sent_at as string | null) ?? null,
 error: (e.error as string | null) ?? null,
 }))

 return (
 <>
 <AppHeader title="E-Mail Queue"backHref="/projektanlage"/>
 <main className="px-4 py-6 pb-24 md:pb-8 max-w-7xl mx-auto w-full">
 <EmailQueueClient initialEntries={entries} />
 </main>
 </>
 )
}
