package com.moka.gdtauto.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.moka.gdtauto.entity.TencentConversion;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 腾讯广告转化归因Mapper接口
 * 提供转化归因相关的数据库操作方法
 * 
 * @author moka
 * @since 2026-02-06
 */
@Mapper
public interface TencentConversionMapper extends BaseMapper<TencentConversion> {
    
    /**
     * 按转化类型统计数量
     * 
     * @return 转化类型和对应数量的列表
     */
    List<Map<String, Object>> selectCountByType();
    
    /**
     * 按账户统计转化数量
     * 
     * @return 账户ID和对应转化数量的列表
     */
    List<Map<String, Object>> selectCountByAccount();
    
    /**
     * 统计今日新增转化数量
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 今日新增数量
     */
    long selectTodayCount(String startTime, String endTime);
    
    /**
     * 统计指定时间段内的转化数量
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 时间段内数量
     */
    long selectPeriodCount(String startTime, String endTime);

    void batchInsertOrUpdate(@Param("conversions") List<TencentConversion> conversions);
}
