package com.fs.fastGpt.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fs.fastGpt.domain.FastGptEventTokenLog;
import com.fs.fastGpt.domain.FastgptEventLogTotal;
import com.fs.fastGpt.vo.FastgptEventLogTotalVo;

import java.util.List;

/**
 * ai事件埋点统计Service接口
 *
 * @author fs
 * @date 2025-06-26
 */
public interface IFastgptEventLogTotalService extends IService<FastgptEventLogTotal>{
    /**
     * 查询ai事件埋点统计
     *
     * @param id ai事件埋点统计主键
     * @return ai事件埋点统计
     */
    FastgptEventLogTotal selectFastgptEventLogTotalById(Long id);

    /**
     * 查询ai事件埋点统计列表
     *
     * @param fastgptEventLogTotal ai事件埋点统计
     * @return ai事件埋点统计集合
     */
    List<FastgptEventLogTotal> selectFastgptEventLogTotalList(FastgptEventLogTotal fastgptEventLogTotal);

    /**
     * 新增ai事件埋点统计
     *
     * @param fastgptEventLogTotal ai事件埋点统计
     * @return 结果
     */
    int insertFastgptEventLogTotal(FastgptEventLogTotal fastgptEventLogTotal);

    /**
     * 修改ai事件埋点统计
     *
     * @param fastgptEventLogTotal ai事件埋点统计
     * @return 结果
     */
    int updateFastgptEventLogTotal(FastgptEventLogTotal fastgptEventLogTotal);

    /**
     * 批量删除ai事件埋点统计
     *
     * @param ids 需要删除的ai事件埋点统计主键集合
     * @return 结果
     */
    int deleteFastgptEventLogTotalByIds(Long[] ids);

    /**
     * 删除ai事件埋点统计信息
     *
     * @param id ai事件埋点统计主键
     * @return 结果
     */
    int deleteFastgptEventLogTotalById(Long id);

    List<FastgptEventLogTotal> selectFastgptEventLogTotalInfoList(FastgptEventLogTotal logTotal);

    FastgptEventLogTotal selectFastgptEventLogTotalByRoleIdAndType(FastgptEventLogTotal total);

    List<FastgptEventLogTotalVo> selectFastgptEventLogTotalVoInfoList(FastgptEventLogTotalVo fastgptEventLogTotal);

    List<FastGptEventTokenLog> selectFastgptEventTokenLogTotalList(FastGptEventTokenLog fastGptEventTokenLog);

    FastgptEventLogTotal selectFastgptEventTokenLogTotalByRoleIdAndType(FastGptEventTokenLog tokenLog);

    FastgptEventLogTotalVo totalFastgptEventLog(List<FastgptEventLogTotalVo> list);

    /**
     * 批量新增ai事件埋点统计
     *
     * @param fastgptEventLogTotalList ai事件埋点统计列表
     * @return 结果
     */
    int insertFastgptEventLogTotalBatch(List<FastgptEventLogTotal> fastgptEventLogTotalList);

    /**
     * 批量修改ai事件埋点统计
     *
     * @param fastgptEventLogTotalList ai事件埋点统计列表
     * @return 结果
     */
    int updateFastgptEventLogTotalBatch(List<FastgptEventLogTotal> fastgptEventLogTotalList);

    List<FastgptEventLogTotalVo> selectFastgptEventLogTotalListByStatTime(String dateTime);

    void eventLogTotals(String startTime, String endTime);

    List<FastgptEventLogTotalVo> selectFastgptEventLogTotalExport(FastgptEventLogTotal fastgptEventLogTotal);
}
