21 lines
1.1 KiB
C#
21 lines
1.1 KiB
C#
using BudgetApp.Data.Entities;
|
|
|
|
namespace BudgetApp.Data.Interfaces;
|
|
|
|
public interface ITransactionRepository
|
|
{
|
|
Task<List<Transaction>> GetTransactionsAsync(string userId);
|
|
Task<List<Transaction>> GetRecentTransactionsAsync(string userId, int count = 5);
|
|
Task<List<Transaction>> GetUpcomingTransactionsAsync(string userId, int count = 5);
|
|
Task<List<Transaction>> GetTransactionsInRangeAsync(string userId, DateTime from, DateTime to);
|
|
Task<List<Transaction>> GetTransactionsByAccountAsync(int accountId, string userId);
|
|
Task CreateTransactionAsync(Transaction transaction);
|
|
Task UpdateTransactionAsync(int id, string userId, string description, decimal amount, DateTime date,
|
|
TransactionType type, int accountId, int? categoryId,
|
|
RecurrenceType recurrenceType = RecurrenceType.None, DateTime? recurrenceEndDate = null);
|
|
Task DeleteTransactionAsync(int id, string userId);
|
|
Task DeleteTransactionSeriesAsync(int id, string userId);
|
|
Task MarkAsPaidAsync(int id, string userId, bool isPaid = true);
|
|
Task MaterializeRecurringTransactionsAsync(string userId, DateTime? windowEnd = null);
|
|
}
|