export function useSubmissionsService() {
  const { apiFetch } = useApi()

  return {
    fetchAll(perPage: number, page: number, status?: string) {
      const query: Record<string, unknown> = { per_page: perPage, page }
      if (status) query.status = status
      return apiFetch('/submissions/index', { query })
    },

    getById(id: number) {
      return apiFetch(`/submissions/show/${id}`)
    },

    cancel(data: Record<string, unknown>) {
      return apiFetch('/submissions/cancel', { method: 'POST', body: data })
    },

    update(data: Record<string, unknown>) {
      return apiFetch('/submissions/update', { method: 'PUT', body: data })
    },

    join(data: Record<string, unknown>) {
      return apiFetch('/submissions/join', { method: 'POST', body: data })
    },

    getAveragePrice(productId: number, quantity: number) {
      return apiFetch('/submissions/average-price', {
        query: { product_id: productId, quantity },
      })
    },

    getDepositAmount(productId: number, quantity: number, maxPrice: number) {
      return apiFetch('/submissions/deposite-amount', {
        query: { product_id: productId, quantity, max_price: maxPrice },
      })
    },
  }
}
