/** Pinia store for shuttle management (Intercity/Tourism) */ import { defineStore } from 'pinia' import { ref } from 'vue' import type { Shuttle } from '@/types' import { shuttlesService, type ShuttleFilters } from '@/services/shuttlesService' export const useShuttleStore = defineStore('shuttle', () => { const shuttles = ref([]) const isLoading = ref(false) const error = ref(null) const filters = ref({}) async function loadShuttles(newFilters?: ShuttleFilters) { isLoading.value = true error.value = null if (newFilters) { filters.value = newFilters } try { shuttles.value = await shuttlesService.getAllShuttles(filters.value) } catch (e) { error.value = e instanceof Error ? e.message : 'Failed to load shuttles' console.error('Error loading shuttles:', e) } finally { isLoading.value = false } } // Recarga silenciosa: no activa el spinner (para refocus desde background) async function silentReload() { if (shuttles.value.length === 0) { return loadShuttles() } error.value = null try { shuttles.value = await shuttlesService.getAllShuttles(filters.value) } catch (e) { console.error('Error silent-reloading shuttles:', e) // No mostrar error si ya hay datos } } return { shuttles, isLoading, error, filters, loadShuttles, silentReload, } }, { persist: { pick: ['shuttles'] } })