fix errors after merging

This commit is contained in:
gelbeinhalb
2026-02-01 17:29:19 +01:00
parent acf3a7b003
commit 2ea68dcc89
23 changed files with 632 additions and 651 deletions

View File

@@ -1,8 +1,8 @@
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:game_tracker/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:game_tracker/data/db/tables/game_table.dart'; import 'package:tallee/data/db/tables/game_table.dart';
import 'package:game_tracker/data/dto/game.dart'; import 'package:tallee/data/dto/game.dart';
import 'package:game_tracker/core/enums.dart'; import 'package:tallee/core/enums.dart';
part 'game_dao.g.dart'; part 'game_dao.g.dart';
@@ -111,20 +111,14 @@ class GameDao extends DatabaseAccessor<AppDatabase> with _$GameDaoMixin {
} }
/// Updates the name of the game with the given [gameId] to [newName]. /// Updates the name of the game with the given [gameId] to [newName].
Future<void> updateGameName({ Future<void> updateGameName({required String gameId, required String newName}) async {
required String gameId, await (update(
required String newName, gameTable,
}) async { )..where((g) => g.id.equals(gameId))).write(GameTableCompanion(name: Value(newName)));
await (update(gameTable)..where((g) => g.id.equals(gameId))).write(
GameTableCompanion(name: Value(newName)),
);
} }
/// Updates the ruleset of the game with the given [gameId]. /// Updates the ruleset of the game with the given [gameId].
Future<void> updateGameRuleset({ Future<void> updateGameRuleset({required String gameId, required Ruleset newRuleset}) async {
required String gameId,
required Ruleset newRuleset,
}) async {
await (update(gameTable)..where((g) => g.id.equals(gameId))).write( await (update(gameTable)..where((g) => g.id.equals(gameId))).write(
GameTableCompanion(ruleset: Value(newRuleset.name)), GameTableCompanion(ruleset: Value(newRuleset.name)),
); );
@@ -141,31 +135,24 @@ class GameDao extends DatabaseAccessor<AppDatabase> with _$GameDaoMixin {
} }
/// Updates the color of the game with the given [gameId]. /// Updates the color of the game with the given [gameId].
Future<void> updateGameColor({ Future<void> updateGameColor({required String gameId, required String newColor}) async {
required String gameId, await (update(
required String newColor, gameTable,
}) async { )..where((g) => g.id.equals(gameId))).write(GameTableCompanion(color: Value(newColor)));
await (update(gameTable)..where((g) => g.id.equals(gameId))).write(
GameTableCompanion(color: Value(newColor)),
);
} }
/// Updates the icon of the game with the given [gameId]. /// Updates the icon of the game with the given [gameId].
Future<void> updateGameIcon({ Future<void> updateGameIcon({required String gameId, required String newIcon}) async {
required String gameId, await (update(
required String newIcon, gameTable,
}) async { )..where((g) => g.id.equals(gameId))).write(GameTableCompanion(icon: Value(newIcon)));
await (update(gameTable)..where((g) => g.id.equals(gameId))).write(
GameTableCompanion(icon: Value(newIcon)),
);
} }
/// Retrieves the total count of games in the database. /// Retrieves the total count of games in the database.
Future<int> getGameCount() async { Future<int> getGameCount() async {
final count = final count = await (selectOnly(
await (selectOnly(gameTable)..addColumns([gameTable.id.count()])) gameTable,
.map((row) => row.read(gameTable.id.count())) )..addColumns([gameTable.id.count()])).map((row) => row.read(gameTable.id.count())).getSingle();
.getSingle();
return count ?? 0; return count ?? 0;
} }
@@ -177,4 +164,3 @@ class GameDao extends DatabaseAccessor<AppDatabase> with _$GameDaoMixin {
return rowsAffected > 0; return rowsAffected > 0;
} }
} }

View File

@@ -1,6 +1,10 @@
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:tallee/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:tallee/data/db/tables/game_table.dart';
import 'package:tallee/data/db/tables/group_table.dart';
import 'package:tallee/data/db/tables/match_table.dart'; import 'package:tallee/data/db/tables/match_table.dart';
import 'package:tallee/data/db/tables/player_match_table.dart';
import 'package:tallee/data/dto/game.dart';
import 'package:tallee/data/dto/group.dart'; import 'package:tallee/data/dto/group.dart';
import 'package:tallee/data/dto/match.dart'; import 'package:tallee/data/dto/match.dart';
import 'package:tallee/data/dto/player.dart'; import 'package:tallee/data/dto/player.dart';

