initial_binding.dart 1.01 KB
import 'package:get/get.dart';

import '../../core/config/app_environment_config.dart';
import '../../core/network/dio_client.dart';
import '../../data/local/user_preferences_storage.dart';
import 'dependency_registrars.dart';

/// Core dependencies required at cold start (splash + session).
class InitialBinding extends Bindings {
  InitialBinding({
    required this.environmentConfig,
    required this.userPreferencesStorage,
  });

  final AppEnvironmentConfig environmentConfig;
  final UserPreferencesStorage userPreferencesStorage;

  @override
  void dependencies() {
    registerCoreDeps(
      environmentConfig: environmentConfig,
      userPreferencesStorage: userPreferencesStorage,
    );
    registerUserSessionDeps();

    final dioClient = Get.find<DioClient>();
    final userPrefs = Get.find<UserPreferencesStorage>();

    registerHealthDeps(dioClient);
    registerPayDeps(dioClient);
    registerConfigDeps(dioClient);
    registerInteractionDeps(dioClient, userPrefs);
    registerObsDeps(dioClient);
  }
}