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'; final GetIt getIt = GetIt.instance; void init() { // Database getIt.registerSingleton(AppDatabase()); // DAOs getIt.registerSingleton(ExerciseDao(getIt())); getIt.registerSingleton( TrainingPlanDao(getIt()), ); getIt.registerSingleton(ProgramDao(getIt())); getIt.registerSingleton(AnalysisDao(getIt())); getIt.registerSingleton(ChatDao(getIt())); // Repositories getIt.registerLazySingleton( () => ExerciseRepositoryImpl(getIt()), ); getIt.registerLazySingleton( () => TrainingPlanRepositoryImpl(getIt()), ); getIt.registerLazySingleton( () => ProgramRepositoryImpl(getIt()), ); getIt.registerLazySingleton( () => AnalysisRepositoryImpl(getIt()), ); getIt.registerLazySingleton( () => ChatRepositoryImpl(getIt()), ); }