import { useMemo } from "react";
import { MappedProject, ProjectType } from "../types/project.types";
import { UniversalOption } from "@/components/common/CustomTextbox";
import { useProfileQuery } from "@/hooks/useProfileQuery";
import { mapProjects } from "../utils/project.utils";

export function useProjectData() {
  const { data: getProfileData, isLoading, isError } = useProfileQuery();
  const mappedProjects = useMemo<UniversalOption[]>(() => {
    // API may return `project` (singular) or `projects` (plural).
    const rawProjects =
      getProfileData?.data?.project ?? getProfileData?.data?.projects ?? [];
    const projects = mapProjects(rawProjects);
    console.log(
      "------------------getProfileData?.data?.project",
      getProfileData?.data?.project,
    );
    console.log(
      "------------------getProfileData?.data?.project",
      getProfileData,
    );

    return projects.map((p: ProjectType) => ({
      id: p.id || p.uuid || "N/A",
      uuid: p.uuid || p.id || "",
      project_name: p.project_name,
      task_name: p.task_name,
      task_url: p.task_url || "https://",
      project_url: (p as any).project_url || p.task_url || "https://",
      responsibilities: p.responsibilities,
    }));
  }, [getProfileData]);

  return {
    mappedProjects,
    isLoading: isLoading,
    isError: isError,
  };
}