View File

@@ -1,6 +1,7 @@
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:tallee/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:tallee/data/db/tables/player_match_table.dart'; import 'package:tallee/data/db/tables/player_match_table.dart';
import 'package:tallee/data/db/tables/team_table.dart';
import 'package:tallee/data/dto/player.dart'; import 'package:tallee/data/dto/player.dart';
part 'player_match_dao.g.dart'; part 'player_match_dao.g.dart';

View File

@@ -1,6 +1,6 @@
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:game_tracker/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:game_tracker/data/db/tables/score_table.dart'; import 'package:tallee/data/db/tables/score_table.dart';
part 'score_dao.g.dart'; part 'score_dao.g.dart';

View File

@@ -1,8 +1,8 @@
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:game_tracker/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:game_tracker/data/db/tables/team_table.dart'; import 'package:tallee/data/db/tables/team_table.dart';
import 'package:game_tracker/data/dto/player.dart'; import 'package:tallee/data/dto/player.dart';
import 'package:game_tracker/data/dto/team.dart'; import 'package:tallee/data/dto/team.dart';
part 'team_dao.g.dart'; part 'team_dao.g.dart';

View File

@@ -1,18 +1,22 @@
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:drift_flutter/drift_flutter.dart'; import 'package:drift_flutter/drift_flutter.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
import 'package:tallee/data/dao/game_dao.dart';
import 'package:tallee/data/dao/group_dao.dart'; import 'package:tallee/data/dao/group_dao.dart';
import 'package:tallee/data/dao/group_match_dao.dart';
import 'package:tallee/data/dao/match_dao.dart'; import 'package:tallee/data/dao/match_dao.dart';
import 'package:tallee/data/dao/player_dao.dart'; import 'package:tallee/data/dao/player_dao.dart';
import 'package:tallee/data/dao/player_group_dao.dart'; import 'package:tallee/data/dao/player_group_dao.dart';
import 'package:tallee/data/dao/player_match_dao.dart'; import 'package:tallee/data/dao/player_match_dao.dart';
import 'package:tallee/data/db/tables/group_match_table.dart'; import 'package:tallee/data/dao/score_dao.dart';
import 'package:tallee/data/dao/team_dao.dart';
import 'package:tallee/data/db/tables/game_table.dart';
import 'package:tallee/data/db/tables/group_table.dart'; import 'package:tallee/data/db/tables/group_table.dart';
import 'package:tallee/data/db/tables/match_table.dart'; import 'package:tallee/data/db/tables/match_table.dart';
import 'package:tallee/data/db/tables/player_group_table.dart'; import 'package:tallee/data/db/tables/player_group_table.dart';
import 'package:tallee/data/db/tables/player_match_table.dart'; import 'package:tallee/data/db/tables/player_match_table.dart';
import 'package:tallee/data/db/tables/player_table.dart'; import 'package:tallee/data/db/tables/player_table.dart';
import 'package:tallee/data/db/tables/score_table.dart';
import 'package:tallee/data/db/tables/team_table.dart';
part 'database.g.dart'; part 'database.g.dart';
@@ -23,7 +27,9 @@ part 'database.g.dart';
MatchTable, MatchTable,
PlayerGroupTable, PlayerGroupTable,
PlayerMatchTable, PlayerMatchTable,
GroupMatchTable, GameTable,
TeamTable,
ScoreTable,
], ],
daos: [ daos: [
PlayerDao, PlayerDao,
@@ -31,7 +37,9 @@ part 'database.g.dart';
MatchDao, MatchDao,
PlayerGroupDao, PlayerGroupDao,
PlayerMatchDao, PlayerMatchDao,
GroupMatchDao, GameDao,
ScoreDao,
TeamDao
], ],
) )
class AppDatabase extends _$AppDatabase { class AppDatabase extends _$AppDatabase {
@@ -52,9 +60,7 @@ class AppDatabase extends _$AppDatabase {
static QueryExecutor _openConnection() { static QueryExecutor _openConnection() {
return driftDatabase( return driftDatabase(
name: 'gametracker_db', name: 'gametracker_db',
native: const DriftNativeOptions( native: const DriftNativeOptions(databaseDirectory: getApplicationSupportDirectory),
databaseDirectory: getApplicationSupportDirectory,
),
); );
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:game_tracker/data/db/tables/game_table.dart'; import 'package:tallee/data/db/tables/game_table.dart';
import 'package:game_tracker/data/db/tables/group_table.dart'; import 'package:tallee/data/db/tables/group_table.dart';
class MatchTable extends Table { class MatchTable extends Table {
TextColumn get id => text()(); TextColumn get id => text()();

View File

@@ -1,6 +1,7 @@
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:tallee/data/db/tables/match_table.dart'; import 'package:tallee/data/db/tables/match_table.dart';
import 'package:tallee/data/db/tables/player_table.dart'; import 'package:tallee/data/db/tables/player_table.dart';
import 'package:tallee/data/db/tables/team_table.dart';
class PlayerMatchTable extends Table { class PlayerMatchTable extends Table {
TextColumn get playerId => TextColumn get playerId =>

View File

@@ -1,6 +1,6 @@
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:game_tracker/data/db/tables/match_table.dart'; import 'package:tallee/data/db/tables/match_table.dart';
import 'package:game_tracker/data/db/tables/player_table.dart'; import 'package:tallee/data/db/tables/player_table.dart';
class ScoreTable extends Table { class ScoreTable extends Table {
TextColumn get playerId => TextColumn get playerId =>

View File

@@ -1,6 +1,6 @@
import 'package:clock/clock.dart'; import 'package:clock/clock.dart';
import 'package:uuid/uuid.dart'; import 'package:uuid/uuid.dart';
import 'package:game_tracker/core/enums.dart'; import 'package:tallee/core/enums.dart';
class Game { class Game {
final String id; final String id;

View File

@@ -1,4 +1,6 @@
import 'package:clock/clock.dart'; import 'package:clock/clock.dart';
import 'package:tallee/core/enums.dart';
import 'package:tallee/data/dto/game.dart';
import 'package:tallee/data/dto/group.dart'; import 'package:tallee/data/dto/group.dart';
import 'package:tallee/data/dto/player.dart'; import 'package:tallee/data/dto/player.dart';
import 'package:uuid/uuid.dart'; import 'package:uuid/uuid.dart';

View File

@@ -1,5 +1,5 @@
import 'package:clock/clock.dart'; import 'package:clock/clock.dart';
import 'package:game_tracker/data/dto/player.dart'; import 'package:tallee/data/dto/player.dart';
import 'package:uuid/uuid.dart'; import 'package:uuid/uuid.dart';
class Team { class Team {

View File

@@ -29,9 +29,7 @@ class GameTracker extends StatelessWidget {
return supportedLocale; return supportedLocale;
} }
} }
return supportedLocales.firstWhere( return supportedLocales.firstWhere((locale) => locale.languageCode == 'en');
(locale) => locale.languageCode == 'en',
);
}, },
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
onGenerateTitle: (context) => AppLocalizations.of(context).app_name, onGenerateTitle: (context) => AppLocalizations.of(context).app_name,

View File

@@ -2,7 +2,9 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:tallee/core/adaptive_page_route.dart'; import 'package:tallee/core/adaptive_page_route.dart';
import 'package:tallee/core/constants.dart'; import 'package:tallee/core/constants.dart';
import 'package:tallee/core/enums.dart';
import 'package:tallee/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:tallee/data/dto/game.dart';
import 'package:tallee/data/dto/group.dart'; import 'package:tallee/data/dto/group.dart';
import 'package:tallee/data/dto/match.dart'; import 'package:tallee/data/dto/match.dart';
import 'package:tallee/data/dto/player.dart'; import 'package:tallee/data/dto/player.dart';
@@ -102,9 +104,7 @@ class _HomeViewState extends State<HomeView> {
if (recentMatches.isNotEmpty) if (recentMatches.isNotEmpty)
for (Match match in recentMatches) for (Match match in recentMatches)
Padding( Padding(
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(vertical: 6.0),
vertical: 6.0,
),
child: MatchTile( child: MatchTile(
compact: true, compact: true,
width: constraints.maxWidth * 0.9, width: constraints.maxWidth * 0.9,
@@ -113,8 +113,7 @@ class _HomeViewState extends State<HomeView> {
await Navigator.of(context).push( await Navigator.of(context).push(
adaptivePageRoute( adaptivePageRoute(
fullscreenDialog: true, fullscreenDialog: true,
builder: (context) => builder: (context) => MatchResultView(match: match),
MatchResultView(match: match),
), ),
); );
await updatedWinnerInRecentMatches(match.id); await updatedWinnerInRecentMatches(match.id);
@@ -122,10 +121,7 @@ class _HomeViewState extends State<HomeView> {
), ),
) )
else else
Center( Center(heightFactor: 5, child: Text(loc.no_recent_matches_available)),
heightFactor: 5,
child: Text(loc.no_recent_matches_available),
),
], ],
), ),
), ),
@@ -141,40 +137,22 @@ class _HomeViewState extends State<HomeView> {
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [ children: [
QuickCreateButton( QuickCreateButton(text: 'Category 1', onPressed: () {}),
text: 'Category 1', QuickCreateButton(text: 'Category 2', onPressed: () {}),
onPressed: () {},
),
QuickCreateButton(
text: 'Category 2',
onPressed: () {},
),
], ],
), ),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [ children: [
QuickCreateButton( QuickCreateButton(text: 'Category 3', onPressed: () {}),
text: 'Category 3', QuickCreateButton(text: 'Category 4', onPressed: () {}),
onPressed: () {},
),
QuickCreateButton(
text: 'Category 4',
onPressed: () {},
),
], ],
), ),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [ children: [
QuickCreateButton( QuickCreateButton(text: 'Category 5', onPressed: () {}),
text: 'Category 5', QuickCreateButton(text: 'Category 6', onPressed: () {}),
onPressed: () {},
),
QuickCreateButton(
text: 'Category 6',
onPressed: () {},
),
], ],
), ),
], ],
@@ -203,9 +181,7 @@ class _HomeViewState extends State<HomeView> {
matchCount = results[0] as int; matchCount = results[0] as int;
groupCount = results[1] as int; groupCount = results[1] as int;
loadedRecentMatches = results[2] as List<Match>; loadedRecentMatches = results[2] as List<Match>;
recentMatches = recentMatches = (loadedRecentMatches..sort((a, b) => b.createdAt.compareTo(a.createdAt)))
(loadedRecentMatches
..sort((a, b) => b.createdAt.compareTo(a.createdAt)))
.take(2) .take(2)
.toList(); .toList();
if (mounted) { if (mounted) {

View File

@@ -5,6 +5,7 @@ import 'package:tallee/core/constants.dart';
import 'package:tallee/core/custom_theme.dart'; import 'package:tallee/core/custom_theme.dart';
import 'package:tallee/core/enums.dart'; import 'package:tallee/core/enums.dart';
import 'package:tallee/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:tallee/data/dto/game.dart';
import 'package:tallee/data/dto/group.dart'; import 'package:tallee/data/dto/group.dart';
import 'package:tallee/data/dto/match.dart'; import 'package:tallee/data/dto/match.dart';
import 'package:tallee/data/dto/player.dart'; import 'package:tallee/data/dto/player.dart';

View File

@@ -6,7 +6,9 @@ import 'package:provider/provider.dart';
import 'package:tallee/core/adaptive_page_route.dart'; import 'package:tallee/core/adaptive_page_route.dart';
import 'package:tallee/core/constants.dart'; import 'package:tallee/core/constants.dart';
import 'package:tallee/core/custom_theme.dart'; import 'package:tallee/core/custom_theme.dart';
import 'package:tallee/core/enums.dart';
import 'package:tallee/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:tallee/data/dto/game.dart';
import 'package:tallee/data/dto/group.dart'; import 'package:tallee/data/dto/group.dart';
import 'package:tallee/data/dto/match.dart'; import 'package:tallee/data/dto/match.dart';
import 'package:tallee/data/dto/player.dart'; import 'package:tallee/data/dto/player.dart';

View File

@@ -8,9 +8,11 @@ import 'package:json_schema/json_schema.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:tallee/core/enums.dart'; import 'package:tallee/core/enums.dart';
import 'package:tallee/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:tallee/data/dto/game.dart';
import 'package:tallee/data/dto/group.dart'; import 'package:tallee/data/dto/group.dart';
import 'package:tallee/data/dto/match.dart'; import 'package:tallee/data/dto/match.dart';
import 'package:tallee/data/dto/player.dart'; import 'package:tallee/data/dto/player.dart';
import 'package:tallee/data/dto/team.dart';
class DataTransferService { class DataTransferService {
/// Deletes all data from the database. /// Deletes all data from the database.

View File

@@ -1,11 +1,10 @@
import 'package:clock/clock.dart'; import 'package:clock/clock.dart';
import 'package:drift/drift.dart'; import 'package:drift/drift.dart' hide isNull;
import 'package:drift/native.dart'; import 'package:drift/native.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:tallee/core/enums.dart';
import 'package:tallee/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:tallee/data/dto/group.dart'; import 'package:tallee/data/dto/game.dart';
import 'package:tallee/data/dto/match.dart';
import 'package:tallee/data/dto/player.dart';
void main() { void main() {
late AppDatabase database; late AppDatabase database;

View File

@@ -2,12 +2,12 @@ import 'package:clock/clock.dart';
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:drift/native.dart'; import 'package:drift/native.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:game_tracker/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:game_tracker/data/dto/game.dart'; import 'package:tallee/data/dto/game.dart';
import 'package:game_tracker/data/dto/group.dart'; import 'package:tallee/data/dto/group.dart';
import 'package:game_tracker/data/dto/match.dart'; import 'package:tallee/data/dto/match.dart';
import 'package:game_tracker/data/dto/player.dart'; import 'package:tallee/data/dto/player.dart';
import 'package:game_tracker/core/enums.dart'; import 'package:tallee/core/enums.dart';
void main() { void main() {
late AppDatabase database; late AppDatabase database;

View File

@@ -1,11 +1,14 @@
import 'package:clock/clock.dart'; import 'package:clock/clock.dart';
import 'package:drift/drift.dart' hide isNotNull; import 'package:drift/drift.dart' hide isNotNull, isNull;
import 'package:drift/native.dart'; import 'package:drift/native.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:tallee/core/enums.dart';
import 'package:tallee/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:tallee/data/dto/game.dart';
import 'package:tallee/data/dto/group.dart'; import 'package:tallee/data/dto/group.dart';
import 'package:tallee/data/dto/match.dart'; import 'package:tallee/data/dto/match.dart';
import 'package:tallee/data/dto/player.dart'; import 'package:tallee/data/dto/player.dart';
import 'package:tallee/data/dto/team.dart';
void main() { void main() {
late AppDatabase database; late AppDatabase database;

View File

@@ -2,11 +2,11 @@ import 'package:clock/clock.dart';
import 'package:drift/drift.dart' hide isNull, isNotNull; import 'package:drift/drift.dart' hide isNull, isNotNull;
import 'package:drift/native.dart'; import 'package:drift/native.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:game_tracker/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:game_tracker/data/dto/game.dart'; import 'package:tallee/data/dto/game.dart';
import 'package:game_tracker/data/dto/match.dart'; import 'package:tallee/data/dto/match.dart';
import 'package:game_tracker/data/dto/player.dart'; import 'package:tallee/data/dto/player.dart';
import 'package:game_tracker/core/enums.dart'; import 'package:tallee/core/enums.dart';
void main() { void main() {
late AppDatabase database; late AppDatabase database;

View File

@@ -2,12 +2,12 @@ import 'package:clock/clock.dart';
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:drift/native.dart'; import 'package:drift/native.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:game_tracker/data/db/database.dart'; import 'package:tallee/data/db/database.dart';
import 'package:game_tracker/data/dto/game.dart'; import 'package:tallee/data/dto/game.dart';
import 'package:game_tracker/data/dto/match.dart'; import 'package:tallee/data/dto/match.dart';
import 'package:game_tracker/data/dto/player.dart'; import 'package:tallee/data/dto/player.dart';
import 'package:game_tracker/data/dto/team.dart'; import 'package:tallee/data/dto/team.dart';
import 'package:game_tracker/core/enums.dart'; import 'package:tallee/core/enums.dart';
void main() { void main() {
late AppDatabase database; late AppDatabase database;