Datenbankstruktur für Spiele #16

Merged
flixcoo merged 22 commits from feature/13-datenbankstruktur-fuer-spiele into development 2025-11-15 15:56:40 +00:00
Owner

Datenbankstruktur für Spiele

Zugehörige Issue(s):
Closes #13

Beschreibung

Implementiert eine Datenbankstruktur mit welcher einfache Spiele gespeichert werden können. Spiele (Game) können sowohl eine Liste an Spielern List<Player>? players als auch eine Gruppe (Group? group) zugeordnet bekommen. Pro Spiel gibt es einen Gewinner (String? winner) welcher über seine Spieler-ID gespeichert wird.

Änderungen

  • Basic Struktur für das Speichern von Spielen hinzugefügt
  • Alle Parameter der Funktion der DAOs durch Named Parameter ersetzt
  • Tests für Datenbankoperationen geschrieben

ER-Diagramm

Bildschirmfoto 2025-11-12 um 13.27.08.png

# Datenbankstruktur für Spiele **Zugehörige Issue(s):** Closes #13 ## Beschreibung Implementiert eine Datenbankstruktur mit welcher einfache Spiele gespeichert werden können. Spiele (`Game`) können sowohl eine Liste an Spielern `List<Player>? players` als auch eine Gruppe (`Group? group`) zugeordnet bekommen. Pro Spiel gibt es einen Gewinner (`String? winner`) welcher über seine Spieler-ID gespeichert wird. ## Änderungen - [x] Basic Struktur für das Speichern von Spielen hinzugefügt - [x] Alle Parameter der Funktion der DAOs durch [Named Parameter ](https://medium.com/@arunb9525/mastering-named-parameters-in-dart-why-and-how-to-use-them-91d859d45667) ersetzt - [x] Tests für Datenbankoperationen geschrieben ## ER-Diagramm ![Bildschirmfoto 2025-11-12 um 13.27.08.png](/attachments/8466c956-8f7c-47a5-8594-edd11a6c7f12)
flixcoo added this to the Minimum Viable Product (MVP) milestone 2025-11-12 10:45:19 +00:00
flixcoo added the
Workflow
In Progress
3
Layer
DB
labels 2025-11-12 10:45:19 +00:00
flixcoo self-assigned this 2025-11-12 10:45:19 +00:00
flixcoo changed target branch from main to development 2025-11-12 10:45:27 +00:00
flixcoo added 9 commits 2025-11-12 10:45:27 +00:00
flixcoo added 2 commits 2025-11-12 11:04:42 +00:00
flixcoo added 2 commits 2025-11-12 13:07:26 +00:00
flixcoo added 4 commits 2025-11-12 19:02:25 +00:00
flixcoo changed title from WIP: feature/13-datenbankstruktur-fuer-spiele to WIP: Datenbankstruktur für Spiele 2025-11-12 19:03:21 +00:00
flixcoo requested review from gelbeinhalb 2025-11-12 19:03:25 +00:00
flixcoo requested review from sneeex 2025-11-12 19:03:25 +00:00
flixcoo changed title from WIP: Datenbankstruktur für Spiele to Datenbankstruktur für Spiele 2025-11-12 19:03:30 +00:00
flixcoo added
PR
Ready for Review
2
and removed
Workflow
In Progress
3
labels 2025-11-12 19:03:34 +00:00
flixcoo added 2 commits 2025-11-14 08:01:30 +00:00
gelbeinhalb added the
Priority
Medium
3
Task
Feature
labels 2025-11-14 16:34:19 +00:00
sneeex requested changes 2025-11-14 20:29:33 +00:00
Dismissed
@@ -22,2 +24,3 @@
final result = await query.getSingle();
return Game(id: result.id, name: result.name);
List<Player>? players;
Owner

Wieso gehst du überall davon aus, dass players null sein kann? Man kann doch kein Game ohne Player erstellen oder in welchem case ist das der Fall?

Wieso gehst du überall davon aus, dass players null sein kann? Man kann doch kein Game ohne Player erstellen oder in welchem case ist das der Fall?
Author
Owner

Weil ein Game ja auch nur eine Group bekommern kann

Weil ein `Game` ja auch nur eine `Group` bekommern kann
sneeex marked this conversation as resolved
@@ -0,0 +21,4 @@
.getSingle();
return (count ?? 0) > 0;
}
Owner

doku vergessen

doku vergessen
flixcoo marked this conversation as resolved
@@ -0,0 +13,4 @@
/// Checks if there are any players associated with the given [gameId].
/// Returns `true` if there are players, otherwise `false`.
Future<bool> hasGamePlayers({required String gameId}) async {
final count =
Owner

Finde den namen hasGamePlayers schlecht, besser gameHasPlayers

Finde den namen hasGamePlayers schlecht, besser `gameHasPlayers`
flixcoo marked this conversation as resolved
@@ -0,0 +4,4 @@
class GroupGameTable extends Table {
TextColumn get groupId =>
text().references(PlayerTable, #id, onDelete: KeyAction.cascade)();
Owner

Müsste PlayerTable nicht GameTable sein? ist ja die Verbindungstabelle von group und game

Müsste PlayerTable nicht GameTable sein? ist ja die Verbindungstabelle von group und game
flixcoo marked this conversation as resolved
flixcoo added 3 commits 2025-11-14 21:33:32 +00:00
flixcoo requested review from sneeex 2025-11-14 21:33:38 +00:00
sneeex approved these changes 2025-11-15 15:11:57 +00:00
flixcoo merged commit 67bbb15845 into development 2025-11-15 15:56:40 +00:00
flixcoo deleted branch feature/13-datenbankstruktur-fuer-spiele 2025-11-15 15:56:40 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: liquid-development/game-tracker#16