import { api } from "@/lib/api"
import type { SignUpPayload, LoginPayload, ForgotPasswordPayload, VerifyOtpPayload } from "@/types/auth"

export const signUpQueryKey = ["auth", "sign-up"]
export const signInQueryKey = ["auth", "sign-in"]
export const profileQueryKey = ["auth", "profile"]
export const updateProfileImage = ["auth", "update-profile-image"]
export const forgotPasswordQueryKey = ["auth", "forgot-password"]
export const verifyOtpQueryKey = ["auth", "verify-otp"]

export const updateProfileInfoQueryKey = ["auth", "update-profile-info"]

export async function signUp(payload: SignUpPayload) {
  const { data } = await api.post("/auth/signup", payload)
  return data
}

export async function signIn(payload: LoginPayload) {
  const { data } = await api.post("/auth/login", payload)
  return data
}

export async function fetchUserProfile() {
  const { data } = await api.get("/auth/profile")
  return data
}

export async function uploadProfileImage(imageData: FormData) {
  const { data } = await api.post("/auth/salon/image", imageData, {
    headers: {
      "Content-Type": "multipart/form-data"
    }
  })
  return data
}

export async function forgotPassword(payload: ForgotPasswordPayload) {
  const { data } = await api.post("/auth/salon/forgot-password", payload)
  return data
}

export async function verifyOtp(payload: VerifyOtpPayload) {
  const { data } = await api.post("/auth/salon/verify-otp", payload)
  return data
}

export async function updateProfileInfo(payload: any) {
  const { data } = await api.patch("/auth/me/info", payload)
  return data
}

