b239ae3e5f
Replaces Firebase with a self-hosted PHP/MySQL API served from winded.prymsolutions.com. Includes full backend (schema, auth, events, teams, brackets, suggestions, stats, media, file upload) and updated Flutter repositories and domain models. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
85 lines
2.1 KiB
Dart
85 lines
2.1 KiB
Dart
class Player {
|
|
const Player({
|
|
required this.id,
|
|
required this.name,
|
|
this.position,
|
|
this.avatarUrl,
|
|
this.jerseyNumber,
|
|
this.goalsScored = 0,
|
|
this.assists = 0,
|
|
});
|
|
|
|
final String id;
|
|
final String name;
|
|
final String? position;
|
|
final String? avatarUrl;
|
|
final int? jerseyNumber;
|
|
final int goalsScored;
|
|
final int assists;
|
|
|
|
Player copyWith({
|
|
String? id,
|
|
String? name,
|
|
String? position,
|
|
String? avatarUrl,
|
|
int? jerseyNumber,
|
|
int? goalsScored,
|
|
int? assists,
|
|
}) {
|
|
return Player(
|
|
id: id ?? this.id,
|
|
name: name ?? this.name,
|
|
position: position ?? this.position,
|
|
avatarUrl: avatarUrl ?? this.avatarUrl,
|
|
jerseyNumber: jerseyNumber ?? this.jerseyNumber,
|
|
goalsScored: goalsScored ?? this.goalsScored,
|
|
assists: assists ?? this.assists,
|
|
);
|
|
}
|
|
|
|
factory Player.fromMap(Map<String, dynamic> data) {
|
|
return Player(
|
|
id: (data['id'] as String?) ?? '',
|
|
name: (data['name'] as String?) ?? '',
|
|
position: data['position'] as String?,
|
|
avatarUrl: data['avatar_url'] as String?,
|
|
jerseyNumber: (data['jersey_number'] as num?)?.toInt(),
|
|
goalsScored: (data['goals_scored'] as num?)?.toInt() ?? 0,
|
|
assists: (data['assists'] as num?)?.toInt() ?? 0,
|
|
);
|
|
}
|
|
|
|
Map<String, Object?> toMap() {
|
|
return <String, Object?>{
|
|
'id': id,
|
|
'name': name,
|
|
'position': position,
|
|
'avatar_url': avatarUrl,
|
|
'jersey_number': jerseyNumber,
|
|
'goals_scored': goalsScored,
|
|
'assists': assists,
|
|
};
|
|
}
|
|
|
|
@override
|
|
bool operator ==(Object other) {
|
|
if (identical(this, other)) return true;
|
|
return other is Player &&
|
|
other.id == id &&
|
|
other.name == name &&
|
|
other.position == position &&
|
|
other.avatarUrl == avatarUrl &&
|
|
other.jerseyNumber == jerseyNumber &&
|
|
other.goalsScored == goalsScored &&
|
|
other.assists == assists;
|
|
}
|
|
|
|
@override
|
|
int get hashCode => Object.hash(
|
|
id, name, position, avatarUrl, jerseyNumber, goalsScored, assists,
|
|
);
|
|
|
|
@override
|
|
String toString() => 'Player(id: $id, name: $name)';
|
|
}
|