import { defineStore } from 'pinia' import { computed, ref } from 'vue' import { DashboardScenarioService } from '../../service/dashboard/DashboardScenarioService' import { LoadingStore } from '../../stores/LoadingStore' import { UserPrefStore } from '../../stores/UserPrefStore' export const DashboardScenarioStore = defineStore('dashboard_scenario_store', () => { const projectScenarios = ref([]) const globalScenarios = ref([]) const applicationScenarios = ref([]) const filterString = ref('') const allScenarios = ref([]) const typeFilter = ref({ name: 'All', value: 'all' }) const scenariosForRE = ref([]) const projects = ref([]) const executions = ref([]) const chats = ref([]) const error = ref(null) const users = ref([]) const dashboardResponse = ref(null) const totalExecutions = ref(0); const totalTokens = ref(0); const userPrefStore = UserPrefStore() const loadingStore = LoadingStore() async function fetchExecutionForProject() { //funzione che recupera le esecuzioni dei progetti loadingStore.scenario_loading = true; await DashboardScenarioService.getExecScenarioByProject(userPrefStore.selectedProject).then(resp => { projectScenarios.value = resp.data; allScenarios.value = [...projectScenarios.value] loadingStore.scenario_loading = false; }); } //funzioni per la dashboard async function loadProjects() { //carica tutti i progetti try { loadingStore.scenario_loading = true; const response = await DashboardScenarioService.getProjects(); // prende i progetti dal back projects.value = response.data; } catch (err) { console.error('Errore caricamento progetti:', err); error.value = err.message || 'Errore durante il caricamento dei progetti'; } finally { loadingStore.scenario_loading = false; } } async function loadExecutions(filters) { //carica i dati per le esecuzioni try { loadingStore.scenario_loading = true; const response = await DashboardScenarioService.getExecutions(filters); console.log("RISPOSTA RAW DA API:", response) executions.value = response.data } catch (err) { console.error('Errore caricamento executions:', err); error.value = err.message || 'Errore durante il caricamento delle esecuzioni'; } finally { loadingStore.scenario_loading = false; } } async function loadExecutionsStats (filters) { try { loadingStore.scenario_loading = true; const response = await DashboardScenarioService.getExecutionsStats(filters); console.log("RISPOSTA RAW DA API:", response) dashboardResponse.value = response.data } catch (err) { console.error('Errore caricamento executions:', err); error.value = err.message || 'Errore durante il caricamento delle esecuzioni'; } finally { loadingStore.scenario_loading = false; } } async function loadUsers(filters) { try { loadingStore.scenario_loading = true; const response = await DashboardScenarioService.getUsers(filters); users.value = response.data; return response; } catch (err) { console.error('Errore caricamento users:', err); error.value = err.message || 'Errore durante il caricamento delle esecuzioni'; } finally { loadingStore.scenario_loading = false; } } async function loadChats(filters) { //carica i dati per la tabella della chat try { loadingStore.scenario_loading = true; const response = await DashboardScenarioService.getChats(filters); chats.value = response.data; } catch (err) { console.error('Errore caricamento chats:', err); error.value = err.message || 'Errore durante il caricamento delle chat'; } finally { loadingStore.scenario_loading = false; } } async function loadScenarios(filters) { try { loadingStore.scenario_loading = true; const response = await DashboardScenarioService.getScenarios(filters); allScenarios.value = response.data; return response; } catch (err) { console.error('Errore caricamento scenari:', err); error.value = err.message || 'Errore durante il caricamento degli scenari'; } finally { loadingStore.scenario_loading = false; } } async function loadChatStats(filters) { try { loadingStore.scenario_loading = true; const response = await DashboardScenarioService.getChatStats(filters); console.log("RISPOSTA :", response) chatStats.value = response.data } catch (err) { console.error('Errore caricamento chat:', err); error.value = err.message || 'Errore durante il caricamento delle chat'; } finally { loadingStore.scenario_loading = false; } } return { fetchExecutionForProject, projects, executions, chats, error, loadProjects, loadExecutions, loadChats, loadUsers, loadScenarios, allScenarios, dashboardResponse, totalExecutions, totalTokens, loadExecutionsStats, loadChatStats, } })