Timestamp zu allen Objekten hinzufügen #36

Merged
flixcoo merged 10 commits from feature/29-timestamp-zu-allen-objekten-hinzufügen into development 2025-11-19 19:23:32 +00:00
Owner

Timestamp zu allen Objekten hinzufügen

Zugehörige Issue(s):
Closes #29

Beschreibung

Timestamp's zu group, game und player Tabellen, DTO's und DAO's hinzugefügt, damit nach diesen sortiert werden kann.

# Timestamp zu allen Objekten hinzufügen **Zugehörige Issue(s):** Closes #29 ## Beschreibung Timestamp's zu group, game und player Tabellen, DTO's und DAO's hinzugefügt, damit nach diesen sortiert werden kann.
sneeex added 3 commits 2025-11-18 22:47:50 +00:00
sneeex self-assigned this 2025-11-18 22:50:05 +00:00
sneeex added this to the Minimum Viable Product (MVP) milestone 2025-11-18 22:50:07 +00:00
sneeex added the
PR
Ready for Review
2
label 2025-11-18 22:50:16 +00:00
sneeex requested review from flixcoo 2025-11-18 22:50:19 +00:00
sneeex requested review from gelbeinhalb 2025-11-18 22:50:19 +00:00
sneeex changed title from WIP: Timestamp zu allen Objekten hinzufügen to Timestamp zu allen Objekten hinzufügen 2025-11-18 22:50:23 +00:00
flixcoo added a new dependency 2025-11-18 22:54:55 +00:00
sneeex added 3 commits 2025-11-18 23:27:52 +00:00
flixcoo reviewed 2025-11-18 23:45:28 +00:00
@@ -17,2 +20,3 @@
this.winner = '',
}) : id = id ?? const Uuid().v4();
}) : id = id ?? const Uuid().v4(),
createdAt = createdAt ?? clock.now();
Owner

Warum Clock verwendet und nicht DateTime?

Warum Clock verwendet und nicht DateTime?
Author
Owner

Warum Clock verwendet und nicht DateTime?

Datetime hat nicht die möglichkeit eine fakeclock zu erstellen, clock schon, nutzt aber under the hood afaik datetime

