Initial commit
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
using RobotNet10.NavigationTune.Shared.Models;
|
||||
|
||||
namespace RobotNet10.NavigationTune.Shared.Interfaces;
|
||||
|
||||
/// <summary>
|
||||
/// Test repository interface
|
||||
/// </summary>
|
||||
public interface ITestRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Get test run by ID
|
||||
/// </summary>
|
||||
Task<TestRun?> GetByIdAsync(Guid id);
|
||||
|
||||
/// <summary>
|
||||
/// Get all test runs
|
||||
/// </summary>
|
||||
Task<List<TestRun>> GetAllAsync();
|
||||
|
||||
/// <summary>
|
||||
/// Get total count of test runs
|
||||
/// </summary>
|
||||
Task<int> GetCountAsync();
|
||||
|
||||
/// <summary>
|
||||
/// Get test runs with skip/take (for pagination)
|
||||
/// </summary>
|
||||
Task<List<TestRun>> GetPagedAsync(int skip, int take);
|
||||
|
||||
/// <summary>
|
||||
/// Get test runs by scenario
|
||||
/// </summary>
|
||||
Task<List<TestRun>> GetByScenarioAsync(Guid scenarioId);
|
||||
|
||||
/// <summary>
|
||||
/// Get test runs by parameter set
|
||||
/// </summary>
|
||||
Task<List<TestRun>> GetByParameterSetAsync(Guid parameterSetId);
|
||||
|
||||
/// <summary>
|
||||
/// Get test runs by date range
|
||||
/// </summary>
|
||||
Task<List<TestRun>> GetByDateRangeAsync(DateTime from, DateTime to);
|
||||
|
||||
/// <summary>
|
||||
/// Save test run
|
||||
/// </summary>
|
||||
Task<Guid> SaveAsync(TestRun testRun);
|
||||
|
||||
/// <summary>
|
||||
/// Update test run
|
||||
/// </summary>
|
||||
Task UpdateAsync(TestRun testRun);
|
||||
|
||||
/// <summary>
|
||||
/// Update test run from execution result (scalars + metrics + safety violations).
|
||||
/// Uses a single scope and avoids concurrency issues when replacing navigation properties.
|
||||
/// </summary>
|
||||
Task UpdateFromResultAsync(
|
||||
Guid testRunId,
|
||||
TestStatus status,
|
||||
DateTime? endTime,
|
||||
double duration,
|
||||
string? errorMessage,
|
||||
TestMetrics? metrics,
|
||||
List<SafetyViolation>? safetyViolations);
|
||||
|
||||
/// <summary>
|
||||
/// Delete test run
|
||||
/// </summary>
|
||||
Task DeleteAsync(Guid id);
|
||||
|
||||
/// <summary>
|
||||
/// Delete multiple test runs by IDs
|
||||
/// </summary>
|
||||
Task DeleteManyAsync(IEnumerable<Guid> ids);
|
||||
}
|
||||
Reference in New Issue
Block a user