package com.engine.salary.service;

import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.engine.salary.entity.setting.dto.PageListTemplateDTO;
import com.engine.salary.entity.setting.dto.PageListTemplateDetailDTO;
import com.engine.salary.entity.setting.param.*;
import com.engine.salary.entity.setting.po.PageListTemplatePO;
import com.engine.salary.util.page.PageInfo;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.util.List;

public interface SettingService {

    @Deprecated
    void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam);

    /**
     * 获取原有显示列定制配置
     * @param param
     * @return
     */
    PageListTemplateDetailDTO getDefaultPageListSetting(PageListSettingQueryParam param);

    @Deprecated
    void resetPageListSetting(PageListSettingResetParam param);

    /**
     * 获取指定模板配置或者指定页面默认配置
     * @param param
     * @return
     */
    PageListTemplateDetailDTO getPageListTemplate(PageListTemplateQueryParam param);

    /**
     * 获取可选模板列表
     * @param queryParam
     * @return
     */
    List<PageListTemplatePO> getPageListTemplates(PageListTemplateQueryParam queryParam);

    /**
     * 保存模板
     * @param param
     * @return
     */
    PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam param);

    /**
     * 下载导出模板文件
     * @param param
     * @return
     */
    XSSFWorkbook downloadPageExportTemplateFile(DownloadTemplateParam param);

    /**
     * 更换模板
     * @param param
     */
    void changePageListTemplate(PageListTemplateChangeParam param);

    List<WeaTableColumn> getPageListColumns(String page);

    PageInfo<PageListTemplateDTO> getTemplates(PageListTemplateQueryParam param);

    void deletePageListTemplate(PageListTemplateDeleteParam param);
}
