package com.rj.service;

import com.rj.entity.AudioManagementStatistics;
import com.baomidou.mybatisplus.extension.service.IService;

import java.time.LocalDate;
import java.util.List;

/**
 * <p>
 * 门店录音统计表 服务类
 * </p>
 *
 * @author 李中华 ,spllzh
 * @since 2025-08-07
 */
public interface IAudioManagementStatisticsService extends IService<AudioManagementStatistics> {

    /**
     * 生成指定日期的门店录音统计数据
     * @param date 统计日期
     * @return 生成的统计记录数量
     */
    int generateStatisticsByDate(LocalDate date);

    /**
     * 生成昨天的门店录音统计数据
     * @return 生成的统计记录数量
     */
    int generateYesterdayStatistics();

    /**
     * 查询指定日期范围的统计数据
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 统计记录列表
     */
    List<AudioManagementStatistics> getStatisticsByDateRange(LocalDate startDate, LocalDate endDate);

    /**
     * 查询指定门店的统计数据
     * @param dealershipId 门店ID
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 统计记录列表
     */
    List<AudioManagementStatistics> getStatisticsByDealership(Long dealershipId, LocalDate startDate, LocalDate endDate);

    /**
     * 查询指定销售人员的统计数据
     * @param salesId 销售人员ID
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 统计记录列表
     */
    List<AudioManagementStatistics> getStatisticsBySales(String salesId, LocalDate startDate, LocalDate endDate);

    /**
     * 查询指定销售人员的统计数据（支持根据ID或电话号码查询）
     * @param salesId 销售人员ID（可选）
     * @param salesPhone 销售人员电话号码（可选）
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 统计记录列表
     */
    List<AudioManagementStatistics> getStatisticsBySales(String salesId, String salesPhone, LocalDate startDate, LocalDate endDate);
}
