using PARR.EsppApi.Constants;
using PARR.EsppApi.Models;
using PARR.EsppApi.Models.Query;

namespace PARR.EsppApi
{
    public interface IEsppApiService
    {
        /// <summary>
        /// Найти наряды в ЕСПП
        /// </summary>
        /// <returns></returns>
        Task<EsppResultBase<IEnumerable<EsppOrder>>> FindOrdersAsync(FindOrdersQuery query);

        /// <summary>
        /// Поиск наряда по номеру
        /// </summary>
        /// <returns></returns>
        Task<EsppResultBase<EsppOrder>> FindOrderByRecordIdAsync(string recordId);

        /// <summary>
        /// Взять наряд в работу
        /// </summary>
        /// <returns></returns>
        Task<EsppResultBase<EsppResponse>> SetStatusInWorkAsync(string recordId, string resultMsg);

        /// <summary>
        /// Установить статус наряда как выполнен
        /// </summary>
        /// <returns></returns>
        Task<EsppResultBase<EsppResponse>> SetStatusIsDoneAsync(string recordId, string resultMsg, EsppOrderClosingCodeEnum closingCode);

        /// <summary>
        /// Списание трудозатрат по модульным ТНК
        /// </summary>
        /// <returns></returns>
        Task<EsppResultBase<EsppResponse>> AddMTnkAsync(AddMtnkQuery mtnk);

    }
}
