import { notFound } from "next/navigation";
import { ContactStatus } from "@prisma/client";

import { auth } from "@/config/auth";
import { ContactsListPageView } from "@/modules/contacts/components/contacts-list-page-view";

const VALID_STATUSES: ContactStatus[] = ["ACTIVE", "UNSUBSCRIBED", "BOUNCED"];

export const metadata = {
  title: "Contatos | Newsletter Platform",
  description: "Encontre e gerencie os contatos da sua base",
};

interface ContactsPageProps {
  searchParams: Promise<{ listId?: string; status?: string }>;
}

export default async function ContactsPage({ searchParams }: ContactsPageProps) {
  const session = await auth();
  if (!session?.user?.id) {
    notFound();
  }

  const { listId, status } = await searchParams;
  const initialStatus = status && VALID_STATUSES.includes(status as ContactStatus) ? (status as ContactStatus) : undefined;

  return (
    <div className="w-full max-w-[1600px] mx-auto px-4 sm:px-6 lg:px-8 py-6 space-y-6">
      <ContactsListPageView initialListId={listId} initialStatus={initialStatus} />
    </div>
  );
}
