using System.Threading.Tasks;
using Knoks.Core.Entities;
using Knoks.Core.Entities.Args.AccountTransactions;
using AccountTransactionType = Knoks.Core.Entities.Args.AccountTransactions.AccountTransactionType;

namespace Knoks.Core.Data.Interfaces
{
    public interface IAccountTransactionDao
    {
        Task<long> SetBalance(AccountSetBalanceArgs args);
        Task TransferMoney(AccountSetBalanceArgs fromArgs, AccountSetBalanceArgs toArgs, long? knokId);
        Task<AccountTransaction> GetLatestEvent(AccountTransactionType eventType);
    }
}