package com.djhk.uav.label.service;

import com.djhk.common.core.domain.R;
import com.djhk.common.core.page.TableDataInfo;
import com.djhk.uav.label.domain.CatalogueDto;
import com.djhk.uav.label.domain.Plotting;
import com.djhk.uav.label.domain.PlottingQuery;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * @author jwh
 * @version 1.0
 * @description
 * @date 2023/7/26 14:42:10
 */
public interface LabelService {

    R downloadPlot(List folderIds);

    R uploadPlot(MultipartFile file);

    /**
     * 添加标注目录
     *
     * @param catalogueDto
     * @return
     */
    R addCatalogue(CatalogueDto catalogueDto);

    /**
     * 删除目录
     *
     * @param ids
     * @return
     */
    R deleteCatalogue(Integer[] ids);

    /**
     * 修改目录名称
     *
     * @param catalogueDto
     * @return
     */
    R updateCatalogue(CatalogueDto catalogueDto);

    /**
     * 查询目录列表--不分页
     *
     * @param catalogueDto
     * @return
     */
    R listCatalogue(CatalogueDto catalogueDto);


    /**
     * 修改目录锁定状态
     *
     * @param id
     * @param lockStatus
     * @return
     */
    R changeLockStatusCatalogue(Integer id, Integer lockStatus);


    /**
     * 修改目录显示/隐藏状态
     *
     * @param id
     * @param showStatus
     * @return
     */
    R changeShowStatusCatalogue(Integer id, Integer showStatus);

    /**
     * 修改目录显示/隐藏状态
     *
     * @param id
     * @param shareStatus
     * @return
     */
    R changeShareStatusCatalogue(Integer id, Integer shareStatus);


    /**
     * 添加标注目录
     *
     * @param plotting
     * @return
     */
    R addPlotWeb(Plotting plotting);


    R selectPlotByUuid(String uuid);

    Plotting  selectPlotUuid();

    /**
     * 删除目录
     *
     * @param ids
     * @return
     */
    R deletePlot(Integer[] ids);

    /**
     * 修改目录名称
     *
     * @param catalogueDto
     * @return
     */
    R updatePlot(CatalogueDto catalogueDto);

    /**
     * 修改标绘ByUUID
     *
     * @param plotting
     * @return
     */
    R updatePlotByUUID(Plotting plotting);

    /**
     * 数据拖拽
     *
     * @param list
     * @return
     */
    R updateOrder(List list);

    /**
     * 查询目录列表--不分页
     *
     * @param folderId
     * @return
     */
    TableDataInfo listPlot(Integer folderId, Integer pageNum, Integer pageSize);

    /**
     * 查询目录列表--不分页
     *
     * @return
     */
    R listAllPlot();
    /**
     * 修改标绘锁定状态
     *
     * @param id
     * @param lockStatus
     * @return
     */
    R changeLockStatusPlot(Integer id, Integer lockStatus);


    /**
     * 修改标绘显示/隐藏状态
     *
     * @param id
     * @param showStatus
     * @return
     */
    R changeShowStatusPlot(Integer id, Integer showStatus);

    /**
     * 修改标绘显示/隐藏状态
     *
     * @param id
     * @param shareStatus
     * @return
     */
    R changeShareStatusPlot(Integer id, Integer shareStatus);


    /**
     * 查询标会点列表
     * @param params
     * @return
     */
    R plotCollection(Map params);

    /**
     * 删除目录中所有的标绘
     *
     * @param ids
     * @return
     */
    R deleteDirInner(Integer[] ids);

    R<Plotting> infoByUuid(String uuid);

    R deleteByUuid(String uuid);

    R count(PlottingQuery query);
}
