Files
BQP/srcs/RobotNet10/FleetManager/RobotNet10.FleetManager/Services/IRobotModelMapService.cs
2026-07-13 09:25:40 +07:00

54 lines
2.2 KiB
C#

using RobotNet10.FleetManager.Shared.DTOs.RobotModel;
using RobotNet10.MapManager.Data;
namespace RobotNet10.FleetManager.Services;
/// <summary>
/// Service for managing robot model map data based on VehicleType filtering
/// </summary>
public interface IRobotModelMapService
{
/// <summary>
/// Get filtered nodes for a robot model based on VehicleType properties
/// Returns only nodes that have NodeVehicleProperties for the robot model's VehicleType
/// </summary>
Task<List<Node>> GetFilteredNodesAsync(Guid robotModelId);
/// <summary>
/// Get filtered edges for a robot model based on VehicleType properties
/// Returns only edges that have EdgeVehicleProperties for the robot model's VehicleType
/// </summary>
Task<List<Edge>> GetFilteredEdgesAsync(Guid robotModelId);
/// <summary>
/// Get filtered nodes for a robot model based on VehicleType properties and LevelId
/// Returns only nodes that have NodeVehicleProperties for the robot model's VehicleType and belong to the specified level
/// </summary>
Task<List<Node>> GetFilteredNodesByLevelAsync(Guid robotModelId, Guid levelId);
/// <summary>
/// Get filtered edges for a robot model based on VehicleType properties and LevelId
/// Returns only edges that have EdgeVehicleProperties for the robot model's VehicleType and belong to the specified level
/// </summary>
Task<List<Edge>> GetFilteredEdgesByLevelAsync(Guid robotModelId, Guid levelId);
/// <summary>
/// Get validated map data (nodes + edges) for a robot model
/// Returns only valid nodes/edges after validation (nodes with edges, edges with both nodes)
/// </summary>
Task<RobotModelMapDataDto> GetValidatedMapDataAsync(Guid robotModelId);
/// <summary>
/// Validate map data for a robot model
/// Returns validation result with errors/warnings
/// </summary>
Task<MapValidationResultDto> ValidateMapForRobotModelAsync(Guid robotModelId);
/// <summary>
/// Check if robot model has valid map configuration
/// Returns true if VehicleTypeId and MapId are set and map data is valid
/// </summary>
Task<bool> HasValidMapConfigurationAsync(Guid robotModelId);
}