using AsbCloudApp.Data.Subsystems; using AsbCloudApp.Requests; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services.Subsystems { #nullable enable /// <summary> /// Получение инфо о наработке подсистем /// </summary> public interface ISubsystemOperationTimeService { /// <summary> /// Статистика о наработке подсистем /// </summary> /// <param name="request"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<SubsystemStatDto>?> GetStatAsync(SubsystemOperationTimeRequest request, CancellationToken token); /// <summary> /// Удаление наработки по подсистемам. /// Если удаляется конец, то фоновый сервис подсчета наработки восстановит эти данные. /// Может потребоваться для запуска повторного расчета по новому алгоритму. /// </summary> /// <param name="request"></param> /// <param name="token"></param> /// <returns></returns> Task<int> DeleteAsync(SubsystemOperationTimeRequest request, CancellationToken token); /// <summary> /// Интервалы работы подсистем /// </summary> /// <param name="request"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<SubsystemOperationTimeDto>?> GetOperationTimeAsync(SubsystemOperationTimeRequest request, CancellationToken token); } #nullable disable }