import { api } from "@/lib/api"
import type { CreateClientPayload } from "@/types/clients"

export const createClient = ["clients", "create"]
export const getClients = ["clients", "list"]

export async function createNewClient(payload: CreateClientPayload) {
  const { data } = await api.post("/clients", payload)
  return data
}

export async function fetchClients(page?: number, limit?: number, status?: string) {
  const params: Record<string, any> = { page, limit }
  if (status && status !== "all") {
    params.status = status
  }

  const { data } = await api.get("/clients", { params })
  return data
}

export async function removeClient(id: string) {
  const { data } = await api.delete(`/clients/client/${id}`)
  return data
}

export async function updateClient(id: string, payload: CreateClientPayload) {
  const { data } = await api.patch(`/clients/${id}`, payload)
  return data
}

export async function getClientDetails(id: string) {
  const { data } = await api.get(`/clients/client/${id}`)
  return data
}

export async function getClientAppointments(clientId: string, page: number = 1, limit: number = 10) {
  const { data } = await api.get(`/clients/appointments/${clientId}`, {
    params: { page, limit }
  })
  return data
}

export async function getClientInsights(clientId: string) {
  const { data } = await api.get(`/clients/insights/${clientId}`)
  return data
}

export async function getClientCalls(clientId: string) {
  const { data } = await api.get(`/clients/clientcalls/${clientId}`)
  return data
}

export async function getWhatsAppSessions(clientId: string) {
  const { data } = await api.get(`/clients/whatsapp-sessions/${clientId}`)
  return data
}

export async function fetchClientsByPlatform(platformUsed: string, page: number = 1, limit: number = 10) {
  const { data } = await api.get("/clients", {
    params: { platformUsed, page, limit }
  })
  return data
}