> Warum Clock verwendet und nicht DateTime? Datetime hat nicht die möglichkeit eine fakeclock zu erstellen, clock schon, nutzt aber under the hood afaik datetime
flixcoo marked this conversation as resolved
@@ -28,3 +33,1 @@
final testPlayer2 = Player(name: 'Second Group');
await database.playerDao.addPlayer(player: testPlayer);
await database.playerDao.addPlayer(player: testPlayer2);
await withClock(fakeClock, () async {
Owner

Kannst du anstatt die fake clock verwenden nicht einfach überprüfen ob die timestamp des players = timestamp des db players ist?

Kannst du anstatt die fake clock verwenden nicht einfach überprüfen ob die timestamp des players = timestamp des db players ist?
Author
Owner

Nein ist ungenau, hab's probiert, funkt net

Nein ist ungenau, hab's probiert, funkt net
Author
Owner

Gibt dann abweichungen von Millisekunden, vermutlich weil die DB nicht so genau speichern kann wie das datetime object, weil die DB intern nämlich timestamps speichert und der ja nicht so genau ist.

["Drift supports two approaches of storing DateTime values in SQL:
As unix timestamp (the default): In this mode, drift stores date time values as an SQL INTEGER containing the unix timestamp (in seconds).]

Gibt dann abweichungen von Millisekunden, vermutlich weil die DB nicht so genau speichern kann wie das datetime object, weil die DB intern nämlich timestamps speichert und der ja nicht so genau ist. _["Drift supports two approaches of storing DateTime values in SQL: As unix timestamp (the default): In this mode, drift stores date time values as an SQL INTEGER containing the unix timestamp (in seconds).]_
Owner

Und wenn du ein Datum übergibst und danach checkst? Wir müssen ja nicht Testen das Datetime funktioniert sondern nur das der datentransfer geht

Und wenn du ein Datum übergibst und danach checkst? Wir müssen ja nicht Testen das Datetime funktioniert sondern nur das der datentransfer geht
Author
Owner

Ich finde das so schön und ist wohl auch Common practice, spricht doch nichts dagegen oder? Ich will ja eben auch wissen, ob der das Datum mit Zeit in der richtigen Genauigkeit speichert und nicht nur ob er es überhaupt tut. Sollte es mal durch ein Update oder so nicht mehr korrekt sein, ist es ja wichtig zu wissen, ob der datetime der in der DB gespeichert ist dem wahren entspricht. Außerdem will ich das ja so realitätsgetreu wie möglich halten und das datetime auch von der Klasse selbst erzeugen lassen, auch wenn ich es hijacke und nicht selber bei den Playern, groups und Games setzen.

Ich finde das so schön und ist wohl auch Common practice, spricht doch nichts dagegen oder? Ich will ja eben auch wissen, ob der das Datum mit Zeit in der richtigen Genauigkeit speichert und nicht nur ob er es überhaupt tut. Sollte es mal durch ein Update oder so nicht mehr korrekt sein, ist es ja wichtig zu wissen, ob der datetime der in der DB gespeichert ist dem wahren entspricht. Außerdem will ich das ja so realitätsgetreu wie möglich halten und das datetime auch von der Klasse selbst erzeugen lassen, auch wenn ich es hijacke und nicht selber bei den Playern, groups und Games setzen.
Owner

Also was mich halt bisschen genervt hat, das man diverse Sachen jetzt in await withClock(fakeClock, () async {}); wrappen muss. Kannst du es nicht sonst so machen, dass alle Objekte die genutzt werden in der setUp(() {}); Methode erstellt, damit man die fake clock nicht mehr in den einzelnen Tests brauch?

Also was mich halt bisschen genervt hat, das man diverse Sachen jetzt in `await withClock(fakeClock, () async {});` wrappen muss. Kannst du es nicht sonst so machen, dass alle Objekte die genutzt werden in der `setUp(() {});` Methode erstellt, damit man die fake clock nicht mehr in den einzelnen Tests brauch?
Author
Owner

Also was mich halt bisschen genervt hat, das man diverse Sachen jetzt in await withClock(fakeClock, () async {}); wrappen muss. Kannst du es nicht sonst so machen, dass alle Objekte die genutzt werden in der setUp(() {}); Methode erstellt, damit man die fake clock nicht mehr in den einzelnen Tests brauch?

Bestimmt muss mal schauen

> Also was mich halt bisschen genervt hat, das man diverse Sachen jetzt in `await withClock(fakeClock, () async {});` wrappen muss. Kannst du es nicht sonst so machen, dass alle Objekte die genutzt werden in der `setUp(() {});` Methode erstellt, damit man die fake clock nicht mehr in den einzelnen Tests brauch? Bestimmt muss mal schauen
sneeex marked this conversation as resolved
flixcoo approved these changes 2025-11-19 00:02:55 +00:00
Dismissed
flixcoo added a new dependency 2025-11-19 00:03:28 +00:00
sneeex added 1 commit 2025-11-19 14:02:38 +00:00
sneeex dismissed flixcoo's review 2025-11-19 14:02:38 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

sneeex requested review from flixcoo 2025-11-19 14:03:03 +00:00
flixcoo added
PR
In Review
1
and removed
PR
Ready for Review
2
labels 2025-11-19 14:46:54 +00:00
flixcoo reviewed 2025-11-19 14:48:06 +00:00
@@ -104,3 +117,3 @@
test('Adding player to group works correctly', () async {
await database.groupDao.addGroup(group: testgroup);
await withClock(fakeClock, () async {
Owner

Hier ist immer noch ne fakeClock, wofür wird die gebraucht?

Hier ist immer noch ne `fakeClock`, wofür wird die gebraucht?
flixcoo marked this conversation as resolved
sneeex added 1 commit 2025-11-19 14:52:09 +00:00
flixcoo approved these changes 2025-11-19 14:52:23 +00:00
Dismissed
sneeex added 1 commit 2025-11-19 17:34:08 +00:00
sneeex dismissed flixcoo's review 2025-11-19 17:34:08 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

sneeex requested review from flixcoo 2025-11-19 17:34:26 +00:00
flixcoo added 1 commit 2025-11-19 19:23:10 +00:00
flixcoo approved these changes 2025-11-19 19:23:18 +00:00
flixcoo removed a dependency 2025-11-19 19:23:28 +00:00
flixcoo merged commit 2cae66a8ae into development 2025-11-19 19:23:32 +00:00
flixcoo deleted branch feature/29-timestamp-zu-allen-objekten-hinzufügen 2025-11-19 19:23:32 +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#36