components_data_GetFiltersTask.bs

import "pkg:/source/api/ApiClient.bs"
import "pkg:/source/api/apiPool.bs"
import "pkg:/source/utils/misc.bs"

sub init()
  m.top.functionName = "getFiltersTask"
end sub

' Orchestrator Task: submits to ApiTask pool via queue and waits off the render thread.
sub getFiltersTask()
  ' Debug error injection — compiled out in production (bs_const=debug=false)
  #if debug
    if isValid(m.global.debug) and m.global.debug.shouldForceFiltersFail
      m.top.error = "[DEBUG] Forced filter failure"
      m.top.filters = {}
      return
    end if
  #end if

  res = fetchRes(GetApi().BuildGetFiltersRequest(m.top.params), "filters")
  if isValid(res) and res.ok
    m.top.filters = res.json
  else
    m.top.error = "Unable to load filter options"
    m.top.filters = {}
  end if
end sub