using AsbCloudApp.Data;
using AsbCloudApp.Requests;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudApp.Repositories
{
#nullable enable
///
/// сервис операций по скважине
///
public interface IWellOperationRepository
{
///
/// список названий операций
///
///
IEnumerable GetCategories(bool includeParents);
///
/// Список секций
///
///
IDictionary GetSectionTypes();
///
/// список плановых операций для сопоставления
///
///
///
///
Task> GetOperationsPlanAsync(int idWell, CancellationToken token);
///
/// дата/время первой операции по скважине
///
///
///
DateTimeOffset? FirstOperationDate(int idWell);
///
/// Получить страницу списка операций
///
///
///
///
Task> GetAsync(WellOperationRequest request, CancellationToken token);
///
/// Получить страницу списка операций
///
///
///
///
Task> GetPageAsync(WellOperationRequest request, CancellationToken token);
///
/// Получить операцию по id
///
///
///
///
Task GetOrDefaultAsync(int id, CancellationToken token);
///
/// Получить статистику операции по скважине с группировкой по категориям
///
///
///
///
Task> GetGroupOperationsStatAsync(
WellOperationRequest request,
CancellationToken token);
///
/// Добавить несколько операций за один раз
///
///
///
///
Task InsertRangeAsync(IEnumerable wellOperationDtos, CancellationToken token);
///
/// Обновить существующую операцию
///
///
///
///
Task UpdateAsync(WellOperationDto dto, CancellationToken token);
///
/// Удалить операции по id
///
///
///
///
Task DeleteAsync(IEnumerable ids, CancellationToken token);
}
#nullable disable
}