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

import { retrieveUserToken } from "@/lib/user-session";
import { INTERNAL_PAGES } from "@/constants/pages-mapping/internal-pages-mapping";
import DeleteMyAccount from "@/components/pages/participant/profile/delete-my-account/delete-my-account";
import { getOptions, getProfileData } from "@/services/general-actions";
import { CORE_ENDPOINTS } from "@/constants/api-mappings/external-api-mapping";

export const metadata: Metadata = {
  title: "Delete my account | Profile",
};

export default async function DeleteMyAccountPage() {
  const userToken = await retrieveUserToken();

  if (!userToken) {
    redirect(INTERNAL_PAGES.participant.login);
  }

  const participantData = await getProfileData(userToken);
  const { firstName, email } = participantData.participant;

  const deleteAccountOptions = await getOptions(
    CORE_ENDPOINTS.options.deletionFeedback
  );

  return (
    <div className="flex flex-col min-h-screen bg-participant-light dark:bg-participant-dark light">
      <DeleteMyAccount
        options={deleteAccountOptions}
        userEmail={email}
        userFirstName={firstName}
      />
    </div>
  );
}
