export const useBiFilters = () => {
  const route = useRoute()

  const period = useState<string>('bi_period', () => route.query?.period as string ?? 'last_week')
  const orgId = useState<string>('bi_org_id', () => route.query?.org_id as string ?? '')
  const orgName = useState<string>('bi_org_name', () => '')

  const periodOptions = [
    { label: 'Today', value: 'today' },
    { label: 'Yesterday', value: 'yesterday' },
    { label: '7 Days', value: 'last_week' },
    { label: '30 Days', value: 'last_month' },
    { label: 'Quarter', value: 'last_quarter' },
    { label: '1 Year', value: 'last_year' },
  ]

  const setPeriod = (val: string) => {
    period.value = val
  }

  const setOrg = (id: string, name: string = '') => {
    orgId.value = id
    orgName.value = name
  }

  const clearOrg = () => {
    orgId.value = ''
    orgName.value = ''
  }

  const queryParams = computed(() => {
    const params: Record<string, string> = { period: period.value }
    if (orgId.value) {
      params.org_id = orgId.value
    }
    return params
  })

  const queryString = computed(() => {
    const parts: string[] = [`period=${period.value}`]
    if (orgId.value) {
      parts.push(`org_id=${orgId.value}`)
    }
    return parts.join('&')
  })

  return {
    period,
    orgId,
    orgName,
    periodOptions,
    setPeriod,
    setOrg,
    clearOrg,
    queryParams,
    queryString,
  }
}

