using UnrealDemoScanner.Web.Models; namespace UnrealDemoScanner.Web.Services; public interface IScanRepository { Task InitializeAsync(CancellationToken cancellationToken = default); Task CreateJobAsync(ScanJob job, CancellationToken cancellationToken = default); Task GetJobAsync(string id, CancellationToken cancellationToken = default); Task> ListJobsAsync(int limit, CancellationToken cancellationToken = default); Task> GetFindingsAsync(string jobId, CancellationToken cancellationToken = default); Task MarkRunningAsync(string id, DateTime startedAtUtc, CancellationToken cancellationToken = default); Task CompleteAsync( string id, ScanJobStatus status, int? exitCode, string? errorMessage, string? outputLogPath, long durationMs, int detectedCount, int warningCount, int infoCount, IReadOnlyList findings, CancellationToken cancellationToken = default); }