24 lines
1.3 KiB
Dart
24 lines
1.3 KiB
Dart
import '/models/transaction_record.dart';
|
|
|
|
abstract class ITransactionRepository {
|
|
// Старые методы (возможно, будут использоваться реже или будут удалены в будущем)
|
|
Future<List<TransactionRecord>> getAll();
|
|
Future<TransactionRecord?> getById(String id);
|
|
Future<void> add(TransactionRecord transaction);
|
|
Future<void> update(TransactionRecord transaction);
|
|
Future<void> delete(String id);
|
|
Future<List<TransactionRecord>> getByDateRange(DateTime from, DateTime to);
|
|
Future<List<TransactionRecord>> getByCategory(String categoryId);
|
|
Future<List<TransactionRecord>> getByTag(String tagId);
|
|
|
|
// Добавляем новые методы для работы с транзакциями конкретного пользователя
|
|
// Это важно для многопользовательской архитектуры
|
|
Future<List<TransactionRecord>> getAllByUser(String userId);
|
|
Future<List<TransactionRecord>> getByUserAndDateRange(String userId, DateTime from, DateTime to);
|
|
Future<List<TransactionRecord>> getByUserAndCategory(String userId, String categoryId);
|
|
Future<List<TransactionRecord>> getByUserAndTag(String userId, String tagId);
|
|
|
|
/// Добавить список транзакций
|
|
Future<void> addAll(List<TransactionRecord> transactions);
|
|
}
|