using Microsoft.AspNetCore.Mvc;

namespace DD.Persistence.API;

/// <summary>
/// Базовый интерфейс для работы с временными рядами
/// </summary>
public interface ITimeSeriesBaseDataApi<TDto>
{
    /// <summary>
    /// Получить список объектов с прореживанием, удовлетворяющий диапазону дат
    /// </summary>
    /// <param name="dateBegin">дата начала</param>
    /// <param name="dateEnd">дата окончания</param>
    /// <param name="approxPointsCount"></param>
    /// <returns></returns>
    Task<IActionResult> GetResampledData(
        DateTimeOffset dateBegin,
        double intervalSec = 600d,
        int approxPointsCount = 1024,
        CancellationToken token = default);

    /// <summary>
    /// Получить диапазон дат, для которых есть данные в репозитории
    /// </summary>
    /// <param name="token"></param>
    /// <returns></returns>
    Task<IActionResult> GetDatesRange(CancellationToken token);
}