setupInjection function
Configures dependency injection for the application.
This function sets up all dependencies needed by the Kanban board system, including:
- Repository implementations
- Board-related use cases
- Task-related use cases
Parameters:
repository: The concrete implementation of BoardRepository to use
Implementation
void setupInjection(BoardRepository repository) {
// Register repository as a lazy singleton.
getIt.registerLazySingleton<BoardRepository>(() => repository);
// Register board use cases.
getIt.registerFactory(() => GetBoardUseCase(getIt<BoardRepository>()));
getIt.registerFactory(() => SaveBoardUseCase(getIt<BoardRepository>()));
getIt.registerFactory(() => UpdateBoardUseCase(getIt<BoardRepository>()));
getIt.registerFactory(() => UpdateColumnLimitUseCase(getIt<BoardRepository>()));
// Register task use cases.
getIt.registerLazySingleton<AddTaskUseCase>(() => AddTaskUseCase());
getIt.registerLazySingleton<DeleteTaskUseCase>(() => DeleteTaskUseCase());
getIt.registerLazySingleton<ReorderTaskUseCase>(() => ReorderTaskUseCase());
getIt.registerLazySingleton<MoveTaskUseCase>(() => MoveTaskUseCase());
getIt.registerLazySingleton<DeleteDoneTaskUseCase>(() => DeleteDoneTaskUseCase());
getIt.registerLazySingleton<ClearDoneColumnUseCase>(() => ClearDoneColumnUseCase());
getIt.registerLazySingleton<EditTaskUseCase>(() => EditTaskUseCase());
}