import 'dart:convert';

import '../Entities/drift_database.dart';

/// Ein Service um Transaktionen zu verarbeiten
class TransactionService {
  /// Wandelt die übergebenen Transaktionen in einen String um
  static String transactionsToString(final List<Transaction> transactions) {
    final List<Map<String, dynamic>> jsonTransactions = transactions
        .map((final value) => value.toJson())
        .toList();

    return jsonEncode(jsonTransactions);
  }

  /// Wandelt den String in eine Liste von Transaktionen um
  static List<Transaction> transactionsFromString(final String? transactions) {
    if (transactions == null) {
      return [];
    }

    try {
      final List<dynamic> decoded = jsonDecode(transactions);
      return decoded.map((final item) => Transaction.fromJson(item)).toList();
    } on Exception {
      return [];
    }
  }
}
