using Managing.Domain.Backtests; using Managing.Domain.Users; namespace Managing.Application.Abstractions.Repositories; public interface IBacktestRepository { void InsertBacktestForUser(User user, Backtest result); IEnumerable GetBacktestsByUser(User user); IEnumerable GetBacktestsByRequestId(string requestId); (IEnumerable Backtests, int TotalCount) GetBacktestsByRequestIdPaginated(string requestId, int page, int pageSize, string sortBy = "score", string sortOrder = "desc"); (IEnumerable Backtests, int TotalCount) GetBacktestsByUserPaginated(User user, int page, int pageSize, string sortBy = "score", string sortOrder = "desc"); Backtest GetBacktestByIdForUser(User user, string id); void DeleteBacktestByIdForUser(User user, string id); void DeleteBacktestsByIdsForUser(User user, IEnumerable ids); void DeleteAllBacktestsForUser(User user); void DeleteBacktestsByRequestId(string requestId); // Bundle backtest methods void InsertBundleBacktestRequestForUser(User user, BundleBacktestRequest bundleRequest); IEnumerable GetBundleBacktestRequestsByUser(User user); BundleBacktestRequest? GetBundleBacktestRequestByIdForUser(User user, string id); void UpdateBundleBacktestRequest(BundleBacktestRequest bundleRequest); void DeleteBundleBacktestRequestByIdForUser(User user, string id); IEnumerable GetPendingBundleBacktestRequests(); }