using System;
using AsbCloudApp.Data.DetectedOperation;
using AsbCloudApp.Requests;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using AsbCloudApp.Data.WellOperation;
namespace AsbCloudApp.Services
{
///
/// Сервис автоматически определенных по телеметрии операций
///
public interface IDetectedOperationService
{
///
/// Добавление операций
///
///
///
///
///
///
Task InsertRangeManualAsync(int idEditor, int idWell, IEnumerable dtos, CancellationToken token);
///
/// Редактирование операций
///
///
///
///
///
///
Task UpdateRangeManualAsync(int idEditor, int idWell, IEnumerable dtos, CancellationToken token);
///
/// Список названий операций.
/// Если указан idWell, то возвращается список названий операций найденных на указанной скважине.
///
///
///
///
Task> GetCategoriesAsync(int? idWell, CancellationToken token);
///
/// Получить автоматически определенные по телеметрии операции с анализом по бурильщикам
///
///
///
///
Task GetAsync(DetectedOperationByWellRequest request, CancellationToken token);
///
/// Получить автоматически определенные по телеметрии операции
///
///
///
///
Task> GetOperationsAsync(DetectedOperationByWellRequest request, CancellationToken token);
///
/// Удалить операции
///
///
///
///
Task DeleteAsync(DetectedOperationByWellRequest request, CancellationToken token);
///
/// Статистика по операциям
///
///
///
///
[Obsolete]
Task> GetOperationsStatAsync(DetectedOperationByWellRequest request, CancellationToken token);
///
/// Определение операций
///
///
///
///
///
///
Task<(DateTimeOffset LastDate, IEnumerable Items)> DetectOperationsAsync(int idTelemetry,
TelemetryDataRequest request,
DetectedOperationDto? lastDetectedOperation,
CancellationToken token);
}
}