using PARR.Domain.DTOs.RobotTask;
using PARR.Domain.Entities.Base.History;
using PARR.Domain.Enums;

namespace PARR.Core.Services.RobotTask.Interfaces
{
    /// <summary>
    /// Управление заданиями роботам
    /// </summary>
    public interface IRobotTaskService
    {
        
        /// <summary>
        /// Получить задание роботу - шаблоны.
        /// </summary>
        /// <param name="taskStatusCode"></param>
        /// <param name="acquireTask"></param>
        /// <param name="robotIp"></param>
        /// <param name="robotId"></param>
        /// <returns></returns>
        Task<RobotTaskTemplate> GetTemplateTaskAsync(TaskStatusEnum taskStatusCode, bool acquireTask, string? robotIp, string? robotId);


        /// <summary>
        /// Получить задание роботу - расписания.
        /// </summary>
        /// <param name="taskStatusCode"></param>
        /// <param name="acquireTask"></param>
        /// <param name="robotIp"></param>
        /// <param name="robotId"></param>
        /// <param name="historyInitiator"></param>
        /// <returns></returns>
        Task<RobotTaskSchedule> GetScheduleTaskAsync(TaskStatusEnum taskStatusCode, bool acquireTask, string? robotIp, string? robotId, IHistoryInitiator historyInitiator);
    }
}
