using AsbCloudApp.Data;
using AsbCloudApp.Requests;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudApp.Services;
///
/// The wits record repository.
///
public interface IWitsRecordRepository : ITelemetryDataEditorService
where TDto : ITelemetryData
{
///
/// Добавить новые данные
///
/// The id telemetry.
/// The dtos.
/// The token.
/// A Task.
Task SaveDataAsync(int idTelemetry, IEnumerable dtos, CancellationToken token);
///
/// Получить данные по телеметрии за период
///
///
///
///
///
///
Task> GetAsync(int idTelemetry, DateTime begin, DateTime end, CancellationToken token);
///
/// получить массив из одной записи самой поздней по дате
///
/// The id telemetry.
/// A Task.
TDto? GetLastOrDefault(int idTelemetry);
///
/// получить статистику по всему архиву: дата самой ранней записи, самой поздней и общее количество
///
/// The id telemetry.
/// The token.
/// A Task.
Task<(DateTime begin, DateTime end, int count)?> GetStatAsync(int idTelemetry, CancellationToken token);
}