package com.css.simulation.resource.server.app.service.job_manage;

import api.common.pojo.common.ResponseBodyVO;
import api.common.pojo.param.project.*;
import api.common.pojo.vo.project.*;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface MultiSimulationProjectService {
    ResponseBodyVO<PageInfo<MultiSimulationProjectVO>> selectMultiSimulationProject(MultiSimulationProjectParam param);

    ResponseBodyVO<MultiSimulationProjectDetailVO> addMultiSimulationProject(MultiSimulationProjectParam param);

    ResponseBodyVO<String> deleteMultiSimulationProject(MultiSimulationProjectParam param);

    ResponseBodyVO updateMultiSimulationProjectStatus(MultiSimulationProjectParam param);

    ResponseBodyVO submitMultiSimulationProjectDetail(MultiSimulationProjectParam param);

    ResponseBodyVO<String> updateMultiSimulationProject(MultiSimulationProjectParam param);

    ResponseBodyVO<MultiSimulationProjectVO> getMultiSimulationProjectDetail(MultiSimulationProjectParam param);

    ResponseBodyVO<MultiSimulationSceneVO> addMultiSimulationScene(MultiSimulationSceneParam param);

    ResponseBodyVO<String> deleteMultiSimulationScene(MultiSimulationSceneParam param);

    ResponseBodyVO<PageInfo<MultiSimulationSceneVO>> selectMultiSimulationSceneList(MultiSimulationSceneParam param);

    ResponseBodyVO<MultiSimulationSceneVO> getMultiSimulationSceneDetail(MultiSimulationSceneParam param);

    ResponseBodyVO<PageInfo<MultiSimulationSceneCarVO>> getMultiSimulationSceneCarList(MultiSimulationSceneCarParam param);

    ResponseBodyVO deleteMultiSimulationSceneCar(MultiSimulationSceneCarParam param);

    ResponseBodyVO<MultiSimulationSceneCarVO> addOrUpdateMultiSimulationSceneCar(MultiSimulationSceneCarParam param);

    ResponseBodyVO<List<MultiSimulationSceneCarVO>> addOrUpdateMultiSimulationSceneCarList(AddOrUpdateMultiSimulationSceneCarParam param);

    ResponseBodyVO setMultiSimulationSceneCarView(MultiSimulationSceneCarParam param);

    ResponseBodyVO<MultiSimulationProjectVO> saveAsMultiSimulationProjectDetail(MultiSimulationProjectParam param);

    ResponseBodyVO<MultiSimulationSceneVO> copyMultiSimulationScene(MultiSimulationSceneParam param);

    ResponseBodyVO<MultiSimulationSceneResultVO> viewMultiSimulationProjectResult(MultiSimulationSceneParam param);

    void exportProjectTaskFileById(MultiSimulationProjectParam param);
}
