using Knoks.Core.Entities; using Knoks.Core.Entities.Args; using Knoks.Core.Logic.Interfaces; using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; namespace Knoks.Core.Data.Interfaces { public interface IKnokDao { Task CreateKnok(CreateKnokArgs create, decimal currentPrice); Task GetKnokDetails(long knokId, int knokFeedExpirationHours); Task GetKnokFullDetails(long knokId, long userId, int knokFeedExpirationHours, List durationCRTAggrItems); Task CreateImage(long knokId, KnokImage image); Task LoadImage(long knokId, Knok knok); Task> GetPublicKnoks(KnokFeedArgs args, int knokFeedExpirationHours); Task> GetAliveKnoks(KnokOngoingArgs args, List durationCRTAggrItems); Task> GetCurrentlyPublishedKnoks(KnokCurrentlyPublishedArgs args, long userId, int knokFeedExpirationHours, List durationCRTAggrItems); Task> GetPastPublishedKnoks(KnokPastPublishedArgs args, long userId, List durationCRTAggrItems); Task PublishKnok(long knokId, long userId, long accountId, decimal publishPrice, decimal knokRating); Task PurchaseKnok(long knokId, long userId, long accountId); Task GetOwnData(long userId); Task GetKnokPrice(long userId); Task> GetKnoks(bool? activeOnly = null, long? greaterThanSignalId = null); Task UpdateKnok(IDictionary changes, decimal knokerWinRate, decimal userRefundRate); Task GetKnokserProfile(long knokserId); Task> GetEndedKnoks(KnokEndedArgs args, List durationCRTAggrItems); } }