package com.lightinit.hsdataplatformresdir.service.admin;

import com.lightinit.hsdataplatformresdir.entity.BaseExample;
import com.lightinit.hsdataplatformresdir.entity.Sector;
import com.lightinit.hsdataplatformresdir.model.ResultState;
import com.lightinit.hsdataplatformresdir.model.admin.*;
import org.apache.poi.xssf.usermodel.XSSFSheet;

import java.util.LinkedHashMap;
import java.util.List;

public interface IDataCatelogService {

    ResultState<Long> addDataCatalog(DataCatelogAddModel dataCatelogAddModel);

   // List<DataCatelogListModel> queryList(DataCatelogSearchModel inputModel);

   // long queryCount(DataCatelogSearchModel inputModel);

    ResultState<Long> delete(Long id);

    DataCatelogAddModel queryOne(Long id);

    ResultState<Long> updateDataCatalog(DataCatelogAddModel dataCatelogAddModel);

    List<InfomationResourceIdAndNameModel> queryInformationResourceTypeByDicMap(LinkedHashMap<String, String> dicMap);

    List<InfomationResourceIdAndNameModel> queryInfoStyle(Long id);

    List<DataCatelogListModel> getDataCatelogList(DataCatelogSearchModel inputModel);
    long getDataCatelogListCount(DataCatelogSearchModel inputModel);

    ResultState getAllDataToView();

    ResultState getDataById(Long id);

    ResultState parseExcel(XSSFSheet sheetAt, Long orgId);

    List<Sector> getDepartmentByLoginUserId(Long orgId);

    List<DataCatelogListModel> getSubscribeAndDownloadDataCatelogList(DataCatelogSearchModel inputModel);

    long getSubscribeAndDownloadDataCatelogCount(DataCatelogSearchModel inputModel);

    ResultState subcribe(Long supplierId, Long dataCatelogId, LoginUser userId);

    List<DataCatelogListModel> getDownloadSource(long supplierId, long dataCatelogId);

    List<DataCatelogListModel> auditIndex(LoginUser loginUser, BaseExample.Page pager);

    ResultState auditDo(long id, int flag, LoginUser loginUser);

    long auditCount(Long orgId);
}
