using AsbCloudApp.Data;
using AsbCloudApp.Requests;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudApp.Services;
///
/// сервис данных тех. процесса
///
///
public interface ITelemetryDataService : ITelemetryDataEditorService where TDto : ITelemetryData
{
///
/// получить данные тех. процесса
///
///
///
///
/// кол-во элементов до которых эти данные прореживаются
///
///
Task> GetByWellAsync(int idWell,
DateTime dateBegin = default, double intervalSec = 600d,
int approxPointsCount = 1024, CancellationToken token = default);
///
/// Получить данные тех. процесса по скважине
///
///
///
///
///
Task> GetByWellAsync(int idWell, TelemetryDataRequest request, CancellationToken token);
///
/// Получение данных тех. процесса по телеметрии
///
///
///
///
///
Task> GetByTelemetryAsync(int idTelemetry, TelemetryDataRequest request, CancellationToken token);
///
/// Период за который есть данные по скважине в рамках временного интервала
///
///
///
///
///
///
Task GetRangeAsync(int idWell, DateTimeOffset geDate, DateTimeOffset? leDate, CancellationToken token);
///
/// Период за который есть данные по скважине
///
///
///
DatesRangeDto? GetRange(int idWell);
///
/// добавить/изменить данные тех. процесса (используется панелью)
///
///
///
///
///
Task UpdateDataAsync(string uid, IEnumerable dtos, CancellationToken token);
}