80 lines
1.3 KiB
Dart
80 lines
1.3 KiB
Dart
import 'package:hive/hive.dart';
|
|
|
|
part 'player_model.g.dart';
|
|
|
|
|
|
@HiveType(typeId: 0)
|
|
class PlayerModel extends HiveObject {
|
|
@HiveField(0)
|
|
final String id;
|
|
|
|
@HiveField(1)
|
|
String name;
|
|
|
|
@HiveField(2)
|
|
Gender gender;
|
|
|
|
@HiveField(3)
|
|
SkillLevel skillLevel;
|
|
|
|
@HiveField(4)
|
|
List<Position> positions; // Mehrere möglich
|
|
|
|
@HiveField(5)
|
|
int wins = 0;
|
|
|
|
@HiveField(6)
|
|
List<String> lastTeammates = []; // IDs der letzten Teamkollegen (max 5 behalten?)
|
|
|
|
@HiveField(7)
|
|
bool hasSatOut = false; // Schon mal ausgesetzt?
|
|
|
|
@HiveField(8, defaultValue: true)
|
|
bool isActive = true;
|
|
|
|
PlayerModel({
|
|
required this.id,
|
|
required this.name,
|
|
required this.gender,
|
|
required this.skillLevel,
|
|
required this.positions,
|
|
this.wins = 0,
|
|
this.lastTeammates = const [],
|
|
this.hasSatOut = false,
|
|
this.isActive = true,
|
|
});
|
|
}
|
|
|
|
@HiveType(typeId: 1) // Jede Enum braucht eine eigene typeId!
|
|
enum Gender {
|
|
@HiveField(0)
|
|
male,
|
|
@HiveField(1)
|
|
female,
|
|
@HiveField(2)
|
|
diverse,
|
|
}
|
|
|
|
@HiveType(typeId: 2)
|
|
enum SkillLevel {
|
|
@HiveField(0)
|
|
low,
|
|
@HiveField(1)
|
|
mid,
|
|
@HiveField(2)
|
|
high,
|
|
}
|
|
|
|
@HiveType(typeId: 3)
|
|
enum Position {
|
|
@HiveField(0)
|
|
aussen,
|
|
@HiveField(1)
|
|
mitte,
|
|
@HiveField(2)
|
|
diagonal,
|
|
@HiveField(3)
|
|
zuspieler,
|
|
@HiveField(4)
|
|
libero,
|
|
} |