using Predictalytics.Domain.Entities; using Predictalytics.Domain.Enums; namespace Predictalytics.Domain.Interfaces; public interface IMarketRepository { Task GetByPlatformIdAsync(PlatformType platform, string platformMarketId, CancellationToken ct = default); Task GetOutcomeByTokenIdAsync(string tokenId, CancellationToken ct = default); Task> GetOutcomesByTokenIdsAsync(IEnumerable tokenIds, CancellationToken ct = default); Task AddOrUpdateAsync(Market market, CancellationToken ct = default); Task AddOrUpdateRangeAsync(IEnumerable markets, CancellationToken ct = default); Task> GetActiveAsync(int count = 50, CancellationToken ct = default); Task GetCountAsync(CancellationToken ct = default); Task> GetMarketsDueForTradeUpdateAsync(int cooldownHours, int limit, CancellationToken ct = default); Task UpdateAsync(Market market, CancellationToken ct = default); Task GetByIdAsync(int id, CancellationToken ct = default); Task> SearchAsync(string query, int take = 20, CancellationToken ct = default); Task> GetPriceSnapshotsAsync(int marketOutcomeId, CancellationToken ct = default); Task SavePriceSnapshotsAsync(int marketOutcomeId, IEnumerable snapshots, CancellationToken ct = default); }