using Hotline.Share.Dtos.Quality;
using Hotline.Share.Enums.Quality;
using Hotline.Share.Requests;
using SqlSugar;

namespace Hotline.Application.Quality
{
	public interface IQualityApplication
	{
		Task AddQualityAsync(EQualitySource Source, string OrderId, string VisitId, CancellationToken cancellationToken);
		Task AddQualityAsync(EQualitySource Source, string OrderId, CancellationToken cancellationToken);
		Task AddQualityAsync(QualityAddDto model, CancellationToken cancellationToken);
		Task UpdateQualityAsync(UpdateQualityDto model, CancellationToken cancellationToken);
		Task AiResultAsync(List<AiQualityResultDto> model, CancellationToken cancellationToken);

		Task Transfer_XT(string Id, CancellationToken cancellationToken);
		ISugarQueryable<Hotline.Quality.Quality> SeatsQualityAnalyse(PagedKeywordRequest dto, CancellationToken cancellationToken);

		ISugarQueryable<QualityOrderOverviewDto> QualityOrderOverview(QualityWorkAnalysisRequest dto, int allOrderNum, CancellationToken cancellationToken);
		ISugarQueryable<SeatsQualityGradeAnalyseDto> SeatsQualityGradeAnalyse(QualityWorkAnalysisRequest dto, CancellationToken cancellationToken);

		Task<List<MonthQualityGradeDto>> MonthQualityGrade(QualityWorkAnalysisRequest dto, CancellationToken cancellationToken);

	}
}
