using AsbCloudApp.Data;
using AsbCloudApp.Requests;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using AsbCloudApp.Data.WellOperation;
namespace AsbCloudApp.Repositories
{
///
/// сервис операций по скважине
///
public interface IWellOperationRepository
{
///
/// Список секций
///
///
IEnumerable GetSectionTypes();
///
/// Получить страницу списка операций
///
///
///
///
Task> GetAsync(WellOperationRequest request, CancellationToken token);
///
/// Получить страницу списка операций
///
///
///
///
Task> GetPageAsync(WellOperationRequest request, CancellationToken token);
///
/// Получить статистику операции по скважине с группировкой по категориям
///
///
///
///
Task> GetGroupOperationsStatAsync(WellOperationRequest request, CancellationToken token);
///
/// Добавить несколько операций
///
///
///
///
///
Task InsertRangeAsync(IEnumerable dtos, bool deleteBeforeInsert, CancellationToken token);
///
/// Обновить несколько существующую операций
///
///
///
///
Task UpdateRangeAsync(IEnumerable dtos, CancellationToken token);
///
/// Удалить операции по id
///
///
///
///
Task DeleteRangeAsync(IEnumerable ids, CancellationToken token);
///
/// Получить секции скважин из операций ГГД. Секцие поделены на плановые и фактические.
///
///
///
///
Task> GetSectionsAsync(IEnumerable idsWells, CancellationToken token);
///
/// Получить диапазон дат выполнения операций
///
///
///
///
///
Task GetDatesRangeAsync(int idWell, int idType, CancellationToken cancellationToken);
}
}