- Complete MVP with Repository Pattern, SQLite storage - Provider + ChangeNotifier state management - Navigation 2.0 with deep link support - Habit CRUD with twoDayRule, notifications, categories - Backup/Restore via JSON - Statistics with streak tracking - Material You theme support - Biometric lock support - Desktop widget support - 27 languages i18n structure - Comprehensive test suite (87/89 passing)
33 lines
1.0 KiB
Dart
33 lines
1.0 KiB
Dart
import 'package:habo/model/habo_model.dart';
|
|
import 'package:habo/repositories/habit_repository.dart';
|
|
import 'package:habo/repositories/event_repository.dart';
|
|
import 'package:habo/repositories/category_repository.dart';
|
|
import 'package:habo/repositories/sqlite_habit_repository.dart';
|
|
import 'package:habo/repositories/sqlite_event_repository.dart';
|
|
import 'package:habo/repositories/sqlite_category_repository.dart';
|
|
|
|
class RepositoryFactory {
|
|
final HaboModel _model;
|
|
|
|
HabitRepository? _habitRepository;
|
|
EventRepository? _eventRepository;
|
|
CategoryRepository? _categoryRepository;
|
|
|
|
RepositoryFactory(this._model);
|
|
|
|
HabitRepository get habitRepository {
|
|
_habitRepository ??= SqliteHabitRepository(_model);
|
|
return _habitRepository!;
|
|
}
|
|
|
|
EventRepository get eventRepository {
|
|
_eventRepository ??= SqliteEventRepository(_model);
|
|
return _eventRepository!;
|
|
}
|
|
|
|
CategoryRepository get categoryRepository {
|
|
_categoryRepository ??= SqliteCategoryRepository(_model);
|
|
return _categoryRepository!;
|
|
}
|
|
}
|