import { useQuery } from '@tanstack/react-query'
import { VoucherRowsResponse } from '../../types/services/voucher'
import { api } from '../api'

export interface VouchersQueryParams {
  rows?: number
  winner_number?: number
}

export function useVoucherRows(params: VouchersQueryParams = {}, options: { enabled?: boolean } = {}) {
  const { rows = 5, winner_number = 1 } = params
  const { enabled = true } = options

  return useQuery<VoucherRowsResponse>({
    queryKey: ['voucher-rows', { rows, winner_number }],
    queryFn: async () => {
      const res = await api.get(`/vouchers/rows`, {
        params: { rows, winner_number }
      })
      return res.data.data
    },
    enabled,
    staleTime: 5 * 60 * 1000,
    refetchOnWindowFocus: false
  })
}

// Manual fetch function for cases where you need to fetch without using the hook
export async function fetchVoucherRows(rows: number = 5, winner_number: number = 1): Promise<VoucherRowsResponse> {
  const res = await api.get(`/vouchers/rows`, {
    params: { rows, winner_number }
  })
  return res.data.data
}
