import { api } from "@/lib/api"

// Query keys
export const getRevenue = ["analytics", "revenue"]
export const getAgenda = ["analytics", "agenda"]
export const getOccupancyRate = ["analytics", "occupancy-rate"]
export const getServiceAppointments = ["analytics", "service-appointments"]
export const getWeeklyBookings = ["analytics", "weekly-bookings"]
export const getWeeklyEarnings = ["analytics", "weekly-earnings"]
export const getPeakHours = ["analytics", "peak-hours"]
export const getBookingRatio = ["analytics", "booking-ratio"]
export const getStylistPerformance = ["analytics", "stylist-performance"]
export const getRevenueStats = ["analytics", "revenue-stats"]
export const getAppointmentStats = ["analytics", "appointment-stats"]
export const getClientsStats = ["analytics", "clients-stats"]
export const getAIAnalytics = ["analytics", "ai-analytics"]
export const getAICallDuration = ["analytics", "ai-call-duration"]
export const getAIAppointmentsCount = ["analytics", "ai-appointments-count"]
export const getDailyMetrics = ["analytics", "daily-metrics"]

// Query functions
export async function fetchRevenue() {
  const { data } = await api.get("/analytics/revenue")
  return data
}

export async function fetchAgenda() {
  const { data } = await api.get("/analytics/agenda")
  return data
}

export async function fetchOccupancyRate() {
  const { data } = await api.get("/analytics/occupancy-rate")
  return data
}

export async function fetchServiceAppointments() {
  const { data } = await api.get("/analytics/service-appointments?includeSpent=true")
  return data
}

export async function fetchWeeklyBookings(range: string = "daily") {
  const { data } = await api.get(`/analytics/bookings?range=${range}`)
  return data
}

export async function fetchWeeklyEarnings(range: string = "daily") {
  const { data } = await api.get(`/analytics/earnings?range=${range}`)
  return data
}

export async function fetchPeakHours() {
  const { data } = await api.get("/analytics/peak-hours")
  return data
}

export async function fetchBookingRatio() {
  const { data } = await api.get("/analytics/booking-ratio")
  return data
}

export async function fetchStylistPerformance() {
  const { data } = await api.get("/analytics/stylist-performance")
  return data
}

export async function fetchRevenueStats() {
  const { data } = await api.get("/analytics/revenue-stats")
  return data
}

export async function fetchAppointmentStats() {
  const { data } = await api.get("/analytics/appointment-stats")
  return data
}

export async function fetchClientsStats() {
  const { data } = await api.get("/analytics/clients-stats")
  return data
}

export async function fetchAIAnalytics() {
  const { data } = await api.get("/analytics/calls/analysis")
  return data
}

export async function fetchAICallDuration() {
  const { data } = await api.get("/analytics/calls/duration/salon")
  return data
}

export async function fetchAIAppointmentsCount() {
  const { data } = await api.get("/analytics/ai-appointments/count")
  return data
}

export async function fetchDailyMetrics() {
  const { data } = await api.get("/analytics/daily-metrics")
  return data
}