package com.ruoyi.tjfx.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.tjfx.common.PageResponse;
import com.ruoyi.tjfx.entity.AnalysisData;

import javax.servlet.http.HttpServletResponse;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * 分析数据Service接口
 */
public interface AnalysisDataService {

    /**
     * 分页查询分析数据
     */
    PageResponse<AnalysisData> getPage(Integer page, Integer pageSize, String productCode,
                                       String productName, String customerName, String shopName,
                                       Integer status, LocalDate startDate, LocalDate endDate);

    /**
     * 根据ID获取分析数据详情
     */
    AnalysisData getById(Long id);

    /**
     * 更新分析数据
     */
    void updateById(Long id, AnalysisData analysisData);

    /**
     * 删除分析数据
     */
    void deleteById(Long id);

    /**
     * 批量删除分析数据
     */
    void deleteBatchByIds(List<Long> ids);

    /**
     * 导出Excel（支持分页）
     */
    void exportExcel(HttpServletResponse response, String productCode, String productName,
                    String customerName, String shopName, Integer status,
                    LocalDate startDate, LocalDate endDate, Integer page, Integer pageSize);

    /**
     * 导入Excel数据（单文件）
     */
    Map<String, Object> importExcel(String filePath, Long categoryId);

    /**
     * 批量导入Excel数据
     */
    Map<String, Object> importBatchExcel(List<String> filePaths, Long categoryId);

    /**
     * 导入FBA数据（单文件）
     */
    Map<String, Object> importFbaExcel(String filePath, String shopName);

    /**
     * 批量导入FBA数据
     */
    Map<String, Object> importBatchFbaExcel(List<String> filePaths, String shopName);

    /**
     * 保存导入的数据
     */
    Map<String, Object> saveImportedData(List<AnalysisData> dataList);
}
