import { notFound } from "next/navigation";

import { TemplateDetailClient } from "@/components/email-templates/template-detail-client";

import { DEFAULT_SAMPLE_DATA } from "@/lib/email-builder/types";

import { toClientJson } from "@/lib/serialize";

import { previewEmailTemplate, getEmailTemplate } from "@/server/services/email-template.service";



export default async function EmailTemplateDetailPage({

  params,

}: {

  params: Promise<{ id: string }>;

}) {

  const { id } = await params;

  const template = await getEmailTemplate(id);

  if (!template) notFound();



  const preview = await previewEmailTemplate(id, DEFAULT_SAMPLE_DATA);

  const rendered = preview ?? {

    subject: template.subject,

    htmlContent: template.htmlContent,

    textContent: template.textContent ?? "",

    variables: template.variables ?? [],

  };



  return (

    <TemplateDetailClient

      template={toClientJson({

        _id: String(template._id),

        name: template.name,

        description: template.description,

        category: template.category,

        subject: template.subject,

        language: template.language,

        status: template.status,

        layoutTheme: template.layoutTheme,

        variables: template.variables,

        designSettings: template.designSettings,

      })}

      preview={toClientJson(rendered)}

    />

  );

}

