using AsbCloudApp.Data.Subsystems;
using AsbCloudApp.Requests;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

namespace AsbCloudApp.Services;

/// <summary>
/// Получение инфо о наработке подсистем
/// </summary>
public interface ISubsystemService
{
	/// <summary>
	/// Статистика о наработке подсистем
	/// </summary>
	/// <param name="request"></param>
	/// <param name="token"></param>
	/// <returns></returns>
	Task<IEnumerable<SubsystemStatDto>> GetStatAsync(SubsystemRequest request, CancellationToken token);
	
	/// <summary>
	/// Получение статистики по наработке подсистем по активным скважинам
	/// </summary>
	/// <param name="wellIds"></param>
	/// <param name="token"></param>
	/// <returns></returns>
	Task<IEnumerable<SubsystemActiveWellStatDto>> GetStatByActiveWells(IEnumerable<int> wellIds, CancellationToken token);        
}