import { defineStore } from 'pinia' import { ref } from 'vue' import { api } from '@/services/api' export type FactType = | 'companion_planting' | 'soil_amendment' | 'propagation' | 'pest_diagnosis' | 'harvest_timing' | 'instruction' | 'medicinal' | 'history_context' export interface KnowledgeFact { id: number source_id: number fact_type: FactType subject: string | null payload: Record presenter: string | null confidence: number fact_hash: string created_at: string video_path: string | null location: string | null } export interface KnowledgeFilters { fact_type?: FactType subject?: string presenter?: string min_confidence?: number limit?: number offset?: number } export const useKnowledgeStore = defineStore('knowledge', () => { const facts = ref([]) const loading = ref(false) const error = ref(null) async function fetchFacts(filters: KnowledgeFilters = {}) { loading.value = true error.value = null try { const resp = await api.get('/knowledge', { params: filters }) facts.value = resp.data } catch (e: any) { error.value = e?.response?.data?.detail ?? 'Failed to load knowledge' } finally { loading.value = false } } return { facts, loading, error, fetchFacts } })