This commit is contained in:
MarcWieland
2025-12-10 22:51:28 +01:00
commit e636f282ee
87 changed files with 4263 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
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,
}

View File

@@ -0,0 +1,207 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'player_model.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class PlayerModelAdapter extends TypeAdapter<PlayerModel> {
@override
final int typeId = 0;
@override
PlayerModel read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return PlayerModel(
id: fields[0] as String,
name: fields[1] as String,
gender: fields[2] as Gender,
skillLevel: fields[3] as SkillLevel,
positions: (fields[4] as List).cast<Position>(),
wins: fields[5] as int,
lastTeammates: (fields[6] as List).cast<String>(),
hasSatOut: fields[7] as bool,
isActive: fields[8] == null ? true : fields[8] as bool,
);
}
@override
void write(BinaryWriter writer, PlayerModel obj) {
writer
..writeByte(9)
..writeByte(0)
..write(obj.id)
..writeByte(1)
..write(obj.name)
..writeByte(2)
..write(obj.gender)
..writeByte(3)
..write(obj.skillLevel)
..writeByte(4)
..write(obj.positions)
..writeByte(5)
..write(obj.wins)
..writeByte(6)
..write(obj.lastTeammates)
..writeByte(7)
..write(obj.hasSatOut)
..writeByte(8)
..write(obj.isActive);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is PlayerModelAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class GenderAdapter extends TypeAdapter<Gender> {
@override
final int typeId = 1;
@override
Gender read(BinaryReader reader) {
switch (reader.readByte()) {
case 0:
return Gender.male;
case 1:
return Gender.female;
case 2:
return Gender.diverse;
default:
return Gender.male;
}
}
@override
void write(BinaryWriter writer, Gender obj) {
switch (obj) {
case Gender.male:
writer.writeByte(0);
break;
case Gender.female:
writer.writeByte(1);
break;
case Gender.diverse:
writer.writeByte(2);
break;
}
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is GenderAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class SkillLevelAdapter extends TypeAdapter<SkillLevel> {
@override
final int typeId = 2;
@override
SkillLevel read(BinaryReader reader) {
switch (reader.readByte()) {
case 0:
return SkillLevel.low;
case 1:
return SkillLevel.mid;
case 2:
return SkillLevel.high;
default:
return SkillLevel.low;
}
}
@override
void write(BinaryWriter writer, SkillLevel obj) {
switch (obj) {
case SkillLevel.low:
writer.writeByte(0);
break;
case SkillLevel.mid:
writer.writeByte(1);
break;
case SkillLevel.high:
writer.writeByte(2);
break;
}
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is SkillLevelAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class PositionAdapter extends TypeAdapter<Position> {
@override
final int typeId = 3;
@override
Position read(BinaryReader reader) {
switch (reader.readByte()) {
case 0:
return Position.aussen;
case 1:
return Position.mitte;
case 2:
return Position.diagonal;
case 3:
return Position.zuspieler;
case 4:
return Position.libero;
default:
return Position.aussen;
}
}
@override
void write(BinaryWriter writer, Position obj) {
switch (obj) {
case Position.aussen:
writer.writeByte(0);
break;
case Position.mitte:
writer.writeByte(1);
break;
case Position.diagonal:
writer.writeByte(2);
break;
case Position.zuspieler:
writer.writeByte(3);
break;
case Position.libero:
writer.writeByte(4);
break;
}
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is PositionAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}