setup method

dynamic setup()

Implementation

setup() {
  final getIt = CardInjector.instance.getIt;

  /// inject card repository
  CardInjector.instance.registerLazySingleton<ISaleByCardRepository>(
    () => SaleByCardRepositoryImpl(_networkService),
  );

  CardInjector.instance.registerLazySingleton<SaleByCardRepositoryImpl>(
    () => SaleByCardRepositoryImpl(_networkService),
  );

  /// inject sale by card use cases
  CardInjector.instance.registerLazySingleton(
    () => PurchaseUseCase(getIt<ISaleByCardRepository>()),
  );
  CardInjector.instance.registerLazySingleton(
    () => PurchaseOtpStepOneUseCase(getIt<ISaleByCardRepository>()),
  );
  CardInjector.instance.registerLazySingleton(
    () => PurchaseOtpStepTwoUseCase(getIt<ISaleByCardRepository>()),
  );
  CardInjector.instance.registerLazySingleton(
    () => PayWithTokenUseCase(getIt<ISaleByCardRepository>()),
  );
  CardInjector.instance.registerLazySingleton(
    () => GetCustomerTokenUseCase(getIt<ISaleByCardRepository>()),
  );

  /// inject sale by card cubit
  CardInjector.instance.registerLazySingleton(
    () => SaleByCardManualCubit(
      getIt<PurchaseUseCase>(),
      getIt<PurchaseOtpStepOneUseCase>(),
      getIt<PurchaseOtpStepTwoUseCase>(),
      getIt<PayWithTokenUseCase>(),
      getIt<GetCustomerTokenUseCase>(),
    ),
  );

  /// inject sale by card cubit
  CardInjector.instance.registerLazySingleton(
    () => SaleByCardContactLessCubit(
      getIt<PurchaseUseCase>(),
      getIt<PurchaseOtpStepOneUseCase>(),
      getIt<PurchaseOtpStepTwoUseCase>(),
      getIt<PayWithTokenUseCase>(),
      null,
    ),
  );

  /// inject amount card cubit
  CardInjector.instance.registerLazySingleton(
    () => AmountCurrencyWidgetCubit(),
  );
}