diff --git a/lib/data/db/dao/game_session_dao.dart b/lib/data/db/dao/game_session_dao.dart index 730ff41..de60cfb 100644 --- a/lib/data/db/dao/game_session_dao.dart +++ b/lib/data/db/dao/game_session_dao.dart @@ -1,10 +1,39 @@ import 'package:cabo_counter/data/db/database.dart'; +import 'package:cabo_counter/data/db/tables/game_session_table.dart'; +import 'package:cabo_counter/data/dto/game_session.dart'; +import 'package:cabo_counter/data/dto/player.dart'; +import 'package:cabo_counter/data/dto/round.dart'; import 'package:drift/drift.dart'; part 'game_session_dao.g.dart'; -@DriftAccessor(tables: []) +@DriftAccessor(tables: [GameSessionTable]) class GameSessionDao extends DatabaseAccessor with _$GameSessionDaoMixin { GameSessionDao(super.db); + + /// Retrieves a game session by its ID. + Future getGameSession(String id) async { + final query = select(gameSessionTable)..where((tbl) => tbl.id.equals(id)); + final gameSessionResult = await query.getSingle(); + + List playerList = await db.playerDao.getPlayersByGameId(id); + List roundList = await db.roundsDao.getRoundsByGameId(id); + + GameSession gameSession = GameSession( + id: gameSessionResult.id, + createdAt: gameSessionResult.createdAt, + gameTitle: gameSessionResult.gameTitle, + players: playerList.map((player) => player.name).toList(), + pointLimit: gameSessionResult.pointLimit, + caboPenalty: gameSessionResult.caboPenalty, + isPointsLimitEnabled: gameSessionResult.isPointsLimitEnabled, + isGameFinished: gameSessionResult.isGameFinished, + winner: gameSessionResult.winner ?? '', + roundNumber: gameSessionResult.roundNumber, + playerScores: playerList.map((player) => player.totalScore).toList(), + roundList: roundList); + + return gameSession; + } } diff --git a/lib/data/db/dao/game_session_dao.g.dart b/lib/data/db/dao/game_session_dao.g.dart index c40956f..2760f98 100644 --- a/lib/data/db/dao/game_session_dao.g.dart +++ b/lib/data/db/dao/game_session_dao.g.dart @@ -3,4 +3,7 @@ part of 'game_session_dao.dart'; // ignore_for_file: type=lint -mixin _$GameSessionDaoMixin on DatabaseAccessor {} +mixin _$GameSessionDaoMixin on DatabaseAccessor { + $GameSessionTableTable get gameSessionTable => + attachedDatabase.gameSessionTable; +} diff --git a/lib/data/db/dao/player_dao.dart b/lib/data/db/dao/player_dao.dart new file mode 100644 index 0000000..0e5ca53 --- /dev/null +++ b/lib/data/db/dao/player_dao.dart @@ -0,0 +1,38 @@ +import 'package:cabo_counter/data/db/database.dart'; +import 'package:cabo_counter/data/db/tables/player_table.dart'; +import 'package:cabo_counter/data/dto/player.dart'; +import 'package:drift/drift.dart'; + +part 'player_dao.g.dart'; + +@DriftAccessor(tables: [PlayerTable]) +class PlayerDao extends DatabaseAccessor with _$PlayerDaoMixin { + PlayerDao(super.db); + + /// Retrieves all players from a game by gameId + Future> getPlayersByGameId(String gameId) async { + final query = select(playerTable) + ..where((tbl) => tbl.gameId.equals(gameId)); + final playerResults = await query.get(); + + return playerResults.map((row) { + return Player( + playerId: row.playerId, + gameId: row.gameId, + name: row.name, + position: row.position, + totalScore: row.totalScore, + ); + }).toList() + ..sort((a, b) => a.position.compareTo(b.position)); + } + + /// Retrieves a players position by its id + Future getPositionByPlayerId(String playerId) async { + final query = select(playerTable) + ..where((tbl) => tbl.playerId.equals(playerId)); + final result = await query.getSingle(); + + return result.position; + } +} diff --git a/lib/data/db/dao/player_dao.g.dart b/lib/data/db/dao/player_dao.g.dart new file mode 100644 index 0000000..419ab9b --- /dev/null +++ b/lib/data/db/dao/player_dao.g.dart @@ -0,0 +1,10 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'player_dao.dart'; + +// ignore_for_file: type=lint +mixin _$PlayerDaoMixin on DatabaseAccessor { + $GameSessionTableTable get gameSessionTable => + attachedDatabase.gameSessionTable; + $PlayerTableTable get playerTable => attachedDatabase.playerTable; +} diff --git a/lib/data/db/dao/player_scores_dao.dart b/lib/data/db/dao/player_scores_dao.dart deleted file mode 100644 index 73b3c5f..0000000 --- a/lib/data/db/dao/player_scores_dao.dart +++ /dev/null @@ -1,10 +0,0 @@ -import 'package:cabo_counter/data/db/database.dart'; -import 'package:drift/drift.dart'; - -part 'player_scores_dao.g.dart'; - -@DriftAccessor(tables: []) -class PlayerScoresDao extends DatabaseAccessor - with _$PlayerScoresDaoMixin { - PlayerScoresDao(super.db); -} diff --git a/lib/data/db/dao/player_scores_dao.g.dart b/lib/data/db/dao/player_scores_dao.g.dart deleted file mode 100644 index 8daeff8..0000000 --- a/lib/data/db/dao/player_scores_dao.g.dart +++ /dev/null @@ -1,6 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'player_scores_dao.dart'; - -// ignore_for_file: type=lint -mixin _$PlayerScoresDaoMixin on DatabaseAccessor {} diff --git a/lib/data/db/dao/players_dao.dart b/lib/data/db/dao/players_dao.dart deleted file mode 100644 index c5af385..0000000 --- a/lib/data/db/dao/players_dao.dart +++ /dev/null @@ -1,9 +0,0 @@ -import 'package:cabo_counter/data/db/database.dart'; -import 'package:drift/drift.dart'; - -part 'players_dao.g.dart'; - -@DriftAccessor(tables: []) -class PlayersDao extends DatabaseAccessor with _$PlayersDaoMixin { - PlayersDao(super.db); -} diff --git a/lib/data/db/dao/players_dao.g.dart b/lib/data/db/dao/players_dao.g.dart deleted file mode 100644 index ff95755..0000000 --- a/lib/data/db/dao/players_dao.g.dart +++ /dev/null @@ -1,6 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'players_dao.dart'; - -// ignore_for_file: type=lint -mixin _$PlayersDaoMixin on DatabaseAccessor {} diff --git a/lib/data/db/dao/round_scores_dao.dart b/lib/data/db/dao/round_scores_dao.dart index 41df855..d87601c 100644 --- a/lib/data/db/dao/round_scores_dao.dart +++ b/lib/data/db/dao/round_scores_dao.dart @@ -1,10 +1,51 @@ import 'package:cabo_counter/data/db/database.dart'; +import 'package:cabo_counter/data/db/tables/round_scores_table.dart'; +import 'package:cabo_counter/data/dto/round_score.dart'; import 'package:drift/drift.dart'; part 'round_scores_dao.g.dart'; -@DriftAccessor(tables: []) +@DriftAccessor(tables: [RoundScoresTable]) class RoundScoresDao extends DatabaseAccessor with _$RoundScoresDaoMixin { RoundScoresDao(super.db); + + /// Retrieves all scores for a specific round by its ID. + Future> getRoundScoresByRoundId(String roundId) async { + final query = select(roundScoresTable) + ..where((tbl) => tbl.roundId.equals(roundId)); + + final result = await query.get(); + + // Get positions for each player + final scoresWithPosition = await Future.wait(result.map((row) async { + final position = await db.playerDao.getPositionByPlayerId(row.playerId); + return MapEntry(row, position); + })); + + // Sort rows by position + scoresWithPosition.sort((a, b) => a.value.compareTo(b.value)); + + return scoresWithPosition.map((entry) { + final row = entry.key; + return RoundScore( + roundId: roundId, + playerId: row.playerId, + score: row.score, + scoreUpdate: row.scoreUpdate, + ); + }).toList(); + } + + Future> getScoresByRoundId(String roundId) async { + List roundScores = await getRoundScoresByRoundId(roundId); + + return roundScores.map((score) => score.score).toList(); + } + + Future> getScoreUpdatesByRoundId(String roundId) async { + List roundScores = await getRoundScoresByRoundId(roundId); + + return roundScores.map((score) => score.scoreUpdate).toList(); + } } diff --git a/lib/data/db/dao/round_scores_dao.g.dart b/lib/data/db/dao/round_scores_dao.g.dart index cd0ecdd..90746db 100644 --- a/lib/data/db/dao/round_scores_dao.g.dart +++ b/lib/data/db/dao/round_scores_dao.g.dart @@ -3,4 +3,10 @@ part of 'round_scores_dao.dart'; // ignore_for_file: type=lint -mixin _$RoundScoresDaoMixin on DatabaseAccessor {} +mixin _$RoundScoresDaoMixin on DatabaseAccessor { + $GameSessionTableTable get gameSessionTable => + attachedDatabase.gameSessionTable; + $RoundsTableTable get roundsTable => attachedDatabase.roundsTable; + $RoundScoresTableTable get roundScoresTable => + attachedDatabase.roundScoresTable; +} diff --git a/lib/data/db/dao/rounds_dao.dart b/lib/data/db/dao/rounds_dao.dart index fac8a10..d5ab3b0 100644 --- a/lib/data/db/dao/rounds_dao.dart +++ b/lib/data/db/dao/rounds_dao.dart @@ -1,9 +1,39 @@ import 'package:cabo_counter/data/db/database.dart'; +import 'package:cabo_counter/data/db/tables/rounds_table.dart'; +import 'package:cabo_counter/data/dto/round.dart'; import 'package:drift/drift.dart'; part 'rounds_dao.g.dart'; -@DriftAccessor(tables: []) +@DriftAccessor(tables: [RoundsTable]) class RoundsDao extends DatabaseAccessor with _$RoundsDaoMixin { RoundsDao(super.db); + + /// Retrieves all rounds for a specific game session by its ID. + Future> getRoundsByGameId(String gameId) async { + final query = select(roundsTable) + ..where((tbl) => tbl.gameId.equals(gameId)); + + final roundResult = await query.get(); + + final roundList = await Future.wait( + roundResult.map((row) async { + final scores = await db.roundScoresDao.getScoresByRoundId(row.roundId); + final roundScores = + await db.roundScoresDao.getScoreUpdatesByRoundId(row.roundId); + + return Round( + roundId: row.roundId, + gameId: row.gameId, + roundNum: row.roundNumber, + caboPlayerIndex: row.caboPlayerIndex, + kamikazePlayerIndex: row.kamikazePlayerIndex, + scores: scores, + scoreUpdates: roundScores, + ); + }), + ); + + return roundList; + } } diff --git a/lib/data/db/dao/rounds_dao.g.dart b/lib/data/db/dao/rounds_dao.g.dart index 7989ed6..85166e6 100644 --- a/lib/data/db/dao/rounds_dao.g.dart +++ b/lib/data/db/dao/rounds_dao.g.dart @@ -3,4 +3,8 @@ part of 'rounds_dao.dart'; // ignore_for_file: type=lint -mixin _$RoundsDaoMixin on DatabaseAccessor {} +mixin _$RoundsDaoMixin on DatabaseAccessor { + $GameSessionTableTable get gameSessionTable => + attachedDatabase.gameSessionTable; + $RoundsTableTable get roundsTable => attachedDatabase.roundsTable; +} diff --git a/lib/data/db/database.dart b/lib/data/db/database.dart index 38b1514..2884ced 100644 --- a/lib/data/db/database.dart +++ b/lib/data/db/database.dart @@ -1,6 +1,9 @@ +import 'package:cabo_counter/data/db/dao/game_session_dao.dart'; +import 'package:cabo_counter/data/db/dao/player_dao.dart'; +import 'package:cabo_counter/data/db/dao/round_scores_dao.dart'; +import 'package:cabo_counter/data/db/dao/rounds_dao.dart'; import 'package:cabo_counter/data/db/tables/game_session_table.dart'; -import 'package:cabo_counter/data/db/tables/player_scores_table.dart'; -import 'package:cabo_counter/data/db/tables/players_table.dart'; +import 'package:cabo_counter/data/db/tables/player_table.dart'; import 'package:cabo_counter/data/db/tables/round_scores_table.dart'; import 'package:cabo_counter/data/db/tables/rounds_table.dart'; import 'package:drift/drift.dart'; @@ -9,13 +12,9 @@ import 'package:path_provider/path_provider.dart'; part 'database.g.dart'; -@DriftDatabase(tables: [ - GameSessionTable, - PlayerScoresTable, - PlayersTable, - RoundScoresTable, - RoundsTable -]) +@DriftDatabase( + tables: [GameSessionTable, PlayerTable, RoundScoresTable, RoundsTable], + daos: [GameSessionDao, PlayerDao, RoundsDao, RoundScoresDao]) class AppDatabase extends _$AppDatabase { AppDatabase([QueryExecutor? executor]) : super(executor ?? _openConnection()); diff --git a/lib/data/db/database.g.dart b/lib/data/db/database.g.dart index f37b311..4223cdc 100644 --- a/lib/data/db/database.g.dart +++ b/lib/data/db/database.g.dart @@ -497,41 +497,84 @@ class GameSessionTableCompanion extends UpdateCompanion { } } -class $PlayersTableTable extends PlayersTable - with TableInfo<$PlayersTableTable, PlayersTableData> { +class $PlayerTableTable extends PlayerTable + with TableInfo<$PlayerTableTable, PlayerTableData> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $PlayersTableTable(this.attachedDatabase, [this._alias]); - static const VerificationMeta _idMeta = const VerificationMeta('id'); + $PlayerTableTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _playerIdMeta = + const VerificationMeta('playerId'); @override late final GeneratedColumn playerId = GeneratedColumn( - 'id', aliasedName, false, + 'player_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, defaultConstraints: GeneratedColumn.constraintIsAlways( 'REFERENCES game_session_table (id) ON DELETE CASCADE')); + static const VerificationMeta _gameIdMeta = const VerificationMeta('gameId'); + @override + late final GeneratedColumn gameId = GeneratedColumn( + 'game_id', aliasedName, false, + type: DriftSqlType.string, + requiredDuringInsert: true, + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'REFERENCES game_session_table (id) ON DELETE CASCADE')); + static const VerificationMeta _totalScoreMeta = + const VerificationMeta('totalScore'); + @override + late final GeneratedColumn totalScore = GeneratedColumn( + 'total_score', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: true); + static const VerificationMeta _positionMeta = + const VerificationMeta('position'); + @override + late final GeneratedColumn position = GeneratedColumn( + 'position', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: true); static const VerificationMeta _nameMeta = const VerificationMeta('name'); @override late final GeneratedColumn name = GeneratedColumn( 'name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); @override - List get $columns => [playerId, name]; + List get $columns => + [playerId, gameId, totalScore, position, name]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; - static const String $name = 'players_table'; + static const String $name = 'player_table'; @override - VerificationContext validateIntegrity(Insertable instance, + VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { final context = VerificationContext(); final data = instance.toColumns(true); - if (data.containsKey('id')) { - context.handle(_idMeta, playerId.isAcceptableOrUnknown(data['id']!, _idMeta)); + if (data.containsKey('player_id')) { + context.handle(_playerIdMeta, + playerId.isAcceptableOrUnknown(data['player_id']!, _playerIdMeta)); } else if (isInserting) { - context.missing(_idMeta); + context.missing(_playerIdMeta); + } + if (data.containsKey('game_id')) { + context.handle(_gameIdMeta, + gameId.isAcceptableOrUnknown(data['game_id']!, _gameIdMeta)); + } else if (isInserting) { + context.missing(_gameIdMeta); + } + if (data.containsKey('total_score')) { + context.handle( + _totalScoreMeta, + totalScore.isAcceptableOrUnknown( + data['total_score']!, _totalScoreMeta)); + } else if (isInserting) { + context.missing(_totalScoreMeta); + } + if (data.containsKey('position')) { + context.handle(_positionMeta, + position.isAcceptableOrUnknown(data['position']!, _positionMeta)); + } else if (isInserting) { + context.missing(_positionMeta); } if (data.containsKey('name')) { context.handle( @@ -545,47 +588,69 @@ class $PlayersTableTable extends PlayersTable @override Set get $primaryKey => const {}; @override - PlayersTableData map(Map data, {String? tablePrefix}) { + PlayerTableData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; - return PlayersTableData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, + return PlayerTableData( + playerId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}player_id'])!, + gameId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}game_id'])!, + totalScore: attachedDatabase.typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}total_score'])!, + position: attachedDatabase.typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}position'])!, name: attachedDatabase.typeMapping .read(DriftSqlType.string, data['${effectivePrefix}name'])!, ); } @override - $PlayersTableTable createAlias(String alias) { - return $PlayersTableTable(attachedDatabase, alias); + $PlayerTableTable createAlias(String alias) { + return $PlayerTableTable(attachedDatabase, alias); } } -class PlayersTableData extends DataClass - implements Insertable { - final String id; +class PlayerTableData extends DataClass implements Insertable { + final String playerId; + final String gameId; + final int totalScore; + final int position; final String name; - const PlayersTableData({required this.id, required this.name}); + const PlayerTableData( + {required this.playerId, + required this.gameId, + required this.totalScore, + required this.position, + required this.name}); @override Map toColumns(bool nullToAbsent) { final map = {}; - map['id'] = Variable(id); + map['player_id'] = Variable(playerId); + map['game_id'] = Variable(gameId); + map['total_score'] = Variable(totalScore); + map['position'] = Variable(position); map['name'] = Variable(name); return map; } - PlayersTableCompanion toCompanion(bool nullToAbsent) { - return PlayersTableCompanion( - id: Value(id), + PlayerTableCompanion toCompanion(bool nullToAbsent) { + return PlayerTableCompanion( + playerId: Value(playerId), + gameId: Value(gameId), + totalScore: Value(totalScore), + position: Value(position), name: Value(name), ); } - factory PlayersTableData.fromJson(Map json, + factory PlayerTableData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; - return PlayersTableData( - id: serializer.fromJson(json['id']), + return PlayerTableData( + playerId: serializer.fromJson(json['playerId']), + gameId: serializer.fromJson(json['gameId']), + totalScore: serializer.fromJson(json['totalScore']), + position: serializer.fromJson(json['position']), name: serializer.fromJson(json['name']), ); } @@ -593,72 +658,120 @@ class PlayersTableData extends DataClass Map toJson({ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return { - 'id': serializer.toJson(id), + 'playerId': serializer.toJson(playerId), + 'gameId': serializer.toJson(gameId), + 'totalScore': serializer.toJson(totalScore), + 'position': serializer.toJson(position), 'name': serializer.toJson(name), }; } - PlayersTableData copyWith({String? id, String? name}) => PlayersTableData( - id: id ?? this.id, + PlayerTableData copyWith( + {String? playerId, + String? gameId, + int? totalScore, + int? position, + String? name}) => + PlayerTableData( + playerId: playerId ?? this.playerId, + gameId: gameId ?? this.gameId, + totalScore: totalScore ?? this.totalScore, + position: position ?? this.position, name: name ?? this.name, ); - PlayersTableData copyWithCompanion(PlayersTableCompanion data) { - return PlayersTableData( - id: data.id.present ? data.id.value : this.id, + PlayerTableData copyWithCompanion(PlayerTableCompanion data) { + return PlayerTableData( + playerId: data.playerId.present ? data.playerId.value : this.playerId, + gameId: data.gameId.present ? data.gameId.value : this.gameId, + totalScore: + data.totalScore.present ? data.totalScore.value : this.totalScore, + position: data.position.present ? data.position.value : this.position, name: data.name.present ? data.name.value : this.name, ); } @override String toString() { - return (StringBuffer('PlayersTableData(') - ..write('id: $id, ') + return (StringBuffer('PlayerTableData(') + ..write('playerId: $playerId, ') + ..write('gameId: $gameId, ') + ..write('totalScore: $totalScore, ') + ..write('position: $position, ') ..write('name: $name') ..write(')')) .toString(); } @override - int get hashCode => Object.hash(id, name); + int get hashCode => Object.hash(playerId, gameId, totalScore, position, name); @override bool operator ==(Object other) => identical(this, other) || - (other is PlayersTableData && - other.id == this.id && + (other is PlayerTableData && + other.playerId == this.playerId && + other.gameId == this.gameId && + other.totalScore == this.totalScore && + other.position == this.position && other.name == this.name); } -class PlayersTableCompanion extends UpdateCompanion { - final Value id; +class PlayerTableCompanion extends UpdateCompanion { + final Value playerId; + final Value gameId; + final Value totalScore; + final Value position; final Value name; final Value rowid; - const PlayersTableCompanion({ - this.id = const Value.absent(), + const PlayerTableCompanion({ + this.playerId = const Value.absent(), + this.gameId = const Value.absent(), + this.totalScore = const Value.absent(), + this.position = const Value.absent(), this.name = const Value.absent(), this.rowid = const Value.absent(), }); - PlayersTableCompanion.insert({ - required String id, + PlayerTableCompanion.insert({ + required String playerId, + required String gameId, + required int totalScore, + required int position, required String name, this.rowid = const Value.absent(), - }) : id = Value(id), + }) : playerId = Value(playerId), + gameId = Value(gameId), + totalScore = Value(totalScore), + position = Value(position), name = Value(name); - static Insertable custom({ - Expression? id, + static Insertable custom({ + Expression? playerId, + Expression? gameId, + Expression? totalScore, + Expression? position, Expression? name, Expression? rowid, }) { return RawValuesInsertable({ - if (id != null) 'id': id, + if (playerId != null) 'player_id': playerId, + if (gameId != null) 'game_id': gameId, + if (totalScore != null) 'total_score': totalScore, + if (position != null) 'position': position, if (name != null) 'name': name, if (rowid != null) 'rowid': rowid, }); } - PlayersTableCompanion copyWith( - {Value? id, Value? name, Value? rowid}) { - return PlayersTableCompanion( - id: id ?? this.id, + PlayerTableCompanion copyWith( + {Value? playerId, + Value? gameId, + Value? totalScore, + Value? position, + Value? name, + Value? rowid}) { + return PlayerTableCompanion( + playerId: playerId ?? this.playerId, + gameId: gameId ?? this.gameId, + totalScore: totalScore ?? this.totalScore, + position: position ?? this.position, name: name ?? this.name, rowid: rowid ?? this.rowid, ); @@ -667,8 +780,17 @@ class PlayersTableCompanion extends UpdateCompanion { @override Map toColumns(bool nullToAbsent) { final map = {}; - if (id.present) { - map['id'] = Variable(id.value); + if (playerId.present) { + map['player_id'] = Variable(playerId.value); + } + if (gameId.present) { + map['game_id'] = Variable(gameId.value); + } + if (totalScore.present) { + map['total_score'] = Variable(totalScore.value); + } + if (position.present) { + map['position'] = Variable(position.value); } if (name.present) { map['name'] = Variable(name.value); @@ -681,258 +803,12 @@ class PlayersTableCompanion extends UpdateCompanion { @override String toString() { - return (StringBuffer('PlayersTableCompanion(') - ..write('id: $id, ') - ..write('name: $name, ') - ..write('rowid: $rowid') - ..write(')')) - .toString(); - } -} - -class $PlayerScoresTableTable extends PlayerScoresTable - with TableInfo<$PlayerScoresTableTable, PlayerScoresTableData> { - @override - final GeneratedDatabase attachedDatabase; - final String? _alias; - $PlayerScoresTableTable(this.attachedDatabase, [this._alias]); - static const VerificationMeta _roundIdMeta = - const VerificationMeta('roundId'); - @override - late final GeneratedColumn roundId = GeneratedColumn( - 'round_id', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES game_session_table (id) ON DELETE CASCADE')); - static const VerificationMeta _playerNameMeta = - const VerificationMeta('playerName'); - @override - late final GeneratedColumn playerName = GeneratedColumn( - 'player_name', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES players_table (name)')); - static const VerificationMeta _totalScoreMeta = - const VerificationMeta('totalScore'); - @override - late final GeneratedColumn totalScore = GeneratedColumn( - 'total_score', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - @override - List get $columns => [roundId, playerName, totalScore]; - @override - String get aliasedName => _alias ?? actualTableName; - @override - String get actualTableName => $name; - static const String $name = 'player_scores_table'; - @override - VerificationContext validateIntegrity( - Insertable instance, - {bool isInserting = false}) { - final context = VerificationContext(); - final data = instance.toColumns(true); - if (data.containsKey('round_id')) { - context.handle(_roundIdMeta, - roundId.isAcceptableOrUnknown(data['round_id']!, _roundIdMeta)); - } else if (isInserting) { - context.missing(_roundIdMeta); - } - if (data.containsKey('player_name')) { - context.handle( - _playerNameMeta, - playerName.isAcceptableOrUnknown( - data['player_name']!, _playerNameMeta)); - } else if (isInserting) { - context.missing(_playerNameMeta); - } - if (data.containsKey('total_score')) { - context.handle( - _totalScoreMeta, - totalScore.isAcceptableOrUnknown( - data['total_score']!, _totalScoreMeta)); - } else if (isInserting) { - context.missing(_totalScoreMeta); - } - return context; - } - - @override - Set get $primaryKey => {roundId, playerName}; - @override - PlayerScoresTableData map(Map data, {String? tablePrefix}) { - final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; - return PlayerScoresTableData( - roundId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}round_id'])!, - playerName: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}player_name'])!, - totalScore: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}total_score'])!, - ); - } - - @override - $PlayerScoresTableTable createAlias(String alias) { - return $PlayerScoresTableTable(attachedDatabase, alias); - } -} - -class PlayerScoresTableData extends DataClass - implements Insertable { - final String roundId; - final String playerName; - final int totalScore; - const PlayerScoresTableData( - {required this.roundId, - required this.playerName, - required this.totalScore}); - @override - Map toColumns(bool nullToAbsent) { - final map = {}; - map['round_id'] = Variable(roundId); - map['player_name'] = Variable(playerName); - map['total_score'] = Variable(totalScore); - return map; - } - - PlayerScoresTableCompanion toCompanion(bool nullToAbsent) { - return PlayerScoresTableCompanion( - roundId: Value(roundId), - playerName: Value(playerName), - totalScore: Value(totalScore), - ); - } - - factory PlayerScoresTableData.fromJson(Map json, - {ValueSerializer? serializer}) { - serializer ??= driftRuntimeOptions.defaultSerializer; - return PlayerScoresTableData( - roundId: serializer.fromJson(json['roundId']), - playerName: serializer.fromJson(json['playerName']), - totalScore: serializer.fromJson(json['totalScore']), - ); - } - @override - Map toJson({ValueSerializer? serializer}) { - serializer ??= driftRuntimeOptions.defaultSerializer; - return { - 'roundId': serializer.toJson(roundId), - 'playerName': serializer.toJson(playerName), - 'totalScore': serializer.toJson(totalScore), - }; - } - - PlayerScoresTableData copyWith( - {String? roundId, String? playerName, int? totalScore}) => - PlayerScoresTableData( - roundId: roundId ?? this.roundId, - playerName: playerName ?? this.playerName, - totalScore: totalScore ?? this.totalScore, - ); - PlayerScoresTableData copyWithCompanion(PlayerScoresTableCompanion data) { - return PlayerScoresTableData( - roundId: data.roundId.present ? data.roundId.value : this.roundId, - playerName: - data.playerName.present ? data.playerName.value : this.playerName, - totalScore: - data.totalScore.present ? data.totalScore.value : this.totalScore, - ); - } - - @override - String toString() { - return (StringBuffer('PlayerScoresTableData(') - ..write('roundId: $roundId, ') - ..write('playerName: $playerName, ') - ..write('totalScore: $totalScore') - ..write(')')) - .toString(); - } - - @override - int get hashCode => Object.hash(roundId, playerName, totalScore); - @override - bool operator ==(Object other) => - identical(this, other) || - (other is PlayerScoresTableData && - other.roundId == this.roundId && - other.playerName == this.playerName && - other.totalScore == this.totalScore); -} - -class PlayerScoresTableCompanion - extends UpdateCompanion { - final Value roundId; - final Value playerName; - final Value totalScore; - final Value rowid; - const PlayerScoresTableCompanion({ - this.roundId = const Value.absent(), - this.playerName = const Value.absent(), - this.totalScore = const Value.absent(), - this.rowid = const Value.absent(), - }); - PlayerScoresTableCompanion.insert({ - required String roundId, - required String playerName, - required int totalScore, - this.rowid = const Value.absent(), - }) : roundId = Value(roundId), - playerName = Value(playerName), - totalScore = Value(totalScore); - static Insertable custom({ - Expression? roundId, - Expression? playerName, - Expression? totalScore, - Expression? rowid, - }) { - return RawValuesInsertable({ - if (roundId != null) 'round_id': roundId, - if (playerName != null) 'player_name': playerName, - if (totalScore != null) 'total_score': totalScore, - if (rowid != null) 'rowid': rowid, - }); - } - - PlayerScoresTableCompanion copyWith( - {Value? roundId, - Value? playerName, - Value? totalScore, - Value? rowid}) { - return PlayerScoresTableCompanion( - roundId: roundId ?? this.roundId, - playerName: playerName ?? this.playerName, - totalScore: totalScore ?? this.totalScore, - rowid: rowid ?? this.rowid, - ); - } - - @override - Map toColumns(bool nullToAbsent) { - final map = {}; - if (roundId.present) { - map['round_id'] = Variable(roundId.value); - } - if (playerName.present) { - map['player_name'] = Variable(playerName.value); - } - if (totalScore.present) { - map['total_score'] = Variable(totalScore.value); - } - if (rowid.present) { - map['rowid'] = Variable(rowid.value); - } - return map; - } - - @override - String toString() { - return (StringBuffer('PlayerScoresTableCompanion(') - ..write('roundId: $roundId, ') - ..write('playerName: $playerName, ') + return (StringBuffer('PlayerTableCompanion(') + ..write('playerId: $playerId, ') + ..write('gameId: $gameId, ') ..write('totalScore: $totalScore, ') + ..write('position: $position, ') + ..write('name: $name, ') ..write('rowid: $rowid') ..write(')')) .toString(); @@ -945,10 +821,11 @@ class $RoundsTableTable extends RoundsTable final GeneratedDatabase attachedDatabase; final String? _alias; $RoundsTableTable(this.attachedDatabase, [this._alias]); - static const VerificationMeta _idMeta = const VerificationMeta('id'); + static const VerificationMeta _roundIdMeta = + const VerificationMeta('roundId'); @override - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, + late final GeneratedColumn roundId = GeneratedColumn( + 'round_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); static const VerificationMeta _gameIdMeta = const VerificationMeta('gameId'); @override @@ -964,15 +841,21 @@ class $RoundsTableTable extends RoundsTable late final GeneratedColumn roundNumber = GeneratedColumn( 'round_number', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); - static const VerificationMeta _kamikazePlayerMeta = - const VerificationMeta('kamikazePlayer'); + static const VerificationMeta _caboPlayerIndexMeta = + const VerificationMeta('caboPlayerIndex'); @override - late final GeneratedColumn kamikazePlayer = GeneratedColumn( - 'kamikaze_player', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn caboPlayerIndex = GeneratedColumn( + 'cabo_player_index', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: true); + static const VerificationMeta _kamikazePlayerIndexMeta = + const VerificationMeta('kamikazePlayerIndex'); + @override + late final GeneratedColumn kamikazePlayerIndex = GeneratedColumn( + 'kamikaze_player_index', aliasedName, true, + type: DriftSqlType.int, requiredDuringInsert: false); @override List get $columns => - [id, gameId, roundNumber, kamikazePlayer]; + [roundId, gameId, roundNumber, caboPlayerIndex, kamikazePlayerIndex]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -983,10 +866,11 @@ class $RoundsTableTable extends RoundsTable {bool isInserting = false}) { final context = VerificationContext(); final data = instance.toColumns(true); - if (data.containsKey('id')) { - context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + if (data.containsKey('round_id')) { + context.handle(_roundIdMeta, + roundId.isAcceptableOrUnknown(data['round_id']!, _roundIdMeta)); } else if (isInserting) { - context.missing(_idMeta); + context.missing(_roundIdMeta); } if (data.containsKey('game_id')) { context.handle(_gameIdMeta, @@ -1002,29 +886,39 @@ class $RoundsTableTable extends RoundsTable } else if (isInserting) { context.missing(_roundNumberMeta); } - if (data.containsKey('kamikaze_player')) { + if (data.containsKey('cabo_player_index')) { context.handle( - _kamikazePlayerMeta, - kamikazePlayer.isAcceptableOrUnknown( - data['kamikaze_player']!, _kamikazePlayerMeta)); + _caboPlayerIndexMeta, + caboPlayerIndex.isAcceptableOrUnknown( + data['cabo_player_index']!, _caboPlayerIndexMeta)); + } else if (isInserting) { + context.missing(_caboPlayerIndexMeta); + } + if (data.containsKey('kamikaze_player_index')) { + context.handle( + _kamikazePlayerIndexMeta, + kamikazePlayerIndex.isAcceptableOrUnknown( + data['kamikaze_player_index']!, _kamikazePlayerIndexMeta)); } return context; } @override - Set get $primaryKey => {id}; + Set get $primaryKey => {roundId}; @override RoundsTableData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RoundsTableData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, + roundId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}round_id'])!, gameId: attachedDatabase.typeMapping .read(DriftSqlType.string, data['${effectivePrefix}game_id'])!, roundNumber: attachedDatabase.typeMapping .read(DriftSqlType.int, data['${effectivePrefix}round_number'])!, - kamikazePlayer: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}kamikaze_player']), + caboPlayerIndex: attachedDatabase.typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}cabo_player_index'])!, + kamikazePlayerIndex: attachedDatabase.typeMapping.read( + DriftSqlType.int, data['${effectivePrefix}kamikaze_player_index']), ); } @@ -1035,35 +929,39 @@ class $RoundsTableTable extends RoundsTable } class RoundsTableData extends DataClass implements Insertable { - final String id; + final String roundId; final String gameId; final int roundNumber; - final String? kamikazePlayer; + final int caboPlayerIndex; + final int? kamikazePlayerIndex; const RoundsTableData( - {required this.id, + {required this.roundId, required this.gameId, required this.roundNumber, - this.kamikazePlayer}); + required this.caboPlayerIndex, + this.kamikazePlayerIndex}); @override Map toColumns(bool nullToAbsent) { final map = {}; - map['id'] = Variable(id); + map['round_id'] = Variable(roundId); map['game_id'] = Variable(gameId); map['round_number'] = Variable(roundNumber); - if (!nullToAbsent || kamikazePlayer != null) { - map['kamikaze_player'] = Variable(kamikazePlayer); + map['cabo_player_index'] = Variable(caboPlayerIndex); + if (!nullToAbsent || kamikazePlayerIndex != null) { + map['kamikaze_player_index'] = Variable(kamikazePlayerIndex); } return map; } RoundsTableCompanion toCompanion(bool nullToAbsent) { return RoundsTableCompanion( - id: Value(id), + roundId: Value(roundId), gameId: Value(gameId), roundNumber: Value(roundNumber), - kamikazePlayer: kamikazePlayer == null && nullToAbsent + caboPlayerIndex: Value(caboPlayerIndex), + kamikazePlayerIndex: kamikazePlayerIndex == null && nullToAbsent ? const Value.absent() - : Value(kamikazePlayer), + : Value(kamikazePlayerIndex), ); } @@ -1071,119 +969,140 @@ class RoundsTableData extends DataClass implements Insertable { {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RoundsTableData( - id: serializer.fromJson(json['id']), + roundId: serializer.fromJson(json['roundId']), gameId: serializer.fromJson(json['gameId']), roundNumber: serializer.fromJson(json['roundNumber']), - kamikazePlayer: serializer.fromJson(json['kamikazePlayer']), + caboPlayerIndex: serializer.fromJson(json['caboPlayerIndex']), + kamikazePlayerIndex: + serializer.fromJson(json['kamikazePlayerIndex']), ); } @override Map toJson({ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return { - 'id': serializer.toJson(id), + 'roundId': serializer.toJson(roundId), 'gameId': serializer.toJson(gameId), 'roundNumber': serializer.toJson(roundNumber), - 'kamikazePlayer': serializer.toJson(kamikazePlayer), + 'caboPlayerIndex': serializer.toJson(caboPlayerIndex), + 'kamikazePlayerIndex': serializer.toJson(kamikazePlayerIndex), }; } RoundsTableData copyWith( - {String? id, + {String? roundId, String? gameId, int? roundNumber, - Value kamikazePlayer = const Value.absent()}) => + int? caboPlayerIndex, + Value kamikazePlayerIndex = const Value.absent()}) => RoundsTableData( - id: id ?? this.id, + roundId: roundId ?? this.roundId, gameId: gameId ?? this.gameId, roundNumber: roundNumber ?? this.roundNumber, - kamikazePlayer: - kamikazePlayer.present ? kamikazePlayer.value : this.kamikazePlayer, + caboPlayerIndex: caboPlayerIndex ?? this.caboPlayerIndex, + kamikazePlayerIndex: kamikazePlayerIndex.present + ? kamikazePlayerIndex.value + : this.kamikazePlayerIndex, ); RoundsTableData copyWithCompanion(RoundsTableCompanion data) { return RoundsTableData( - id: data.id.present ? data.id.value : this.id, + roundId: data.roundId.present ? data.roundId.value : this.roundId, gameId: data.gameId.present ? data.gameId.value : this.gameId, roundNumber: data.roundNumber.present ? data.roundNumber.value : this.roundNumber, - kamikazePlayer: data.kamikazePlayer.present - ? data.kamikazePlayer.value - : this.kamikazePlayer, + caboPlayerIndex: data.caboPlayerIndex.present + ? data.caboPlayerIndex.value + : this.caboPlayerIndex, + kamikazePlayerIndex: data.kamikazePlayerIndex.present + ? data.kamikazePlayerIndex.value + : this.kamikazePlayerIndex, ); } @override String toString() { return (StringBuffer('RoundsTableData(') - ..write('id: $id, ') + ..write('roundId: $roundId, ') ..write('gameId: $gameId, ') ..write('roundNumber: $roundNumber, ') - ..write('kamikazePlayer: $kamikazePlayer') + ..write('caboPlayerIndex: $caboPlayerIndex, ') + ..write('kamikazePlayerIndex: $kamikazePlayerIndex') ..write(')')) .toString(); } @override - int get hashCode => Object.hash(id, gameId, roundNumber, kamikazePlayer); + int get hashCode => Object.hash( + roundId, gameId, roundNumber, caboPlayerIndex, kamikazePlayerIndex); @override bool operator ==(Object other) => identical(this, other) || (other is RoundsTableData && - other.id == this.id && + other.roundId == this.roundId && other.gameId == this.gameId && other.roundNumber == this.roundNumber && - other.kamikazePlayer == this.kamikazePlayer); + other.caboPlayerIndex == this.caboPlayerIndex && + other.kamikazePlayerIndex == this.kamikazePlayerIndex); } class RoundsTableCompanion extends UpdateCompanion { - final Value id; + final Value roundId; final Value gameId; final Value roundNumber; - final Value kamikazePlayer; + final Value caboPlayerIndex; + final Value kamikazePlayerIndex; final Value rowid; const RoundsTableCompanion({ - this.id = const Value.absent(), + this.roundId = const Value.absent(), this.gameId = const Value.absent(), this.roundNumber = const Value.absent(), - this.kamikazePlayer = const Value.absent(), + this.caboPlayerIndex = const Value.absent(), + this.kamikazePlayerIndex = const Value.absent(), this.rowid = const Value.absent(), }); RoundsTableCompanion.insert({ - required String id, + required String roundId, required String gameId, required int roundNumber, - this.kamikazePlayer = const Value.absent(), + required int caboPlayerIndex, + this.kamikazePlayerIndex = const Value.absent(), this.rowid = const Value.absent(), - }) : id = Value(id), + }) : roundId = Value(roundId), gameId = Value(gameId), - roundNumber = Value(roundNumber); + roundNumber = Value(roundNumber), + caboPlayerIndex = Value(caboPlayerIndex); static Insertable custom({ - Expression? id, + Expression? roundId, Expression? gameId, Expression? roundNumber, - Expression? kamikazePlayer, + Expression? caboPlayerIndex, + Expression? kamikazePlayerIndex, Expression? rowid, }) { return RawValuesInsertable({ - if (id != null) 'id': id, + if (roundId != null) 'round_id': roundId, if (gameId != null) 'game_id': gameId, if (roundNumber != null) 'round_number': roundNumber, - if (kamikazePlayer != null) 'kamikaze_player': kamikazePlayer, + if (caboPlayerIndex != null) 'cabo_player_index': caboPlayerIndex, + if (kamikazePlayerIndex != null) + 'kamikaze_player_index': kamikazePlayerIndex, if (rowid != null) 'rowid': rowid, }); } RoundsTableCompanion copyWith( - {Value? id, + {Value? roundId, Value? gameId, Value? roundNumber, - Value? kamikazePlayer, + Value? caboPlayerIndex, + Value? kamikazePlayerIndex, Value? rowid}) { return RoundsTableCompanion( - id: id ?? this.id, + roundId: roundId ?? this.roundId, gameId: gameId ?? this.gameId, roundNumber: roundNumber ?? this.roundNumber, - kamikazePlayer: kamikazePlayer ?? this.kamikazePlayer, + caboPlayerIndex: caboPlayerIndex ?? this.caboPlayerIndex, + kamikazePlayerIndex: kamikazePlayerIndex ?? this.kamikazePlayerIndex, rowid: rowid ?? this.rowid, ); } @@ -1191,8 +1110,8 @@ class RoundsTableCompanion extends UpdateCompanion { @override Map toColumns(bool nullToAbsent) { final map = {}; - if (id.present) { - map['id'] = Variable(id.value); + if (roundId.present) { + map['round_id'] = Variable(roundId.value); } if (gameId.present) { map['game_id'] = Variable(gameId.value); @@ -1200,8 +1119,11 @@ class RoundsTableCompanion extends UpdateCompanion { if (roundNumber.present) { map['round_number'] = Variable(roundNumber.value); } - if (kamikazePlayer.present) { - map['kamikaze_player'] = Variable(kamikazePlayer.value); + if (caboPlayerIndex.present) { + map['cabo_player_index'] = Variable(caboPlayerIndex.value); + } + if (kamikazePlayerIndex.present) { + map['kamikaze_player_index'] = Variable(kamikazePlayerIndex.value); } if (rowid.present) { map['rowid'] = Variable(rowid.value); @@ -1212,10 +1134,11 @@ class RoundsTableCompanion extends UpdateCompanion { @override String toString() { return (StringBuffer('RoundsTableCompanion(') - ..write('id: $id, ') + ..write('roundId: $roundId, ') ..write('gameId: $gameId, ') ..write('roundNumber: $roundNumber, ') - ..write('kamikazePlayer: $kamikazePlayer, ') + ..write('caboPlayerIndex: $caboPlayerIndex, ') + ..write('kamikazePlayerIndex: $kamikazePlayerIndex, ') ..write('rowid: $rowid') ..write(')')) .toString(); @@ -1236,12 +1159,12 @@ class $RoundScoresTableTable extends RoundScoresTable type: DriftSqlType.string, requiredDuringInsert: true, defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES rounds_table (id) ON DELETE CASCADE')); - static const VerificationMeta _playerNameMeta = - const VerificationMeta('playerName'); + 'REFERENCES rounds_table (round_id) ON DELETE CASCADE')); + static const VerificationMeta _playerIdMeta = + const VerificationMeta('playerId'); @override - late final GeneratedColumn playerName = GeneratedColumn( - 'player_name', aliasedName, false, + late final GeneratedColumn playerId = GeneratedColumn( + 'player_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); static const VerificationMeta _scoreMeta = const VerificationMeta('score'); @override @@ -1255,8 +1178,7 @@ class $RoundScoresTableTable extends RoundScoresTable 'score_update', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); @override - List get $columns => - [roundId, playerName, score, scoreUpdate]; + List get $columns => [roundId, playerId, score, scoreUpdate]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -1274,13 +1196,11 @@ class $RoundScoresTableTable extends RoundScoresTable } else if (isInserting) { context.missing(_roundIdMeta); } - if (data.containsKey('player_name')) { - context.handle( - _playerNameMeta, - playerName.isAcceptableOrUnknown( - data['player_name']!, _playerNameMeta)); + if (data.containsKey('player_id')) { + context.handle(_playerIdMeta, + playerId.isAcceptableOrUnknown(data['player_id']!, _playerIdMeta)); } else if (isInserting) { - context.missing(_playerNameMeta); + context.missing(_playerIdMeta); } if (data.containsKey('score')) { context.handle( @@ -1300,15 +1220,15 @@ class $RoundScoresTableTable extends RoundScoresTable } @override - Set get $primaryKey => {roundId, playerName}; + Set get $primaryKey => {roundId, playerId}; @override RoundScoresTableData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RoundScoresTableData( roundId: attachedDatabase.typeMapping .read(DriftSqlType.string, data['${effectivePrefix}round_id'])!, - playerName: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}player_name'])!, + playerId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}player_id'])!, score: attachedDatabase.typeMapping .read(DriftSqlType.int, data['${effectivePrefix}score'])!, scoreUpdate: attachedDatabase.typeMapping @@ -1325,19 +1245,19 @@ class $RoundScoresTableTable extends RoundScoresTable class RoundScoresTableData extends DataClass implements Insertable { final String roundId; - final String playerName; + final String playerId; final int score; final int scoreUpdate; const RoundScoresTableData( {required this.roundId, - required this.playerName, + required this.playerId, required this.score, required this.scoreUpdate}); @override Map toColumns(bool nullToAbsent) { final map = {}; map['round_id'] = Variable(roundId); - map['player_name'] = Variable(playerName); + map['player_id'] = Variable(playerId); map['score'] = Variable(score); map['score_update'] = Variable(scoreUpdate); return map; @@ -1346,7 +1266,7 @@ class RoundScoresTableData extends DataClass RoundScoresTableCompanion toCompanion(bool nullToAbsent) { return RoundScoresTableCompanion( roundId: Value(roundId), - playerName: Value(playerName), + playerId: Value(playerId), score: Value(score), scoreUpdate: Value(scoreUpdate), ); @@ -1357,7 +1277,7 @@ class RoundScoresTableData extends DataClass serializer ??= driftRuntimeOptions.defaultSerializer; return RoundScoresTableData( roundId: serializer.fromJson(json['roundId']), - playerName: serializer.fromJson(json['playerName']), + playerId: serializer.fromJson(json['playerId']), score: serializer.fromJson(json['score']), scoreUpdate: serializer.fromJson(json['scoreUpdate']), ); @@ -1367,28 +1287,24 @@ class RoundScoresTableData extends DataClass serializer ??= driftRuntimeOptions.defaultSerializer; return { 'roundId': serializer.toJson(roundId), - 'playerName': serializer.toJson(playerName), + 'playerId': serializer.toJson(playerId), 'score': serializer.toJson(score), 'scoreUpdate': serializer.toJson(scoreUpdate), }; } RoundScoresTableData copyWith( - {String? roundId, - String? playerName, - int? score, - int? scoreUpdate}) => + {String? roundId, String? playerId, int? score, int? scoreUpdate}) => RoundScoresTableData( roundId: roundId ?? this.roundId, - playerName: playerName ?? this.playerName, + playerId: playerId ?? this.playerId, score: score ?? this.score, scoreUpdate: scoreUpdate ?? this.scoreUpdate, ); RoundScoresTableData copyWithCompanion(RoundScoresTableCompanion data) { return RoundScoresTableData( roundId: data.roundId.present ? data.roundId.value : this.roundId, - playerName: - data.playerName.present ? data.playerName.value : this.playerName, + playerId: data.playerId.present ? data.playerId.value : this.playerId, score: data.score.present ? data.score.value : this.score, scoreUpdate: data.scoreUpdate.present ? data.scoreUpdate.value : this.scoreUpdate, @@ -1399,7 +1315,7 @@ class RoundScoresTableData extends DataClass String toString() { return (StringBuffer('RoundScoresTableData(') ..write('roundId: $roundId, ') - ..write('playerName: $playerName, ') + ..write('playerId: $playerId, ') ..write('score: $score, ') ..write('scoreUpdate: $scoreUpdate') ..write(')')) @@ -1407,50 +1323,50 @@ class RoundScoresTableData extends DataClass } @override - int get hashCode => Object.hash(roundId, playerName, score, scoreUpdate); + int get hashCode => Object.hash(roundId, playerId, score, scoreUpdate); @override bool operator ==(Object other) => identical(this, other) || (other is RoundScoresTableData && other.roundId == this.roundId && - other.playerName == this.playerName && + other.playerId == this.playerId && other.score == this.score && other.scoreUpdate == this.scoreUpdate); } class RoundScoresTableCompanion extends UpdateCompanion { final Value roundId; - final Value playerName; + final Value playerId; final Value score; final Value scoreUpdate; final Value rowid; const RoundScoresTableCompanion({ this.roundId = const Value.absent(), - this.playerName = const Value.absent(), + this.playerId = const Value.absent(), this.score = const Value.absent(), this.scoreUpdate = const Value.absent(), this.rowid = const Value.absent(), }); RoundScoresTableCompanion.insert({ required String roundId, - required String playerName, + required String playerId, required int score, required int scoreUpdate, this.rowid = const Value.absent(), }) : roundId = Value(roundId), - playerName = Value(playerName), + playerId = Value(playerId), score = Value(score), scoreUpdate = Value(scoreUpdate); static Insertable custom({ Expression? roundId, - Expression? playerName, + Expression? playerId, Expression? score, Expression? scoreUpdate, Expression? rowid, }) { return RawValuesInsertable({ if (roundId != null) 'round_id': roundId, - if (playerName != null) 'player_name': playerName, + if (playerId != null) 'player_id': playerId, if (score != null) 'score': score, if (scoreUpdate != null) 'score_update': scoreUpdate, if (rowid != null) 'rowid': rowid, @@ -1459,13 +1375,13 @@ class RoundScoresTableCompanion extends UpdateCompanion { RoundScoresTableCompanion copyWith( {Value? roundId, - Value? playerName, + Value? playerId, Value? score, Value? scoreUpdate, Value? rowid}) { return RoundScoresTableCompanion( roundId: roundId ?? this.roundId, - playerName: playerName ?? this.playerName, + playerId: playerId ?? this.playerId, score: score ?? this.score, scoreUpdate: scoreUpdate ?? this.scoreUpdate, rowid: rowid ?? this.rowid, @@ -1478,8 +1394,8 @@ class RoundScoresTableCompanion extends UpdateCompanion { if (roundId.present) { map['round_id'] = Variable(roundId.value); } - if (playerName.present) { - map['player_name'] = Variable(playerName.value); + if (playerId.present) { + map['player_id'] = Variable(playerId.value); } if (score.present) { map['score'] = Variable(score.value); @@ -1497,7 +1413,7 @@ class RoundScoresTableCompanion extends UpdateCompanion { String toString() { return (StringBuffer('RoundScoresTableCompanion(') ..write('roundId: $roundId, ') - ..write('playerName: $playerName, ') + ..write('playerId: $playerId, ') ..write('score: $score, ') ..write('scoreUpdate: $scoreUpdate, ') ..write('rowid: $rowid') @@ -1511,23 +1427,22 @@ abstract class _$AppDatabase extends GeneratedDatabase { $AppDatabaseManager get managers => $AppDatabaseManager(this); late final $GameSessionTableTable gameSessionTable = $GameSessionTableTable(this); - late final $PlayersTableTable playersTable = $PlayersTableTable(this); - late final $PlayerScoresTableTable playerScoresTable = - $PlayerScoresTableTable(this); + late final $PlayerTableTable playerTable = $PlayerTableTable(this); late final $RoundsTableTable roundsTable = $RoundsTableTable(this); late final $RoundScoresTableTable roundScoresTable = $RoundScoresTableTable(this); + late final GameSessionDao gameSessionDao = + GameSessionDao(this as AppDatabase); + late final PlayerDao playerDao = PlayerDao(this as AppDatabase); + late final RoundsDao roundsDao = RoundsDao(this as AppDatabase); + late final RoundScoresDao roundScoresDao = + RoundScoresDao(this as AppDatabase); @override Iterable> get allTables => allSchemaEntities.whereType>(); @override - List get allSchemaEntities => [ - gameSessionTable, - playersTable, - playerScoresTable, - roundsTable, - roundScoresTable - ]; + List get allSchemaEntities => + [gameSessionTable, playerTable, roundsTable, roundScoresTable]; @override StreamQueryUpdateRules get streamUpdateRules => const StreamQueryUpdateRules( [ @@ -1535,14 +1450,14 @@ abstract class _$AppDatabase extends GeneratedDatabase { on: TableUpdateQuery.onTableName('game_session_table', limitUpdateKind: UpdateKind.delete), result: [ - TableUpdate('players_table', kind: UpdateKind.delete), + TableUpdate('player_table', kind: UpdateKind.delete), ], ), WritePropagation( on: TableUpdateQuery.onTableName('game_session_table', limitUpdateKind: UpdateKind.delete), result: [ - TableUpdate('player_scores_table', kind: UpdateKind.delete), + TableUpdate('player_table', kind: UpdateKind.delete), ], ), WritePropagation( @@ -1595,39 +1510,6 @@ final class $$GameSessionTableTableReferences extends BaseReferences< $$GameSessionTableTableReferences( super.$_db, super.$_table, super.$_typedResult); - static MultiTypedResultKey<$PlayersTableTable, List> - _playersTableRefsTable(_$AppDatabase db) => MultiTypedResultKey.fromTable( - db.playersTable, - aliasName: - $_aliasNameGenerator(db.gameSessionTable.id, db.playersTable.playerId)); - - $$PlayersTableTableProcessedTableManager get playersTableRefs { - final manager = $$PlayersTableTableTableManager($_db, $_db.playersTable) - .filter((f) => f.id.id.sqlEquals($_itemColumn('id')!)); - - final cache = $_typedResult.readTableOrNull(_playersTableRefsTable($_db)); - return ProcessedTableManager( - manager.$state.copyWith(prefetchedData: cache)); - } - - static MultiTypedResultKey<$PlayerScoresTableTable, - List> _playerScoresTableRefsTable( - _$AppDatabase db) => - MultiTypedResultKey.fromTable(db.playerScoresTable, - aliasName: $_aliasNameGenerator( - db.gameSessionTable.id, db.playerScoresTable.roundId)); - - $$PlayerScoresTableTableProcessedTableManager get playerScoresTableRefs { - final manager = - $$PlayerScoresTableTableTableManager($_db, $_db.playerScoresTable) - .filter((f) => f.roundId.id.sqlEquals($_itemColumn('id')!)); - - final cache = - $_typedResult.readTableOrNull(_playerScoresTableRefsTable($_db)); - return ProcessedTableManager( - manager.$state.copyWith(prefetchedData: cache)); - } - static MultiTypedResultKey<$RoundsTableTable, List> _roundsTableRefsTable(_$AppDatabase db) => MultiTypedResultKey.fromTable(db.roundsTable, @@ -1682,48 +1564,6 @@ class $$GameSessionTableTableFilterComposer ColumnFilters get roundNumber => $composableBuilder( column: $table.roundNumber, builder: (column) => ColumnFilters(column)); - Expression playersTableRefs( - Expression Function($$PlayersTableTableFilterComposer f) f) { - final $$PlayersTableTableFilterComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.id, - referencedTable: $db.playersTable, - getReferencedColumn: (t) => t.playerId, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $$PlayersTableTableFilterComposer( - $db: $db, - $table: $db.playersTable, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); - return f(composer); - } - - Expression playerScoresTableRefs( - Expression Function($$PlayerScoresTableTableFilterComposer f) f) { - final $$PlayerScoresTableTableFilterComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.id, - referencedTable: $db.playerScoresTable, - getReferencedColumn: (t) => t.roundId, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $$PlayerScoresTableTableFilterComposer( - $db: $db, - $table: $db.playerScoresTable, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); - return f(composer); - } - Expression roundsTableRefs( Expression Function($$RoundsTableTableFilterComposer f) f) { final $$RoundsTableTableFilterComposer composer = $composerBuilder( @@ -1821,49 +1661,6 @@ class $$GameSessionTableTableAnnotationComposer GeneratedColumn get roundNumber => $composableBuilder( column: $table.roundNumber, builder: (column) => column); - Expression playersTableRefs( - Expression Function($$PlayersTableTableAnnotationComposer a) f) { - final $$PlayersTableTableAnnotationComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.id, - referencedTable: $db.playersTable, - getReferencedColumn: (t) => t.playerId, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $$PlayersTableTableAnnotationComposer( - $db: $db, - $table: $db.playersTable, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); - return f(composer); - } - - Expression playerScoresTableRefs( - Expression Function($$PlayerScoresTableTableAnnotationComposer a) f) { - final $$PlayerScoresTableTableAnnotationComposer composer = - $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.id, - referencedTable: $db.playerScoresTable, - getReferencedColumn: (t) => t.roundId, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $$PlayerScoresTableTableAnnotationComposer( - $db: $db, - $table: $db.playerScoresTable, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); - return f(composer); - } - Expression roundsTableRefs( Expression Function($$RoundsTableTableAnnotationComposer a) f) { final $$RoundsTableTableAnnotationComposer composer = $composerBuilder( @@ -1897,10 +1694,7 @@ class $$GameSessionTableTableTableManager extends RootTableManager< $$GameSessionTableTableUpdateCompanionBuilder, (GameSessionTableData, $$GameSessionTableTableReferences), GameSessionTableData, - PrefetchHooks Function( - {bool playersTableRefs, - bool playerScoresTableRefs, - bool roundsTableRefs})> { + PrefetchHooks Function({bool roundsTableRefs})> { $$GameSessionTableTableTableManager( _$AppDatabase db, $GameSessionTableTable table) : super(TableManagerState( @@ -1966,46 +1760,13 @@ class $$GameSessionTableTableTableManager extends RootTableManager< $$GameSessionTableTableReferences(db, table, e) )) .toList(), - prefetchHooksCallback: ( - {playersTableRefs = false, - playerScoresTableRefs = false, - roundsTableRefs = false}) { + prefetchHooksCallback: ({roundsTableRefs = false}) { return PrefetchHooks( db: db, - explicitlyWatchedTables: [ - if (playersTableRefs) db.playersTable, - if (playerScoresTableRefs) db.playerScoresTable, - if (roundsTableRefs) db.roundsTable - ], + explicitlyWatchedTables: [if (roundsTableRefs) db.roundsTable], addJoins: null, getPrefetchedDataCallback: (items) async { return [ - if (playersTableRefs) - await $_getPrefetchedData( - currentTable: table, - referencedTable: $$GameSessionTableTableReferences - ._playersTableRefsTable(db), - managerFromTypedResult: (p0) => - $$GameSessionTableTableReferences(db, table, p0) - .playersTableRefs, - referencedItemsForCurrentItem: - (item, referencedItems) => - referencedItems.where((e) => e.id == item.id), - typedResults: items), - if (playerScoresTableRefs) - await $_getPrefetchedData( - currentTable: table, - referencedTable: $$GameSessionTableTableReferences - ._playerScoresTableRefsTable(db), - managerFromTypedResult: (p0) => - $$GameSessionTableTableReferences(db, table, p0) - .playerScoresTableRefs, - referencedItemsForCurrentItem: (item, - referencedItems) => - referencedItems.where((e) => e.roundId == item.id), - typedResults: items), if (roundsTableRefs) await $_getPrefetchedData( @@ -2037,373 +1798,66 @@ typedef $$GameSessionTableTableProcessedTableManager = ProcessedTableManager< $$GameSessionTableTableUpdateCompanionBuilder, (GameSessionTableData, $$GameSessionTableTableReferences), GameSessionTableData, - PrefetchHooks Function( - {bool playersTableRefs, - bool playerScoresTableRefs, - bool roundsTableRefs})>; -typedef $$PlayersTableTableCreateCompanionBuilder = PlayersTableCompanion + PrefetchHooks Function({bool roundsTableRefs})>; +typedef $$PlayerTableTableCreateCompanionBuilder = PlayerTableCompanion Function({ - required String id, + required String playerId, + required String gameId, + required int totalScore, + required int position, required String name, Value rowid, }); -typedef $$PlayersTableTableUpdateCompanionBuilder = PlayersTableCompanion +typedef $$PlayerTableTableUpdateCompanionBuilder = PlayerTableCompanion Function({ - Value id, + Value playerId, + Value gameId, + Value totalScore, + Value position, Value name, Value rowid, }); -final class $$PlayersTableTableReferences extends BaseReferences<_$AppDatabase, - $PlayersTableTable, PlayersTableData> { - $$PlayersTableTableReferences(super.$_db, super.$_table, super.$_typedResult); +final class $$PlayerTableTableReferences + extends BaseReferences<_$AppDatabase, $PlayerTableTable, PlayerTableData> { + $$PlayerTableTableReferences(super.$_db, super.$_table, super.$_typedResult); - static $GameSessionTableTable _idTable(_$AppDatabase db) => - db.gameSessionTable.createAlias( - $_aliasNameGenerator(db.playersTable.playerId, db.gameSessionTable.id)); - - $$GameSessionTableTableProcessedTableManager get id { - final $_column = $_itemColumn('id')!; - - final manager = - $$GameSessionTableTableTableManager($_db, $_db.gameSessionTable) - .filter((f) => f.id.sqlEquals($_column)); - final item = $_typedResult.readTableOrNull(_idTable($_db)); - if (item == null) return manager; - return ProcessedTableManager( - manager.$state.copyWith(prefetchedData: [item])); - } - - static MultiTypedResultKey<$PlayerScoresTableTable, - List> _playerScoresTableRefsTable( - _$AppDatabase db) => - MultiTypedResultKey.fromTable(db.playerScoresTable, - aliasName: $_aliasNameGenerator( - db.playersTable.name, db.playerScoresTable.playerName)); - - $$PlayerScoresTableTableProcessedTableManager get playerScoresTableRefs { - final manager = $$PlayerScoresTableTableTableManager( - $_db, $_db.playerScoresTable) - .filter( - (f) => f.playerName.name.sqlEquals($_itemColumn('name')!)); - - final cache = - $_typedResult.readTableOrNull(_playerScoresTableRefsTable($_db)); - return ProcessedTableManager( - manager.$state.copyWith(prefetchedData: cache)); - } -} - -class $$PlayersTableTableFilterComposer - extends Composer<_$AppDatabase, $PlayersTableTable> { - $$PlayersTableTableFilterComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - ColumnFilters get name => $composableBuilder( - column: $table.name, builder: (column) => ColumnFilters(column)); - - $$GameSessionTableTableFilterComposer get id { - final $$GameSessionTableTableFilterComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.playerId, - referencedTable: $db.gameSessionTable, - getReferencedColumn: (t) => t.id, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $$GameSessionTableTableFilterComposer( - $db: $db, - $table: $db.gameSessionTable, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); - return composer; - } - - Expression playerScoresTableRefs( - Expression Function($$PlayerScoresTableTableFilterComposer f) f) { - final $$PlayerScoresTableTableFilterComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.name, - referencedTable: $db.playerScoresTable, - getReferencedColumn: (t) => t.playerName, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $$PlayerScoresTableTableFilterComposer( - $db: $db, - $table: $db.playerScoresTable, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); - return f(composer); - } -} - -class $$PlayersTableTableOrderingComposer - extends Composer<_$AppDatabase, $PlayersTableTable> { - $$PlayersTableTableOrderingComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - ColumnOrderings get name => $composableBuilder( - column: $table.name, builder: (column) => ColumnOrderings(column)); - - $$GameSessionTableTableOrderingComposer get id { - final $$GameSessionTableTableOrderingComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.playerId, - referencedTable: $db.gameSessionTable, - getReferencedColumn: (t) => t.id, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $$GameSessionTableTableOrderingComposer( - $db: $db, - $table: $db.gameSessionTable, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); - return composer; - } -} - -class $$PlayersTableTableAnnotationComposer - extends Composer<_$AppDatabase, $PlayersTableTable> { - $$PlayersTableTableAnnotationComposer({ - required super.$db, - required super.$table, - super.joinBuilder, - super.$addJoinBuilderToRootComposer, - super.$removeJoinBuilderFromRootComposer, - }); - GeneratedColumn get name => - $composableBuilder(column: $table.name, builder: (column) => column); - - $$GameSessionTableTableAnnotationComposer get id { - final $$GameSessionTableTableAnnotationComposer composer = $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.playerId, - referencedTable: $db.gameSessionTable, - getReferencedColumn: (t) => t.id, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $$GameSessionTableTableAnnotationComposer( - $db: $db, - $table: $db.gameSessionTable, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); - return composer; - } - - Expression playerScoresTableRefs( - Expression Function($$PlayerScoresTableTableAnnotationComposer a) f) { - final $$PlayerScoresTableTableAnnotationComposer composer = - $composerBuilder( - composer: this, - getCurrentColumn: (t) => t.name, - referencedTable: $db.playerScoresTable, - getReferencedColumn: (t) => t.playerName, - builder: (joinBuilder, - {$addJoinBuilderToRootComposer, - $removeJoinBuilderFromRootComposer}) => - $$PlayerScoresTableTableAnnotationComposer( - $db: $db, - $table: $db.playerScoresTable, - $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, - joinBuilder: joinBuilder, - $removeJoinBuilderFromRootComposer: - $removeJoinBuilderFromRootComposer, - )); - return f(composer); - } -} - -class $$PlayersTableTableTableManager extends RootTableManager< - _$AppDatabase, - $PlayersTableTable, - PlayersTableData, - $$PlayersTableTableFilterComposer, - $$PlayersTableTableOrderingComposer, - $$PlayersTableTableAnnotationComposer, - $$PlayersTableTableCreateCompanionBuilder, - $$PlayersTableTableUpdateCompanionBuilder, - (PlayersTableData, $$PlayersTableTableReferences), - PlayersTableData, - PrefetchHooks Function({bool id, bool playerScoresTableRefs})> { - $$PlayersTableTableTableManager(_$AppDatabase db, $PlayersTableTable table) - : super(TableManagerState( - db: db, - table: table, - createFilteringComposer: () => - $$PlayersTableTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => - $$PlayersTableTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => - $$PlayersTableTableAnnotationComposer($db: db, $table: table), - updateCompanionCallback: ({ - Value id = const Value.absent(), - Value name = const Value.absent(), - Value rowid = const Value.absent(), - }) => - PlayersTableCompanion( - id: id, - name: name, - rowid: rowid, - ), - createCompanionCallback: ({ - required String id, - required String name, - Value rowid = const Value.absent(), - }) => - PlayersTableCompanion.insert( - id: id, - name: name, - rowid: rowid, - ), - withReferenceMapper: (p0) => p0 - .map((e) => ( - e.readTable(table), - $$PlayersTableTableReferences(db, table, e) - )) - .toList(), - prefetchHooksCallback: ({id = false, playerScoresTableRefs = false}) { - return PrefetchHooks( - db: db, - explicitlyWatchedTables: [ - if (playerScoresTableRefs) db.playerScoresTable - ], - addJoins: < - T extends TableManagerState< - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic, - dynamic>>(state) { - if (id) { - state = state.withJoin( - currentTable: table, - currentColumn: table.playerId, - referencedTable: $$PlayersTableTableReferences._idTable(db), - referencedColumn: - $$PlayersTableTableReferences._idTable(db).id, - ) as T; - } - - return state; - }, - getPrefetchedDataCallback: (items) async { - return [ - if (playerScoresTableRefs) - await $_getPrefetchedData( - currentTable: table, - referencedTable: $$PlayersTableTableReferences - ._playerScoresTableRefsTable(db), - managerFromTypedResult: (p0) => - $$PlayersTableTableReferences(db, table, p0) - .playerScoresTableRefs, - referencedItemsForCurrentItem: - (item, referencedItems) => referencedItems - .where((e) => e.playerName == item.name), - typedResults: items) - ]; - }, - ); - }, - )); -} - -typedef $$PlayersTableTableProcessedTableManager = ProcessedTableManager< - _$AppDatabase, - $PlayersTableTable, - PlayersTableData, - $$PlayersTableTableFilterComposer, - $$PlayersTableTableOrderingComposer, - $$PlayersTableTableAnnotationComposer, - $$PlayersTableTableCreateCompanionBuilder, - $$PlayersTableTableUpdateCompanionBuilder, - (PlayersTableData, $$PlayersTableTableReferences), - PlayersTableData, - PrefetchHooks Function({bool id, bool playerScoresTableRefs})>; -typedef $$PlayerScoresTableTableCreateCompanionBuilder - = PlayerScoresTableCompanion Function({ - required String roundId, - required String playerName, - required int totalScore, - Value rowid, -}); -typedef $$PlayerScoresTableTableUpdateCompanionBuilder - = PlayerScoresTableCompanion Function({ - Value roundId, - Value playerName, - Value totalScore, - Value rowid, -}); - -final class $$PlayerScoresTableTableReferences extends BaseReferences< - _$AppDatabase, $PlayerScoresTableTable, PlayerScoresTableData> { - $$PlayerScoresTableTableReferences( - super.$_db, super.$_table, super.$_typedResult); - - static $GameSessionTableTable _roundIdTable(_$AppDatabase db) => + static $GameSessionTableTable _playerIdTable(_$AppDatabase db) => db.gameSessionTable.createAlias($_aliasNameGenerator( - db.playerScoresTable.roundId, db.gameSessionTable.id)); + db.playerTable.playerId, db.gameSessionTable.id)); - $$GameSessionTableTableProcessedTableManager get roundId { - final $_column = $_itemColumn('round_id')!; + $$GameSessionTableTableProcessedTableManager get playerId { + final $_column = $_itemColumn('player_id')!; final manager = $$GameSessionTableTableTableManager($_db, $_db.gameSessionTable) .filter((f) => f.id.sqlEquals($_column)); - final item = $_typedResult.readTableOrNull(_roundIdTable($_db)); + final item = $_typedResult.readTableOrNull(_playerIdTable($_db)); if (item == null) return manager; return ProcessedTableManager( manager.$state.copyWith(prefetchedData: [item])); } - static $PlayersTableTable _playerNameTable(_$AppDatabase db) => - db.playersTable.createAlias($_aliasNameGenerator( - db.playerScoresTable.playerName, db.playersTable.name)); + static $GameSessionTableTable _gameIdTable(_$AppDatabase db) => + db.gameSessionTable.createAlias( + $_aliasNameGenerator(db.playerTable.gameId, db.gameSessionTable.id)); - $$PlayersTableTableProcessedTableManager get playerName { - final $_column = $_itemColumn('player_name')!; + $$GameSessionTableTableProcessedTableManager get gameId { + final $_column = $_itemColumn('game_id')!; - final manager = $$PlayersTableTableTableManager($_db, $_db.playersTable) - .filter((f) => f.name.sqlEquals($_column)); - final item = $_typedResult.readTableOrNull(_playerNameTable($_db)); + final manager = + $$GameSessionTableTableTableManager($_db, $_db.gameSessionTable) + .filter((f) => f.id.sqlEquals($_column)); + final item = $_typedResult.readTableOrNull(_gameIdTable($_db)); if (item == null) return manager; return ProcessedTableManager( manager.$state.copyWith(prefetchedData: [item])); } } -class $$PlayerScoresTableTableFilterComposer - extends Composer<_$AppDatabase, $PlayerScoresTableTable> { - $$PlayerScoresTableTableFilterComposer({ +class $$PlayerTableTableFilterComposer + extends Composer<_$AppDatabase, $PlayerTableTable> { + $$PlayerTableTableFilterComposer({ required super.$db, required super.$table, super.joinBuilder, @@ -2413,10 +1867,16 @@ class $$PlayerScoresTableTableFilterComposer ColumnFilters get totalScore => $composableBuilder( column: $table.totalScore, builder: (column) => ColumnFilters(column)); - $$GameSessionTableTableFilterComposer get roundId { + ColumnFilters get position => $composableBuilder( + column: $table.position, builder: (column) => ColumnFilters(column)); + + ColumnFilters get name => $composableBuilder( + column: $table.name, builder: (column) => ColumnFilters(column)); + + $$GameSessionTableTableFilterComposer get playerId { final $$GameSessionTableTableFilterComposer composer = $composerBuilder( composer: this, - getCurrentColumn: (t) => t.roundId, + getCurrentColumn: (t) => t.playerId, referencedTable: $db.gameSessionTable, getReferencedColumn: (t) => t.id, builder: (joinBuilder, @@ -2433,18 +1893,18 @@ class $$PlayerScoresTableTableFilterComposer return composer; } - $$PlayersTableTableFilterComposer get playerName { - final $$PlayersTableTableFilterComposer composer = $composerBuilder( + $$GameSessionTableTableFilterComposer get gameId { + final $$GameSessionTableTableFilterComposer composer = $composerBuilder( composer: this, - getCurrentColumn: (t) => t.playerName, - referencedTable: $db.playersTable, - getReferencedColumn: (t) => t.name, + getCurrentColumn: (t) => t.gameId, + referencedTable: $db.gameSessionTable, + getReferencedColumn: (t) => t.id, builder: (joinBuilder, {$addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer}) => - $$PlayersTableTableFilterComposer( + $$GameSessionTableTableFilterComposer( $db: $db, - $table: $db.playersTable, + $table: $db.gameSessionTable, $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, joinBuilder: joinBuilder, $removeJoinBuilderFromRootComposer: @@ -2454,9 +1914,9 @@ class $$PlayerScoresTableTableFilterComposer } } -class $$PlayerScoresTableTableOrderingComposer - extends Composer<_$AppDatabase, $PlayerScoresTableTable> { - $$PlayerScoresTableTableOrderingComposer({ +class $$PlayerTableTableOrderingComposer + extends Composer<_$AppDatabase, $PlayerTableTable> { + $$PlayerTableTableOrderingComposer({ required super.$db, required super.$table, super.joinBuilder, @@ -2466,10 +1926,16 @@ class $$PlayerScoresTableTableOrderingComposer ColumnOrderings get totalScore => $composableBuilder( column: $table.totalScore, builder: (column) => ColumnOrderings(column)); - $$GameSessionTableTableOrderingComposer get roundId { + ColumnOrderings get position => $composableBuilder( + column: $table.position, builder: (column) => ColumnOrderings(column)); + + ColumnOrderings get name => $composableBuilder( + column: $table.name, builder: (column) => ColumnOrderings(column)); + + $$GameSessionTableTableOrderingComposer get playerId { final $$GameSessionTableTableOrderingComposer composer = $composerBuilder( composer: this, - getCurrentColumn: (t) => t.roundId, + getCurrentColumn: (t) => t.playerId, referencedTable: $db.gameSessionTable, getReferencedColumn: (t) => t.id, builder: (joinBuilder, @@ -2486,18 +1952,18 @@ class $$PlayerScoresTableTableOrderingComposer return composer; } - $$PlayersTableTableOrderingComposer get playerName { - final $$PlayersTableTableOrderingComposer composer = $composerBuilder( + $$GameSessionTableTableOrderingComposer get gameId { + final $$GameSessionTableTableOrderingComposer composer = $composerBuilder( composer: this, - getCurrentColumn: (t) => t.playerName, - referencedTable: $db.playersTable, - getReferencedColumn: (t) => t.name, + getCurrentColumn: (t) => t.gameId, + referencedTable: $db.gameSessionTable, + getReferencedColumn: (t) => t.id, builder: (joinBuilder, {$addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer}) => - $$PlayersTableTableOrderingComposer( + $$GameSessionTableTableOrderingComposer( $db: $db, - $table: $db.playersTable, + $table: $db.gameSessionTable, $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, joinBuilder: joinBuilder, $removeJoinBuilderFromRootComposer: @@ -2507,9 +1973,9 @@ class $$PlayerScoresTableTableOrderingComposer } } -class $$PlayerScoresTableTableAnnotationComposer - extends Composer<_$AppDatabase, $PlayerScoresTableTable> { - $$PlayerScoresTableTableAnnotationComposer({ +class $$PlayerTableTableAnnotationComposer + extends Composer<_$AppDatabase, $PlayerTableTable> { + $$PlayerTableTableAnnotationComposer({ required super.$db, required super.$table, super.joinBuilder, @@ -2519,10 +1985,16 @@ class $$PlayerScoresTableTableAnnotationComposer GeneratedColumn get totalScore => $composableBuilder( column: $table.totalScore, builder: (column) => column); - $$GameSessionTableTableAnnotationComposer get roundId { + GeneratedColumn get position => + $composableBuilder(column: $table.position, builder: (column) => column); + + GeneratedColumn get name => + $composableBuilder(column: $table.name, builder: (column) => column); + + $$GameSessionTableTableAnnotationComposer get playerId { final $$GameSessionTableTableAnnotationComposer composer = $composerBuilder( composer: this, - getCurrentColumn: (t) => t.roundId, + getCurrentColumn: (t) => t.playerId, referencedTable: $db.gameSessionTable, getReferencedColumn: (t) => t.id, builder: (joinBuilder, @@ -2539,18 +2011,18 @@ class $$PlayerScoresTableTableAnnotationComposer return composer; } - $$PlayersTableTableAnnotationComposer get playerName { - final $$PlayersTableTableAnnotationComposer composer = $composerBuilder( + $$GameSessionTableTableAnnotationComposer get gameId { + final $$GameSessionTableTableAnnotationComposer composer = $composerBuilder( composer: this, - getCurrentColumn: (t) => t.playerName, - referencedTable: $db.playersTable, - getReferencedColumn: (t) => t.name, + getCurrentColumn: (t) => t.gameId, + referencedTable: $db.gameSessionTable, + getReferencedColumn: (t) => t.id, builder: (joinBuilder, {$addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer}) => - $$PlayersTableTableAnnotationComposer( + $$GameSessionTableTableAnnotationComposer( $db: $db, - $table: $db.playersTable, + $table: $db.gameSessionTable, $addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer, joinBuilder: joinBuilder, $removeJoinBuilderFromRootComposer: @@ -2560,61 +2032,67 @@ class $$PlayerScoresTableTableAnnotationComposer } } -class $$PlayerScoresTableTableTableManager extends RootTableManager< +class $$PlayerTableTableTableManager extends RootTableManager< _$AppDatabase, - $PlayerScoresTableTable, - PlayerScoresTableData, - $$PlayerScoresTableTableFilterComposer, - $$PlayerScoresTableTableOrderingComposer, - $$PlayerScoresTableTableAnnotationComposer, - $$PlayerScoresTableTableCreateCompanionBuilder, - $$PlayerScoresTableTableUpdateCompanionBuilder, - (PlayerScoresTableData, $$PlayerScoresTableTableReferences), - PlayerScoresTableData, - PrefetchHooks Function({bool roundId, bool playerName})> { - $$PlayerScoresTableTableTableManager( - _$AppDatabase db, $PlayerScoresTableTable table) + $PlayerTableTable, + PlayerTableData, + $$PlayerTableTableFilterComposer, + $$PlayerTableTableOrderingComposer, + $$PlayerTableTableAnnotationComposer, + $$PlayerTableTableCreateCompanionBuilder, + $$PlayerTableTableUpdateCompanionBuilder, + (PlayerTableData, $$PlayerTableTableReferences), + PlayerTableData, + PrefetchHooks Function({bool playerId, bool gameId})> { + $$PlayerTableTableTableManager(_$AppDatabase db, $PlayerTableTable table) : super(TableManagerState( db: db, table: table, createFilteringComposer: () => - $$PlayerScoresTableTableFilterComposer($db: db, $table: table), + $$PlayerTableTableFilterComposer($db: db, $table: table), createOrderingComposer: () => - $$PlayerScoresTableTableOrderingComposer($db: db, $table: table), + $$PlayerTableTableOrderingComposer($db: db, $table: table), createComputedFieldComposer: () => - $$PlayerScoresTableTableAnnotationComposer( - $db: db, $table: table), + $$PlayerTableTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ - Value roundId = const Value.absent(), - Value playerName = const Value.absent(), + Value playerId = const Value.absent(), + Value gameId = const Value.absent(), Value totalScore = const Value.absent(), + Value position = const Value.absent(), + Value name = const Value.absent(), Value rowid = const Value.absent(), }) => - PlayerScoresTableCompanion( - roundId: roundId, - playerName: playerName, + PlayerTableCompanion( + playerId: playerId, + gameId: gameId, totalScore: totalScore, + position: position, + name: name, rowid: rowid, ), createCompanionCallback: ({ - required String roundId, - required String playerName, + required String playerId, + required String gameId, required int totalScore, + required int position, + required String name, Value rowid = const Value.absent(), }) => - PlayerScoresTableCompanion.insert( - roundId: roundId, - playerName: playerName, + PlayerTableCompanion.insert( + playerId: playerId, + gameId: gameId, totalScore: totalScore, + position: position, + name: name, rowid: rowid, ), withReferenceMapper: (p0) => p0 .map((e) => ( e.readTable(table), - $$PlayerScoresTableTableReferences(db, table, e) + $$PlayerTableTableReferences(db, table, e) )) .toList(), - prefetchHooksCallback: ({roundId = false, playerName = false}) { + prefetchHooksCallback: ({playerId = false, gameId = false}) { return PrefetchHooks( db: db, explicitlyWatchedTables: [], @@ -2631,25 +2109,24 @@ class $$PlayerScoresTableTableTableManager extends RootTableManager< dynamic, dynamic, dynamic>>(state) { - if (roundId) { + if (playerId) { state = state.withJoin( currentTable: table, - currentColumn: table.roundId, + currentColumn: table.playerId, referencedTable: - $$PlayerScoresTableTableReferences._roundIdTable(db), + $$PlayerTableTableReferences._playerIdTable(db), referencedColumn: - $$PlayerScoresTableTableReferences._roundIdTable(db).id, + $$PlayerTableTableReferences._playerIdTable(db).id, ) as T; } - if (playerName) { + if (gameId) { state = state.withJoin( currentTable: table, - currentColumn: table.playerName, + currentColumn: table.gameId, referencedTable: - $$PlayerScoresTableTableReferences._playerNameTable(db), - referencedColumn: $$PlayerScoresTableTableReferences - ._playerNameTable(db) - .name, + $$PlayerTableTableReferences._gameIdTable(db), + referencedColumn: + $$PlayerTableTableReferences._gameIdTable(db).id, ) as T; } @@ -2663,32 +2140,34 @@ class $$PlayerScoresTableTableTableManager extends RootTableManager< )); } -typedef $$PlayerScoresTableTableProcessedTableManager = ProcessedTableManager< +typedef $$PlayerTableTableProcessedTableManager = ProcessedTableManager< _$AppDatabase, - $PlayerScoresTableTable, - PlayerScoresTableData, - $$PlayerScoresTableTableFilterComposer, - $$PlayerScoresTableTableOrderingComposer, - $$PlayerScoresTableTableAnnotationComposer, - $$PlayerScoresTableTableCreateCompanionBuilder, - $$PlayerScoresTableTableUpdateCompanionBuilder, - (PlayerScoresTableData, $$PlayerScoresTableTableReferences), - PlayerScoresTableData, - PrefetchHooks Function({bool roundId, bool playerName})>; + $PlayerTableTable, + PlayerTableData, + $$PlayerTableTableFilterComposer, + $$PlayerTableTableOrderingComposer, + $$PlayerTableTableAnnotationComposer, + $$PlayerTableTableCreateCompanionBuilder, + $$PlayerTableTableUpdateCompanionBuilder, + (PlayerTableData, $$PlayerTableTableReferences), + PlayerTableData, + PrefetchHooks Function({bool playerId, bool gameId})>; typedef $$RoundsTableTableCreateCompanionBuilder = RoundsTableCompanion Function({ - required String id, + required String roundId, required String gameId, required int roundNumber, - Value kamikazePlayer, + required int caboPlayerIndex, + Value kamikazePlayerIndex, Value rowid, }); typedef $$RoundsTableTableUpdateCompanionBuilder = RoundsTableCompanion Function({ - Value id, + Value roundId, Value gameId, Value roundNumber, - Value kamikazePlayer, + Value caboPlayerIndex, + Value kamikazePlayerIndex, Value rowid, }); @@ -2716,12 +2195,13 @@ final class $$RoundsTableTableReferences _roundScoresTableRefsTable(_$AppDatabase db) => MultiTypedResultKey.fromTable(db.roundScoresTable, aliasName: $_aliasNameGenerator( - db.roundsTable.id, db.roundScoresTable.roundId)); + db.roundsTable.roundId, db.roundScoresTable.roundId)); $$RoundScoresTableTableProcessedTableManager get roundScoresTableRefs { final manager = - $$RoundScoresTableTableTableManager($_db, $_db.roundScoresTable) - .filter((f) => f.roundId.id.sqlEquals($_itemColumn('id')!)); + $$RoundScoresTableTableTableManager($_db, $_db.roundScoresTable).filter( + (f) => + f.roundId.roundId.sqlEquals($_itemColumn('round_id')!)); final cache = $_typedResult.readTableOrNull(_roundScoresTableRefsTable($_db)); @@ -2739,14 +2219,18 @@ class $$RoundsTableTableFilterComposer super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnFilters get id => $composableBuilder( - column: $table.id, builder: (column) => ColumnFilters(column)); + ColumnFilters get roundId => $composableBuilder( + column: $table.roundId, builder: (column) => ColumnFilters(column)); ColumnFilters get roundNumber => $composableBuilder( column: $table.roundNumber, builder: (column) => ColumnFilters(column)); - ColumnFilters get kamikazePlayer => $composableBuilder( - column: $table.kamikazePlayer, + ColumnFilters get caboPlayerIndex => $composableBuilder( + column: $table.caboPlayerIndex, + builder: (column) => ColumnFilters(column)); + + ColumnFilters get kamikazePlayerIndex => $composableBuilder( + column: $table.kamikazePlayerIndex, builder: (column) => ColumnFilters(column)); $$GameSessionTableTableFilterComposer get gameId { @@ -2773,7 +2257,7 @@ class $$RoundsTableTableFilterComposer Expression Function($$RoundScoresTableTableFilterComposer f) f) { final $$RoundScoresTableTableFilterComposer composer = $composerBuilder( composer: this, - getCurrentColumn: (t) => t.id, + getCurrentColumn: (t) => t.roundId, referencedTable: $db.roundScoresTable, getReferencedColumn: (t) => t.roundId, builder: (joinBuilder, @@ -2800,14 +2284,18 @@ class $$RoundsTableTableOrderingComposer super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnOrderings get id => $composableBuilder( - column: $table.id, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get roundId => $composableBuilder( + column: $table.roundId, builder: (column) => ColumnOrderings(column)); ColumnOrderings get roundNumber => $composableBuilder( column: $table.roundNumber, builder: (column) => ColumnOrderings(column)); - ColumnOrderings get kamikazePlayer => $composableBuilder( - column: $table.kamikazePlayer, + ColumnOrderings get caboPlayerIndex => $composableBuilder( + column: $table.caboPlayerIndex, + builder: (column) => ColumnOrderings(column)); + + ColumnOrderings get kamikazePlayerIndex => $composableBuilder( + column: $table.kamikazePlayerIndex, builder: (column) => ColumnOrderings(column)); $$GameSessionTableTableOrderingComposer get gameId { @@ -2840,14 +2328,17 @@ class $$RoundsTableTableAnnotationComposer super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - GeneratedColumn get id => - $composableBuilder(column: $table.id, builder: (column) => column); + GeneratedColumn get roundId => + $composableBuilder(column: $table.roundId, builder: (column) => column); GeneratedColumn get roundNumber => $composableBuilder( column: $table.roundNumber, builder: (column) => column); - GeneratedColumn get kamikazePlayer => $composableBuilder( - column: $table.kamikazePlayer, builder: (column) => column); + GeneratedColumn get caboPlayerIndex => $composableBuilder( + column: $table.caboPlayerIndex, builder: (column) => column); + + GeneratedColumn get kamikazePlayerIndex => $composableBuilder( + column: $table.kamikazePlayerIndex, builder: (column) => column); $$GameSessionTableTableAnnotationComposer get gameId { final $$GameSessionTableTableAnnotationComposer composer = $composerBuilder( @@ -2873,7 +2364,7 @@ class $$RoundsTableTableAnnotationComposer Expression Function($$RoundScoresTableTableAnnotationComposer a) f) { final $$RoundScoresTableTableAnnotationComposer composer = $composerBuilder( composer: this, - getCurrentColumn: (t) => t.id, + getCurrentColumn: (t) => t.roundId, referencedTable: $db.roundScoresTable, getReferencedColumn: (t) => t.roundId, builder: (joinBuilder, @@ -2914,31 +2405,35 @@ class $$RoundsTableTableTableManager extends RootTableManager< createComputedFieldComposer: () => $$RoundsTableTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ - Value id = const Value.absent(), + Value roundId = const Value.absent(), Value gameId = const Value.absent(), Value roundNumber = const Value.absent(), - Value kamikazePlayer = const Value.absent(), + Value caboPlayerIndex = const Value.absent(), + Value kamikazePlayerIndex = const Value.absent(), Value rowid = const Value.absent(), }) => RoundsTableCompanion( - id: id, + roundId: roundId, gameId: gameId, roundNumber: roundNumber, - kamikazePlayer: kamikazePlayer, + caboPlayerIndex: caboPlayerIndex, + kamikazePlayerIndex: kamikazePlayerIndex, rowid: rowid, ), createCompanionCallback: ({ - required String id, + required String roundId, required String gameId, required int roundNumber, - Value kamikazePlayer = const Value.absent(), + required int caboPlayerIndex, + Value kamikazePlayerIndex = const Value.absent(), Value rowid = const Value.absent(), }) => RoundsTableCompanion.insert( - id: id, + roundId: roundId, gameId: gameId, roundNumber: roundNumber, - kamikazePlayer: kamikazePlayer, + caboPlayerIndex: caboPlayerIndex, + kamikazePlayerIndex: kamikazePlayerIndex, rowid: rowid, ), withReferenceMapper: (p0) => p0 @@ -2991,9 +2486,9 @@ class $$RoundsTableTableTableManager extends RootTableManager< managerFromTypedResult: (p0) => $$RoundsTableTableReferences(db, table, p0) .roundScoresTableRefs, - referencedItemsForCurrentItem: (item, - referencedItems) => - referencedItems.where((e) => e.roundId == item.id), + referencedItemsForCurrentItem: + (item, referencedItems) => referencedItems + .where((e) => e.roundId == item.roundId), typedResults: items) ]; }, @@ -3017,7 +2512,7 @@ typedef $$RoundsTableTableProcessedTableManager = ProcessedTableManager< typedef $$RoundScoresTableTableCreateCompanionBuilder = RoundScoresTableCompanion Function({ required String roundId, - required String playerName, + required String playerId, required int score, required int scoreUpdate, Value rowid, @@ -3025,7 +2520,7 @@ typedef $$RoundScoresTableTableCreateCompanionBuilder typedef $$RoundScoresTableTableUpdateCompanionBuilder = RoundScoresTableCompanion Function({ Value roundId, - Value playerName, + Value playerId, Value score, Value scoreUpdate, Value rowid, @@ -3037,14 +2532,14 @@ final class $$RoundScoresTableTableReferences extends BaseReferences< super.$_db, super.$_table, super.$_typedResult); static $RoundsTableTable _roundIdTable(_$AppDatabase db) => - db.roundsTable.createAlias( - $_aliasNameGenerator(db.roundScoresTable.roundId, db.roundsTable.id)); + db.roundsTable.createAlias($_aliasNameGenerator( + db.roundScoresTable.roundId, db.roundsTable.roundId)); $$RoundsTableTableProcessedTableManager get roundId { final $_column = $_itemColumn('round_id')!; final manager = $$RoundsTableTableTableManager($_db, $_db.roundsTable) - .filter((f) => f.id.sqlEquals($_column)); + .filter((f) => f.roundId.sqlEquals($_column)); final item = $_typedResult.readTableOrNull(_roundIdTable($_db)); if (item == null) return manager; return ProcessedTableManager( @@ -3061,8 +2556,8 @@ class $$RoundScoresTableTableFilterComposer super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnFilters get playerName => $composableBuilder( - column: $table.playerName, builder: (column) => ColumnFilters(column)); + ColumnFilters get playerId => $composableBuilder( + column: $table.playerId, builder: (column) => ColumnFilters(column)); ColumnFilters get score => $composableBuilder( column: $table.score, builder: (column) => ColumnFilters(column)); @@ -3075,7 +2570,7 @@ class $$RoundScoresTableTableFilterComposer composer: this, getCurrentColumn: (t) => t.roundId, referencedTable: $db.roundsTable, - getReferencedColumn: (t) => t.id, + getReferencedColumn: (t) => t.roundId, builder: (joinBuilder, {$addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer}) => @@ -3100,8 +2595,8 @@ class $$RoundScoresTableTableOrderingComposer super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnOrderings get playerName => $composableBuilder( - column: $table.playerName, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get playerId => $composableBuilder( + column: $table.playerId, builder: (column) => ColumnOrderings(column)); ColumnOrderings get score => $composableBuilder( column: $table.score, builder: (column) => ColumnOrderings(column)); @@ -3114,7 +2609,7 @@ class $$RoundScoresTableTableOrderingComposer composer: this, getCurrentColumn: (t) => t.roundId, referencedTable: $db.roundsTable, - getReferencedColumn: (t) => t.id, + getReferencedColumn: (t) => t.roundId, builder: (joinBuilder, {$addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer}) => @@ -3139,8 +2634,8 @@ class $$RoundScoresTableTableAnnotationComposer super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - GeneratedColumn get playerName => $composableBuilder( - column: $table.playerName, builder: (column) => column); + GeneratedColumn get playerId => + $composableBuilder(column: $table.playerId, builder: (column) => column); GeneratedColumn get score => $composableBuilder(column: $table.score, builder: (column) => column); @@ -3153,7 +2648,7 @@ class $$RoundScoresTableTableAnnotationComposer composer: this, getCurrentColumn: (t) => t.roundId, referencedTable: $db.roundsTable, - getReferencedColumn: (t) => t.id, + getReferencedColumn: (t) => t.roundId, builder: (joinBuilder, {$addJoinBuilderToRootComposer, $removeJoinBuilderFromRootComposer}) => @@ -3194,28 +2689,28 @@ class $$RoundScoresTableTableTableManager extends RootTableManager< $$RoundScoresTableTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ Value roundId = const Value.absent(), - Value playerName = const Value.absent(), + Value playerId = const Value.absent(), Value score = const Value.absent(), Value scoreUpdate = const Value.absent(), Value rowid = const Value.absent(), }) => RoundScoresTableCompanion( roundId: roundId, - playerName: playerName, + playerId: playerId, score: score, scoreUpdate: scoreUpdate, rowid: rowid, ), createCompanionCallback: ({ required String roundId, - required String playerName, + required String playerId, required int score, required int scoreUpdate, Value rowid = const Value.absent(), }) => RoundScoresTableCompanion.insert( roundId: roundId, - playerName: playerName, + playerId: playerId, score: score, scoreUpdate: scoreUpdate, rowid: rowid, @@ -3249,8 +2744,9 @@ class $$RoundScoresTableTableTableManager extends RootTableManager< currentColumn: table.roundId, referencedTable: $$RoundScoresTableTableReferences._roundIdTable(db), - referencedColumn: - $$RoundScoresTableTableReferences._roundIdTable(db).id, + referencedColumn: $$RoundScoresTableTableReferences + ._roundIdTable(db) + .roundId, ) as T; } @@ -3282,10 +2778,8 @@ class $AppDatabaseManager { $AppDatabaseManager(this._db); $$GameSessionTableTableTableManager get gameSessionTable => $$GameSessionTableTableTableManager(_db, _db.gameSessionTable); - $$PlayersTableTableTableManager get playersTable => - $$PlayersTableTableTableManager(_db, _db.playersTable); - $$PlayerScoresTableTableTableManager get playerScoresTable => - $$PlayerScoresTableTableTableManager(_db, _db.playerScoresTable); + $$PlayerTableTableTableManager get playerTable => + $$PlayerTableTableTableManager(_db, _db.playerTable); $$RoundsTableTableTableManager get roundsTable => $$RoundsTableTableTableManager(_db, _db.roundsTable); $$RoundScoresTableTableTableManager get roundScoresTable => diff --git a/lib/data/db/tables/player_scores_table.dart b/lib/data/db/tables/player_scores_table.dart deleted file mode 100644 index 9d930e5..0000000 --- a/lib/data/db/tables/player_scores_table.dart +++ /dev/null @@ -1,13 +0,0 @@ -import 'package:cabo_counter/data/db/tables/game_session_table.dart'; -import 'package:cabo_counter/data/db/tables/players_table.dart'; -import 'package:drift/drift.dart'; - -class PlayerScoresTable extends Table { - TextColumn get roundId => - text().references(GameSessionTable, #id, onDelete: KeyAction.cascade)(); - TextColumn get playerName => text().references(PlayersTable, #name)(); - IntColumn get totalScore => integer()(); - - @override - Set> get primaryKey => {roundId, playerName}; -} diff --git a/lib/data/db/tables/players_table.dart b/lib/data/db/tables/player_table.dart similarity index 61% rename from lib/data/db/tables/players_table.dart rename to lib/data/db/tables/player_table.dart index d402562..c2100ba 100644 --- a/lib/data/db/tables/players_table.dart +++ b/lib/data/db/tables/player_table.dart @@ -1,9 +1,12 @@ import 'package:cabo_counter/data/db/tables/game_session_table.dart'; import 'package:drift/drift.dart'; -class PlayersTable extends Table { +class PlayerTable extends Table { TextColumn get playerId => text().references(GameSessionTable, #id, onDelete: KeyAction.cascade)(); + TextColumn get gameId => + text().references(GameSessionTable, #id, onDelete: KeyAction.cascade)(); + IntColumn get totalScore => integer()(); IntColumn get position => integer()(); TextColumn get name => text()(); } diff --git a/lib/data/db/tables/round_scores_table.dart b/lib/data/db/tables/round_scores_table.dart index 912ded4..db99a0e 100644 --- a/lib/data/db/tables/round_scores_table.dart +++ b/lib/data/db/tables/round_scores_table.dart @@ -3,11 +3,11 @@ import 'package:drift/drift.dart'; class RoundScoresTable extends Table { TextColumn get roundId => - text().references(RoundsTable, #id, onDelete: KeyAction.cascade)(); - TextColumn get playerName => text()(); + text().references(RoundsTable, #roundId, onDelete: KeyAction.cascade)(); + TextColumn get playerId => text()(); IntColumn get score => integer()(); IntColumn get scoreUpdate => integer()(); @override - Set> get primaryKey => {roundId, playerName}; + Set> get primaryKey => {roundId, playerId}; } diff --git a/lib/data/db/tables/rounds_table.dart b/lib/data/db/tables/rounds_table.dart index 3269b7a..f96be83 100644 --- a/lib/data/db/tables/rounds_table.dart +++ b/lib/data/db/tables/rounds_table.dart @@ -6,7 +6,8 @@ class RoundsTable extends Table { TextColumn get gameId => text().references(GameSessionTable, #id, onDelete: KeyAction.cascade)(); IntColumn get roundNumber => integer()(); - TextColumn get kamikazePlayer => text().nullable()(); + IntColumn get caboPlayerIndex => integer()(); + IntColumn get kamikazePlayerIndex => integer().nullable()(); @override Set> get primaryKey => {roundId}; diff --git a/lib/data/dto/game_session.dart b/lib/data/dto/game_session.dart index 1f79cec..7b3af37 100644 --- a/lib/data/dto/game_session.dart +++ b/lib/data/dto/game_session.dart @@ -20,21 +20,25 @@ class GameSession extends ChangeNotifier { final int pointLimit; final int caboPenalty; final bool isPointsLimitEnabled; - bool isGameFinished = false; - String winner = ''; - int roundNumber = 1; - late List playerScores; - List roundList = []; + bool isGameFinished; + String winner; + int roundNumber; + List playerScores; + List roundList; - GameSession({ - required this.id, - required this.createdAt, - required this.gameTitle, - required this.players, - required this.pointLimit, - required this.caboPenalty, - required this.isPointsLimitEnabled, - }) { + GameSession( + {required this.id, + required this.createdAt, + required this.gameTitle, + required this.players, + required this.pointLimit, + required this.caboPenalty, + required this.isPointsLimitEnabled, + this.isGameFinished = false, + this.winner = '', + this.roundNumber = 1, + this.playerScores = const [], + this.roundList = const []}) { playerScores = List.filled(players.length, 0); } @@ -207,6 +211,8 @@ class GameSession extends ChangeNotifier { int? kamikazePlayerIndex, ]) { Round newRound = Round( + roundId: const Uuid().v1(), + gameId: id, roundNum: roundNum, caboPlayerIndex: caboPlayerIndex, kamikazePlayerIndex: kamikazePlayerIndex, diff --git a/lib/data/dto/player.dart b/lib/data/dto/player.dart new file mode 100644 index 0000000..3241525 --- /dev/null +++ b/lib/data/dto/player.dart @@ -0,0 +1,34 @@ +class Player { + final String playerId; + final String gameId; + final String name; + final int position; + int totalScore; + + Player( + {required this.playerId, + required this.gameId, + required this.name, + required this.position, + this.totalScore = 0}); + + @override + String toString() { + return '(playerId: $playerId, gameId: $gameId, name: $name, position: $position)'; + } + + Map toJson() => { + 'playerId': playerId, + 'gameId': gameId, + 'name': name, + 'position': position, + 'totalScore': totalScore + }; + + Player.fromJson(Map json) + : playerId = json['playerId'], + gameId = json['gameId'], + name = json['name'], + position = json['position'], + totalScore = json['totalScore']; +} diff --git a/lib/data/dto/round.dart b/lib/data/dto/round.dart index d29dc19..9caf39f 100644 --- a/lib/data/dto/round.dart +++ b/lib/data/dto/round.dart @@ -6,6 +6,8 @@ /// [kamikazePlayerIndex] is the index of the player who got kamikaze. If no one got /// kamikaze, this value is null. class Round { + final String roundId; + final String gameId; final int roundNum; final int caboPlayerIndex; final int? kamikazePlayerIndex; @@ -13,6 +15,8 @@ class Round { final List scoreUpdates; Round({ + required this.roundId, + required this.gameId, required this.roundNum, required this.caboPlayerIndex, this.kamikazePlayerIndex, @@ -29,6 +33,8 @@ class Round { /// Converts the Round object to a JSON map. Map toJson() => { + 'roundId': roundId, + 'gameId': gameId, 'roundNum': roundNum, 'caboPlayerIndex': caboPlayerIndex, 'kamikazePlayerIndex': kamikazePlayerIndex, @@ -38,7 +44,9 @@ class Round { /// Creates a Round object from a JSON map. Round.fromJson(Map json) - : roundNum = json['roundNum'], + : roundId = json['roundId'], + gameId = json['gameId'], + roundNum = json['roundNum'], caboPlayerIndex = json['caboPlayerIndex'], kamikazePlayerIndex = json['kamikazePlayerIndex'], scores = List.from(json['scores']), diff --git a/lib/data/dto/round_score.dart b/lib/data/dto/round_score.dart new file mode 100644 index 0000000..532c91c --- /dev/null +++ b/lib/data/dto/round_score.dart @@ -0,0 +1,12 @@ +class RoundScore { + final String roundId; + final String playerId; + final int score; + final int scoreUpdate; + + RoundScore( + {required this.roundId, + required this.playerId, + required this.score, + required this.scoreUpdate}); +} diff --git a/lib/l10n/generated/app_localizations.dart b/lib/l10n/generated/app_localizations.dart index 0ca7043..96c1f62 100644 --- a/lib/l10n/generated/app_localizations.dart +++ b/lib/l10n/generated/app_localizations.dart @@ -63,7 +63,7 @@ import 'app_localizations_en.dart'; /// property. abstract class AppLocalizations { AppLocalizations(String locale) - : localeName = intl.Intl.canonicalizedLocale(locale.toString()); + : localeName = intl.Intl.canonicalizedLocale(locale.toString()); final String localeName; @@ -86,16 +86,16 @@ abstract class AppLocalizations { /// of delegates is preferred or required. static const List> localizationsDelegates = >[ - delegate, - GlobalMaterialLocalizations.delegate, - GlobalCupertinoLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - ]; + delegate, + GlobalMaterialLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ]; /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ Locale('de'), - Locale('en') + Locale('en'), ]; /// No description provided for @app_name. @@ -487,7 +487,11 @@ abstract class AppLocalizations { /// In de, this message translates to: /// **'{playerCount, plural, =1{{names} hat exakt das Punktelimit von {pointLimit} Punkten erreicht und bekommt deshalb {bonusPoints} Punkte abgezogen!} other{{names} haben exakt das Punktelimit von {pointLimit} Punkten erreicht und bekommen deshalb jeweils {bonusPoints} Punkte abgezogen!}}'** String bonus_points_message( - int playerCount, String names, int pointLimit, int bonusPoints); + int playerCount, + String names, + int pointLimit, + int bonusPoints, + ); /// No description provided for @end_of_game_title. /// @@ -775,8 +779,9 @@ AppLocalizations lookupAppLocalizations(Locale locale) { } throw FlutterError( - 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' - 'an issue with the localizations generation tool. Please file an issue ' - 'on GitHub with a reproducible sample app and the gen-l10n configuration ' - 'that was used.'); + 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' + 'an issue with the localizations generation tool. Please file an issue ' + 'on GitHub with a reproducible sample app and the gen-l10n configuration ' + 'that was used.', + ); } diff --git a/lib/l10n/generated/app_localizations_de.dart b/lib/l10n/generated/app_localizations_de.dart index 85d89ad..633e079 100644 --- a/lib/l10n/generated/app_localizations_de.dart +++ b/lib/l10n/generated/app_localizations_de.dart @@ -214,7 +214,11 @@ class AppLocalizationsDe extends AppLocalizations { @override String bonus_points_message( - int playerCount, String names, int pointLimit, int bonusPoints) { + int playerCount, + String names, + int pointLimit, + int bonusPoints, + ) { String _temp0 = intl.Intl.pluralLogic( playerCount, locale: localeName, diff --git a/lib/l10n/generated/app_localizations_en.dart b/lib/l10n/generated/app_localizations_en.dart index cfbc4c0..17765f3 100644 --- a/lib/l10n/generated/app_localizations_en.dart +++ b/lib/l10n/generated/app_localizations_en.dart @@ -211,7 +211,11 @@ class AppLocalizationsEn extends AppLocalizations { @override String bonus_points_message( - int playerCount, String names, int pointLimit, int bonusPoints) { + int playerCount, + String names, + int pointLimit, + int bonusPoints, + ) { String _temp0 = intl.Intl.pluralLogic( playerCount, locale: localeName, diff --git a/lib/presentation/views/home/create_game_view.dart b/lib/presentation/views/home/create_game_view.dart index b2148f1..d8ec16c 100644 --- a/lib/presentation/views/home/create_game_view.dart +++ b/lib/presentation/views/home/create_game_view.dart @@ -458,14 +458,14 @@ class _CreateGameViewState extends State { bool isPointsLimitEnabled = gameMode == GameMode.pointLimit; GameSession gameSession = GameSession( - id: id, - createdAt: DateTime.now(), - gameTitle: _gameTitleTextController.text, - players: players, - pointLimit: ConfigService.getPointLimit(), - caboPenalty: ConfigService.getCaboPenalty(), - isPointsLimitEnabled: isPointsLimitEnabled, - ); + id: id, + createdAt: DateTime.now(), + gameTitle: _gameTitleTextController.text, + players: players, + pointLimit: ConfigService.getPointLimit(), + caboPenalty: ConfigService.getCaboPenalty(), + isPointsLimitEnabled: isPointsLimitEnabled, + isGameFinished: false); gameManager.addGameSession(gameSession); final session = gameManager.getGameSessionById(id) ?? gameSession; diff --git a/test/data/game_session_test.dart b/test/data/game_session_test.dart index d69b62e..9f054a9 100644 --- a/test/data/game_session_test.dart +++ b/test/data/game_session_test.dart @@ -9,14 +9,14 @@ void main() { setUp(() { session = GameSession( - id: '1', - createdAt: testDate, - gameTitle: testTitle, - players: testPlayers, - pointLimit: 100, - caboPenalty: 5, - isPointsLimitEnabled: true, - ); + id: '1', + createdAt: testDate, + gameTitle: testTitle, + players: testPlayers, + pointLimit: 100, + caboPenalty: 5, + isPointsLimitEnabled: true, + isGameFinished: false); }); group('Initialization & JSON', () { diff --git a/test/data/round_test.dart b/test/data/round_test.dart index fd824c2..c1c0374 100644 --- a/test/data/round_test.dart +++ b/test/data/round_test.dart @@ -11,6 +11,8 @@ void main() { setUp(() { round = Round( + roundId: 'testRoundId', + gameId: 'testGameId', roundNum: testRoundNum, caboPlayerIndex: testCaboPlayerIndex, kamikazePlayerIndex: testKamikazePlayerIndex, @@ -30,6 +32,8 @@ void main() { test('Constructor with null kamikazePlayerIndex', () { final roundWithoutKamikaze = Round( + roundId: 'testRoundId', + gameId: 'testGameId', roundNum: testRoundNum, caboPlayerIndex: testCaboPlayerIndex, kamikazePlayerIndex: null, @@ -98,6 +102,8 @@ void main() { test('toString() with null kamikazePlayerIndex', () { final roundWithoutKamikaze = Round( + roundId: 'testRoundId', + gameId: 'testGameId', roundNum: testRoundNum, caboPlayerIndex: testCaboPlayerIndex, kamikazePlayerIndex: null,