import axios from 'axios';
export const ScenarioService = {
    getScenarios() {
        return axios.get('/scenarios');
    },
    getScenariosProject(projectId) {
        return axios.post('/scenariosProject', projectId);
    },
    getScenariosApplication(app) {
        return axios.post('/scenariosByApp', app);
    },
    getScenariosCross() {
        return axios.get('/scenariosCross');
    },

    getExecScenariosByUser(page = 0, size = 10, filters = {}, sortField, sortOrder) {
        // Filtri potrebbero essere vuoti, quindi rimuoviamoli se non necessari
        const requestBody = { page, size, ...filters, sortField, sortOrder };
        return axios.post('/executions', requestBody);
    },

    getScenariosForRE() {
        return axios.get('/getScenariosForRE');
    },
    updateScenarioExecRating(id, rating) {
        return axios.get('/updateRating?id=' + id + '&rating=' + rating);
    },

    getExecScenarioByProject() {
        return axios.get('/getExecScenarioByProject');
    },

    // Nuovo metodo per recuperare un singolo scenario
    getScenarioById(id) {
        return axios.get(`/scenarios/${id}`);
    },

    // Nuovo metodo per eseguire uno scenario in modo asincrono
    executeScenarioAsync(data) {
        return axios.post('/scenarios/execute-async', data);
    },

    // Nuovo metodo per recuperare i dettagli di esecuzione di uno scenario
    getScenarioExecution(execId) {
        return axios.get('/scenarios/execute/' + execId);
    },

    // Nuovo metodo per recuperare il progresso di esecuzione
    getExecutionProgress(execId) {
        return axios.get('/scenarios/getExecutionProgress/' + execId);
    }
};
