import { api } from "@/lib/api"
import type { CreateBookingPayload, BookingsResponse, Booking } from "@/types/bookings"

export const createBooking = ["bookings", "create"]
export const getBookings = ["bookings", "list"]
export const getBookingById = (id: string) => ["bookings", "detail", id]

export async function createNewBooking(payload: CreateBookingPayload) {
  const { data } = await api.post("/appointments", payload)
  return data
}

export async function fetchBookings(page = 1, limit = 10): Promise<BookingsResponse> {
  const { data } = await api.get(`/appointments?page=${page}&limit=${limit}`)
  return data
}

export async function fetchBookingById(id: string): Promise<Booking> {
  const { data } = await api.get(`/appointments/${id}`)
  return data
}

export async function updateBookingStatus(id: string, status: Booking["status"]) {
  const { data } = await api.patch(`/appointments/${id}/status`, { status })
  return data
}

export async function cancelBooking(id: string) {
  const { data } = await api.patch(`/appointments/${id}/cancel`)
  return data
}
