import 'package:get/get.dart';
import 'package:vitalapp/managers/account.dart';
import 'package:vitalapp/managers/cachedRecord.dart';
import 'package:vitalapp/managers/contract.dart';
import 'package:vitalapp/managers/contract_template.dart';
import 'package:vitalapp/managers/data_sync.dart';
import 'package:vitalapp/managers/device.dart';
import 'package:vitalapp/managers/diagnosis.dart';
import 'package:vitalapp/managers/dictionary.dart';
import 'package:vitalapp/managers/doctor.dart';
import 'package:vitalapp/managers/exam.dart';
import 'package:vitalapp/managers/follow_up.dart';
import 'package:vitalapp/managers/health_check_record.dart';
import 'package:vitalapp/managers/interfaces/account.dart';
import 'package:vitalapp/managers/interfaces/cachedRecord.dart';
import 'package:vitalapp/managers/interfaces/contract.dart';
import 'package:vitalapp/managers/interfaces/data_sync.dart';
import 'package:vitalapp/managers/interfaces/device.dart';
import 'package:vitalapp/managers/interfaces/diagnosis.dart';
import 'package:vitalapp/managers/interfaces/dictionary.dart';
import 'package:vitalapp/managers/interfaces/doctor.dart';
import 'package:vitalapp/managers/interfaces/exam.dart';
import 'package:vitalapp/managers/interfaces/follow_up.dart';
import 'package:vitalapp/managers/interfaces/health_check_record.dart';
import 'package:vitalapp/managers/interfaces/label.dart';
import 'package:vitalapp/managers/interfaces/patient.dart';
import 'package:vitalapp/managers/interfaces/permission.dart';
import 'package:vitalapp/managers/interfaces/service_pack.dart';
import 'package:vitalapp/managers/interfaces/system_setting.dart';
import 'package:vitalapp/managers/interfaces/template.dart';
import 'package:vitalapp/managers/label.dart';
import 'package:vitalapp/managers/patient.dart';
import 'package:vitalapp/managers/permission.dart';
import 'package:vitalapp/managers/service_pack.dart';
import 'package:vitalapp/managers/system_setting.dart';
import 'package:vitalapp/managers/template.dart';
import 'interfaces/base.dart';
import 'interfaces/contract_template.dart';

abstract class ManagerCenter {
  static void load() {
    Get.put<ISystemSettingManager>(SystemSettingManager());
    Get.put<IDeviceManager>(DeviceManager());
    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());
    Get.put<IExamManager>(ExamManager());
    Get.put<IFollowUpManager>(FollowUpManager());
    Get.put<ITemplateManager>(TemplateManager());
    Get.put<IHealthCehckRecordManager>(HealthCheckRecordManager());
    Get.put<IPermissionManager>(PermissionManager());
    Get.put<ICachedRecordManager>(CachedRecordManager());
    Get.put<IDiagnosisManager>(DiagnosisManager());
    Get.put<IDictionaryManager>(DictionaryManager());

    Get.put<IDataSyncManager>(DataSyncManager());
  }

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