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 openAppNativeFunctionName = " reopenApp " ;
static String dummyRssFeedText =
" Breaking: New Flutter 3.16 released with enhanced performance and stability features • Weather Update: Sunny skies expected throughout the week with temperatures reaching 25°C • Traffic Alert: Highway A1 experiencing delays due to construction work between exits 15-18 • Market Update: Stock indices show positive growth with technology sector leading gains • Company Announcement: Q4 results exceed expectations • New product launch scheduled for next month • Employee appreciation event on Friday • Special Offer: 20% discount on all services this week • Limited time promotion • Terms and conditions apply • Contact customer service for details • Welcome to our digital queue management system • Please follow the instructions on screen • For assistance, contact our support team • Thank you for your patience " ;
static List < String > prayersArray = [ " الفجر " , " الظهر " , " العصر " , " المغرب " , " العشاء " ] ;
}
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 cloudIcon = " assets/icons/cloudy.svg " ;
static String coldIcon = " assets/icons/cold.svg " ;
static String hotIcon = " assets/icons/hot.svg " ;
static String rainIcon = " assets/icons/rainy.svg " ;
static String sunnyIcon = " assets/icons/sunny.svg " ;
static String windIcon = " assets/icons/windy.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 " ;
}
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: