using AsbCloudApp.Data;
using AsbCloudApp.Data.SAUB;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudApp.Services
{
///
/// Сервис телеметрии
///
public interface ITelemetryService
{
///
/// сервис временных зон
///
ITimezoneService TimeZoneService { get; }
///
/// получить idWell по uid телеметрии
///
///
///
int? GetIdWellByTelemetryUid(string uid);
///
/// Получить id телеметрии. Если её нет в БД, то добавить новую.
///
///
///
TelemetryDto GetOrCreateTelemetryByUid(string uid);
///
/// получить временную зону скважины по idTelemetry
///
///
///
SimpleTimezoneDto GetTimezone(int idTelemetry);
///
/// получить idTelemetry по IdWell
///
///
///
TelemetryBaseDto? GetOrDefaultTelemetryByIdWell(int idWell);
///
/// получить диапазон дат за которые есть данные
///
///
///
DatesRangeDto GetDatesRange(int idTelemetry);
///
/// обновить данные о телеметрии (используется панелью)
///
///
///
///
///
Task UpdateInfoAsync(string uid, TelemetryInfoDto info, CancellationToken token);
///
/// Слить данные телеметрии в одну
///
/// старая (исходная)
/// новая
///
///
Task MergeAsync(int from, int to, CancellationToken token);
///
/// Получить телеметрию по последней дате
///
///
///
///
Task GetTelemetriesInfoByLastData(DateTimeOffset from, CancellationToken token);
}
}