import { getRegisterDetailsAction } from "../../../lib/actions/registerDetailsAction";
import { fetchHeaderFooterForLayout } from "../../../lib/serverFetch";
import { getSubmissionPageDataAction } from "../../../lib/actions/submissionPageAction";
import SubmissionPageClient from "./SubmissionPageClient";

export const dynamic = "force-dynamic";

interface PageProps {
  params: Promise<{ id: string }>;
  searchParams: Promise<Record<string, string | string[]>> | Record<string, string | string[]>;
}

export default async function SubmissionPage({ params, searchParams }: PageProps) {
  const { id } = await params;
  const searchParamsObj = typeof searchParams === "object" && "then" in searchParams
      ? await searchParams
      : searchParams ?? {};
  
  const lang = (searchParamsObj.lang as string) || (searchParamsObj.language as string) || "default";
  const franchiseeIdFromUrl = searchParamsObj.franchiseeId as string;
  
  // Fetch register details from backend
  const registerDetails = await getRegisterDetailsAction(id);
  
  // Fetch footer data
  let footerData = null;
  try {
    footerData = await fetchHeaderFooterForLayout();
  } catch (error) {
  }

  // Fetch page data (translations and content)
  let pageDataResponse = null;
  try {
    const finalFranchiseeId = 
      franchiseeIdFromUrl || 
      footerData?.tenant?.zoho_franchise_id || 
      footerData?.tenant?.franchiseeId;

    pageDataResponse = await getSubmissionPageDataAction(finalFranchiseeId, lang);
  } catch (error) {
  }

  return (
    <SubmissionPageClient 
      registerDetails={registerDetails} 
      footerData={footerData} 
      registrationId={id}
      pageData={pageDataResponse?.data}
    />
  );
}
