package shop.alien.store.service;

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

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 PlatformBusinessSectionService {

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

    /**
     * 新增经营种类（支持一级、二级、三级）
     *
     * @param storeDictionary 经营种类信息
     * @return 新增结果
     */
    boolean addBusinessSection(StoreDictionary storeDictionary);

    /**
     * 修改经营种类（支持一级、二级、三级）
     *
     * @param storeDictionary 经营种类信息
     * @return 修改结果
     */
    boolean updateBusinessSection(StoreDictionary storeDictionary);

    /**
     * 批量导入经营版块
     *
     * @param file Excel文件
     * @return 导入结果
     */
    R<String> importBusinessSection(org.springframework.web.multipart.MultipartFile file);

    /**
     * 下载经营版块导入模板
     *
     * @param response HTTP响应
     * @throws IOException IO异常
     */
    void downloadTemplate(HttpServletResponse response) throws IOException;
}

