feat(01-01): add core infrastructure, localization, and Wave 0 tests

- AppDatabase with schemaVersion 1, in-memory executor for testing
- Database provider with @Riverpod(keepAlive: true)
- AppTheme with sage green seed ColorScheme and warm surface overrides
- ThemeNotifier with SharedPreferences persistence, defaults to system
- Full German ARB localization (15 keys) with proper umlauts
- Minimal main.dart with ProviderScope placeholder
- Drift schema v1 captured via make-migrations
- All .g.dart files generated via build_runner
- Wave 0 tests: database (3), color scheme (6), theme (3), localization (2) -- 14 total, all passing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-15 19:59:44 +01:00
parent 4b27aeadf6
commit 51738f78bc
17 changed files with 784 additions and 149 deletions

View File

@@ -0,0 +1,70 @@
// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
// ignore_for_file: type=lint
/// The translations for German (`de`).
class AppLocalizationsDe extends AppLocalizations {
AppLocalizationsDe([String locale = 'de']) : super(locale);
@override
String get appTitle => 'HouseHoldKeaper';
@override
String get tabHome => 'Übersicht';
@override
String get tabRooms => 'Räume';
@override
String get tabSettings => 'Einstellungen';
@override
String get homeEmptyTitle => 'Noch nichts zu tun!';
@override
String get homeEmptyMessage =>
'Lege zuerst einen Raum an, um Aufgaben zu planen.';
@override
String get homeEmptyAction => 'Raum erstellen';
@override
String get roomsEmptyTitle => 'Hier ist noch alles leer!';
@override
String get roomsEmptyMessage => 'Erstelle deinen ersten Raum, um loszulegen.';
@override
String get roomsEmptyAction => 'Raum erstellen';
@override
String get settingsSectionAppearance => 'Darstellung';
@override
String get settingsThemeLabel => 'Farbschema';
@override
String get themeSystem => 'System';
@override
String get themeLight => 'Hell';
@override
String get themeDark => 'Dunkel';
@override
String get settingsSectionAbout => 'Über';
@override
String get aboutAppName => 'HouseHoldKeaper';
@override
String get aboutTagline => 'Dein Haushalt, entspannt organisiert.';
@override
String aboutVersion(String version) {
return 'Version $version';
}
}