import axios from "@/network/axios"
import { useQuery } from "@tanstack/react-query"

export type CountryCodeOption = {
  code: string
  count: number
}

export type InfluencerNumberFilterOptions = {
  platforms: string[]
  sources: string[]
  country_codes: CountryCodeOption[]
}

export type InfluencerNumberFilterOptionsResponse = {
  status?: boolean
  message?: string
  data: InfluencerNumberFilterOptions
}

const getInfluencerNumberFilterOptions = async (): Promise<InfluencerNumberFilterOptions> => {
  const { data } = await axios.get<InfluencerNumberFilterOptionsResponse>(
    `/influencer-number/filter-options`,
  )
  return {
    platforms: data?.data?.platforms ?? [],
    sources: data?.data?.sources ?? [],
    country_codes: data?.data?.country_codes ?? [],
  }
}

const useInfluencerNumberFilterOptions = () => {
  return useQuery<InfluencerNumberFilterOptions>({
    queryKey: ["influencer-number-filter-options"],
    queryFn: getInfluencerNumberFilterOptions,
    staleTime: 5 * 60_000,
  })
}

export default useInfluencerNumberFilterOptions
