/*
 * @Descripttion: 
 * @version: 
 * @Author: guanxiaoxin
 * @Date: 2023-10-18 17:29:35
 * @LastEditors: guanxiaoxin
 * @LastEditTime: 2023-10-21 15:46:21
 * @FilePath: \VNoteApp\lib\managers\index.dart
 */
import 'package:get/get.dart';
import 'package:vnoteapp/managers/account.dart';
import 'package:vnoteapp/managers/cachedRecord.dart';
import 'package:vnoteapp/managers/contract.dart';
import 'package:vnoteapp/managers/contract_template.dart';
import 'package:vnoteapp/managers/diagnosis.dart';
import 'package:vnoteapp/managers/doctor.dart';
import 'package:vnoteapp/managers/exam.dart';
import 'package:vnoteapp/managers/follow_up.dart';
import 'package:vnoteapp/managers/health_check_record.dart';
import 'package:vnoteapp/managers/interfaces/account.dart';
import 'package:vnoteapp/managers/interfaces/cachedRecord.dart';
import 'package:vnoteapp/managers/interfaces/contract.dart';
import 'package:vnoteapp/managers/interfaces/diagnosis.dart';
import 'package:vnoteapp/managers/interfaces/doctor.dart';
import 'package:vnoteapp/managers/interfaces/exam.dart';
import 'package:vnoteapp/managers/interfaces/follow_up.dart';
import 'package:vnoteapp/managers/interfaces/health_check_record.dart';
import 'package:vnoteapp/managers/interfaces/label.dart';
import 'package:vnoteapp/managers/interfaces/patient.dart';
import 'package:vnoteapp/managers/interfaces/permission.dart';
import 'package:vnoteapp/managers/interfaces/service_pack.dart';
import 'package:vnoteapp/managers/interfaces/template.dart';
import 'package:vnoteapp/managers/label.dart';
import 'package:vnoteapp/managers/patient.dart';
import 'package:vnoteapp/managers/permission.dart';
import 'package:vnoteapp/managers/service_pack.dart';
import 'package:vnoteapp/managers/template.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());
    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());
  }

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