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
 */
public interface DictStoreTagService {

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

    /**
     * 新增店铺字典标签（支持一级、二级、三级）
     *
     * @param storeDictionary 标签信息
     * @return 新增结果
     */
    boolean addDictStoreTag(StoreDictionary storeDictionary);

    /**
     * 修改店铺字典标签（支持一级、二级、三级）
     *
     * @param storeDictionary 标签信息
     * @return 修改结果
     */
    boolean updateDictStoreTag(StoreDictionary storeDictionary);

    /**
     * 批量导入店铺字典标签
     *
     * @param file Excel文件
     * @return 导入结果
     */
    R<String> importDictStoreTag(org.springframework.web.multipart.MultipartFile file);

    /**
     * 下载店铺字典标签导入模板
     *
     * @param response HTTP响应
     * @throws IOException IO异常
     */
    void downloadTemplate(HttpServletResponse response) throws IOException;
}


