using AsbCloudApp.Data;
using AsbCloudApp.Data.DetectedOperation;
using AsbCloudApp.Requests;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudApp.Services
{
///
/// Сервис автоматически определенных по телеметрии операций
///
public interface IDetectedOperationService
{
///
/// Список названий операций.
/// Если указан idWell, то возвращается список названий операций найденных на указанной скважине.
///
///
///
///
Task?> GetCategoriesAsync(int? idWell, CancellationToken token);
///
/// Получить автоматически определенные по телеметрии операции с анализом по бурильщикам
///
///
///
///
Task GetAsync(DetectedOperationRequest request, CancellationToken token);
///
/// Получить автоматически определенные по телеметрии операции
///
///
///
///
Task?> GetOperationsAsync(DetectedOperationRequest request, CancellationToken token);
///
/// Получить интервалы глубин по всем скважинам
///
/// список ИД телеметрий активных скважин
///
///
///
/// кортеж - ид телеметрии, интервалы глубины забоя (ротор,слайд)
Task> GetDepthIntervalAllOperationsAsync(IEnumerable telemetryIds,DateTimeOffset gtDate, DateTimeOffset ltDate, CancellationToken token);
///
/// Удалить операции
///
///
///
///
Task DeleteAsync(DetectedOperationRequest request, CancellationToken token);
///
/// Статистика по операциям
///
///
///
///
Task?> GetOperationsStatAsync(DetectedOperationRequest request, CancellationToken token);
///
/// Выгрузка в Excel
///
///
///
///
Task ExportAsync(IEnumerable idsWells, CancellationToken token);
}
}