IRobotSubTaskRepository.cs 1.12 KB
using Rcs.Domain.Entities;

namespace Rcs.Domain.Repositories
{
    /// <summary>
    /// 子任务仓储接口
    /// @author zzy
    /// </summary>
    public interface IRobotSubTaskRepository : IRepository<RobotSubTask>
    {
        /// <summary>
        /// 根据父任务ID获取子任务列表(按执行顺序排序)
        /// </summary>
        Task<IEnumerable<RobotSubTask>> GetByTaskIdAsync(Guid taskId, CancellationToken cancellationToken = default);

        /// <summary>
        /// 根据机器人ID获取子任务列表
        /// </summary>
        Task<IEnumerable<RobotSubTask>> GetByRobotIdAsync(Guid robotId, CancellationToken cancellationToken = default);

        /// <summary>
        /// 获取父任务下一个待执行的子任务
        /// </summary>
        Task<RobotSubTask?> GetNextPendingSubTaskAsync(Guid taskId, CancellationToken cancellationToken = default);

        /// <summary>
        /// 根据子任务ID获取完整数据(含导航属性)
        /// </summary>
        Task<RobotSubTask?> GetByIdWithDetailsAsync(Guid subTaskId, CancellationToken cancellationToken = default);
    }
}