import { api } from "@/lib/api";
import type { ApiEnvelope } from "@/types/api";
import type { LoginResponse, TypeUtilisateur, User } from "@/types/auth";

export async function login(email: string, password: string): Promise<LoginResponse> {
  const { data } = await api.post<ApiEnvelope<LoginResponse>>("/auth/connexion", {
    email,
    password,
  });
  return data.data;
}

export interface InscriptionPayload {
  nom: string;
  email: string;
  telephone: string;
  password: string;
  type: TypeUtilisateur;
  pdv_adresse?: string;
  pdv_zone?: string;
}

export async function inscrire(payload: InscriptionPayload): Promise<User> {
  const { data } = await api.post<ApiEnvelope<User>>("/auth/inscription", payload);
  return data.data;
}

export async function demanderReinitialisationMotDePasse(email: string): Promise<void> {
  await api.post("/auth/mot-de-passe-oublie", { email });
}

export async function reinitialiserMotDePasse(
  email: string,
  code: string,
  nouveauMotDePasse: string,
): Promise<void> {
  await api.post("/auth/reinitialiser-mot-de-passe", { email, code, nouveauMotDePasse });
}
