Neue Datenbank Struktur #156
50
lib/data/dto/game.dart
Normal file
@@ -0,0 +1,50 @@
|
||||
import 'package:clock/clock.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
class Game {
|
||||
final String id;
|
||||
final DateTime createdAt;
|
||||
final String name;
|
||||
final String? ruleset;
|
||||
|
gelbeinhalb marked this conversation as resolved
|
||||
final String? description;
|
||||
|
gelbeinhalb marked this conversation as resolved
Outdated
flixcoo
commented
Description als leeren string setzen, wenn nicht übergeben Description als leeren string setzen, wenn nicht übergeben
sneeex
commented
warum findest du leeren string besser als nullable? warum findest du leeren string besser als nullable?
flixcoo
commented
Finde null sollte man nur dann verwenden, wenns halt nicht anders geht, wie z.B. bei objekten Finde null sollte man nur dann verwenden, wenns halt nicht anders geht, wie z.B. bei objekten
|
||||
final int? color;
|
||||
|
gelbeinhalb marked this conversation as resolved
Outdated
flixcoo
commented
Hier lieber enum, gerne auch mit einem Hier lieber enum, gerne auch mit einem `Color.none`
sneeex
commented
warum aber nicht hex codes? warum aber nicht hex codes?
sneeex
commented
oder willst du die farben vorgeben? oder willst du die farben vorgeben?
flixcoo
commented
Ja man könnte auch hexcodes machen. Würde die Farben so oder so vorgeben unabhängig davon wie man sie speichert Ja man könnte auch hexcodes machen. Würde die Farben so oder so vorgeben unabhängig davon wie man sie speichert
gelbeinhalb
commented
würde enums maybe machen, weil man sonst im export einfach den hex code ändern könnte. Also idk ob das juckt aber 🤷♂️ würde enums maybe machen, weil man sonst im export einfach den hex code ändern könnte. Also idk ob das juckt aber 🤷♂️
|
||||
final String? icon;
|
||||
|
gelbeinhalb marked this conversation as resolved
Outdated
flixcoo
commented
Hier auch mit enum arbeiten? Hier auch mit enum arbeiten?
|
||||
|
||||
Game({
|
||||
String? id,
|
||||
DateTime? createdAt,
|
||||
required this.name,
|
||||
this.ruleset,
|
||||
this.description,
|
||||
this.color,
|
||||
|
flixcoo
commented
Description sollte nicht obligatorisch sein, sondern optional. Wenn nicht gesetzt soll es ein leerer String werden. Description sollte nicht obligatorisch sein, sondern optional. Wenn nicht gesetzt soll es ein leerer String werden.
gelbeinhalb
commented
Dachte man soll den als leeren String selber setzen müssen Dachte man soll den als leeren String selber setzen müssen
flixcoo
commented
würde das lieber so machen, weil man ja sonst immer unnötig die description setzten muss würde das lieber so machen, weil man ja sonst immer unnötig die description setzten muss
sneeex
commented
finde auch optional finde auch optional
|
||||
this.icon,
|
||||
}) : id = id ?? const Uuid().v4(),
|
||||
createdAt = createdAt ?? clock.now();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'Game{id: $id, name: $name, ruleset: $ruleset, description: $description, color: $color, icon: $icon}';
|
||||
}
|
||||
|
||||
/// Creates a Game instance from a JSON object.
|
||||
Game.fromJson(Map<String, dynamic> json)
|
||||
: id = json['id'],
|
||||
createdAt = DateTime.parse(json['createdAt']),
|
||||
name = json['name'],
|
||||
ruleset = json['ruleset'],
|
||||
description = json['description'],
|
||||
color = json['color'],
|
||||
icon = json['icon'];
|
||||
|
||||
/// Converts the Game instance to a JSON object.
|
||||
Map<String, dynamic> toJson() => {
|
||||
'id': id,
|
||||
'createdAt': createdAt.toIso8601String(),
|
||||
'name': name,
|
||||
'ruleset': ruleset,
|
||||
'description': description,
|
||||
'color': color,
|
||||
'icon': icon,
|
||||
};
|
||||
}
|
||||
|
||||
Ruleset sollte nicht optional, weil das immer gebraucht wird
Ruleset als enum