package com.fs.fastGpt.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fs.fastGpt.domain.FastGptEventTokenLog;
import com.fs.fastGpt.domain.FastgptEventLogTotal;
import com.fs.fastGpt.vo.FastgptEventLogTotalVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * ai事件埋点统计Mapper接口
 * 
 * @author fs
 * @date 2025-06-26
 */
public interface FastgptEventLogTotalMapper extends BaseMapper<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 id ai事件埋点统计主键
     * @return 结果
     */
    int deleteFastgptEventLogTotalById(Long id);

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

    List<FastgptEventLogTotal> selectFastgptEventLogTotalInfoList(FastgptEventLogTotal logTotal);

    FastgptEventLogTotal selectFastgptEventLogTotalByRoleIdAndType(FastgptEventLogTotal total);

    List<FastgptEventLogTotal> selectFastgptEventLogTotalVoInfoList(FastgptEventLogTotalVo fastgptEventLogTotal);

    List<FastGptEventTokenLog> selectFastgptEventTokenLogTotalList(FastGptEventTokenLog fastGptEventTokenLog);

    FastgptEventLogTotal selectFastgptEventTokenLogTotalByRoleIdAndType(FastGptEventTokenLog tokenLog);

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

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

    List<FastgptEventLogTotalVo> selectFastgptEventLogTotalListByStatTime(@Param("dateTime") String dateTime);

    List<FastgptEventLogTotalVo> selectFastgptEventLogTotalExport(FastgptEventLogTotal fastgptEventLogTotal);

}
