공개페이지 완료

This commit is contained in:
2025-11-10 14:14:08 +09:00
parent 2ce0b81483
commit ac43ddb55e
67 changed files with 3220 additions and 224696 deletions
+40 -1
View File
@@ -3,22 +3,53 @@ class PublicTeamMemberSummary {
final String? participantId;
final String? memberId;
final String name;
final String? gender;
final String? memberType;
final String? status;
final String? paymentStatus;
final String? comment;
final bool isGuest;
final List<int?> rawScores;
final List<int> handicaps;
final num? average;
final int memberHandicap;
PublicTeamMemberSummary({
required this.participantId,
required this.memberId,
required this.name,
required this.gender,
required this.memberType,
required this.status,
required this.paymentStatus,
required this.comment,
required this.isGuest,
required this.rawScores,
required this.handicaps,
required this.average,
required this.memberHandicap,
});
factory PublicTeamMemberSummary.fromJson(Map<String, dynamic> json, {int gameCount = 3}) {
num? parseNum(dynamic v) {
if (v == null) return null;
if (v is num) return v;
return num.tryParse(v.toString());
}
int parseInt(dynamic v, {int def = 0}) {
if (v == null) return def;
if (v is int) return v;
return int.tryParse(v.toString()) ?? def;
}
final participantId = json['participantId']?.toString();
final memberId = json['memberId']?.toString();
final name = (json['name'] ?? '이름없음').toString();
// 점수 포맷은 PublicParticipant와 동일 규칙
final gender = json['gender']?.toString();
final memberType = json['memberType']?.toString();
final status = json['status']?.toString();
final paymentStatus = json['paymentStatus']?.toString();
final comment = json['comment']?.toString();
final isGuest = json['isGuest'] == true;
final List<dynamic> src = (json['scores'] is List) ? (json['scores'] as List) : const [];
final List<int?> raw = List<int?>.filled(gameCount, null);
final List<int> hcs = List<int>.filled(gameCount, 0);
@@ -44,8 +75,16 @@ class PublicTeamMemberSummary {
participantId: participantId,
memberId: memberId,
name: name,
gender: gender,
memberType: memberType,
status: status,
paymentStatus: paymentStatus,
comment: comment,
isGuest: isGuest,
rawScores: raw,
handicaps: hcs,
average: parseNum(json['average']),
memberHandicap: parseInt(json['handicap'], def: 0),
);
}
}