using AsbCloudApp.Data;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

namespace AsbCloudApp.Services
{
    public interface IWitsRecordRepository<TDto>
        where TDto : ITelemetryData
    {
        Task SaveDataAsync(int idTelemetry, IEnumerable<TDto> dtos, CancellationToken token);
        Task<IEnumerable<TDto>> GetAsync(int idTelemetry, DateTime begin, DateTime end, CancellationToken token);
        Task<IEnumerable<TDto>> GetLastAsync(int idTelemetry, CancellationToken token);
        Task<(DateTime begin, DateTime end, int count)?> GetStatAsync(int idTelemetry, CancellationToken token);
    }
}