import { defineStore } from 'pinia'
import { computed, ref } from 'vue'


export const LoadingStore = defineStore('loading_store', () => {


    const scenario_loading = ref(false)
    const user_loading = ref(false)
    const another_loading = ref(false)
    const exectuion_loading = ref(false)
    const id_exec_loading = ref("")
    const re_loading = ref(false)
    
    const  isLoading = computed(() => {
        return scenario_loading.value || user_loading.value || another_loading.value || exectuion_loading.value || re_loading.value  
    })

    const loadingType = computed(() => {        
        if(exectuion_loading.value) return 'ai'
        if(re_loading.value) return 'ai'
        if(scenario_loading.value) return 'data'
        if(user_loading.value) return 'data'
        if(another_loading.value) return 'data'
        return 'none'  
    })  

    async function setIdExecLoading(id){
        id_exec_loading.value = id
    }

    const getExecIdLoading = computed(() => {
        return id_exec_loading.value
    });

    return {isLoading, 
            user_loading, 
            scenario_loading, 
            another_loading,
            exectuion_loading,
            re_loading,
            loadingType,
            setIdExecLoading,
            getExecIdLoading
        }
})