diff options
author | Connor Frank <conjfrnk@gmail.com> | 2024-04-01 17:43:00 -0400 |
---|---|---|
committer | Connor Frank <conjfrnk@gmail.com> | 2024-04-01 17:43:00 -0400 |
commit | 4c5ba92b066560e9de76ac14a491d789453617d8 (patch) | |
tree | 66f25c022c195ae5a19149c6e924397f360cc608 /lib/game_data.dart |
Initial Commit
Diffstat (limited to 'lib/game_data.dart')
-rw-r--r-- | lib/game_data.dart | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/game_data.dart b/lib/game_data.dart new file mode 100644 index 0000000..3c7c77b --- /dev/null +++ b/lib/game_data.dart @@ -0,0 +1,28 @@ +class GameData { + List<String> playerNames; + Map<int, int> pars; + Map<int, List<int>> scores; + DateTime date; + + GameData({ + this.playerNames = const [], + this.pars = const {}, + this.scores = const {}, + required this.date, + }); + + Map<String, dynamic> toJson() => { + 'playerNames': playerNames, + 'pars': pars.map((key, value) => MapEntry(key.toString(), value)), + 'scores': scores.map((key, value) => MapEntry(key.toString(), value)), + 'date': date.toIso8601String(), + // No need to serialize 'winner' as it's derived from scores + }; + + factory GameData.fromJson(Map<String, dynamic> json) => GameData( + playerNames: List<String>.from(json['playerNames']), + pars: Map<int, int>.from(json['pars'].map((key, value) => MapEntry(int.parse(key), value))), + scores: Map<int, List<int>>.from(json['scores'].map((key, value) => MapEntry(int.parse(key), List<int>.from(value)))), + date: DateTime.parse(json['date']), + ); +}
\ No newline at end of file |