package shop.alien.store.service;

import shop.alien.entity.result.R;
import shop.alien.entity.store.StoreDictionary;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 平台筛选条件管理Service
 *
 * @author ssk
 * @version 1.0
 * @date 2025/01/01
 */
public interface FilterConditionService {

    /**
     * 查询筛选条件（四级树形结构）
     * 如果传入dictDetail，则查询匹配的记录及其父级和子级树形结构
     * 如果不传dictDetail，则返回完整的字典库树形结构
     *
     * @param dictDetail 字典描述（可选），如果传入则根据此参数过滤
     * @return 筛选条件树形结构列表
     */
    List<StoreDictionary> queryFilterConditionTree(String dictDetail);

    /**
     * 新增筛选条件（支持一级、二级、三级）
     *
     * @param storeDictionary 筛选条件信息
     * @return 新增结果
     */
    boolean addFilterCondition(StoreDictionary storeDictionary);

    /**
     * 修改筛选条件（支持一级、二级、三级）
     *
     * @param storeDictionary 筛选条件信息
     * @return 修改结果
     */
    boolean updateFilterCondition(StoreDictionary storeDictionary);

    /**
     * 批量导入筛选条件
     *
     * @param file Excel文件
     * @return 导入结果
     */
    R<String> importFilterCondition(org.springframework.web.multipart.MultipartFile file);

    /**
     * 下载筛选条件导入模板
     *
     * @param response HTTP响应
     * @throws IOException IO异常
     */
    void downloadTemplate(HttpServletResponse response) throws IOException;
}

