import 'package:get/get.dart';
import 'package:sigap/src/features/panic-button/data/repositories/crime_incidents_repository.dart';
import 'package:sigap/src/features/panic-button/data/repositories/crimes_repository.dart';
import 'package:sigap/src/features/panic-button/data/repositories/events_repository.dart';
import 'package:sigap/src/features/panic-button/data/repositories/evidences_repository.dart';
import 'package:sigap/src/features/panic-button/data/repositories/incident_logs_repository.dart';
import 'package:sigap/src/features/panic-button/data/repositories/panic_button_repository.dart';
import 'package:sigap/src/features/panic-button/data/repositories/sessions_repository.dart';

class PanicButtonRepositoryBindings implements Bindings {
  @override
  void dependencies() {
    // Register the main panic button repository
    Get.lazyPut<PanicButtonRepository>(
      () => PanicButtonRepository(),
      fenix: true,
    );

    // Register other related repositories
    Get.lazyPut<IncidentLogsRepository>(
      () => IncidentLogsRepository(),
      fenix: true,
    );

    Get.lazyPut<EvidencesRepository>(() => EvidencesRepository(), fenix: true);

    Get.lazyPut<EventsRepository>(() => EventsRepository(), fenix: true);

    Get.lazyPut<CrimesRepository>(() => CrimesRepository(), fenix: true);

    Get.lazyPut<CrimeIncidentsRepository>(
      () => CrimeIncidentsRepository(),
      fenix: true,
    );

    Get.lazyPut<SessionsRepository>(() => SessionsRepository(), fenix: true);
  }
}
