import type { Metadata } from "next";
import { notFound } from "next/navigation";
import { requireUser } from "@/lib/auth/dal";
import { getConversationForUser, listMessages, markMessagesRead } from "@/lib/messages/queries";
import { MessageThread } from "@/components/messages/MessageThread";

export const metadata: Metadata = {
  title: "Mesajlar",
  robots: { index: false, follow: false },
};

export default async function ConversationPage({
  params,
}: {
  params: Promise<{ conversationId: string }>;
}) {
  const { conversationId } = await params;
  const user = await requireUser();

  const result = await getConversationForUser(conversationId, user.id);
  if (!result) notFound();

  const { other } = result;
  await markMessagesRead(conversationId, user.id);
  const messages = await listMessages(conversationId);

  return (
    <MessageThread
      conversationId={conversationId}
      currentUserId={user.id}
      otherName={other.profile?.fullName ?? other.email}
      initialMessages={messages.map((m) => ({ id: m.id, senderId: m.senderId, body: m.body, createdAt: m.createdAt }))}
    />
  );
}
