using Managing.Domain.Scenarios; using Managing.Domain.Strategies; using Managing.Domain.Trades; using Managing.Domain.Users; using static Managing.Common.Enums; namespace Managing.Application.Abstractions.Repositories; public interface ITradingRepository { Task GetScenarioByNameAsync(string scenario); Task> GetSignalsByUserAsync(User user); Task GetSignalByIdentifierAsync(string identifier, User user = null); Task InsertPositionAsync(Position position); Task UpdatePositionAsync(Position position); Task GetStrategyByNameAsync(string strategy); Task InsertScenarioAsync(Scenario scenario); Task InsertIndicatorAsync(IndicatorBase indicator); Task> GetScenariosAsync(); Task> GetStrategiesAsync(); Task> GetIndicatorsAsync(); Task DeleteScenarioAsync(string name); Task DeleteIndicatorAsync(string name); Task GetPositionByIdentifierAsync(Guid identifier); Task> GetPositionsAsync(PositionInitiator positionInitiator); Task> GetPositionsByStatusAsync(PositionStatus positionStatus); Task UpdateScenarioAsync(Scenario scenario); Task UpdateStrategyAsync(IndicatorBase indicatorBase); Task GetStrategyByNameUserAsync(string name, User user); Task GetScenarioByNameUserAsync(string scenarioName, User user); }