package com.fdkankan.scene.service;

import com.fdkankan.common.response.ResultData;
import com.fdkankan.scene.api.dto.SceneInfoDTO;
import com.fdkankan.scene.entity.SceneEditInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fdkankan.scene.vo.*;
import java.io.IOException;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 
 * @since 2022-01-18
 */
public interface ISceneEditInfoService extends IService<SceneEditInfo> {

    SceneEditInfoVO saveScene(SceneEditInfoParamVO param);

    SceneEditInfo getBySceneProId(long sceneProId);

    SceneEditInfo getByScenePlusId(long scenePlusId);

    ResultData publicScene(SceneEditInfoParamVO param) throws Exception;

    SceneInfoVO getSceneInfo(SceneInfoParamVO param) throws Exception;

    SceneInfoDTO getSceneInfo4Download(SceneInfoParamVO param) throws Exception;

    ResultData saveUpload(SaveUploadParamVO param) throws Exception;

    ResultData saveCad(BaseDataParamVO param) throws Exception;

    ResultData resetCad(String num);

    ResultData renameCad(RenameCadParamVO param) throws IOException;

    void upgradeVersionById(Long id);

    ResultData uploadPanorama(String num, MultipartFile file) throws Exception;

    ResultData downloadPanorama(FileParamVO param) throws Exception;

    void saveTagsToSceneEditInfo(String num, SceneEditInfo sceneEditInfo);

    ResultData saveVideoBox(FileNameAndDataParamVO param) throws Exception;

    ResultData deleteVideoBox(DeleteSidParamVO param) throws Exception;

    ResultData saveBoxPhoto(BaseDataParamVO param) throws Exception;

    ResultData deleteBoxPhoto(DeleteSidParamVO param) throws Exception;

    DownloadVO downloadBallScreenVideo(BallScreenVideoParamVO param);

    ResultData uploadBallScreenVideo(String num,String fileName,MultipartFile file) throws Exception;

    void upgradeVersionToSceneJson(String num) throws Exception;

    ResultData sceneSync(String num, String type, String floorPlanJson, String ajkJson, String cameraJson, MultipartFile[] files) throws Exception;

    ResultData checkKey(SceneCheckKeyParamVO param) throws Exception;

    ResultData addMosaics(@RequestBody @Validated BaseDataParamVO param) throws Exception;




}
