using RobotNet10.NavigationTune.Shared.Models;
namespace RobotNet10.NavigationTune.Shared.Interfaces;
///
/// Parameter management interface
///
public interface IParameterManager
{
///
/// Get parameter set by name
///
Task GetByNameAsync(string name);
///
/// Get parameter set by ID
///
Task GetByIdAsync(Guid id);
///
/// Get all parameter sets
///
Task> GetAllAsync();
///
/// Save parameter set
///
Task SaveAsync(NavigationParameterSet parameterSet);
///
/// Update parameter set
///
Task UpdateAsync(NavigationParameterSet parameterSet);
///
/// Delete parameter set
///
Task DeleteAsync(Guid id);
///
/// Validate parameter set
///
ValidationResult Validate(NavigationParameterSet parameterSet);
///
/// Get default preset
///
NavigationParameterSet GetDefaultPreset();
///
/// Get aggressive preset
///
NavigationParameterSet GetAggressivePreset();
///
/// Get smooth preset
///
NavigationParameterSet GetSmoothPreset();
}
///
/// Validation result
///
public class ValidationResult
{
public bool IsValid { get; set; }
public List Errors { get; set; } = new();
public List Warnings { get; set; } = new();
public void AddError(string error)
{
IsValid = false;
Errors.Add(error);
}
public void AddWarning(string warning)
{
Warnings.Add(warning);
}
}