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

import Preferences from "@/components/pages/participant/profile/tabs/preferences";
import { Options } from "@/types/options/options-data-types";
import { retrieveUserToken } from "@/lib/user-session";
import { INTERNAL_PAGES } from "@/constants/pages-mapping/internal-pages-mapping";
import { getProfileData } from "@/services/general-actions";

export const metadata: Metadata = {
  title: "My preferences | Profile",
};

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

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

  const participantData = await getProfileData(userToken);

  const defaultOptions: Options = [
    { id: 1, title: "Yes" },
    { id: 2, title: "No" },
  ];

  const { id: userId } = participantData;
  const { isSubscribed, isSubscribedPrizeDraws } = participantData.participant;

  return (
    <Preferences
      defaultOptions={defaultOptions}
      isSubscribed={isSubscribed}
      isSubscribedPrizeDraws={isSubscribedPrizeDraws}
      userId={userId}
    />
  );
}
