import BreadCrumbLink from "@/layouts/shared/page.breadcrumbLink";
import { createProtectedLoader } from "@/lib/features/protectedFetcher";
import { getMyConsoleProfile } from "@/lib/features/users/query";
import type { AdminUserDetailed } from "@/lib/features/users/types";
import ProfileClientPage from "./_client";

export const handle = {
  breadcrumb: () => (
    <BreadCrumbLink links={[{ label: "Settings" }, { label: "My Profile" }]} />
  ),
};

/*
 * Session-gated only, not `user-management`: this is the caller's own record.
 * Requiring that role would have locked every user out of their own profile.
 */
export const loader = createProtectedLoader(async ({ request }) => {
  const profile = await getMyConsoleProfile(request);
  return { profile };
});

const ProfilePage: React.FC<{ loaderData: unknown }> = ({ loaderData }) => {
  const { profile } = loaderData as {
    profile?: { success: boolean; data?: { user: AdminUserDetailed } };
  };
  return <ProfileClientPage profile={profile?.data?.user} />;
};

export default ProfilePage;
