You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
HMG_QLine/lib/models/global_config_model.dart

311 lines
17 KiB
Dart

import 'dart:ui';
import 'package:hmg_qline/constants/app_constants.dart';
import 'package:hmg_qline/models/kiosk_language_config_model.dart';
import 'package:hmg_qline/models/kiosk_queue_model.dart';
import 'package:hmg_qline/utilities/enums.dart';
import 'package:hmg_qline/utilities/extensions.dart';
class GlobalConfigurationsModel {
int? id;
int? configType;
String? description;
int? counterStart;
int? counterEnd;
int concurrentCallDelaySec = 1;
int? voiceType;
String? voiceTypeText;
LanguageEnum screenLanguageEnum = LanguageEnum.english;
String? screenLanguageText;
TextDirection textDirection = TextDirection.ltr;
LanguageEnum voiceLanguageEnum = LanguageEnum.english;
String? voiceLanguageText;
int screenMaxDisplayPatients = 16;
bool? isNotiReq;
int? prioritySMS;
int? priorityWhatsApp;
int? priorityEmail;
String ticketNoText = "Ticket Number";
String pleaseVisitCounterTextEn = "Please Visit Counter";
String pleaseVisitCounterTextAr = "Please Visit Counter";
int? roomNo;
bool? isRoomNoRequired;
String? roomTextEng;
String? counterTextEng;
String? queueNoTextEng;
String? callForTextEng;
String? roomTextArb;
String? counterTextArb;
String? queueNoTextArb;
String? callForTextArb;
String? currentServeTextEng = "Current Serving";
String? currentServeTextArb;
String maxText = "";
String minText = "";
String nextPrayerTextEng = "Next Prayer";
String nextPrayerTextArb = "الصلاة القادمة";
String weatherText = "Weather";
String? fajarTextEng;
String? dhuhrTextEng;
String? asarTextEng;
String? maghribTextEng;
String? ishaTextEng;
String? fajarTextArb;
String? dhuhrTextArb;
String? asarTextArb;
String? maghribTextArb;
String? ishaTextArb;
bool? isActive;
int? createdBy;
String? createdOn;
dynamic editedBy;
dynamic editedOn;
bool isToneReq = false;
bool isVoiceReq = false;
ScreenOrientationEnum orientationTypeEnum = ScreenOrientationEnum.portraitUp;
bool? isTurnOn;
int? waitingAreaType;
int? gender;
bool isWeatherReq = false;
bool isPrayerTimeReq = false;
bool isRssFeedReq = false;
QTypeEnum qTypeEnum = QTypeEnum.appointment;
ScreenTypeEnum screenTypeEnum = ScreenTypeEnum.waitingAreaScreen;
int? projectID;
double? projectLatitude;
double? projectLongitude;
int? cityKey;
List<KioskQueueModel>? kioskQueueList;
List<KioskLanguageConfigModel>? kioskLanguageConfigList;
bool isFromTakhasusiMain = false;
String vitalSignTextEng = "Vital Sign";
String doctorTextEng = "Doctor";
String procedureTextEng = "Procedure";
String vaccinationTextEng = "Vaccination";
String nebulizationTextEng = "Nebulization";
String callForVitalSignTextEng = "Call for Vital Sign";
String callForDoctorTextEng = "Call for Doctor";
String callForProcedureTextEng = "Call for Procedure";
String callForVaccinationTextEng = "Call for Vaccination";
String callForNebulizationTextEng = "Call for Nebulization";
String vitalSignTextArb = "العلامات الحيوية";
String doctorTextArb = "الطبيب";
String procedureTextArb = "الإجراء";
String vaccinationTextArb = "التطعيم";
String nebulizationTextArb = "البخاخة";
String callForVitalSignTextArb = "الرجاء التوجّه إلى غرفة العلامات الحيوية";
String callForDoctorTextArb = "الرجاء التوجّه إلى غرفة الطبيب";
String callForProcedureTextArb = "الرجاء التوجّه إلى غرفة الإجراء";
String callForVaccinationTextArb = "الرجاء التوجّه إلى غرفة التطعيم";
String callForNebulizationTextArb = "الرجاء التوجّه إلى غرفة البخاخة";
static String defaultIfNullOrEmpty(dynamic value, String def) {
if (value == null) return def;
if (value is String && value.trim().isEmpty) return def;
return value.toString();
}
GlobalConfigurationsModel({
this.id,
this.configType,
this.description,
this.counterStart,
this.counterEnd,
this.concurrentCallDelaySec = 1,
this.voiceType,
this.voiceTypeText,
this.screenLanguageEnum = LanguageEnum.english,
this.screenLanguageText,
this.textDirection = TextDirection.ltr,
this.voiceLanguageEnum = LanguageEnum.english,
this.voiceLanguageText,
this.screenMaxDisplayPatients = 16,
this.isNotiReq,
this.prioritySMS,
this.priorityWhatsApp,
this.priorityEmail,
this.ticketNoText = "Ticket Number",
this.pleaseVisitCounterTextEn = "Please Visit Counter",
this.pleaseVisitCounterTextAr = "يرجى زيارة الكاونتر",
this.roomTextEng,
this.roomNo,
this.isRoomNoRequired = true,
this.counterTextEng,
this.queueNoTextEng,
this.callForTextEng,
this.counterTextArb,
this.queueNoTextArb,
this.callForTextArb,
this.currentServeTextEng = "Current Serving",
this.currentServeTextArb,
this.maxText = "",
this.minText = "",
this.nextPrayerTextEng = "Next Prayer",
this.nextPrayerTextArb = "الصلاة القادمة",
this.weatherText = "Weather",
this.fajarTextEng,
this.dhuhrTextEng,
this.asarTextEng,
this.maghribTextEng,
this.ishaTextEng,
this.fajarTextArb,
this.dhuhrTextArb,
this.asarTextArb,
this.maghribTextArb,
this.ishaTextArb,
this.isActive,
this.createdBy,
this.createdOn,
this.editedBy,
this.editedOn,
this.isToneReq = false,
this.isVoiceReq = false,
this.orientationTypeEnum = ScreenOrientationEnum.portraitUp,
this.isTurnOn,
this.waitingAreaType,
this.gender,
this.isWeatherReq = false,
this.isPrayerTimeReq = false,
this.isRssFeedReq = false,
this.qTypeEnum = QTypeEnum.appointment,
this.screenTypeEnum = ScreenTypeEnum.waitingAreaScreen,
this.projectID,
this.projectLatitude,
this.projectLongitude,
this.cityKey,
this.kioskQueueList,
this.kioskLanguageConfigList,
this.isFromTakhasusiMain = false,
this.vitalSignTextEng = "Vital Sign",
this.doctorTextEng = "Doctor",
this.procedureTextEng = "Procedure",
this.vaccinationTextEng = "Vaccination",
this.nebulizationTextEng = "Nebulization",
this.callForVitalSignTextEng = "Call for Vital Sign",
this.callForDoctorTextEng = "Call for Doctor",
this.callForProcedureTextEng = "Call for Procedure",
this.callForVaccinationTextEng = "Call for Vaccination",
this.callForNebulizationTextEng = "Call for Nebulization",
this.vitalSignTextArb = "العلامات الحيوية",
this.doctorTextArb = "الطبيب",
this.procedureTextArb = "الإجراء",
this.vaccinationTextArb = "التطعيم",
this.nebulizationTextArb = "البخاخة",
this.callForVitalSignTextArb = "استدعاء للعلامات الحيوية",
this.callForDoctorTextArb = "الرجاء التوجّه إلى غرفة الطبيب",
this.callForProcedureTextArb = "الرجاء التوجّه إلى غرفة الإجراء",
this.callForVaccinationTextArb = "الرجاء التوجّه إلى غرفة التطعيم",
this.callForNebulizationTextArb = "الرجاء التوجّه إلى غرفة البخاخة",
});
GlobalConfigurationsModel.fromJson({required Map<String, dynamic> json, int qType = 1, int screenType = 1}) {
id = json['id'] ?? 0;
configType = json['configType'] ?? 0;
description = defaultIfNullOrEmpty(json['description'], "");
counterStart = json['counterStart'] ?? 0;
counterEnd = json['counterEnd'] ?? 0;
concurrentCallDelaySec = json['concurrentCallDelaySec'] ?? 1;
voiceType = json['voiceType'] ?? 0;
voiceTypeText = defaultIfNullOrEmpty(json['voiceTypeText'], "");
screenLanguageEnum = ((json['screenLanguage'] ?? 1) as int).toLanguageEnum();
screenLanguageText = defaultIfNullOrEmpty(json['screenLanguageText'], "English");
textDirection = json['textDirection'] == 2 ? TextDirection.rtl : TextDirection.ltr;
voiceLanguageEnum = ((json['voiceLanguage'] ?? 1) as int).toLanguageEnum();
voiceLanguageText = defaultIfNullOrEmpty(json['voiceLanguageText'], "English");
screenMaxDisplayPatients = json['screenMaxDisplayPatients'] ?? 16;
isNotiReq = json['isNotiReq'] ?? false;
prioritySMS = json['prioritySMS'] ?? 0;
priorityWhatsApp = json['priorityWhatsApp'] ?? 0;
priorityEmail = json['priorityEmail'] ?? 0;
ticketNoText = defaultIfNullOrEmpty(json['ticketNoText'], "Ticket Number");
pleaseVisitCounterTextEn = defaultIfNullOrEmpty(json['pleaseVisitCounterText'], "Please Visit Counter");
pleaseVisitCounterTextAr = defaultIfNullOrEmpty(json['pleaseVisitCounterTextAr'], "يرجى زيارة الكاونتر");
roomNo = json['roomNo'] ?? 0;
isRoomNoRequired = json['isRoomNoReq'] ?? true;
queueNoTextEng = defaultIfNullOrEmpty(json['queueNoText'], "Queue Number");
callForTextEng = defaultIfNullOrEmpty(json['callForText'], "Please Proceed");
counterTextEng = defaultIfNullOrEmpty(json['counterText'], "Counter");
roomTextEng = defaultIfNullOrEmpty(json['roomText'], "Room");
queueNoTextArb = defaultIfNullOrEmpty(json['queueNoTextAr'], "الرقم");
callForTextArb = defaultIfNullOrEmpty(json['callForTextAr'], "التوجه إلى");
counterTextArb = defaultIfNullOrEmpty(json['counterTextAr'], "الكاونتر");
roomTextArb = defaultIfNullOrEmpty(json['roomTextAr'], "الغرفة");
currentServeTextEng = defaultIfNullOrEmpty(json['currentServeText'], "Current Serving");
currentServeTextArb = defaultIfNullOrEmpty(json['currentServeTextAr'], "يتم خدمة");
maxText = defaultIfNullOrEmpty(json['maxText'], "");
minText = defaultIfNullOrEmpty(json['minText'], "");
nextPrayerTextEng = defaultIfNullOrEmpty(json['nextPrayerText'], "Next Prayer");
nextPrayerTextArb = defaultIfNullOrEmpty(json['nextPrayerTextArb'], "الصلاة القادمة");
weatherText = defaultIfNullOrEmpty(json['weatherText'], "Weather");
fajarTextEng = defaultIfNullOrEmpty(json['fajarText'], "Fajr");
dhuhrTextEng = defaultIfNullOrEmpty(json['dhuhrText'], "Dhuhr");
asarTextEng = defaultIfNullOrEmpty(json['asarText'], "Asar");
maghribTextEng = defaultIfNullOrEmpty(json['maghribText'], "Maghrib");
ishaTextEng = defaultIfNullOrEmpty(json['ishaText'], "Isha");
fajarTextArb = defaultIfNullOrEmpty(json['fajarTextAr'], AppStrings.prayersArray[0]);
dhuhrTextArb = defaultIfNullOrEmpty(json['dhuhrTextAr'], AppStrings.prayersArray[1]);
asarTextArb = defaultIfNullOrEmpty(json['asarTextAr'], AppStrings.prayersArray[2]);
maghribTextArb = defaultIfNullOrEmpty(json['maghribTextAr'], AppStrings.prayersArray[3]);
ishaTextArb = defaultIfNullOrEmpty(json['ishaTextAr'], AppStrings.prayersArray[4]);
isActive = json['isActive'] ?? true;
createdBy = json['createdBy'] ?? 0;
createdOn = defaultIfNullOrEmpty(json['createdOn'], "");
editedBy = json['editedBy'];
editedOn = json['editedOn'];
isToneReq = json['isToneReq'] ?? false;
isVoiceReq = json['isVoiceReq'] ?? false;
orientationTypeEnum = ((json['orientationType'] ?? 1) as int).toScreenOrientationEnum();
isTurnOn = json['isTurnOn'] ?? true;
waitingAreaType = json['waitingAreaType'] ?? 0;
gender = json['gender'] ?? 0;
isWeatherReq = json['isWeatherReq'] ?? false;
isPrayerTimeReq = json['isPrayerTimeReq'] ?? false;
isRssFeedReq = json['isRssFeedReq'] ?? false;
qTypeEnum = ((json['qType'] ?? qType) as int).toQTypeEnum();
screenTypeEnum = ((json['screenType'] ?? screenType) as int).toScreenTypeEnum();
projectID = json['projectID'] ?? 0;
projectLatitude = json['projectLatitude']?.toDouble() ?? 0.0;
projectLongitude = json['projectLongitude']?.toDouble() ?? 0.0;
cityKey = json['cityKey'] ?? 0;
if (json['kioskQueue'] != null) {
kioskQueueList = List<KioskQueueModel>.from(json['kioskQueue'].map((kioskQueueJson) => KioskQueueModel.fromJson(kioskQueueJson)));
} else {
kioskQueueList = [];
}
if (json['kioskConfig'] != null) {
kioskLanguageConfigList = List<KioskLanguageConfigModel>.from(json['kioskConfig'].map((kioskQueueJson) => KioskLanguageConfigModel.fromJson(kioskQueueJson)));
} else {
kioskLanguageConfigList = [];
}
isFromTakhasusiMain = false;
vitalSignTextEng = defaultIfNullOrEmpty(json['vitalSignText'], "Vital Sign");
doctorTextEng = defaultIfNullOrEmpty(json['doctorText'], "Doctor");
procedureTextEng = defaultIfNullOrEmpty(json['procedureText'], "Procedure");
vaccinationTextEng = defaultIfNullOrEmpty(json['vaccinationText'], "Vaccination");
nebulizationTextEng = defaultIfNullOrEmpty(json['nebulizationText'], "Nebulization");
callForVitalSignTextEng = defaultIfNullOrEmpty(json['callForVitalSignText'], "Call for Vital Sign");
callForDoctorTextEng = defaultIfNullOrEmpty(json['callForDoctorText'], "Call for Doctor");
callForProcedureTextEng = defaultIfNullOrEmpty(json['callForProcedureText'], "Call for Procedure");
callForVaccinationTextEng = defaultIfNullOrEmpty(json['callForVaccinationText'], "Call for Vaccination");
callForNebulizationTextEng = defaultIfNullOrEmpty(json['callForNebulizationText'], "Call for Nebulization");
vitalSignTextArb = defaultIfNullOrEmpty(json['vitalSignTextAr'], "العلامات الحيوية");
doctorTextArb = defaultIfNullOrEmpty(json['doctorTextAr'], "الطبيب");
procedureTextArb = defaultIfNullOrEmpty(json['procedureTextAr'], "الإجراء");
vaccinationTextArb = defaultIfNullOrEmpty(json['vaccinationTextAr'], "التطعيم");
nebulizationTextArb = defaultIfNullOrEmpty(json['nebulizationTextAr'], "البخاخة");
callForVitalSignTextArb = defaultIfNullOrEmpty(json['callForVitalSignTextAr'], "الرجاء التوجّه إلى غرفة العلامات الحيوية");
callForDoctorTextArb = defaultIfNullOrEmpty(json['callForDoctorTextAr'], "الرجاء التوجّه إلى غرفة الطبيب");
callForProcedureTextArb = defaultIfNullOrEmpty(json['callForProcedureTextAr'], "الرجاء التوجّه إلى غرفة الإجراء");
callForVaccinationTextArb = defaultIfNullOrEmpty(json['callForVaccinationTextAr'], "الرجاء التوجّه إلى غرفة التطعيم");
callForNebulizationTextArb = defaultIfNullOrEmpty(json['callForNebulizationTextAr'], "الرجاء التوجّه إلى غرفة البخاخة");
}
@override
String toString() {
return 'GlobalConfigurationsModel{id: $id, isFromTakhasusiMain: $isFromTakhasusiMain, configType: $configType, description: $description, counterStart: $counterStart, counterEnd: $counterEnd, concurrentCallDelaySec: $concurrentCallDelaySec, voiceType: $voiceType, voiceTypeText: $voiceTypeText, screenLanguageEnum: $screenLanguageEnum, screenLanguageText: $screenLanguageText, textDirection: $textDirection, voiceLanguageEnum: $voiceLanguageEnum, voiceLanguageText: $voiceLanguageText, screenMaxDisplayPatients: $screenMaxDisplayPatients, isNotiReq: $isNotiReq, prioritySMS: $prioritySMS, priorityWhatsApp: $priorityWhatsApp, priorityEmail: $priorityEmail, ticketNoText: $ticketNoText, pleaseVisitCounterTextEn: $pleaseVisitCounterTextEn,pleaseVisitCounterTextAr: $pleaseVisitCounterTextAr, roomText: $roomTextEng, roomNo: $roomNo, isRoomNoRequired: $isRoomNoRequired, counterText: $counterTextEng, queueNoText: $queueNoTextEng, callForText: $callForTextEng, currentServeTextArb: $currentServeTextArb,, currentServeTextEng: $currentServeTextEng, maxText: $maxText, minText: $minText, nextPrayerTextEng: $nextPrayerTextEng, nextPrayerTextArb: $nextPrayerTextArb, weatherText: $weatherText, fajarText: $fajarTextEng, dhuhrText: $dhuhrTextEng, asarText: $asarTextEng, maghribText: $maghribTextEng, ishaText: $ishaTextEng, isActive: $isActive, createdBy: $createdBy, createdOn: $createdOn, editedBy: $editedBy, editedOn: $editedOn, isToneReq: $isToneReq, isVoiceReq: $isVoiceReq, orientationTypeEnum: $orientationTypeEnum, isTurnOn: $isTurnOn, waitingAreaType: $waitingAreaType, gender: $gender, isWeatherReq: $isWeatherReq, isPrayerTimeReq: $isPrayerTimeReq, isRssFeedReq: $isRssFeedReq, qTypeEnum: $qTypeEnum, screenTypeEnum: $screenTypeEnum, projectID: $projectID, projectLatitude: $projectLatitude, projectLongitude: $projectLongitude, cityKey: $cityKey, kioskQueueList: $kioskQueueList, kioskLanguageConfigList: $kioskLanguageConfigList, vitalSignText: $vitalSignTextEng, doctorText: $doctorTextEng, procedureText: $procedureTextEng, vaccinationText: $vaccinationTextEng, nebulizationText: $nebulizationTextEng, callForVitalSignText: $callForVitalSignTextEng, callForDoctorText: $callForDoctorTextEng, callForProcedureText: $callForProcedureTextEng, callForVaccinationText: $callForVaccinationTextEng, callForNebulizationText: $callForNebulizationTextEng, vitalSignTextArb: $vitalSignTextArb, doctorTextArb: $doctorTextArb, procedureTextArb: $procedureTextArb, vaccinationTextArb: $vaccinationTextArb, nebulizationTextArb: $nebulizationTextArb, callForVitalSignTextArb: $callForVitalSignTextArb, callForDoctorTextArb: $callForDoctorTextArb, callForProcedureTextArb: $callForProcedureTextArb, callForVaccinationTextArb: $callForVaccinationTextArb, callForNebulizationTextArb: $callForNebulizationTextArb}';
}
}