import { defineStore } from 'pinia'
import { ref } from 'vue'
import { useApi } from '../composables/useApi.js'

export const useAllowlistStore = defineStore('allowlist', () => {
  const api = useApi()
  const rows = ref([])
  const loading = ref(false)

  async function load() {
    loading.value = true
    try { rows.value = await api.get('/api/allowlist') }
    finally { loading.value = false }
  }

  async function updateThreshold(tagId, minConfidence) {
    await api.patch(`/api/tags/${tagId}/allowlist`, {
      body: { min_confidence: minConfidence }
    })
    const r = rows.value.find(x => x.tag_id === tagId)
    if (r) r.min_confidence = minConfidence
  }

  async function remove(tagId) {
    await api.delete(`/api/tags/${tagId}/allowlist`)
    rows.value = rows.value.filter(x => x.tag_id !== tagId)
  }

  return { rows, loading, load, updateThreshold, remove }
})
