From fcf4fca33b6231dce4af719238e0efe506c8b99e Mon Sep 17 00:00:00 2001 From: Hyperling Date: Tue, 11 Feb 2025 14:49:42 -0700 Subject: [PATCH] Add the Income and Asset classes. --- lib/models/asset.dart | 19 +++++++++++++++++++ lib/models/income.dart | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 lib/models/asset.dart create mode 100644 lib/models/income.dart diff --git a/lib/models/asset.dart b/lib/models/asset.dart new file mode 100644 index 0000000..49512d8 --- /dev/null +++ b/lib/models/asset.dart @@ -0,0 +1,19 @@ +import '/models/tracked_type.dart'; + +class Asset extends TrackedType { + static String amountText = "Amount"; + + Asset({ + super.id, + required super.name, + required super.amount, + required super.description, + }); + + factory Asset.fromMap(Map json) => Asset( + id: json['id'], + name: json['name'], + amount: json['amount'], + description: json['description'], + ); +} diff --git a/lib/models/income.dart b/lib/models/income.dart new file mode 100644 index 0000000..6376217 --- /dev/null +++ b/lib/models/income.dart @@ -0,0 +1,35 @@ +import '/models/recurring_tracked_type.dart'; +import '/models/frequency.dart'; + +class Income extends RecurringTrackedType { + static String amountText = "Revenue"; + + Income({ + super.id, + required super.name, + required super.amount, + required super.frequency, + required super.description, + }); + + factory Income.fromMap(Map json) => Income( + id: json['id'], + name: json['name'], + amount: json['revenue'], + frequency: Frequency.values + .where((freq) => freq.title == json['frequency']) + .first, + description: json['description'], + ); + + @override + Map toMap() { + return { + 'id': id, + 'name': name, + 'revenue': amount, + 'frequency': frequency.title, + 'description': description, + }; + } +}