package com.rj.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.rj.entity.DetectVideoTemplate;

import java.util.Map;

/**
 * 检测视频模板日志服务接口
 */
public interface IDetectVideoTemplateService extends IService<DetectVideoTemplate> {

    /**
     * 保存检测视频模板日志
     * 
     * @param detectVideoTemplate 检测视频模板日志
     * @return 是否保存成功
     */
    boolean saveDetectVideoTemplateLog(DetectVideoTemplate detectVideoTemplate);

    /**
     * 执行视频模板检测并保存日志
     * 
     * @param videoUrl 视频URL
     * @param ownerName 所属人姓名
     * @param ownerPhone 所属人电话
     * @param templateName 模板名称
     * @param model 模型名称
     * @return 检测结果日志
     */
    DetectVideoTemplate detectVideoTemplateAndSave(String videoUrl, String ownerName, String ownerPhone, String templateName, String model);

    /**
     * 上传视频模板文件并进行检测
     * 
     * @param file 视频文件
     * @param userId 用户ID
     * @param ownerName 所属人姓名
     * @param ownerPhone 所属人电话
     * @param templateName 模板名称
     * @param model 模型名称
     * @param expiresInSeconds 短链接有效期
     * @return 检测结果日志
     */
    DetectVideoTemplate uploadAndDetectVideoTemplate(org.springframework.web.multipart.MultipartFile file, String userId, 
                                                   String ownerName, String ownerPhone, String templateName, String model, int expiresInSeconds);

    /**
     * 分页查询检测视频模板日志
     * 
     * @param current 当前页
     * @param size 每页大小
     * @param success 是否成功
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param ownerName 所属人姓名
     * @param ownerPhone 所属人电话
     * @param templateName 模板名称
     * @return 分页结果
     */
    Page<DetectVideoTemplate> getPageList(Integer current, Integer size, Boolean success, String startTime, String endTime, 
                                         String ownerName, String ownerPhone, String templateName);

    /**
     * 获取统计信息
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 统计信息
     */
    Map<String, Object> getStatistics(String startTime, String endTime);
}
