회원목록

This commit is contained in:
2025-08-01 16:45:26 +09:00
parent a996def67a
commit ed8c7eacba
191 changed files with 17491 additions and 0 deletions
+83
View File
@@ -0,0 +1,83 @@
class Score {
final String id;
final String memberId;
final String eventId;
final String clubId;
final List<int> frames;
final int totalScore;
final DateTime date;
final String? notes;
Score({
required this.id,
required this.memberId,
required this.eventId,
required this.clubId,
required this.frames,
required this.totalScore,
required this.date,
this.notes,
});
factory Score.fromJson(Map<String, dynamic> json) {
return Score(
id: json['id']?.toString() ?? '',
memberId: json['memberId']?.toString() ?? '',
eventId: json['eventId']?.toString() ?? '',
clubId: json['clubId']?.toString() ?? '',
frames: json['frames'] != null ? List<int>.from(json['frames']) : [],
totalScore: json['totalScore'] ?? 0,
date: json['date'] != null ? DateTime.parse(json['date'].toString()) : DateTime.now(),
notes: json['notes']?.toString(),
);
}
Map<String, dynamic> toJson() {
return {
'id': id,
'memberId': memberId,
'eventId': eventId,
'clubId': clubId,
'frames': frames,
'totalScore': totalScore,
'date': date.toIso8601String(),
'notes': notes,
};
}
}
class ScoreStatistics {
final double average;
final int highScore;
final int lowScore;
final int gamesPlayed;
final Map<String, dynamic>? additionalStats;
ScoreStatistics({
required this.average,
required this.highScore,
required this.lowScore,
required this.gamesPlayed,
this.additionalStats,
});
factory ScoreStatistics.fromJson(Map<String, dynamic> json) {
return ScoreStatistics(
average: json['average'] != null ? (json['average'] is int ? (json['average'] as int).toDouble() : json['average'].toDouble()) : 0.0,
highScore: json['highScore'] ?? 0,
lowScore: json['lowScore'] ?? 0,
gamesPlayed: json['gamesPlayed'] ?? 0,
additionalStats: json['additionalStats'],
);
}
Map<String, dynamic> toJson() {
return {
'average': average,
'highScore': highScore,
'lowScore': lowScore,
'gamesPlayed': gamesPlayed,
'additionalStats': additionalStats,
};
}
}