import { useStores } from '@/lib/useLookups'
import { useQuery } from '@tanstack/react-query'
import { api } from '@/lib/api'
import type { PagedResult, RetailPoint } from '@/lib/types'

/** Инфраструктура организации (склады, кассы) для умного скрытия селекторов
 * в формах документов: если у организации только 1 склад/касса — выбор не
 * показывается, форма автоматически подставляет единственное значение.
 * Появится 2-й — пикер вернётся. */
export function useOrgInfra() {
  const stores = useStores()
  const cashRegisters = useQuery({
    queryKey: ['lookup:retail-points'],
    queryFn: async () =>
      (await api.get<PagedResult<RetailPoint>>('/api/catalog/retail-points?pageSize=100')).data.items,
    staleTime: 0,
    refetchOnMount: 'always',
    refetchOnWindowFocus: true,
  })

  const storesList = stores.data ?? []
  const cashList = cashRegisters.data ?? []
  const mainStore = storesList.find((s) => s.isMain) ?? storesList[0]

  return {
    stores: storesList,
    cashRegisters: cashList,
    isLoading: stores.isLoading || cashRegisters.isLoading,
    showStorePicker: storesList.length > 1,
    showCashPicker: cashList.length > 1,
    defaultStoreId: mainStore?.id ?? null,
    defaultCashId: cashList[0]?.id ?? null,
  }
}
