package com.ruoyi.ibs.grid.service;

import com.ruoyi.ibs.grid.domain.dto.DeleteDTO;
import com.ruoyi.ibs.grid.domain.dto.GridUserSelectDTO;
import com.ruoyi.ibs.grid.domain.dto.virtual.VirtualGridDTO;
import com.ruoyi.ibs.grid.domain.dto.virtual.VirtualGridUpdateDTO;
import com.ruoyi.ibs.grid.domain.excel.VirtualCustImportDTO;
import com.ruoyi.ibs.grid.domain.excel.VirtualCustUserImportDTO;
import com.ruoyi.ibs.grid.domain.vo.GridUserVO;
import com.ruoyi.ibs.grid.domain.vo.VirtualGridVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @Author 吴凯程
 * @Date 2024/9/20
 **/
public interface VirtualGridService {

    String createVirtualGrid(VirtualGridDTO virtualGridDTO);

    String createVirtualGridAsync(VirtualGridDTO virtualGridDTO, MultipartFile file);

    String createVirtualGridByRelate(VirtualGridDTO virtualGridDTO);

    String createVirtualGridByRelateAsync(VirtualGridDTO virtualGridDTO, MultipartFile file);

    String updateVirtualGrid(VirtualGridUpdateDTO virtualGridUpdateDTO);

    String updateVirtualGridByCustInfo(VirtualGridUpdateDTO VirtualGridUpdateDTO);

    String updateVirtualGridByRelate(VirtualGridUpdateDTO VirtualGridUpdateDTO);


    VirtualGridVO getVirtualGrid(Long gridId);

    String deleteVirtualGrids(DeleteDTO deleteDTO);

    List<GridUserVO> getUserListByDeptId(GridUserSelectDTO gridUserSelectDTO);

    boolean checkVirtualCustInGrid(Long gridId, VirtualCustImportDTO virtualCustImportDTO);

    boolean checkVirtualCustRelateInGrid(Long gridId, VirtualCustUserImportDTO virtualCustUserImportDTO);


    boolean checkGridNameExist(String gridName);

}
