using AsbCloudApp.Data; using AsbCloudApp.Data.User; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services { /// <summary> /// Сервис по работе с контактной информацией по скважине /// </summary> public interface IWellContactService { /// <summary> /// Получение контактов по ключу скважины и типу контакта /// </summary> /// <param name="idWell">ключ скважины</param> /// <param name="contactTypeId">тип контакта</param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<ContactDto>> GetAllAsync(int idWell, int contactTypeId, CancellationToken token); /// <summary> /// Получение контакта по ключу /// </summary> /// <param name="idWell">ключ скважины</param> /// <param name="id">ключ пользователя</param> /// <param name="token"></param> /// <returns></returns> Task<ContactDto?> GetAsync(int idWell, int id, CancellationToken token); /// <summary> /// Получение типов контактов /// </summary> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<CompanyTypeDto>> GetTypesAsync(CancellationToken token); /// <summary> /// Добавление контакта /// </summary> /// <param name="contactDto"></param> /// <param name="token"></param> /// <returns></returns> Task<int> InsertAsync(ContactDto contactDto, CancellationToken token); /// <summary> /// Изменение контакта /// </summary> /// <param name="contactDto"></param> /// <param name="token"></param> /// <returns></returns> Task<int> UpdateAsync(ContactDto contactDto, CancellationToken token); /// <summary> /// Удаление контакта /// </summary> /// <param name="idWell">ключ скважины</param> /// <param name="id">ключ скважины</param> /// <param name="token"></param> /// <returns></returns> Task<int> DeleteAsync(int idWell, int id, CancellationToken token); /// <summary> /// Перенос контактов из скважины на скважину /// </summary> /// <param name="idWell">ключ текущей скважины</param> /// <param name="idWellTarget">ключ новой скважины</param> /// <param name="contactIds">ключи контактов</param> /// <param name="token"></param> /// <returns></returns> Task<int> CopyAsync(int idWell, int idWellTarget, IEnumerable<int> contactIds, CancellationToken token); } }