package com.ylx.massage.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ylx.massage.domain.SensitiveWord;
import org.springframework.web.multipart.MultipartFile;

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

/**
 * 敏感词库服务接口
 * <p>
 * 提供敏感词管理的业务接口，包括敏感词的增删改查、批量导入等功能。
 * 继承自 MyBatis-Plus 的 IService 接口，提供基础的 CRUD 操作。
 * </p>
 *
 * @author ylx
 * @version 1.0
 * @since 2024
 */
public interface SensitiveWordService extends IService<SensitiveWord> {

    /**
     * 批量插入敏感词数据
     * <p>
     * 批量插入敏感词记录，提高大批量数据插入的效率。
     * </p>
     *
     * @param entities 敏感词实体列表
     * @return 成功插入的记录数
     */
    int insertBatch(List<SensitiveWord> entities);

    /**
     * 从Excel文件导入敏感词数据
     * <p>
     * 读取Excel文件中的敏感词数据，解析并存储到数据库中。
     * Excel文件格式要求：
     * - 第一行：表头（敏感词、分类、等级、状态、备注）
     * - 第二行起：数据行
     * </p>
     *
     * @param file Excel文件
     * @return 导入结果统计信息
     */
    String importFromExcel(MultipartFile file);

    /**
     * 导出敏感词数据到Excel文件
     * <p>
     * 查询数据库中的所有敏感词数据，生成Excel文件并输出到响应流。
     * Excel文件格式：
     * - 第一行：表头（敏感词、分类、等级、状态、备注）
     * - 第二行起：数据行
     * </p>
     *
     * @param response HTTP响应对象
     */
    void exportToExcel(HttpServletResponse response);
}
