feat: initial commit - Habo habit tracking app
- 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)
This commit is contained in:
32
lib/repositories/repository_factory.dart
Normal file
32
lib/repositories/repository_factory.dart
Normal file
@@ -0,0 +1,32 @@
|
||||
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!;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user