// ignore_for_file: non_constant_identifier_names // ignore_for_file: camel_case_types // ignore_for_file: prefer_single_quotes // This file is automatically generated. DO NOT EDIT, all your changes would be lost. import 'package:flutter/material.dart' show debugPrint; import 'package:domain/entity/response/attendance_entity.dart'; import 'package:domain/entity/response/check_success_entity.dart'; import 'package:domain/entity/response/hotel_info_entity.dart'; import 'package:domain/entity/response/id_name_entity.dart'; import 'package:domain/entity/response/job_list_add_staff_entity.dart'; import 'package:domain/entity/response/job_list_applied_edit_entity.dart'; import 'package:domain/entity/response/job_list_applied_info_entity.dart'; import 'package:domain/entity/response/job_list_applied_staff_list_entity.dart'; import 'package:domain/entity/response/job_list_applied_staff_search_entity.dart'; import 'package:domain/entity/response/job_list_applied_work_flow_entity.dart'; import 'package:domain/entity/response/job_list_detail_entity.dart'; import 'package:domain/entity/response/job_list_entity.dart'; import 'package:domain/entity/response/job_list_index_entity.dart'; import 'package:domain/entity/response/job_list_remark_view_entity.dart'; import 'package:domain/entity/response/labour_request_edit_index_entity.dart'; import 'package:domain/entity/response/labour_request_index_entity.dart'; import 'package:domain/entity/response/labour_request_list_entity.dart'; import 'package:domain/entity/response/labour_request_work_flow_entity.dart'; import 'package:domain/entity/response/staff_detail_entity.dart'; import 'package:domain/entity/response/staff_labour_history_entity.dart'; import 'package:domain/entity/response/staff_remark_history_entity.dart'; import 'package:domain/entity/server_time.dart'; JsonConvert jsonConvert = JsonConvert(); typedef JsonConvertFunction = T Function(Map json); typedef EnumConvertFunction = T Function(String value); typedef ConvertExceptionHandler = void Function(Object error, StackTrace stackTrace); extension MapSafeExt on Map { T? getOrNull(K? key) { if (!containsKey(key) || key == null) { return null; } else { return this[key] as T?; } } } class JsonConvert { static ConvertExceptionHandler? onError; JsonConvertClassCollection convertFuncMap = JsonConvertClassCollection(); /// When you are in the development, to generate a new model class, hot-reload doesn't find new generation model class, you can build on MaterialApp method called jsonConvert. ReassembleConvertFuncMap (); This method only works in a development environment /// https://flutter.cn/docs/development/tools/hot-reload /// class MyApp extends StatelessWidget { /// const MyApp({Key? key}) /// : super(key: key); /// /// @override /// Widget build(BuildContext context) { /// jsonConvert.reassembleConvertFuncMap(); /// return MaterialApp(); /// } /// } void reassembleConvertFuncMap() { bool isReleaseMode = const bool.fromEnvironment('dart.vm.product'); if (!isReleaseMode) { convertFuncMap = JsonConvertClassCollection(); } } T? convert(dynamic value, {EnumConvertFunction? enumConvert}) { if (value == null) { return null; } if (value is T) { return value; } try { return _asT(value, enumConvert: enumConvert); } catch (e, stackTrace) { debugPrint('asT<$T> $e $stackTrace'); if (onError != null) { onError!(e, stackTrace); } return null; } } List? convertList(List? value, {EnumConvertFunction? enumConvert}) { if (value == null) { return null; } try { return value.map((dynamic e) => _asT(e, enumConvert: enumConvert)).toList(); } catch (e, stackTrace) { debugPrint('asT<$T> $e $stackTrace'); if (onError != null) { onError!(e, stackTrace); } return []; } } List? convertListNotNull(dynamic value, {EnumConvertFunction? enumConvert}) { if (value == null) { return null; } try { return (value as List).map((dynamic e) => _asT(e, enumConvert: enumConvert)!).toList(); } catch (e, stackTrace) { debugPrint('asT<$T> $e $stackTrace'); if (onError != null) { onError!(e, stackTrace); } return []; } } T? _asT(dynamic value, {EnumConvertFunction? enumConvert}) { final String type = T.toString(); final String valueS = value.toString(); if (enumConvert != null) { return enumConvert(valueS) as T; } else if (type == "String") { return valueS as T; } else if (type == "int") { final int? intValue = int.tryParse(valueS); if (intValue == null) { return double.tryParse(valueS)?.toInt() as T?; } else { return intValue as T; } } else if (type == "double") { return double.parse(valueS) as T; } else if (type == "DateTime") { return DateTime.parse(valueS) as T; } else if (type == "bool") { if (valueS == '0' || valueS == '1') { return (valueS == '1') as T; } return (valueS == 'true') as T; } else if (type == "Map" || type.startsWith("Map<")) { return value as T; } else { if (convertFuncMap.containsKey(type)) { if (value == null) { return null; } return convertFuncMap[type]!(value as Map) as T; } else { throw UnimplementedError('$type unimplemented,you can try running the app again'); } } } //list is returned by type static M? _getListChildType(List> data) { if ([] is M) { return data.map((Map e) => AttendanceEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => AttendanceList.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => CheckSuccessEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => HotelInfoEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => HotelInfoMenus.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => HotelInfoMenusChildren.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => IdNameEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAddStaffEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAddStaffResultList.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAppliedEditEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAppliedEditReasonList.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAppliedInfoEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAppliedStaffListEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAppliedStaffListRows.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAppliedStaffListRowsSecurityIn.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAppliedStaffListRowsSecurityOut.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAppliedStaffListRowsWorkIn.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAppliedStaffListRowsWorkOut.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAppliedStaffSearchEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAppliedStaffSearchRows.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAppliedWorkFlowEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListAppliedWorkFlowRecords.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListDetailEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListDetailDepartmentList.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListRows.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListIndexEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListIndexDepartmentList.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListIndexStatusList.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => JobListRemarkViewEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => LabourRequestEditIndexEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => LabourRequestEditIndexTemplateList.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => LabourRequestEditIndexDepartmentList.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => LabourRequestIndexEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => LabourRequestIndexDepartmentList.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => LabourRequestIndexStatusList.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => LabourRequestListEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => LabourRequestListRows.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => LabourRequestWorkFlowEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => LabourRequestWorkFlowRecords.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => StaffDetailEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => StaffLabourHistoryEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => StaffLabourHistoryRows.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => StaffLabourHistoryRowsSecurityIn.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => StaffLabourHistoryRowsSecurityOut.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => StaffLabourHistoryRowsWorkIn.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => StaffLabourHistoryRowsWorkOut.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => StaffRemarkHistoryEntity.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => StaffRemarkHistoryRows.fromJson(e)).toList() as M; } if ([] is M) { return data.map((Map e) => ServerTime.fromJson(e)).toList() as M; } debugPrint("$M not found"); return null; } static M? fromJsonAsT(dynamic json) { if (json is M) { return json; } if (json is List) { return _getListChildType(json.map((dynamic e) => e as Map).toList()); } else { return jsonConvert.convert(json); } } } class JsonConvertClassCollection { Map convertFuncMap = { (AttendanceEntity).toString(): AttendanceEntity.fromJson, (AttendanceList).toString(): AttendanceList.fromJson, (CheckSuccessEntity).toString(): CheckSuccessEntity.fromJson, (HotelInfoEntity).toString(): HotelInfoEntity.fromJson, (HotelInfoMenus).toString(): HotelInfoMenus.fromJson, (HotelInfoMenusChildren).toString(): HotelInfoMenusChildren.fromJson, (IdNameEntity).toString(): IdNameEntity.fromJson, (JobListAddStaffEntity).toString(): JobListAddStaffEntity.fromJson, (JobListAddStaffResultList).toString(): JobListAddStaffResultList.fromJson, (JobListAppliedEditEntity).toString(): JobListAppliedEditEntity.fromJson, (JobListAppliedEditReasonList).toString(): JobListAppliedEditReasonList.fromJson, (JobListAppliedInfoEntity).toString(): JobListAppliedInfoEntity.fromJson, (JobListAppliedStaffListEntity).toString(): JobListAppliedStaffListEntity.fromJson, (JobListAppliedStaffListRows).toString(): JobListAppliedStaffListRows.fromJson, (JobListAppliedStaffListRowsSecurityIn).toString(): JobListAppliedStaffListRowsSecurityIn.fromJson, (JobListAppliedStaffListRowsSecurityOut).toString(): JobListAppliedStaffListRowsSecurityOut.fromJson, (JobListAppliedStaffListRowsWorkIn).toString(): JobListAppliedStaffListRowsWorkIn.fromJson, (JobListAppliedStaffListRowsWorkOut).toString(): JobListAppliedStaffListRowsWorkOut.fromJson, (JobListAppliedStaffSearchEntity).toString(): JobListAppliedStaffSearchEntity.fromJson, (JobListAppliedStaffSearchRows).toString(): JobListAppliedStaffSearchRows.fromJson, (JobListAppliedWorkFlowEntity).toString(): JobListAppliedWorkFlowEntity.fromJson, (JobListAppliedWorkFlowRecords).toString(): JobListAppliedWorkFlowRecords.fromJson, (JobListDetailEntity).toString(): JobListDetailEntity.fromJson, (JobListDetailDepartmentList).toString(): JobListDetailDepartmentList.fromJson, (JobListEntity).toString(): JobListEntity.fromJson, (JobListRows).toString(): JobListRows.fromJson, (JobListIndexEntity).toString(): JobListIndexEntity.fromJson, (JobListIndexDepartmentList).toString(): JobListIndexDepartmentList.fromJson, (JobListIndexStatusList).toString(): JobListIndexStatusList.fromJson, (JobListRemarkViewEntity).toString(): JobListRemarkViewEntity.fromJson, (LabourRequestEditIndexEntity).toString(): LabourRequestEditIndexEntity.fromJson, (LabourRequestEditIndexTemplateList).toString(): LabourRequestEditIndexTemplateList.fromJson, (LabourRequestEditIndexDepartmentList).toString(): LabourRequestEditIndexDepartmentList.fromJson, (LabourRequestIndexEntity).toString(): LabourRequestIndexEntity.fromJson, (LabourRequestIndexDepartmentList).toString(): LabourRequestIndexDepartmentList.fromJson, (LabourRequestIndexStatusList).toString(): LabourRequestIndexStatusList.fromJson, (LabourRequestListEntity).toString(): LabourRequestListEntity.fromJson, (LabourRequestListRows).toString(): LabourRequestListRows.fromJson, (LabourRequestWorkFlowEntity).toString(): LabourRequestWorkFlowEntity.fromJson, (LabourRequestWorkFlowRecords).toString(): LabourRequestWorkFlowRecords.fromJson, (StaffDetailEntity).toString(): StaffDetailEntity.fromJson, (StaffLabourHistoryEntity).toString(): StaffLabourHistoryEntity.fromJson, (StaffLabourHistoryRows).toString(): StaffLabourHistoryRows.fromJson, (StaffLabourHistoryRowsSecurityIn).toString(): StaffLabourHistoryRowsSecurityIn.fromJson, (StaffLabourHistoryRowsSecurityOut).toString(): StaffLabourHistoryRowsSecurityOut.fromJson, (StaffLabourHistoryRowsWorkIn).toString(): StaffLabourHistoryRowsWorkIn.fromJson, (StaffLabourHistoryRowsWorkOut).toString(): StaffLabourHistoryRowsWorkOut.fromJson, (StaffRemarkHistoryEntity).toString(): StaffRemarkHistoryEntity.fromJson, (StaffRemarkHistoryRows).toString(): StaffRemarkHistoryRows.fromJson, (ServerTime).toString(): ServerTime.fromJson, }; bool containsKey(String type) { return convertFuncMap.containsKey(type); } JsonConvertFunction? operator [](String key) { return convertFuncMap[key]; } }