import ' package:flutter/material.dart ' ;
import ' package:hmg_qline/models/ticket_model.dart ' ;
import ' package:hmg_qline/utilities/enums.dart ' ;
bool useTestIP = false ;
// app globals
bool isNeedToBreakVoiceForArabic = true ;
bool isSpeechCompleted = true ;
class AppStrings {
static String timeRemainingText = " Time Remaining " ;
static String namazTimeText = " Namaz Time " ;
static String poweredBy = " Powered By " ;
static String appName = " QLine " ;
static String fontNamePoppins = " Poppins " ;
static String fontNameGesTwo = " GE_SS_Two " ;
static String fontNameCairo = " Cairo " ;
static String noInternetConnection = " No Internet Connection " ;
static String awaitingArrivalEng = " Awaiting Patients Arrival " ;
static String awaitingQueueNumberEng = " Awaiting Queue Number " ;
static String awaitingQueueNumberAr = " في انتظار رقم قائمة الانتظار " ;
static String counterNo = " Counter Number: " ;
static String awaitingArrivalAr = " في انتظار وصول المرضى " ;
static String configurationIssueContactAdmin = " There is something wrong with configuration. Please contact IT Support. " ;
static String dataLogsFileName = " data_logs.txt " ;
static String errorLogsFileName = " error_logs.txt " ;
static String connectivityLogsFileName = " connectivity_logs.txt " ;
static String openAppNativeFunctionName = " reopenApp " ;
static List < String > prayersArray = [ " الفجر " , " الظهر " , " العصر " , " المغرب " , " العشاء " ] ;
static String dummyRssFeedText =
" Latest News: Hospital announces new specialized cardiac unit opening next month • Health Update: Annual flu vaccination campaign starts Monday at all locations • Service Notice: Pharmacy hours extended until 10 PM on weekdays • Patient Advisory: New mobile app available for appointment booking and lab results • Emergency Drill: Fire safety exercise scheduled for 2 PM today • Visitor Information: Updated visiting hours now 8 AM to 8 PM daily • Maintenance Alert: Elevator B will be out of service from 6-8 AM tomorrow • Staff Recognition: Dr. Sarah Ahmed receives excellence award for patient care • Technology Update: New digital check-in kiosks now available in main lobby • Weather Advisory: Heavy rain expected - please allow extra travel time " ;
static String thankYouMessageAr = " نشكر لكم صبركم، ونتمنى لكم دوام الصحة والعافية " ;
static String thankYouMessageEn = " Thank you for your patience, we wish you good health and wellness " ;
}
class AppColors {
//TextColors
static Color greyColor = const Color ( 0xFF2B353E ) ;
static Color darkGreyColor = const Color ( 0x3A1E2326 ) ;
static Color blueColor = const Color ( 0xFF3C86D0 ) ;
static Color redColor = Colors . red ;
static Color greenColor = Colors . green ;
static Color whiteColor = Colors . white ;
static Color yellowColor = const Color ( 0xFFC99609 ) ;
static Color brownColor = const Color ( 0xFF460707 ) ;
static Color blackColor = Colors . black ;
static Color nebulizationColor = const Color ( 0xFF3C86D0 ) ;
static Color vitalSignColor = const Color ( 0xFFD02127 ) ;
static Color doctorColor = const Color ( 0xFF52964F ) ;
static Color vaccinationColor = const Color ( 0xFFC99609 ) ;
static Color procedureColor = const Color ( 0xFF460707 ) ;
//Decoration
static BoxDecoration configWidgetDecoration = BoxDecoration (
color: Colors . white ,
borderRadius: BorderRadius . circular ( 12 ) ,
boxShadow: [
BoxShadow (
color: Colors . grey . withOpacity ( 0.2 ) ,
blurRadius: 4 ,
offset: const Offset ( 4 , 4 ) , // Shadow position
) ,
BoxShadow (
color: Colors . grey . withOpacity ( 0.2 ) ,
blurRadius: 4 ,
offset: const Offset ( - 4 , - 4 ) , // Shadow position
) ,
] ,
) ;
// New Design Colors
static Color backgroundColor = const Color ( 0xFFF7F7F7 ) ;
static Color greyTextColor = const Color ( 0xFF3E3C47 ) ;
static Color darkGreyTextColor = const Color ( 0xFF2B353E ) ;
static Color greyContainerColor = const Color ( 0xFF4B5B6A ) ;
static Color newGreenColor = const Color ( 0xFF03A567 ) ;
static Color newRedColor = const Color ( 0xFFEC1C2B ) ;
static Color newRedColorWithLessOpacity = const Color ( 0x33FF0000 ) ;
static Color lightBorderColor = const Color ( 0xFFEDEDED ) ;
static Color newVitalSignColor = greyContainerColor ;
static Color newDoctorColor = newGreenColor ;
// Custom Shadow Container Colors
static Color smoothContainerShadow = const Color ( 0x14000000 ) ; // 8% black without opacity
static List < Color > gradientBorderComboForVitalSigns = [
const Color ( 0xFFFFFFFF ) , // start
const Color ( 0xFFAFEAD4 ) , // start
const Color ( 0xFF42BB8D ) , // end
const Color ( 0xFF42BB8D ) , // base color
] ;
static List < Color > gradientBorderComboForDoctor = [
const Color ( 0xFFFFFFFF ) , // start
const Color ( 0xFFF2F3F4 ) ,
const Color ( 0xFFA5ADB4 ) ,
const Color ( 0xFF78848F ) ,
] ;
}
class AppAssets {
static String poppinsMedium = " assets/fonts/Poppins/Poppins-Medium.ttf " ;
static String hmgLogo = " assets/images/hmglogo.svg " ;
static String hmgLogoPharmacy = " assets/images/hmglogo_pharmacy.svg " ;
static String noInternetImage = " assets/images/undraw_connected_world_wuay.png " ;
static String cloudLogo = " assets/images/cloud_logo.png " ;
static String languageIcon = " assets/images/language_icon.svg " ;
static String kioskQueueIcon = " assets/images/kiosk_queue_icon.svg " ;
//IconPaths
static String vitalSignIcon = " assets/images/vitalsign_icon.svg " ;
static String doctorIcon = " assets/images/doctor_icon.svg " ;
static String nebulizationIcon = " assets/images/nebulization_icon.svg " ;
static String procedureIcon = " assets/images/procedure_icon.svg " ;
static String vaccinationIcon = " assets/images/vaccination_icon.svg " ;
//Widgets
static String mosqueIcon = " assets/icons/mosque.svg " ;
static String weatherIcon = " assets/icons/weather.svg " ;
static String cloudyLeftIcon = " assets/new_design_icons/weather_icons/cloudy_left_icon.svg " ;
static String coldLeftIcon = " assets/new_design_icons/weather_icons/cold_left_icon.svg " ;
static String hotLeftIcon = " assets/new_design_icons/weather_icons/hot_left_icon.svg " ;
static String rainyLeftIcon = " assets/new_design_icons/weather_icons/rainy_left_icon.svg " ;
static String sunnyLeftIcon = " assets/new_design_icons/weather_icons/sunny_left_icon.svg " ;
static String windyLeftIcon = " assets/new_design_icons/weather_icons/windy_left_icon.svg " ;
static String cloudyRightIcon = " assets/new_design_icons/weather_icons/cloudy_right_icon.svg " ;
static String coldRightIcon = " assets/new_design_icons/weather_icons/cold_right_icon.svg " ;
static String hotRightIcon = " assets/new_design_icons/weather_icons/hot_right_icon.svg " ;
static String rainyRightIcon = " assets/new_design_icons/weather_icons/rainy_right_icon.svg " ;
static String sunnyRightIcon = " assets/new_design_icons/weather_icons/sunny_right_icon.svg " ;
static String windyRightIcon = " assets/new_design_icons/weather_icons/windy_right_icon.svg " ;
//Tones
static String callTone = " assets/tones/call_tone.mp3 " ;
// New Design Icons
static String hmgLogoPatternLightIcon = " assets/new_design_icons/hmg_logo_pattern_light.svg " ;
static String hmgLogoPatternDarkIcon = " assets/new_design_icons/hmg_logo_pattern_dark.svg " ;
static String salahTimeIcon = " assets/new_design_icons/salah_time_icon.svg " ;
static String hmgLogoFull = " assets/new_design_icons/hmg_logo_full.svg " ;
static String cloudSolutionsLogo = " assets/new_design_icons/cloud_solutions_logo.svg " ;
static String newVitalSignIcon = " assets/images/vitalsign_icon.svg " ;
static String newDoctorIcon = " assets/images/doctor_icon.svg " ;
static String textBgLeaf = " assets/new_design_icons/text_bg_leaf.svg " ;
}
class AppConstants {
static int maxSmallScreen = 660 ;
static String onlyNumbers = " [0-9] " ;
static String onlyLetters = " [a-zA-Z &' \" ] " ;
static String onlyDate = " [0-9/] " ;
static String apiKey = ' EE17D21C7943485D9780223CCE55DCE5 ' ;
static String testIP = ' 12.4.5.1 ' ; // projectID.QlineType.ScreenType.AnyNumber (1 to 10)
static int thresholdForListUI = 5 ;
static double currentBuildVersion = 8.9 ;
static double clearLogsHoursThreshold = 48 ;
}
class ApiConstants {
static String baseUrlLive = ' https://qline.hmg.com ' ; // LIVE
static String baseUrlUat = ' https://ms.hmg.com/nscapi ' ; // UAT
static String baseUrlDev = ' https://ms.hmg.com/nscapi2 ' ; // DEV
static String baseUrl = baseUrlLive ;
static String baseUrlHub = ' $ baseUrl /PatientCallingHub ' ;
static String baseUrlApi = ' $ baseUrl /api ' ;
static String baseUrlApiGen = ' $ baseUrl /api/Gen ' ;
static String baseUrlApiPatientCall = ' $ baseUrlApi /PatientCall ' ;
static String createTicket = ' $ baseUrlApiPatientCall /LAB_PatientCallNo_Get ' ;
static String commonConfigGet = ' $ baseUrlApiPatientCall /Common_Config_GetByIP ' ;
static String waitingAreaScreenConfigGet = ' $ baseUrlApiPatientCall /WaitingAreaScreen_Config_Get ' ;
static String rssFeedGet = ' $ baseUrlApiPatientCall /RssFeed_Get ' ;
static String getWeatherForecastBy5Days = " $ baseUrlApiPatientCall /WeatherForecast_GetBy5Days " ;
static String prayerTimeToday = " $ baseUrlApiPatientCall /PrayerTime_Today " ;
//Generic
static String createTicketForKiosk = ' $ baseUrlApiGen /GEN_PatientCallNo_Get ' ;
static String ticketAcknowledgementInsert = ' $ baseUrlApi /Common/TicketQueueAck_Insert ' ;
// AppointmentSpecific
static String ticketCallRequestUpdate = " $ baseUrlApiPatientCall /CallRequest_QueueUpdate " ;
// Signal R Constants
static String sendQLinePatientCall = " SendQLinePatientCall " ;
static String sendQLineConfig = " SendQLineConfig " ;
}
class CacheConstants {
static String lastTimeUpdated = " lastTimeUpdated " ;
static String logLastCleared = " log_last_cleared " ;
}
// calling for pharmacy
// {
// "projectID": 12,
// "counterNo": 1,
// "queueID": 11,
// "isVidaPlus": false,
// "editedBy": 102,
// "apiKey": "EE17D21C7943485D9780223CCE55DCE5"
// }
// calling for RAD
//{
// "projectID": 12,
// "patientID": 0,
// "orderNo": "12",
// "invoiceNo": "12",
// "isVip": true,
// "isVidaPlus": false,
// "createdBy": 101,
// "apiKey": "EE17D21C7943485D9780223CCE55DCE5"
// }
class MockJsonRepo {
static TicketData ticket = TicketData (
id: 189805 ,
patientID: 4292695 ,
laBQGroupID: null ,
queueNo: ' W-T-4 ' ,
counterBatchNo: null ,
calledBy: null ,
calledOn: null ,
servedOn: null ,
patientName: null ,
mobileNo: ' 0598544522 ' ,
patientEmail: ' munira.ali@hotmail.com ' ,
preferredLang: 2 ,
voiceLanguageEnum: LanguageEnum . english ,
ticketNoText: ' Ticket Number ' ,
postVoiceText: ' Call for Vital Signs ' ,
patientGender: 2 ,
roomNo: ' D 12 ' ,
isActive: null ,
createdBy: null ,
editedBy: null ,
editedOn: DateTime . parse ( ' 2025-08-18 15:09:03.633 ' ) ,
createdOn: DateTime . parse ( ' 2025-08-18 15:06:07.363 ' ) ,
doctorNameN: null ,
callTypeEnum: CallTypeEnum . doctor ,
queueNoM: ' W-T-4 ' ,
callNoStr: ' W_T-4 ' ,
isQueue: false ,
isToneReq: false ,
isVoiceReq: false ,
orientationType: 0 ,
isTurnOn: false ,
concurrentCallDelaySec: 0 ,
crTypeAckIP: null ,
voiceLanguageText: ' English ' ,
vitalSignText: ' علامة حيوية ' ,
doctorText: ' الطبيب ' ,
procedureText: ' الاجراءات ' ,
vaccinationText: ' المطاعيم ' ,
nebulizationText: ' التنفس ' ,
callForVitalSignText: ' التوجه الى غرفة قياس العلامات الحيوية ' ,
callForDoctorText: ' التوجه الى الطبيب ' ,
callForProcedureText: ' التوجه الى غرفة الإجراءات ' ,
callForVaccinationText: ' التوجه الى غرفة المطاعيم ' ,
callForNebulizationText: ' التوجه الى غرفة التنفس ' ,
roomText: ' غرفة ' ,
queueNoText: ' رقم الانتظار ' ,
callForText: ' التوجه الى ' ,
) ;
}
// RAW DATA: