interface RecentSearch { id: string search_params: Record route_summary: string search_mode: string created_at: string } export function useRecentSearches() { const supabase = useSupabaseClient() const user = useSupabaseUser() const searches = ref([]) const loading = ref(false) async function fetchRecent(limit = 10) { if (!user.value) return loading.value = true const { data } = await supabase .from('recent_searches') .select('*') .order('created_at', { ascending: false }) .limit(limit) searches.value = (data as RecentSearch[]) || [] loading.value = false } async function saveSearch(params: Record, routeSummary: string, mode: string) { if (!user.value) return await supabase.from('recent_searches').insert({ user_id: user.value.id, search_params: params, route_summary: routeSummary, search_mode: mode }) } watch(user, (u) => { if (u) fetchRecent() else searches.value = [] }, { immediate: true }) return { searches, loading, fetchRecent, saveSearch } }