import 'package:rxdart/subjects.dart'; import 'package:tunas/repositories/json/json_repository.dart'; import 'package:tunas/repositories/transactions/models/transaction.dart'; import 'package:tunas/repositories/transactions/models/transactions.dart'; class TransactionsRepository { final JsonRepository _jsonRepository; final _transactionsController = BehaviorSubject>.seeded(const []); TransactionsRepository({ required jsonRepository, }) : _jsonRepository = jsonRepository; List getTransactions() { return _transactionsController.value; } Stream> getTransactionsStream() { return _transactionsController.asBroadcastStream(); } loadTransactions() async { Transactions transactions = await _jsonRepository.loadJson(Transactions(), TransactionsFactory()); _transactionsController.add(transactions.transactions); } saveTransactions(List transactionsList) async { Transactions transactions = Transactions(transactions: transactionsList); await _jsonRepository.saveJson(transactions); _transactionsController.add(transactionsList); } deleteTransactions() async { Transactions transactions = Transactions(); await _jsonRepository.saveJson(transactions); _transactionsController.add([]); } }