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

// Import SETTINGS only. The manual-scan trigger + task-list surfaces retired
// with the Import tab (2026-07-02): imports arrive via downloads/extension and
// heal themselves (Layer-2 auto-refetch sweep); their runs show in Activity.
// The /api/import/trigger + /tasks endpoints remain for direct/API use.
// Consumers: ImportFiltersForm (Maintenance → Ingestion & filters) and the
// Subscriptions Settings tab (downloader/extdl/schedule fields on the same
// ImportSettings row).
export const useImportStore = defineStore('import', () => {
  const api = useApi()

  const settings = ref(null)
  const settingsLoading = ref(false)
  const settingsError = ref(null)

  async function loadSettings() {
    settingsLoading.value = true
    settingsError.value = null
    try {
      settings.value = await api.get('/api/settings/import')
    } catch (e) {
      settingsError.value = e.message
    } finally {
      settingsLoading.value = false
    }
  }

  async function patchSettings(patch) {
    settingsError.value = null
    try {
      settings.value = await api.patch('/api/settings/import', { body: patch })
    } catch (e) {
      settingsError.value = e.message
      toast({ text: `Settings save failed: ${e.message}`, type: 'error' })
      throw e
    }
  }

  return {
    settings, settingsLoading, settingsError,
    loadSettings, patchSettings,
  }
})
