import { useApiInterceptor } from "./useApiInterceptor";

export const useUpdateCandidateProfile = (
  profileUpdateData: CandidateProfileDetails
) => {
  return new Promise(async (resolve, reject) => {
    try {
      const formData = new FormData();
      formData.append("firstName", profileUpdateData.firstName!);
      formData.append("lastName", profileUpdateData.lastName ?? "");
      formData.append("pronouns", profileUpdateData.pronouns!);
      formData.append("birthdate", profileUpdateData.birthdate ?? "");
      formData.append("gender", profileUpdateData.gender!);
      formData.append("address", profileUpdateData.address ?? "");
      formData.append("zipcode", profileUpdateData.zipcode ?? "");
      formData.append("phone", profileUpdateData.phone ?? "");
      formData.append("careerObjective", profileUpdateData.careerObjective!);
      formData.append("keyAchievement", profileUpdateData.keyAchievement!);
      formData.append("summary", profileUpdateData.summary!);
      formData.append("country", profileUpdateData.country!);
      formData.append("state", profileUpdateData.state!);
      formData.append("city", profileUpdateData.city!);
      console.log("profileUpdateData.candidateImage>>", profileUpdateData);
      profileUpdateData.candidateImage !== null &&
        profileUpdateData.candidateImage !== "" &&
        formData.append("profilePicture", profileUpdateData.candidateImage!);

      // Append employmentType as an array
      profileUpdateData.skills!.forEach((type: any) => {
        formData.append("skillIds[]", type);
      });

      // Append skillIds as an array
      // profileUpdateData.qualificationId!.forEach((skillId:any) => {
      //     formData.append('skillIds[]', skillId );
      // });

      console.log(
        "phone >>",
        typeof profileUpdateData.phone,
        profileUpdateData.phone
      );
      console.log(
        "zipcode >>",
        typeof profileUpdateData.zipcode,
        profileUpdateData.zipcode
      );
      console.log(
        "lastname >>",
        typeof profileUpdateData.lastName,
        profileUpdateData.lastName
      );

      console.log("profileUpdateData>>", profileUpdateData);

      const response = await useApiInterceptor().put(
        `/account/candidate`,
        formData,
        {
          headers: {
            "Content-Type": "multipart/form-data",
          },
        }
      );
      resolve({ resp: response.data, status: response.status });
    } catch (error) {
      console.error(
        "Error fetching POST API (Update Candidate Profile):",
        error
      );
      reject({ resp: "Failed to update profile", status: 400 });
    }
  });
};
