using Model;
using Model.Entity;
using Model.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Service.Interface
{
    public interface ITestReportService:IBaseService<TestReportEntity>
    {
        /// <summary>
        /// 根据TestRoundId获符合的测试步骤
        /// </summary>
        /// <param name="TestRoundId">TestRoundId</param>
        /// <returns>返回符合的TestReportEntity列表</returns>
        Task<Result<List<TestReportEntity>>> GetByTestRoundIdAsync(Guid TestRoundId);

        /// <summary>
        /// 根据 TestRoundId 分组，获取唯一记录并按分组统计最大与最小时间
        /// </summary>
        /// <param name="startTime">开始日期筛选（可选）</param>
        /// <param name="endTime">结束日期筛选（可选）</param>
        /// <param name="scope">台架名称筛选（可选）</param>
        Task<Result<IList<TestReportModel>>> GetFilterList(DateTime? startTime = null, DateTime? endTime = null, string? scope = null);

        /// <summary>
        /// 根据日期和台架名称筛选获取完整的测试步骤实体列表（无分组，用于导出）
        /// </summary>
        /// <param name="startTime">开始日期筛选（可选）</param>
        /// <param name="endTime">结束日期筛选（可选）</param>
        /// <param name="scope">台架名称筛选（可选）</param>
        Task<Result<List<TestReportEntity>>> GetEntitiesByFilter(DateTime? startTime = null, DateTime? endTime = null, string? scope = null);
    }
}
