import { useMutation } from "react-query";
import auth from "@react-native-firebase/auth";
import { ProfileType } from "@/contexts/AuthContext";
import { useSetUserData } from "./useSetUserData";
import {uuidv4} from "@firebase/util";

export const useSignUp = () => {
  const { mutateAsync: setUserData } = useSetUserData();

  return useMutation({
    mutationKey: ["signUp"],
    mutationFn: async ({
      email,
      password,
      firstName,
      lastName,
    }: {
      email: string;
      password: string;
      firstName: string;
      lastName: string;
    }) => {
      await auth()
        .createUserWithEmailAndPassword(email, password)
        .then(async (res) => {
          try {
            await setUserData({
              newUserData: {
                userType: ProfileType.PARENT,
                firstName: firstName,
                lastName: lastName,
                familyId: uuidv4(),
              },
              customUser: res.user,
            });
          } catch (error) {
            console.error(error);
          }
        });
    },
  });
};
