import type { Metadata } from "next"
import { redirect } from "next/navigation"

import { AppShell } from "@/components/app-shell"
import { SiteHeader } from "@/components/site-header"
import { NotificationPreferencesForm } from "@/components/settings/notification-preferences-form"
import { requireAuthenticatedSession } from "@/lib/auth-server"

export const metadata: Metadata = {
  title: "Preferências de notificação",
  description: "Configure quais notificações por e-mail deseja receber.",
}

export default async function NotificationSettingsPage() {
  const session = await requireAuthenticatedSession()
  const role = (session.user.role ?? "").toLowerCase()

  // Apenas staff pode acessar esta página
  const staffRoles = new Set(["admin", "manager", "agent"])
  if (!staffRoles.has(role)) {
    redirect("/portal/profile/notifications")
  }

  return (
    <AppShell
      header={
        <SiteHeader
          title="Preferências de notificação"
          lead="Configure como e quando deseja receber notificações por e-mail"
        />
      }
    >
      <div className="mx-auto w-full max-w-3xl px-4 pb-12 lg:px-6">
        <NotificationPreferencesForm />
      </div>
    </AppShell>
  )
}
