import 'package:get/get.dart';
import 'package:vnoteapp/managers/account.dart';
import 'package:vnoteapp/managers/contract.dart';
import 'package:vnoteapp/managers/contract_template.dart';
import 'package:vnoteapp/managers/doctor.dart';
import 'package:vnoteapp/managers/interfaces/account.dart';
import 'package:vnoteapp/managers/interfaces/contract.dart';
import 'package:vnoteapp/managers/interfaces/doctor.dart';
import 'package:vnoteapp/managers/interfaces/label.dart';
import 'package:vnoteapp/managers/interfaces/patient.dart';
import 'package:vnoteapp/managers/interfaces/service_pack.dart';
import 'package:vnoteapp/managers/label.dart';
import 'package:vnoteapp/managers/patient.dart';
import 'package:vnoteapp/managers/service_pack.dart';
import 'interfaces/base.dart';
import 'interfaces/contract_template.dart';

abstract class ManagerCenter {
  static void load() {
    Get.put<IAccountManager>(AccountManager());
    Get.put<ILabelManager>(LabelManager());
    Get.put<IPatientManager>(PatientManager());
    Get.put<IDoctorManager>(DoctorManager());
    Get.put<IServicePackManager>(ServicePackManager());
    Get.put<IContractTemplateManager>(ContractTemplateManager());
    Get.put<IContractManager>(ContractManager());
  }

  static T find<T extends IManager>() {
    return Get.find<T>();
  }
}
