using AsbCloudApp.Data;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudApp.Services
{
///
/// сервис операций по скважине
///
public interface IWellOperationService
{
///
/// список названий операций
///
///
IEnumerable GetCategories();
// TODO: объединить параметры в объект запроса
///
/// Получить список операций
///
///
///
///
///
///
///
///
///
///
///
///
///
Task> GetOperationsAsync(
int idWell,
int? operationType = null,
IEnumerable sectionTypeIds = null,
IEnumerable operationCategoryIds = null,
DateTime begin = default,
DateTime end = default,
double minDepth = double.MinValue,
double maxDepth = double.MaxValue,
int skip = 0,
int take = 32,
CancellationToken token = default);
///
/// Получить операцию по id
///
///
///
///
Task GetAsync(int id, CancellationToken token);
//todo: idWell Не нужен
///
/// Добавить несколько операций за один раз
///
///
///
///
///
Task InsertRangeAsync(int idWell,
IEnumerable wellOperationDtos, CancellationToken token);
//todo: id Не нужны
///
/// Обновить существующую операцию
///
///
///
///
///
///
Task UpdateAsync(int idWell, int idOperation, WellOperationDto item,
CancellationToken token);
///
/// Удалить операции по id
///
///
///
///
Task DeleteAsync(IEnumerable ids, CancellationToken token);
///
/// Список секций
///
///
IDictionary GetSectionTypes();
///
/// дата/время первой операции по скважине
///
///
///
DateTimeOffset? FirstOperationDate(int idWell);
}
}