IRobotSubTaskRepository.cs 1.03 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);
}