From 4c5ba92b066560e9de76ac14a491d789453617d8 Mon Sep 17 00:00:00 2001 From: Connor Frank Date: Mon, 1 Apr 2024 17:43:00 -0400 Subject: Initial Commit --- lib/game_data.dart | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 lib/game_data.dart (limited to 'lib/game_data.dart') 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 playerNames; + Map pars; + Map> scores; + DateTime date; + + GameData({ + this.playerNames = const [], + this.pars = const {}, + this.scores = const {}, + required this.date, + }); + + Map 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 json) => GameData( + playerNames: List.from(json['playerNames']), + pars: Map.from(json['pars'].map((key, value) => MapEntry(int.parse(key), value))), + scores: Map>.from(json['scores'].map((key, value) => MapEntry(int.parse(key), List.from(value)))), + date: DateTime.parse(json['date']), + ); +} \ No newline at end of file -- cgit v1.2.3