import { api } from "@/lib/api";
import type { ApiEnvelope } from "@/types/api";
import type { AdminUser, PaginatedResult } from "@/types/admin";

export async function getClients(params: { page?: number; limit?: number; type?: string; q?: string } = {}) {
  const { data } = await api.get<ApiEnvelope<PaginatedResult<AdminUser>>>("/admin/utilisateurs", { params });
  return data.data;
}

export async function getClient(uid: string): Promise<AdminUser> {
  const { data } = await api.get<ApiEnvelope<AdminUser>>(`/admin/utilisateurs/${uid}`);
  return data.data;
}

export async function updateClient(uid: string, payload: { nom?: string; telephone?: string; actif?: boolean }): Promise<AdminUser> {
  const { data } = await api.put<ApiEnvelope<AdminUser>>(`/admin/utilisateurs/${uid}`, payload);
  return data.data;
}

export async function deleteClient(uid: string): Promise<void> {
  await api.delete(`/admin/utilisateurs/${uid}`);
}
