import api from "./api";

export interface ProfileData {
  id: number;
  name: string;
  email: string;
  role: string;
  specialization?: string;
  department?: string;
  experience?: string;
  accessLevel?: string;
}

export const getProfile = async (): Promise<ProfileData> => {
  const response = await api.get("/auth/profile");
  const result = response.data;
  // Handle both direct data and wrapped response formats
  return result.data || result;
};

export const updateName = async (name: string): Promise<ProfileData> => {
  const response = await api.put("/auth/profile/name", { name });
  const result = response.data;
  return result.data || result;
};

export const requestEmailChange = async (newEmail: string): Promise<{ message: string }> => {
  const response = await api.post("/profile/email/change-request", { newEmail });
  const result = response.data;
  return result.data || result;
};

export const verifyEmailChange = async (otp: string): Promise<ProfileData> => {
  const response = await api.post("/profile/email/verify", { otp });
  const result = response.data;
  return result.data || result;
};

export const updateDepartment = async (department: string): Promise<ProfileData> => {
  const response = await api.put("/profile/department", { department: department.trim() });
  const result = response.data;
  return result.data || result;
};

