Files
Budgeteer/BudgetApp.Data/Interfaces/ITransactionRepository.cs
T
2026-03-06 11:05:01 +00:00

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);
}