72 lines
3.2 KiB
Dart
72 lines
3.2 KiB
Dart
import 'package:get_it/get_it.dart';
|
|
import 'package:trainhub_flutter/data/database/app_database.dart';
|
|
import 'package:trainhub_flutter/data/database/daos/exercise_dao.dart';
|
|
import 'package:trainhub_flutter/data/database/daos/training_plan_dao.dart';
|
|
import 'package:trainhub_flutter/data/database/daos/program_dao.dart';
|
|
import 'package:trainhub_flutter/data/database/daos/analysis_dao.dart';
|
|
import 'package:trainhub_flutter/data/database/daos/chat_dao.dart';
|
|
import 'package:trainhub_flutter/domain/repositories/exercise_repository.dart';
|
|
import 'package:trainhub_flutter/domain/repositories/training_plan_repository.dart';
|
|
import 'package:trainhub_flutter/domain/repositories/program_repository.dart';
|
|
import 'package:trainhub_flutter/domain/repositories/analysis_repository.dart';
|
|
import 'package:trainhub_flutter/domain/repositories/chat_repository.dart';
|
|
import 'package:trainhub_flutter/data/repositories/exercise_repository_impl.dart';
|
|
import 'package:trainhub_flutter/data/repositories/training_plan_repository_impl.dart';
|
|
import 'package:trainhub_flutter/data/repositories/program_repository_impl.dart';
|
|
import 'package:trainhub_flutter/data/repositories/analysis_repository_impl.dart';
|
|
import 'package:trainhub_flutter/data/repositories/chat_repository_impl.dart';
|
|
import 'package:trainhub_flutter/data/repositories/note_repository_impl.dart';
|
|
import 'package:trainhub_flutter/domain/repositories/note_repository.dart';
|
|
import 'package:trainhub_flutter/data/services/ai_process_manager.dart';
|
|
import 'package:trainhub_flutter/data/services/embedding_service.dart';
|
|
import 'package:trainhub_flutter/data/database/daos/knowledge_chunk_dao.dart';
|
|
|
|
final GetIt getIt = GetIt.instance;
|
|
|
|
void init() {
|
|
// AI Process Manager — must be registered before anything else so that the
|
|
// window lifecycle hook can always find it via getIt<AiProcessManager>().
|
|
getIt.registerSingleton<AiProcessManager>(AiProcessManager());
|
|
|
|
// Database
|
|
getIt.registerSingleton<AppDatabase>(AppDatabase());
|
|
|
|
// DAOs
|
|
getIt.registerSingleton<ExerciseDao>(ExerciseDao(getIt<AppDatabase>()));
|
|
getIt.registerSingleton<TrainingPlanDao>(
|
|
TrainingPlanDao(getIt<AppDatabase>()),
|
|
);
|
|
getIt.registerSingleton<ProgramDao>(ProgramDao(getIt<AppDatabase>()));
|
|
getIt.registerSingleton<AnalysisDao>(AnalysisDao(getIt<AppDatabase>()));
|
|
getIt.registerSingleton<ChatDao>(ChatDao(getIt<AppDatabase>()));
|
|
getIt.registerSingleton<KnowledgeChunkDao>(
|
|
KnowledgeChunkDao(getIt<AppDatabase>()),
|
|
);
|
|
|
|
// Services
|
|
getIt.registerSingleton<EmbeddingService>(EmbeddingService());
|
|
|
|
// Repositories
|
|
getIt.registerLazySingleton<ExerciseRepository>(
|
|
() => ExerciseRepositoryImpl(getIt<ExerciseDao>()),
|
|
);
|
|
getIt.registerLazySingleton<TrainingPlanRepository>(
|
|
() => TrainingPlanRepositoryImpl(getIt<TrainingPlanDao>()),
|
|
);
|
|
getIt.registerLazySingleton<ProgramRepository>(
|
|
() => ProgramRepositoryImpl(getIt<ProgramDao>()),
|
|
);
|
|
getIt.registerLazySingleton<AnalysisRepository>(
|
|
() => AnalysisRepositoryImpl(getIt<AnalysisDao>()),
|
|
);
|
|
getIt.registerLazySingleton<ChatRepository>(
|
|
() => ChatRepositoryImpl(getIt<ChatDao>()),
|
|
);
|
|
getIt.registerLazySingleton<NoteRepository>(
|
|
() => NoteRepositoryImpl(
|
|
getIt<KnowledgeChunkDao>(),
|
|
getIt<EmbeddingService>(),
|
|
),
|
|
);
|
|
}
|