[2026-06-29 05:06:12.587] [INFO ] [Ysp.Scheduler] Started. SFTP in 21h 53m, MIS in 1h 53m
[2026-06-29 05:06:12.636] [INFO ]     :alarm_handler: {:set, {{:disk_almost_full, ~c"/"}, []}}
[2026-06-29 05:06:12.657] [INFO ]     :alarm_handler: {:set, {:system_memory_high_watermark, []}}
[2026-06-29 05:06:14.264] [INFO ] Terminal Event Listener started and listening to events
[2026-06-29 05:06:14.265] [INFO ] Rule Validation Worker started - will run every hour
[2026-06-29 05:06:14.267] [INFO ] Building initial filter cache...
[2026-06-29 05:06:14.295] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.8ms idle=318.4ms
SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) []
[90m↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153[0m
[2026-06-29 05:06:14.306] [DEBUG] QUERY OK source="filter_usage" db=1.0ms queue=3.1ms idle=91.2ms
SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` []
[90m↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190[0m
[2026-06-29 05:06:14.307] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models
[2026-06-29 05:06:14.426] [INFO ] Device phoenix_client_piyush connected
[2026-06-29 05:06:14.439] [INFO ] Running PlatformWeb.Endpoint with Bandit 1.10.2 at 0.0.0.0:4059 (http)
[2026-06-29 05:06:14.462] [INFO ] Access PlatformWeb.Endpoint at http://localhost:4059
[2026-06-29 05:06:15.555] [DEBUG] Tzdata polling for update.
[2026-06-29 05:06:16.805] [DEBUG] Tzdata polling shows the loaded tz database is up to date.
[2026-06-29 05:06:22.875] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 05:06:22.875] [INFO ] Incoming JSON payload: {"oid":"2f535cd3-6958-4efa-a2d3-46a0f4943a06","sn":"98250623730001","uploadTime":"2026-06-28T20:16:21Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"ram_free_mb","value":"1123","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"sim_number","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"sim_iccid","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"data_usage_mb","value":"45","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-28T20:16:21Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.res (truncated)
[2026-06-29 05:06:22.891] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "2f535cd3-6958-4efa-a2d3-46a0f4943a06", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:16:21Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-28T20:16:21Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:16:21Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:16:21Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:16:21Z", "value" => "1123"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:16:21Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:16:21Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:16:21Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:16:21Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:16:21Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:16:21Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:16:21Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:16:21Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:16:21Z", "value" => "45"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:16:21Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:16:21Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-28T20:16:21Z", "vendor" => "morefun"}
[2026-06-29 05:06:22.892] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 05:06:22.905] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 05:06:22.905] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 05:06:22.912] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms queue=1.9ms idle=949.8ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 05:06:22.916] [DEBUG] QUERY OK source="parameter_templates" db=2.4ms queue=0.9ms idle=641.7ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 05:06:22.916] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 05:06:22.944] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.7ms idle=31.3ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 05:06:22.980] [INFO ] Terminal updated: 98250623730001
[2026-06-29 05:06:23.026] [DEBUG] QUERY OK source="tms_terminals" db=33.9ms queue=2.6ms idle=64.3ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 05:06:22], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 05:06:23.033] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 05:06:23.037] [DEBUG] QUERY OK source="tms_terminals" db=3.1ms decode=0.2ms idle=89.0ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 05:06:23.069] [DEBUG] QUERY OK source="tms_terminals" db=28.2ms idle=24.6ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 05:06:23], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 05:06:23.114] [DEBUG] QUERY OK db=17.0ms queue=2.0ms idle=58.4ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "2f535cd3-6958-4efa-a2d3-46a0f4943a06", "2026-06-28T20:16:21Z", ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 05:06:23.139] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 43770, oid: "2f535cd3-6958-4efa-a2d3-46a0f4943a06", upload_time: "2026-06-28T20:16:21Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}
[2026-06-29 05:06:23.139] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:16:21Z", "value" => "morefun"}
[2026-06-29 05:06:23.238] [DEBUG] QUERY OK db=96.7ms queue=1.5ms idle=70.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "morefun", "vendor", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.238] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358680, itemkey: "vendor", value: "morefun", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.239] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-28T20:16:21Z", "value" => "kiosk_launcher"}
[2026-06-29 05:06:23.258] [DEBUG] QUERY OK db=18.5ms queue=0.9ms idle=125.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "kiosk_launcher", "model", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.259] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358682, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.259] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:16:21Z", "value" => "1.0"}
[2026-06-29 05:06:23.298] [DEBUG] QUERY OK db=38.5ms idle=21.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "1.0", "app_version", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.298] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358684, itemkey: "app_version", value: "1.0", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.298] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:16:21Z", "value" => "13"}
[2026-06-29 05:06:23.331] [DEBUG] QUERY OK db=32.5ms queue=0.1ms idle=23.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "13", "android_version", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.331] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358686, itemkey: "android_version", value: "13", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.331] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:16:21Z", "value" => "1123"}
[2026-06-29 05:06:23.365] [DEBUG] QUERY OK db=32.8ms idle=34.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "1123", "ram_free_mb", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.365] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358688, itemkey: "ram_free_mb", value: "1123", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.365] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:16:21Z", "value" => "WIFI"}
[2026-06-29 05:06:23.399] [DEBUG] QUERY OK db=33.8ms idle=34.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "WIFI", "network_type", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.400] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358690, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.400] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:16:21Z", "value" => "true"}
[2026-06-29 05:06:23.431] [DEBUG] QUERY OK db=30.1ms queue=0.5ms idle=35.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "true", "kiosk_active", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.431] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358692, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.431] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:16:21Z", "value" => ""}
[2026-06-29 05:06:23.455] [DEBUG] QUERY OK db=23.6ms queue=0.4ms idle=32.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-28T20:16:21Z", "sim_operator", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.457] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358694, itemkey: "sim_operator", value: nil, timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.457] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:16:21Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:06:23.489] [DEBUG] QUERY OK db=31.2ms idle=27.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "PERMISSION_DENIED", "sim_number", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.489] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358695, itemkey: "sim_number", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.489] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:16:21Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:06:23.510] [DEBUG] QUERY OK db=19.9ms idle=34.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "PERMISSION_DENIED", "sim_iccid", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.510] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358696, itemkey: "sim_iccid", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.510] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:16:21Z", "value" => "UNKNOWN"}
[2026-06-29 05:06:23.528] [DEBUG] QUERY OK db=16.0ms queue=1.5ms idle=21.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "UNKNOWN", "sim_imsi", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.529] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358697, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.529] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:16:21Z", "value" => "UNKNOWN"}
[2026-06-29 05:06:23.552] [DEBUG] QUERY OK db=21.5ms queue=0.9ms idle=19.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "UNKNOWN", "sim_iccid2", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.552] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358698, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.553] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:16:21Z", "value" => "UNKNOWN"}
[2026-06-29 05:06:23.586] [DEBUG] QUERY OK db=30.6ms queue=2.2ms idle=24.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "UNKNOWN", "sim_imsi2", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.589] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358699, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.589] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:16:21Z", "value" => "45"}
[2026-06-29 05:06:23.610] [DEBUG] QUERY OK db=20.2ms idle=37.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "45", "data_usage_mb", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.610] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358700, itemkey: "data_usage_mb", value: "45", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.610] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:16:21Z", "value" => "0"}
[2026-06-29 05:06:23.626] [DEBUG] QUERY OK db=15.6ms idle=24.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "0", "mobile_data_mb", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.627] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358701, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:06:23.630] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:16:21Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 05:06:23.651] [DEBUG] QUERY OK db=19.6ms idle=20.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:16:21Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 43770, ~N[2026-06-29 05:06:23], ~N[2026-06-29 05:06:23]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:06:23.654] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358702, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-28T20:16:21Z", message: nil, status_log_id: 43770, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:06:23], updated_at: ~N[2026-06-29 05:06:23]}}
[2026-06-29 05:07:45.865] [INFO ] GET /
[2026-06-29 05:07:45.943] [DEBUG] Processing with PlatformWeb.PageController.home/2
  Parameters: %{}
  Pipelines: [:browser]
[2026-06-29 05:07:46.031] [DEBUG] QUERY OK source="users_tokens" db=0.9ms queue=7.3ms idle=1822.2ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<18, 68, 196, 15, 62, 196, 24, 54, 204, 74, 39, 129, 233, 140, 219, 129, 117, 38, 101, 45, 136, 17, 20, 37, 187, 59, 100, 177, 163, 40, 112, 198>>, "session", ~U[2026-06-29 05:07:46.002655Z]]
[90m↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97[0m
[2026-06-29 05:07:46.145] [INFO ] Sent 200 in 279ms
[2026-06-29 05:07:59.749] [INFO ] GET /images/favicon.png
[2026-06-29 05:07:59.820] [DEBUG] ** (Phoenix.Router.NoRouteError) no route found for GET /images/favicon.png (PlatformWeb.Router)
    (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/phoenix/lib/phoenix/router.ex:541: PlatformWeb.Router.call/2
    (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.plug_builder_call/2
    (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/plug/lib/plug/debugger.ex:155: PlatformWeb.Endpoint."call (overridable 3)"/2
    (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.call/2
    (phoenix 1.7.21) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4
    (bandit 1.10.2) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2
    (bandit 1.10.2) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5
    (bandit 1.10.2) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3
    (bandit 1.10.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3
    (bandit 1.10.2) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_info/2
    (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3
    (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6
    (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3

[2026-06-29 05:08:17.179] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 05:08:17.179] [INFO ] Incoming JSON payload: {"oid":"038990a1-573b-4bcc-a1f3-c373c73efd09","sn":"98250623730001","uploadTime":"2026-06-28T20:18:15Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"ram_free_mb","value":"1122","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"sim_number","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"sim_iccid","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"data_usage_mb","value":"45","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-28T20:18:15Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.res (truncated)
[2026-06-29 05:08:17.180] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "038990a1-573b-4bcc-a1f3-c373c73efd09", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:18:15Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-28T20:18:15Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:18:15Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:18:15Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:18:15Z", "value" => "1122"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:18:15Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:18:15Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:18:15Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:18:15Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:18:15Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:18:15Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:18:15Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:18:15Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:18:15Z", "value" => "45"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:18:15Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:18:15Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-28T20:18:15Z", "vendor" => "morefun"}
[2026-06-29 05:08:17.181] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 05:08:17.181] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 05:08:17.182] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 05:08:17.184] [DEBUG] QUERY OK source="parameter_templates" db=1.2ms queue=0.2ms idle=1204.2ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 05:08:17.187] [DEBUG] QUERY OK source="parameter_templates" db=0.9ms queue=0.1ms idle=503.7ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 05:08:17.187] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 05:08:17.190] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms queue=0.6ms idle=3.6ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 05:08:17.190] [INFO ] Terminal updated: 98250623730001
[2026-06-29 05:08:17.193] [DEBUG] QUERY OK source="tms_terminals" db=2.1ms queue=0.4ms idle=3.4ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 05:08:17], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 05:08:17.193] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 05:08:17.196] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=0.1ms idle=5.5ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 05:08:17.201] [DEBUG] QUERY OK source="tms_terminals" db=4.2ms idle=3.9ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 05:08:17], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 05:08:17.211] [DEBUG] QUERY OK db=8.0ms queue=1.8ms idle=4.9ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "038990a1-573b-4bcc-a1f3-c373c73efd09", "2026-06-28T20:18:15Z", ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 05:08:17.211] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 43772, oid: "038990a1-573b-4bcc-a1f3-c373c73efd09", upload_time: "2026-06-28T20:18:15Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}
[2026-06-29 05:08:17.212] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:18:15Z", "value" => "morefun"}
[2026-06-29 05:08:17.220] [DEBUG] QUERY OK db=7.5ms idle=10.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "morefun", "vendor", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.220] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358704, itemkey: "vendor", value: "morefun", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.220] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-28T20:18:15Z", "value" => "kiosk_launcher"}
[2026-06-29 05:08:17.229] [DEBUG] QUERY OK db=8.2ms idle=9.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "kiosk_launcher", "model", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.229] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358706, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.229] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:18:15Z", "value" => "1.0"}
[2026-06-29 05:08:17.235] [DEBUG] QUERY OK db=5.6ms idle=9.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "1.0", "app_version", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.235] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358707, itemkey: "app_version", value: "1.0", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.236] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:18:15Z", "value" => "13"}
[2026-06-29 05:08:17.242] [DEBUG] QUERY OK db=6.5ms idle=7.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "13", "android_version", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.243] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358709, itemkey: "android_version", value: "13", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.243] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:18:15Z", "value" => "1122"}
[2026-06-29 05:08:17.251] [DEBUG] QUERY OK db=7.5ms idle=7.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "1122", "ram_free_mb", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.251] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358711, itemkey: "ram_free_mb", value: "1122", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.251] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:18:15Z", "value" => "WIFI"}
[2026-06-29 05:08:17.266] [DEBUG] QUERY OK db=11.1ms queue=0.6ms idle=11.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "WIFI", "network_type", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.266] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358713, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.266] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:18:15Z", "value" => "true"}
[2026-06-29 05:08:17.276] [DEBUG] QUERY OK db=7.5ms queue=1.8ms idle=16.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "true", "kiosk_active", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.276] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358715, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.277] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:18:15Z", "value" => ""}
[2026-06-29 05:08:17.287] [DEBUG] QUERY OK db=7.1ms queue=3.2ms idle=11.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-28T20:18:15Z", "sim_operator", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.288] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358717, itemkey: "sim_operator", value: nil, timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.288] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:18:15Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:08:17.297] [DEBUG] QUERY OK db=6.0ms idle=14.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "PERMISSION_DENIED", "sim_number", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.297] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358719, itemkey: "sim_number", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.302] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:18:15Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:08:17.312] [DEBUG] QUERY OK db=9.3ms idle=14.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "PERMISSION_DENIED", "sim_iccid", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.312] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358722, itemkey: "sim_iccid", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.312] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:18:15Z", "value" => "UNKNOWN"}
[2026-06-29 05:08:17.320] [DEBUG] QUERY OK db=7.4ms idle=15.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "UNKNOWN", "sim_imsi", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.320] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358724, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.320] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:18:15Z", "value" => "UNKNOWN"}
[2026-06-29 05:08:17.327] [DEBUG] QUERY OK db=6.2ms idle=8.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "UNKNOWN", "sim_iccid2", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.327] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358725, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.328] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:18:15Z", "value" => "UNKNOWN"}
[2026-06-29 05:08:17.336] [DEBUG] QUERY OK db=7.5ms idle=8.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "UNKNOWN", "sim_imsi2", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.336] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358727, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.336] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:18:15Z", "value" => "45"}
[2026-06-29 05:08:17.345] [DEBUG] QUERY OK db=8.4ms idle=9.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "45", "data_usage_mb", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.345] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358729, itemkey: "data_usage_mb", value: "45", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.345] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:18:15Z", "value" => "0"}
[2026-06-29 05:08:17.354] [DEBUG] QUERY OK db=7.8ms queue=0.3ms idle=9.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "0", "mobile_data_mb", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.354] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358731, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:08:17.356] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:18:15Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 05:08:17.367] [DEBUG] QUERY OK db=9.2ms idle=11.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:18:15Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 43772, ~N[2026-06-29 05:08:17], ~N[2026-06-29 05:08:17]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:08:17.369] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358733, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-28T20:18:15Z", message: nil, status_log_id: 43772, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:08:17], updated_at: ~N[2026-06-29 05:08:17]}}
[2026-06-29 05:10:02.832] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 05:10:02.832] [INFO ] Incoming JSON payload: {"oid":"f7d8bd32-5524-4103-9fef-0646e2a404ab","sn":"98250623730001","uploadTime":"2026-06-28T20:19:59Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"ram_free_mb","value":"1123","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"sim_number","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"sim_iccid","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"data_usage_mb","value":"45","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-28T20:19:59Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.res (truncated)
[2026-06-29 05:10:02.833] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "f7d8bd32-5524-4103-9fef-0646e2a404ab", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:19:59Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-28T20:19:59Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:19:59Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:19:59Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:19:59Z", "value" => "1123"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:19:59Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:19:59Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:19:59Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:19:59Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:19:59Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:19:59Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:19:59Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:19:59Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:19:59Z", "value" => "45"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:19:59Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:19:59Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-28T20:19:59Z", "vendor" => "morefun"}
[2026-06-29 05:10:02.837] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 05:10:02.837] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 05:10:02.837] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 05:10:02.838] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms idle=1542.1ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 05:10:02.842] [DEBUG] QUERY OK source="parameter_templates" db=3.5ms idle=824.2ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 05:10:02.842] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 05:10:02.843] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=4.1ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 05:10:02.844] [INFO ] Terminal updated: 98250623730001
[2026-06-29 05:10:02.873] [DEBUG] QUERY OK source="tms_terminals" db=27.3ms idle=2.8ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 05:10:02], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 05:10:02.873] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 05:10:02.874] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=29.7ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 05:10:02.889] [DEBUG] QUERY OK source="tms_terminals" db=14.4ms idle=2.1ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 05:10:02], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 05:10:02.909] [DEBUG] QUERY OK db=19.4ms idle=15.1ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "f7d8bd32-5524-4103-9fef-0646e2a404ab", "2026-06-28T20:19:59Z", ~N[2026-06-29 05:10:02], ~N[2026-06-29 05:10:02]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 05:10:02.909] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 43773, oid: "f7d8bd32-5524-4103-9fef-0646e2a404ab", upload_time: "2026-06-28T20:19:59Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 05:10:02], updated_at: ~N[2026-06-29 05:10:02]}
[2026-06-29 05:10:02.909] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:19:59Z", "value" => "morefun"}
[2026-06-29 05:10:02.955] [DEBUG] QUERY OK db=44.6ms idle=20.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "morefun", "vendor", 43773, ~N[2026-06-29 05:10:02], ~N[2026-06-29 05:10:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:02.956] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358735, itemkey: "vendor", value: "morefun", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:02], updated_at: ~N[2026-06-29 05:10:02]}}
[2026-06-29 05:10:02.956] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-28T20:19:59Z", "value" => "kiosk_launcher"}
[2026-06-29 05:10:02.976] [DEBUG] QUERY OK db=20.2ms idle=46.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "kiosk_launcher", "model", 43773, ~N[2026-06-29 05:10:02], ~N[2026-06-29 05:10:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:02.977] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358737, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:02], updated_at: ~N[2026-06-29 05:10:02]}}
[2026-06-29 05:10:02.977] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:19:59Z", "value" => "1.0"}
[2026-06-29 05:10:02.992] [DEBUG] QUERY OK db=15.1ms idle=22.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "1.0", "app_version", 43773, ~N[2026-06-29 05:10:02], ~N[2026-06-29 05:10:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:02.993] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358739, itemkey: "app_version", value: "1.0", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:02], updated_at: ~N[2026-06-29 05:10:02]}}
[2026-06-29 05:10:02.993] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:19:59Z", "value" => "13"}
[2026-06-29 05:10:03.055] [DEBUG] QUERY OK db=61.0ms idle=17.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "13", "android_version", 43773, ~N[2026-06-29 05:10:02], ~N[2026-06-29 05:10:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:03.056] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358741, itemkey: "android_version", value: "13", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:02], updated_at: ~N[2026-06-29 05:10:02]}}
[2026-06-29 05:10:03.056] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:19:59Z", "value" => "1123"}
[2026-06-29 05:10:03.075] [DEBUG] QUERY OK db=18.8ms idle=35.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "1123", "ram_free_mb", 43773, ~N[2026-06-29 05:10:03], ~N[2026-06-29 05:10:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:03.075] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358743, itemkey: "ram_free_mb", value: "1123", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:03], updated_at: ~N[2026-06-29 05:10:03]}}
[2026-06-29 05:10:03.075] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:19:59Z", "value" => "WIFI"}
[2026-06-29 05:10:03.112] [DEBUG] QUERY OK db=28.9ms idle=28.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "WIFI", "network_type", 43773, ~N[2026-06-29 05:10:03], ~N[2026-06-29 05:10:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:03.113] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358746, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:03], updated_at: ~N[2026-06-29 05:10:03]}}
[2026-06-29 05:10:03.114] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:19:59Z", "value" => "true"}
[2026-06-29 05:10:03.154] [DEBUG] QUERY OK db=39.0ms idle=39.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "true", "kiosk_active", 43773, ~N[2026-06-29 05:10:03], ~N[2026-06-29 05:10:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:03.154] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358748, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:03], updated_at: ~N[2026-06-29 05:10:03]}}
[2026-06-29 05:10:03.154] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:19:59Z", "value" => ""}
[2026-06-29 05:10:03.170] [DEBUG] QUERY OK db=15.1ms idle=42.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-28T20:19:59Z", "sim_operator", 43773, ~N[2026-06-29 05:10:03], ~N[2026-06-29 05:10:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:03.170] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358750, itemkey: "sim_operator", value: nil, timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:03], updated_at: ~N[2026-06-29 05:10:03]}}
[2026-06-29 05:10:03.170] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:19:59Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:10:03.192] [DEBUG] QUERY OK db=21.4ms idle=16.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "PERMISSION_DENIED", "sim_number", 43773, ~N[2026-06-29 05:10:03], ~N[2026-06-29 05:10:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:03.192] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358752, itemkey: "sim_number", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:03], updated_at: ~N[2026-06-29 05:10:03]}}
[2026-06-29 05:10:03.192] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:19:59Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:10:03.226] [DEBUG] QUERY OK db=32.1ms queue=1.4ms idle=22.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "PERMISSION_DENIED", "sim_iccid", 43773, ~N[2026-06-29 05:10:03], ~N[2026-06-29 05:10:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:03.226] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358754, itemkey: "sim_iccid", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:03], updated_at: ~N[2026-06-29 05:10:03]}}
[2026-06-29 05:10:03.227] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:19:59Z", "value" => "UNKNOWN"}
[2026-06-29 05:10:03.253] [DEBUG] QUERY OK db=25.9ms idle=34.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "UNKNOWN", "sim_imsi", 43773, ~N[2026-06-29 05:10:03], ~N[2026-06-29 05:10:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:03.253] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358756, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:03], updated_at: ~N[2026-06-29 05:10:03]}}
[2026-06-29 05:10:03.254] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:19:59Z", "value" => "UNKNOWN"}
[2026-06-29 05:10:03.279] [DEBUG] QUERY OK db=24.8ms idle=27.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "UNKNOWN", "sim_iccid2", 43773, ~N[2026-06-29 05:10:03], ~N[2026-06-29 05:10:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:03.279] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358758, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:03], updated_at: ~N[2026-06-29 05:10:03]}}
[2026-06-29 05:10:03.279] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:19:59Z", "value" => "UNKNOWN"}
[2026-06-29 05:10:03.314] [DEBUG] QUERY OK db=33.9ms idle=26.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "UNKNOWN", "sim_imsi2", 43773, ~N[2026-06-29 05:10:03], ~N[2026-06-29 05:10:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:03.315] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358760, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:03], updated_at: ~N[2026-06-29 05:10:03]}}
[2026-06-29 05:10:03.316] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:19:59Z", "value" => "45"}
[2026-06-29 05:10:03.352] [DEBUG] QUERY OK db=35.7ms idle=37.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "45", "data_usage_mb", 43773, ~N[2026-06-29 05:10:03], ~N[2026-06-29 05:10:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:03.353] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358762, itemkey: "data_usage_mb", value: "45", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:03], updated_at: ~N[2026-06-29 05:10:03]}}
[2026-06-29 05:10:03.354] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:19:59Z", "value" => "0"}
[2026-06-29 05:10:03.377] [DEBUG] QUERY OK db=22.4ms idle=40.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "0", "mobile_data_mb", 43773, ~N[2026-06-29 05:10:03], ~N[2026-06-29 05:10:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:03.377] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358765, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:03], updated_at: ~N[2026-06-29 05:10:03]}}
[2026-06-29 05:10:03.380] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:19:59Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 05:10:03.415] [DEBUG] QUERY OK db=34.8ms idle=27.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:19:59Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 43773, ~N[2026-06-29 05:10:03], ~N[2026-06-29 05:10:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:10:03.416] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358766, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-28T20:19:59Z", message: nil, status_log_id: 43773, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:10:03], updated_at: ~N[2026-06-29 05:10:03]}}
[2026-06-29 05:11:00.180] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 05:11:00.180] [INFO ] Incoming JSON payload: {"oid":"067a52cc-5868-4496-bb2b-7e3c3372343e","sn":"98250623730001","uploadTime":"2026-06-28T20:20:58Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"ram_free_mb","value":"1121","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"sim_number","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"sim_iccid","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"data_usage_mb","value":"45","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-28T20:20:58Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.res (truncated)
[2026-06-29 05:11:00.181] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "067a52cc-5868-4496-bb2b-7e3c3372343e", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:20:58Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-28T20:20:58Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:20:58Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:20:58Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:20:58Z", "value" => "1121"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:20:58Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:20:58Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:20:58Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:20:58Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:20:58Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:20:58Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:20:58Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:20:58Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:20:58Z", "value" => "45"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:20:58Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:20:58Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-28T20:20:58Z", "vendor" => "morefun"}
[2026-06-29 05:11:00.181] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 05:11:00.181] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 05:11:00.181] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 05:11:00.183] [DEBUG] QUERY OK source="parameter_templates" db=1.7ms idle=936.6ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 05:11:00.185] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms queue=1.0ms idle=192.8ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 05:11:00.185] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 05:11:00.186] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.6ms idle=2.0ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 05:11:00.187] [INFO ] Terminal updated: 98250623730001
[2026-06-29 05:11:00.198] [DEBUG] QUERY OK source="tms_terminals" db=11.0ms idle=1.9ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 05:11:00], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 05:11:00.198] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 05:11:00.199] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=12.0ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 05:11:00.218] [DEBUG] QUERY OK source="tms_terminals" db=18.6ms idle=1.4ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 05:11:00], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 05:11:00.243] [DEBUG] QUERY OK db=24.3ms idle=11.7ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "067a52cc-5868-4496-bb2b-7e3c3372343e", "2026-06-28T20:20:58Z", ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 05:11:00.243] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 43775, oid: "067a52cc-5868-4496-bb2b-7e3c3372343e", upload_time: "2026-06-28T20:20:58Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}
[2026-06-29 05:11:00.243] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:20:58Z", "value" => "morefun"}
[2026-06-29 05:11:00.272] [DEBUG] QUERY OK db=27.9ms idle=25.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "morefun", "vendor", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.272] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358767, itemkey: "vendor", value: "morefun", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.272] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-28T20:20:58Z", "value" => "kiosk_launcher"}
[2026-06-29 05:11:00.287] [DEBUG] QUERY OK db=14.6ms idle=24.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "kiosk_launcher", "model", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.287] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358769, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.288] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:20:58Z", "value" => "1.0"}
[2026-06-29 05:11:00.322] [DEBUG] QUERY OK db=33.9ms idle=16.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "1.0", "app_version", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.323] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358771, itemkey: "app_version", value: "1.0", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.323] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:20:58Z", "value" => "13"}
[2026-06-29 05:11:00.359] [DEBUG] QUERY OK db=35.4ms queue=0.5ms idle=36.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "13", "android_version", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.360] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358773, itemkey: "android_version", value: "13", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.360] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:20:58Z", "value" => "1121"}
[2026-06-29 05:11:00.372] [DEBUG] QUERY OK db=11.5ms queue=0.1ms idle=37.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "1121", "ram_free_mb", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.372] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358775, itemkey: "ram_free_mb", value: "1121", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.372] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:20:58Z", "value" => "WIFI"}
[2026-06-29 05:11:00.400] [DEBUG] QUERY OK db=26.1ms idle=13.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "WIFI", "network_type", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.401] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358777, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.401] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:20:58Z", "value" => "true"}
[2026-06-29 05:11:00.432] [DEBUG] QUERY OK db=30.7ms queue=0.1ms idle=29.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "true", "kiosk_active", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.433] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358779, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.433] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:20:58Z", "value" => ""}
[2026-06-29 05:11:00.455] [DEBUG] QUERY OK db=22.0ms idle=34.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-28T20:20:58Z", "sim_operator", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.456] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358781, itemkey: "sim_operator", value: nil, timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.456] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:20:58Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:11:00.476] [DEBUG] QUERY OK db=19.9ms idle=23.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "PERMISSION_DENIED", "sim_number", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.476] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358783, itemkey: "sim_number", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.478] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:20:58Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:11:00.513] [DEBUG] QUERY OK db=34.5ms idle=23.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "PERMISSION_DENIED", "sim_iccid", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.514] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358785, itemkey: "sim_iccid", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.514] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:20:58Z", "value" => "UNKNOWN"}
[2026-06-29 05:11:00.545] [DEBUG] QUERY OK db=29.3ms idle=39.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "UNKNOWN", "sim_imsi", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.545] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358787, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.545] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:20:58Z", "value" => "UNKNOWN"}
[2026-06-29 05:11:00.562] [DEBUG] QUERY OK db=15.9ms queue=0.1ms idle=32.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "UNKNOWN", "sim_iccid2", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.562] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358789, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.562] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:20:58Z", "value" => "UNKNOWN"}
[2026-06-29 05:11:00.578] [DEBUG] QUERY OK db=14.9ms queue=0.4ms idle=18.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "UNKNOWN", "sim_imsi2", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.579] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358791, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.579] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:20:58Z", "value" => "45"}
[2026-06-29 05:11:00.627] [DEBUG] QUERY OK db=48.0ms idle=17.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "45", "data_usage_mb", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.628] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358793, itemkey: "data_usage_mb", value: "45", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.628] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:20:58Z", "value" => "0"}
[2026-06-29 05:11:00.649] [DEBUG] QUERY OK db=20.0ms idle=50.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "0", "mobile_data_mb", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.649] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358795, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:00.650] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:20:58Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 05:11:00.673] [DEBUG] QUERY OK db=21.8ms idle=23.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:20:58Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 43775, ~N[2026-06-29 05:11:00], ~N[2026-06-29 05:11:00]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:11:00.677] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358797, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-28T20:20:58Z", message: nil, status_log_id: 43775, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:11:00], updated_at: ~N[2026-06-29 05:11:00]}}
[2026-06-29 05:11:14.247] [INFO ] Running offline device check...
[2026-06-29 05:11:14.247] [INFO ] Starting offline device check...
[2026-06-29 05:11:14.250] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.9ms idle=946.4ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747[0m
[2026-06-29 05:11:14.261] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.3ms queue=1.2ms idle=257.7ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.267] [INFO ] Starting scheduled rule validation
[2026-06-29 05:11:14.267] [DEBUG] Validating missing assignments
[2026-06-29 05:11:14.271] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.8ms idle=11.8ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.276] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=10.7ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.277] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=4.5ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.279] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.1ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.280] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.9ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.281] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.8ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.283] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.7ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.284] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.0ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.286] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.1ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.294] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.0ms idle=2.1ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.296] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=8.6ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.308] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.0ms queue=0.1ms idle=4.3ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.312] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=0.3ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.314] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=0.3ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.315] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.316] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.329] [DEBUG] QUERY OK source="terminal_group_rules" db=0.7ms queue=3.9ms idle=8.9ms
SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:194[0m
[2026-06-29 05:11:14.333] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.3ms idle=0.8ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.335] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=0.2ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.335] [DEBUG] QUERY OK source="tms_terminals" db=5.7ms idle=0.3ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:196[0m
[2026-06-29 05:11:14.337] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=0.2ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.338] [DEBUG] Re-applied 0 rules during validation
[2026-06-29 05:11:14.338] [DEBUG] Validating invalid assignments
[2026-06-29 05:11:14.338] [DEBUG] Validating rule consistency
[2026-06-29 05:11:14.338] [DEBUG] Updating group terminal counts
[2026-06-29 05:11:14.340] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=1.8ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.341] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.2ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.344] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.5ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.369] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=20.2ms queue=2.3ms idle=5.2ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.369] [DEBUG] QUERY OK source="terminal_groups" db=0.4ms queue=12.0ms idle=13.4ms
SELECT count(t0.`id`) FROM `terminal_groups` AS t0 []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:248[0m
[2026-06-29 05:11:14.372] [DEBUG] QUERY OK source="terminal_groups" db=0.6ms queue=1.2ms idle=0.7ms
SELECT count(t0.`id`) FROM `terminal_groups` AS t0 WHERE (t0.`is_active` = TRUE) []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:249[0m
[2026-06-29 05:11:14.374] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.3ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.379] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms idle=2.3ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.383] [DEBUG] QUERY OK source="terminal_groups" db=1.2ms queue=3.0ms idle=5.2ms
SELECT t0.`group_type`, count(t0.`id`) FROM `terminal_groups` AS t0 GROUP BY t0.`group_type` []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:255[0m
[2026-06-29 05:11:14.387] [DEBUG] QUERY OK source="terminal_group_rules" db=1.0ms queue=2.4ms idle=0.2ms
SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:258[0m
[2026-06-29 05:11:14.388] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.0ms queue=0.1ms idle=0.3ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.389] [DEBUG] QUERY OK source="terminal_group_rules" db=0.3ms queue=0.8ms idle=0.3ms
SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:259[0m
[2026-06-29 05:11:14.389] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=0.2ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.398] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.9ms idle=0.6ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.403] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms idle=9.6ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.406] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=4.8ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.411] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.5ms idle=3.6ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.412] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=5.3ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.414] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=1.1ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.416] [DEBUG] QUERY OK source="terminal_group_memberships" db=1.5ms queue=2.0ms idle=0.3ms
SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:261[0m
[2026-06-29 05:11:14.416] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=0.2ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.418] [DEBUG] QUERY OK source="terminal_group_memberships" db=1.3ms queue=0.4ms idle=0.2ms
SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:262[0m
[2026-06-29 05:11:14.419] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms queue=0.1ms idle=0.2ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.421] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=0.4ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.422] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.4ms queue=2.9ms idle=0.2ms
SELECT t0.`assignment_type`, count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) GROUP BY t0.`assignment_type` []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:269[0m
[2026-06-29 05:11:14.422] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}}
[2026-06-29 05:11:14.422] [INFO ] Rule validation completed - applied 0 fixes
[2026-06-29 05:11:14.422] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=0.3ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.426] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=0.6ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.430] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=3.0ms idle=4.2ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.433] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.8ms idle=4.2ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.436] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.7ms idle=3.7ms
SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62]
[90m↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762[0m
[2026-06-29 05:11:14.436] [INFO ] Offline device check completed. Found 41 offline devices, updated 0 statuses.
[2026-06-29 05:11:14.436] [INFO ] Offline device check completed successfully
[2026-06-29 05:12:20.863] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 05:12:20.863] [INFO ] Incoming JSON payload: {"oid":"9358273c-2026-46e9-8b41-70cc286b541d","sn":"98250623730001","uploadTime":"2026-06-28T20:22:19Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"ram_free_mb","value":"1120","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"sim_number","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"sim_iccid","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"data_usage_mb","value":"45","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-28T20:22:19Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.res (truncated)
[2026-06-29 05:12:20.865] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "9358273c-2026-46e9-8b41-70cc286b541d", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:22:19Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-28T20:22:19Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:22:19Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:22:19Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:22:19Z", "value" => "1120"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:22:19Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:22:19Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:22:19Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:22:19Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:22:19Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:22:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:22:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:22:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:22:19Z", "value" => "45"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:22:19Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:22:19Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-28T20:22:19Z", "vendor" => "morefun"}
[2026-06-29 05:12:20.865] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 05:12:20.865] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 05:12:20.865] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 05:12:20.866] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=869.8ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 05:12:20.868] [DEBUG] QUERY OK source="parameter_templates" db=0.9ms idle=331.4ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 05:12:20.868] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 05:12:20.868] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.1ms idle=1.5ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 05:12:20.869] [INFO ] Terminal updated: 98250623730001
[2026-06-29 05:12:20.884] [DEBUG] QUERY OK source="tms_terminals" db=15.3ms idle=1.4ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 05:12:20], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 05:12:20.885] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 05:12:20.886] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=16.4ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 05:12:20.923] [DEBUG] QUERY OK source="tms_terminals" db=36.5ms idle=1.5ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 05:12:20], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 05:12:20.943] [DEBUG] QUERY OK db=20.2ms idle=37.3ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "9358273c-2026-46e9-8b41-70cc286b541d", "2026-06-28T20:22:19Z", ~N[2026-06-29 05:12:20], ~N[2026-06-29 05:12:20]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 05:12:20.944] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 43777, oid: "9358273c-2026-46e9-8b41-70cc286b541d", upload_time: "2026-06-28T20:22:19Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 05:12:20], updated_at: ~N[2026-06-29 05:12:20]}
[2026-06-29 05:12:20.944] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:22:19Z", "value" => "morefun"}
[2026-06-29 05:12:20.965] [DEBUG] QUERY OK db=20.5ms queue=0.4ms idle=21.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "morefun", "vendor", 43777, ~N[2026-06-29 05:12:20], ~N[2026-06-29 05:12:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:20.966] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358799, itemkey: "vendor", value: "morefun", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:20], updated_at: ~N[2026-06-29 05:12:20]}}
[2026-06-29 05:12:20.966] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-28T20:22:19Z", "value" => "kiosk_launcher"}
[2026-06-29 05:12:20.988] [DEBUG] QUERY OK db=21.2ms idle=23.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "kiosk_launcher", "model", 43777, ~N[2026-06-29 05:12:20], ~N[2026-06-29 05:12:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:20.988] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358801, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:20], updated_at: ~N[2026-06-29 05:12:20]}}
[2026-06-29 05:12:20.988] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:22:19Z", "value" => "1.0"}
[2026-06-29 05:12:21.021] [DEBUG] QUERY OK db=32.8ms idle=23.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "1.0", "app_version", 43777, ~N[2026-06-29 05:12:20], ~N[2026-06-29 05:12:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.022] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358803, itemkey: "app_version", value: "1.0", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:20], updated_at: ~N[2026-06-29 05:12:20]}}
[2026-06-29 05:12:21.022] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:22:19Z", "value" => "13"}
[2026-06-29 05:12:21.049] [DEBUG] QUERY OK db=26.9ms idle=34.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "13", "android_version", 43777, ~N[2026-06-29 05:12:21], ~N[2026-06-29 05:12:21]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.049] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358805, itemkey: "android_version", value: "13", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:21], updated_at: ~N[2026-06-29 05:12:21]}}
[2026-06-29 05:12:21.050] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:22:19Z", "value" => "1120"}
[2026-06-29 05:12:21.079] [DEBUG] QUERY OK db=28.8ms idle=28.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "1120", "ram_free_mb", 43777, ~N[2026-06-29 05:12:21], ~N[2026-06-29 05:12:21]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.079] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358807, itemkey: "ram_free_mb", value: "1120", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:21], updated_at: ~N[2026-06-29 05:12:21]}}
[2026-06-29 05:12:21.079] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:22:19Z", "value" => "WIFI"}
[2026-06-29 05:12:21.117] [DEBUG] QUERY OK db=37.4ms idle=30.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "WIFI", "network_type", 43777, ~N[2026-06-29 05:12:21], ~N[2026-06-29 05:12:21]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.117] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358809, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:21], updated_at: ~N[2026-06-29 05:12:21]}}
[2026-06-29 05:12:21.117] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:22:19Z", "value" => "true"}
[2026-06-29 05:12:21.135] [DEBUG] QUERY OK db=16.7ms idle=38.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "true", "kiosk_active", 43777, ~N[2026-06-29 05:12:21], ~N[2026-06-29 05:12:21]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.135] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358811, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:21], updated_at: ~N[2026-06-29 05:12:21]}}
[2026-06-29 05:12:21.135] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:22:19Z", "value" => ""}
[2026-06-29 05:12:21.150] [DEBUG] QUERY OK db=14.7ms idle=18.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-28T20:22:19Z", "sim_operator", 43777, ~N[2026-06-29 05:12:21], ~N[2026-06-29 05:12:21]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.150] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358813, itemkey: "sim_operator", value: nil, timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:21], updated_at: ~N[2026-06-29 05:12:21]}}
[2026-06-29 05:12:21.150] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:22:19Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:12:21.210] [DEBUG] QUERY OK db=59.2ms queue=0.5ms idle=16.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "PERMISSION_DENIED", "sim_number", 43777, ~N[2026-06-29 05:12:21], ~N[2026-06-29 05:12:21]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.211] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358815, itemkey: "sim_number", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:21], updated_at: ~N[2026-06-29 05:12:21]}}
[2026-06-29 05:12:21.211] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:22:19Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:12:21.242] [DEBUG] QUERY OK db=31.0ms idle=61.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "PERMISSION_DENIED", "sim_iccid", 43777, ~N[2026-06-29 05:12:21], ~N[2026-06-29 05:12:21]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.243] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358817, itemkey: "sim_iccid", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:21], updated_at: ~N[2026-06-29 05:12:21]}}
[2026-06-29 05:12:21.243] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:22:19Z", "value" => "UNKNOWN"}
[2026-06-29 05:12:21.303] [DEBUG] QUERY OK db=60.1ms idle=32.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "UNKNOWN", "sim_imsi", 43777, ~N[2026-06-29 05:12:21], ~N[2026-06-29 05:12:21]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.304] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358819, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:21], updated_at: ~N[2026-06-29 05:12:21]}}
[2026-06-29 05:12:21.304] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:22:19Z", "value" => "UNKNOWN"}
[2026-06-29 05:12:21.348] [DEBUG] QUERY OK db=43.5ms idle=61.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "UNKNOWN", "sim_iccid2", 43777, ~N[2026-06-29 05:12:21], ~N[2026-06-29 05:12:21]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.348] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358821, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:21], updated_at: ~N[2026-06-29 05:12:21]}}
[2026-06-29 05:12:21.348] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:22:19Z", "value" => "UNKNOWN"}
[2026-06-29 05:12:21.382] [DEBUG] QUERY OK db=33.2ms idle=45.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "UNKNOWN", "sim_imsi2", 43777, ~N[2026-06-29 05:12:21], ~N[2026-06-29 05:12:21]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.382] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358822, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:21], updated_at: ~N[2026-06-29 05:12:21]}}
[2026-06-29 05:12:21.382] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:22:19Z", "value" => "45"}
[2026-06-29 05:12:21.410] [DEBUG] QUERY OK db=27.1ms idle=35.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "45", "data_usage_mb", 43777, ~N[2026-06-29 05:12:21], ~N[2026-06-29 05:12:21]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.410] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358824, itemkey: "data_usage_mb", value: "45", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:21], updated_at: ~N[2026-06-29 05:12:21]}}
[2026-06-29 05:12:21.410] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:22:19Z", "value" => "0"}
[2026-06-29 05:12:21.443] [DEBUG] QUERY OK db=32.4ms queue=0.1ms idle=29.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "0", "mobile_data_mb", 43777, ~N[2026-06-29 05:12:21], ~N[2026-06-29 05:12:21]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.445] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358826, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:21], updated_at: ~N[2026-06-29 05:12:21]}}
[2026-06-29 05:12:21.446] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:22:19Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 05:12:21.469] [DEBUG] QUERY OK db=21.9ms queue=0.1ms idle=36.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:22:19Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 43777, ~N[2026-06-29 05:12:21], ~N[2026-06-29 05:12:21]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:12:21.470] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358828, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-28T20:22:19Z", message: nil, status_log_id: 43777, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:12:21], updated_at: ~N[2026-06-29 05:12:21]}}
[2026-06-29 05:13:22.296] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 05:13:22.296] [INFO ] Incoming JSON payload: {"oid":"342c92b8-e8d5-4ad0-92d0-1ea660654c05","sn":"98250623730001","uploadTime":"2026-06-28T20:23:20Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"ram_free_mb","value":"1118","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"sim_number","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"sim_iccid","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"data_usage_mb","value":"45","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-28T20:23:20Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.res (truncated)
[2026-06-29 05:13:22.297] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "342c92b8-e8d5-4ad0-92d0-1ea660654c05", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:23:20Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-28T20:23:20Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:23:20Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:23:20Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:23:20Z", "value" => "1118"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:23:20Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:23:20Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:23:20Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:23:20Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:23:20Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:23:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:23:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:23:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:23:20Z", "value" => "45"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:23:20Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:23:20Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-28T20:23:20Z", "vendor" => "morefun"}
[2026-06-29 05:13:22.297] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 05:13:22.297] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 05:13:22.297] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 05:13:22.300] [DEBUG] QUERY OK source="parameter_templates" db=2.9ms idle=521.7ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 05:13:22.302] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms queue=0.4ms idle=302.2ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 05:13:22.302] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 05:13:22.304] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms queue=0.4ms idle=1.9ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 05:13:22.304] [INFO ] Terminal updated: 98250623730001
[2026-06-29 05:13:22.319] [DEBUG] QUERY OK source="tms_terminals" db=14.3ms idle=2.5ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 05:13:22], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 05:13:22.319] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 05:13:22.320] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=15.1ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 05:13:22.334] [DEBUG] QUERY OK source="tms_terminals" db=13.8ms idle=1.3ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 05:13:22], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 05:13:22.362] [DEBUG] QUERY OK db=27.7ms idle=14.5ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "342c92b8-e8d5-4ad0-92d0-1ea660654c05", "2026-06-28T20:23:20Z", ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 05:13:22.362] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 43779, oid: "342c92b8-e8d5-4ad0-92d0-1ea660654c05", upload_time: "2026-06-28T20:23:20Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}
[2026-06-29 05:13:22.363] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:23:20Z", "value" => "morefun"}
[2026-06-29 05:13:22.395] [DEBUG] QUERY OK db=31.9ms idle=28.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "morefun", "vendor", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.395] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358831, itemkey: "vendor", value: "morefun", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.395] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-28T20:23:20Z", "value" => "kiosk_launcher"}
[2026-06-29 05:13:22.415] [DEBUG] QUERY OK db=19.0ms idle=33.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "kiosk_launcher", "model", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.415] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358833, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.415] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:23:20Z", "value" => "1.0"}
[2026-06-29 05:13:22.430] [DEBUG] QUERY OK db=14.4ms idle=20.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "1.0", "app_version", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.430] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358835, itemkey: "app_version", value: "1.0", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.430] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:23:20Z", "value" => "13"}
[2026-06-29 05:13:22.466] [DEBUG] QUERY OK db=35.5ms idle=15.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "13", "android_version", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.466] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358837, itemkey: "android_version", value: "13", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.466] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:23:20Z", "value" => "1118"}
[2026-06-29 05:13:22.500] [DEBUG] QUERY OK db=33.2ms idle=36.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "1118", "ram_free_mb", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.501] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358839, itemkey: "ram_free_mb", value: "1118", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.501] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:23:20Z", "value" => "WIFI"}
[2026-06-29 05:13:22.515] [DEBUG] QUERY OK db=14.0ms idle=35.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "WIFI", "network_type", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.516] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358841, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.516] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:23:20Z", "value" => "true"}
[2026-06-29 05:13:22.553] [DEBUG] QUERY OK db=36.6ms idle=16.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "true", "kiosk_active", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.553] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358843, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.553] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:23:20Z", "value" => ""}
[2026-06-29 05:13:22.582] [DEBUG] QUERY OK db=28.1ms idle=38.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-28T20:23:20Z", "sim_operator", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.582] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358845, itemkey: "sim_operator", value: nil, timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.582] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:23:20Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:13:22.594] [DEBUG] QUERY OK db=11.2ms idle=29.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "PERMISSION_DENIED", "sim_number", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.594] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358847, itemkey: "sim_number", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.595] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:23:20Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:13:22.609] [DEBUG] QUERY OK db=13.2ms idle=14.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "PERMISSION_DENIED", "sim_iccid", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.610] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358849, itemkey: "sim_iccid", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.610] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:23:20Z", "value" => "UNKNOWN"}
[2026-06-29 05:13:22.646] [DEBUG] QUERY OK db=34.6ms idle=16.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "UNKNOWN", "sim_imsi", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.646] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358851, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.646] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:23:20Z", "value" => "UNKNOWN"}
[2026-06-29 05:13:22.682] [DEBUG] QUERY OK db=35.3ms idle=36.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "UNKNOWN", "sim_iccid2", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.682] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358853, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.682] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:23:20Z", "value" => "UNKNOWN"}
[2026-06-29 05:13:22.699] [DEBUG] QUERY OK db=17.0ms idle=36.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "UNKNOWN", "sim_imsi2", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.700] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358855, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.700] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:23:20Z", "value" => "45"}
[2026-06-29 05:13:22.743] [DEBUG] QUERY OK db=42.5ms idle=18.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "45", "data_usage_mb", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.743] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358857, itemkey: "data_usage_mb", value: "45", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.744] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:23:20Z", "value" => "0"}
[2026-06-29 05:13:22.770] [DEBUG] QUERY OK db=25.0ms idle=45.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "0", "mobile_data_mb", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.770] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358859, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:13:22.771] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:23:20Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 05:13:22.795] [DEBUG] QUERY OK db=21.4ms idle=28.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:23:20Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 43779, ~N[2026-06-29 05:13:22], ~N[2026-06-29 05:13:22]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:13:22.797] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358861, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-28T20:23:20Z", message: nil, status_log_id: 43779, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:13:22], updated_at: ~N[2026-06-29 05:13:22]}}
[2026-06-29 05:14:02.490] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 05:14:02.490] [INFO ] Incoming JSON payload: {"oid":"f43a4243-7b97-4966-8b27-60a6634821c1","sn":"98250623730001","uploadTime":"2026-06-28T20:24:01Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"ram_free_mb","value":"1117","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"sim_number","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"sim_iccid","value":"PERMISSION_DENIED","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"data_usage_mb","value":"45","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-28T20:24:01Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.res (truncated)
[2026-06-29 05:14:02.500] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "f43a4243-7b97-4966-8b27-60a6634821c1", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:24:01Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-28T20:24:01Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:24:01Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:24:01Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:24:01Z", "value" => "1117"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:24:01Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:24:01Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:24:01Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:24:01Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:24:01Z", "value" => "PERMISSION_DENIED"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:24:01Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:24:01Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:24:01Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:24:01Z", "value" => "45"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:24:01Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:24:01Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-28T20:24:01Z", "vendor" => "morefun"}
[2026-06-29 05:14:02.501] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 05:14:02.501] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 05:14:02.501] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 05:14:02.502] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms queue=0.1ms idle=597.1ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 05:14:02.505] [DEBUG] QUERY OK source="parameter_templates" db=2.7ms idle=499.9ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 05:14:02.505] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 05:14:02.511] [DEBUG] QUERY OK source="tms_terminals" db=5.4ms idle=3.3ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 05:14:02.511] [INFO ] Terminal updated: 98250623730001
[2026-06-29 05:14:02.527] [DEBUG] QUERY OK source="tms_terminals" db=15.1ms idle=6.4ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 05:14:02], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 05:14:02.527] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 05:14:02.534] [DEBUG] QUERY OK source="tms_terminals" db=2.1ms idle=21.2ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 05:14:02.552] [DEBUG] QUERY OK source="tms_terminals" db=14.1ms queue=3.4ms idle=7.9ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 05:14:02], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 05:14:02.596] [DEBUG] QUERY OK db=43.3ms idle=18.2ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "f43a4243-7b97-4966-8b27-60a6634821c1", "2026-06-28T20:24:01Z", ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 05:14:02.596] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 43782, oid: "f43a4243-7b97-4966-8b27-60a6634821c1", upload_time: "2026-06-28T20:24:01Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}
[2026-06-29 05:14:02.596] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-28T20:24:01Z", "value" => "morefun"}
[2026-06-29 05:14:02.622] [DEBUG] QUERY OK db=25.5ms idle=44.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "morefun", "vendor", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:02.622] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358864, itemkey: "vendor", value: "morefun", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:02.623] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-28T20:24:01Z", "value" => "kiosk_launcher"}
[2026-06-29 05:14:02.639] [DEBUG] QUERY OK db=16.4ms idle=26.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "kiosk_launcher", "model", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:02.640] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358865, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:02.640] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-28T20:24:01Z", "value" => "1.0"}
[2026-06-29 05:14:02.683] [DEBUG] QUERY OK db=42.9ms idle=17.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "1.0", "app_version", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:02.683] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358867, itemkey: "app_version", value: "1.0", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:02.683] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-28T20:24:01Z", "value" => "13"}
[2026-06-29 05:14:02.708] [DEBUG] QUERY OK db=24.5ms idle=44.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "13", "android_version", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:02.709] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358869, itemkey: "android_version", value: "13", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:02.709] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-28T20:24:01Z", "value" => "1117"}
[2026-06-29 05:14:02.737] [DEBUG] QUERY OK db=28.0ms idle=25.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "1117", "ram_free_mb", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:02.737] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358871, itemkey: "ram_free_mb", value: "1117", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:02.737] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-28T20:24:01Z", "value" => "WIFI"}
[2026-06-29 05:14:02.776] [DEBUG] QUERY OK db=38.0ms idle=29.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "WIFI", "network_type", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:02.776] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358874, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:02.776] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-28T20:24:01Z", "value" => "true"}
[2026-06-29 05:14:02.814] [DEBUG] QUERY OK db=37.2ms idle=39.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "true", "kiosk_active", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:02.814] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358876, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:02.814] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-28T20:24:01Z", "value" => ""}
[2026-06-29 05:14:02.835] [DEBUG] QUERY OK db=19.6ms idle=38.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-28T20:24:01Z", "sim_operator", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:02.836] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358878, itemkey: "sim_operator", value: nil, timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:02.836] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-28T20:24:01Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:14:02.866] [DEBUG] QUERY OK db=29.4ms idle=22.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "PERMISSION_DENIED", "sim_number", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:02.866] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358880, itemkey: "sim_number", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:02.867] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-28T20:24:01Z", "value" => "PERMISSION_DENIED"}
[2026-06-29 05:14:02.901] [DEBUG] QUERY OK db=34.2ms idle=32.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "PERMISSION_DENIED", "sim_iccid", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:02.901] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358882, itemkey: "sim_iccid", value: "PERMISSION_DENIED", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:02.902] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-28T20:24:01Z", "value" => "UNKNOWN"}
[2026-06-29 05:14:02.920] [DEBUG] QUERY OK db=18.2ms idle=35.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "UNKNOWN", "sim_imsi", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:02.920] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358884, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:02.920] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-28T20:24:01Z", "value" => "UNKNOWN"}
[2026-06-29 05:14:02.941] [DEBUG] QUERY OK db=19.9ms idle=9.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "UNKNOWN", "sim_iccid2", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:02.941] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358886, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:02.941] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-28T20:24:01Z", "value" => "UNKNOWN"}
[2026-06-29 05:14:02.974] [DEBUG] QUERY OK db=32.8ms idle=21.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "UNKNOWN", "sim_imsi2", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:02.975] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358887, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:02.975] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-28T20:24:01Z", "value" => "45"}
[2026-06-29 05:14:03.003] [DEBUG] QUERY OK db=25.0ms queue=0.1ms idle=36.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "45", "data_usage_mb", 43782, ~N[2026-06-29 05:14:02], ~N[2026-06-29 05:14:02]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:03.003] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358889, itemkey: "data_usage_mb", value: "45", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:02], updated_at: ~N[2026-06-29 05:14:02]}}
[2026-06-29 05:14:03.003] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-28T20:24:01Z", "value" => "0"}
[2026-06-29 05:14:03.032] [DEBUG] QUERY OK db=28.6ms idle=29.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "0", "mobile_data_mb", 43782, ~N[2026-06-29 05:14:03], ~N[2026-06-29 05:14:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:03.032] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358891, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:03], updated_at: ~N[2026-06-29 05:14:03]}}
[2026-06-29 05:14:03.038] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-28T20:24:01Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 05:14:03.086] [DEBUG] QUERY OK db=39.7ms queue=2.6ms idle=35.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-28T20:24:01Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 43782, ~N[2026-06-29 05:14:03], ~N[2026-06-29 05:14:03]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 05:14:03.090] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 358894, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-28T20:24:01Z", message: nil, status_log_id: 43782, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 05:14:03], updated_at: ~N[2026-06-29 05:14:03]}}
[2026-06-29 11:52:29.890] [INFO ] [Ysp.Scheduler] Started. SFTP in 15h 7m, MIS in 19h 7m
[2026-06-29 11:52:29.941] [INFO ]     :alarm_handler: {:set, {:system_memory_high_watermark, []}}
[2026-06-29 11:52:29.950] [INFO ]     :alarm_handler: {:set, {{:disk_almost_full, ~c"/"}, []}}
[2026-06-29 11:52:31.485] [INFO ] Terminal Event Listener started and listening to events
[2026-06-29 11:52:31.485] [INFO ] Rule Validation Worker started - will run every hour
[2026-06-29 11:52:31.485] [INFO ] Building initial filter cache...
[2026-06-29 11:52:31.500] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.7ms idle=994.8ms
SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) []
[90m↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153[0m
[2026-06-29 11:52:31.518] [DEBUG] QUERY OK source="filter_usage" db=1.1ms queue=0.5ms idle=23.6ms
SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` []
[90m↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190[0m
[2026-06-29 11:52:31.519] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models
[2026-06-29 11:52:31.638] [INFO ] Device phoenix_client_piyush connected
[2026-06-29 11:52:31.665] [INFO ] Running PlatformWeb.Endpoint with Bandit 1.10.2 at 0.0.0.0:4059 (http)
[2026-06-29 11:52:31.682] [INFO ] Access PlatformWeb.Endpoint at http://localhost:4059
[2026-06-29 11:52:42.708] [INFO ] GET /
[2026-06-29 11:52:42.806] [DEBUG] Processing with PlatformWeb.PageController.home/2
  Parameters: %{}
  Pipelines: [:browser]
[2026-06-29 11:52:42.924] [DEBUG] QUERY OK source="users_tokens" db=0.7ms queue=3.5ms idle=1477.3ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<18, 68, 196, 15, 62, 196, 24, 54, 204, 74, 39, 129, 233, 140, 219, 129, 117, 38, 101, 45, 136, 17, 20, 37, 187, 59, 100, 177, 163, 40, 112, 198>>, "session", ~U[2026-06-29 11:52:42.891666Z]]
[90m↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97[0m
[2026-06-29 11:52:43.107] [INFO ] Sent 200 in 399ms
[2026-06-29 11:53:09.152] [INFO ] GET /
[2026-06-29 11:53:09.152] [DEBUG] Processing with PlatformWeb.PageController.home/2
  Parameters: %{}
  Pipelines: [:browser]
[2026-06-29 11:53:09.157] [DEBUG] QUERY OK source="users_tokens" db=3.7ms queue=1.1ms idle=1714.9ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<18, 68, 196, 15, 62, 196, 24, 54, 204, 74, 39, 129, 233, 140, 219, 129, 117, 38, 101, 45, 136, 17, 20, 37, 187, 59, 100, 177, 163, 40, 112, 198>>, "session", ~U[2026-06-29 11:53:09.152644Z]]
[90m↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97[0m
[2026-06-29 11:53:09.158] [INFO ] Sent 200 in 6ms
[2026-06-29 11:53:15.120] [INFO ] POST /users/log_out
[2026-06-29 11:53:15.120] [DEBUG] Processing with PlatformWeb.UserSessionController.delete/2
  Parameters: %{"_csrf_token" => "Uk4OKgQsGThULG4bKiR4Lg8mDycyAzcMa4jXkCq_gj9cFHMaHhfhp2RS", "_method" => "delete"}
  Pipelines: [:browser]
[2026-06-29 11:53:15.123] [DEBUG] QUERY OK source="users_tokens" db=1.8ms idle=684.0ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<18, 68, 196, 15, 62, 196, 24, 54, 204, 74, 39, 129, 233, 140, 219, 129, 117, 38, 101, 45, 136, 17, 20, 37, 187, 59, 100, 177, 163, 40, 112, 198>>, "session", ~U[2026-06-29 11:53:15.121781Z]]
[90m↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97[0m
[2026-06-29 11:53:15.143] [DEBUG] QUERY OK source="users_tokens" db=15.0ms queue=0.6ms idle=690.0ms
DELETE u0.* FROM `users_tokens` AS u0 WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) [<<18, 68, 196, 15, 62, 196, 24, 54, 204, 74, 39, 129, 233, 140, 219, 129, 117, 38, 101, 45, 136, 17, 20, 37, 187, 59, 100, 177, 163, 40, 112, 198>>, "session"]
[90m↳ DaProductApp.Users.delete_user_session_token/1, at: lib/da_product_app/users.ex:328[0m
[2026-06-29 11:53:15.148] [INFO ] Sent 302 in 28ms
[2026-06-29 11:53:15.527] [INFO ] GET /
[2026-06-29 11:53:15.528] [DEBUG] Processing with PlatformWeb.PageController.home/2
  Parameters: %{}
  Pipelines: [:browser]
[2026-06-29 11:53:15.542] [INFO ] Sent 200 in 14ms
[2026-06-29 11:53:20.185] [INFO ] GET /users/log_in
[2026-06-29 11:53:20.185] [DEBUG] Processing with PlatformWeb.UserLoginLive.new/2
  Parameters: %{}
  Pipelines: [:browser, :redirect_if_user_is_authenticated]
[2026-06-29 11:53:20.264] [INFO ] Sent 200 in 78ms
[2026-06-29 11:53:21.713] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 23µs
  Transport: :websocket
  Serializer: Phoenix.Socket.V2.JSONSerializer
  Parameters: %{"_csrf_token" => "GgcnPwxBPBYJF3kaRBM1aR5iOTUKBi43xjhWN6nphc4t7PX8r6kGxOA_", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"}
[2026-06-29 11:53:22.031] [DEBUG] MOUNT PlatformWeb.UserLoginLive
  Parameters: %{}
  Session: %{"_csrf_token" => "bmOhBwRfatMnsCmQlTRrrIoh"}
[2026-06-29 11:53:22.031] [DEBUG] Replied in 223µs
[2026-06-29 11:53:46.911] [INFO ] POST /users/log_in
[2026-06-29 11:53:46.911] [DEBUG] Processing with PlatformWeb.UserSessionController.create/2
  Parameters: %{"_csrf_token" => "GgcnPwxBPBYJF3kaRBM1aR5iOTUKBi43xjhWN6nphc4t7PX8r6kGxOA_", "user" => %{"email" => "demo@mercury.com", "password" => "[FILTERED]", "remember_me" => "on"}}
  Pipelines: [:browser, :redirect_if_user_is_authenticated]
[2026-06-29 11:53:46.914] [DEBUG] QUERY OK source="users" db=0.5ms queue=1.3ms idle=469.5ms
SELECT u0.`id`, u0.`email`, u0.`hashed_password`, u0.`confirmed_at`, u0.`role`, u0.`name`, u0.`first_name`, u0.`last_name`, u0.`data`, u0.`inserted_at`, u0.`updated_at` FROM `users` AS u0 WHERE (u0.`email` = ?) ["demo@mercury.com"]
[90m↳ DaProductApp.Users.get_user_by_email_and_password/2, at: lib/da_product_app/users.ex:43[0m
[2026-06-29 11:53:47.272] [DEBUG] QUERY OK db=45.6ms queue=1.0ms idle=782.8ms
INSERT INTO `users_tokens` (`context`,`token`,`user_id`,`inserted_at`) VALUES (?,?,?,?) ["session", <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, 3, ~U[2026-06-29 11:53:47Z]]
[90m↳ DaProductApp.Users.generate_user_session_token/1, at: lib/da_product_app/users.ex:312[0m
[2026-06-29 11:53:47.272] [INFO ] Sent 302 in 361ms
[2026-06-29 11:53:47.295] [ERROR] ** (Plug.Conn.AlreadySentError) the response was already sent
    (plug 1.19.1) lib/plug/conn.ex:914: Plug.Conn.put_resp_header/3
    (phoenix 1.7.21) lib/phoenix/controller.ex:495: Phoenix.Controller.redirect/2
    (platform_web 0.1.0) lib/platform_web/controllers/user_session_controller.ex:1: PlatformWeb.UserSessionController.action/2
    (platform_web 0.1.0) lib/platform_web/controllers/user_session_controller.ex:1: PlatformWeb.UserSessionController.phoenix_controller_pipeline/2
    (phoenix 1.7.21) lib/phoenix/router.ex:484: Phoenix.Router.__call__/5
    (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.plug_builder_call/2
    (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/plug/lib/plug/debugger.ex:155: PlatformWeb.Endpoint."call (overridable 3)"/2
    (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.call/2
    (phoenix 1.7.21) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4
    (bandit 1.10.2) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2
    (bandit 1.10.2) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5
    (bandit 1.10.2) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3
    (bandit 1.10.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3
    (bandit 1.10.2) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_info/2
    (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3
    (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6
    (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3

[2026-06-29 11:53:47.703] [INFO ] GET /dashboard
[2026-06-29 11:53:47.705] [DEBUG] Processing with PlatformWeb.DashboardLive.index/2
  Parameters: %{}
  Pipelines: [:browser, :require_authenticated_user]
[2026-06-29 11:53:47.707] [DEBUG] QUERY OK source="users_tokens" db=2.0ms queue=0.1ms idle=791.3ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:53:47.705481Z]]
[90m↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97[0m
[2026-06-29 11:53:47.723] [DEBUG] QUERY OK source="users_tokens" db=0.6ms idle=449.9ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:53:47.722160Z]]
[90m↳ PlatformWeb.DashboardLive.mount/3, at: lib/platform_web/live/dashboard_live.ex:10[0m
[2026-06-29 11:53:47.744] [DEBUG] Socket Assigns: %{__changed__: %{current_user: true}, current_user: #DaProductApp.Users.User<__meta__: #Ecto.Schema.Metadata<:loaded, "users">, id: 3, email: "demo@mercury.com", confirmed_at: nil, role: :superuser, name: nil, first_name: nil, last_name: nil, data: nil, permissions: #Ecto.Association.NotLoaded<association :permissions is not loaded>, roles: #Ecto.Association.NotLoaded<association :roles is not loaded>, inserted_at: ~U[2025-05-12 07:36:10Z], updated_at: ~U[2026-03-13 10:38:22Z], ...>, flash: %{"info" => "Welcome back!"}, live_action: :index}
[2026-06-29 11:53:47.779] [DEBUG] QUERY OK source="tms_terminals" db=5.4ms queue=0.8ms idle=1421.8ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:83[0m
[2026-06-29 11:53:47.787] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.9ms idle=963.6ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 00:00:00]]
[90m↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:86[0m
[2026-06-29 11:53:47.821] [DEBUG] QUERY OK source="tms_terminals" db=23.3ms queue=3.0ms idle=15.2ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 INNER JOIN `tms_terminal_status_logs` AS t1 ON t1.`terminal_id` = t0.`id` WHERE (t1.`inserted_at` >= ?) [~N[2026-06-29 00:00:00]]
[90m↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:92[0m
[2026-06-29 11:53:47.827] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.6ms queue=1.6ms idle=4.0ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE (t0.`installed_at` >= ?) [~U[2026-06-29 00:00:00Z]]
[90m↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:101[0m
[2026-06-29 11:53:47.828] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=6.6ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.get_device_online_rate/0, at: lib/tms_core/terminal_management.ex:140[0m
[2026-06-29 11:53:47.830] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms queue=0.3ms idle=1.4ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('connected','online','Online')) []
[90m↳ TmsCore.TerminalManagement.get_device_online_rate/0, at: lib/tms_core/terminal_management.ex:143[0m
[2026-06-29 11:53:47.935] [DEBUG] QUERY OK source="tms_terminals" db=86.7ms queue=4.8ms idle=14.9ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` []
[90m↳ PlatformWeb.DashboardLive.mount/3, at: lib/platform_web/live/dashboard_live.ex:19[0m
[2026-06-29 11:53:47.960] [DEBUG] QUERY OK source="ota_configurations" db=0.5ms queue=1.1ms idle=129.2ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 00:00:00Z], ~U[2026-06-29 01:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:47.963] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=1.0ms queue=1.3ms idle=25.6ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 00:00:00Z], ~U[2026-06-29 01:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:47.969] [DEBUG] QUERY OK source="ota_configurations" db=5.2ms idle=3.1ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 01:00:00Z], ~U[2026-06-29 02:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:47.973] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.9ms idle=8.5ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 01:00:00Z], ~U[2026-06-29 02:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:47.976] [DEBUG] QUERY OK source="ota_configurations" db=0.7ms idle=6.6ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 02:00:00Z], ~U[2026-06-29 03:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:47.978] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=1.3ms idle=3.8ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 02:00:00Z], ~U[2026-06-29 03:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:47.981] [DEBUG] QUERY OK source="ota_configurations" db=1.2ms idle=2.9ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 03:00:00Z], ~U[2026-06-29 04:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:47.984] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=2.6ms idle=2.8ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 03:00:00Z], ~U[2026-06-29 04:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:47.987] [DEBUG] QUERY OK source="ota_configurations" db=2.1ms idle=3.9ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 04:00:00Z], ~U[2026-06-29 05:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:47.992] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=2.7ms idle=6.0ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 04:00:00Z], ~U[2026-06-29 05:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:47.995] [DEBUG] QUERY OK source="ota_configurations" db=1.3ms queue=0.7ms idle=6.0ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 05:00:00Z], ~U[2026-06-29 06:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:47.996] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.9ms idle=2.8ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 05:00:00Z], ~U[2026-06-29 06:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:47.999] [DEBUG] QUERY OK source="ota_configurations" db=2.5ms idle=1.5ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 06:00:00Z], ~U[2026-06-29 07:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.001] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=1.2ms queue=0.1ms idle=3.2ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 06:00:00Z], ~U[2026-06-29 07:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.002] [DEBUG] QUERY OK source="ota_configurations" db=1.0ms idle=1.9ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 07:00:00Z], ~U[2026-06-29 08:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.003] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.7ms idle=1.5ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 07:00:00Z], ~U[2026-06-29 08:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.005] [DEBUG] QUERY OK source="ota_configurations" db=1.7ms idle=1.2ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 08:00:00Z], ~U[2026-06-29 09:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.006] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.5ms queue=0.1ms idle=2.1ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 08:00:00Z], ~U[2026-06-29 09:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.012] [DEBUG] QUERY OK source="ota_configurations" db=2.3ms queue=0.8ms idle=4.1ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 09:00:00Z], ~U[2026-06-29 10:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.024] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=3.3ms idle=6.7ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 09:00:00Z], ~U[2026-06-29 10:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.025] [DEBUG] QUERY OK source="ota_configurations" db=1.1ms idle=11.7ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 10:00:00Z], ~U[2026-06-29 11:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.027] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=1.8ms idle=9.4ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 10:00:00Z], ~U[2026-06-29 11:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.032] [DEBUG] QUERY OK source="ota_configurations" db=4.5ms idle=2.3ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 11:00:00Z], ~U[2026-06-29 12:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.034] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=1.1ms idle=5.1ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 11:00:00Z], ~U[2026-06-29 12:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.042] [DEBUG] QUERY OK source="ota_configurations" db=1.4ms queue=4.0ms idle=3.9ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 12:00:00Z], ~U[2026-06-29 13:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.047] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=4.4ms queue=0.1ms idle=8.2ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 12:00:00Z], ~U[2026-06-29 13:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.051] [DEBUG] QUERY OK source="ota_configurations" db=3.8ms idle=5.2ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 13:00:00Z], ~U[2026-06-29 14:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.056] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=4.0ms idle=5.4ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 13:00:00Z], ~U[2026-06-29 14:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.060] [DEBUG] QUERY OK source="ota_configurations" db=3.1ms idle=5.6ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 14:00:00Z], ~U[2026-06-29 15:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.061] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=1.0ms idle=3.8ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 14:00:00Z], ~U[2026-06-29 15:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.065] [DEBUG] QUERY OK source="ota_configurations" db=1.5ms queue=2.2ms idle=1.6ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 15:00:00Z], ~U[2026-06-29 16:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.066] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.9ms idle=4.3ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 15:00:00Z], ~U[2026-06-29 16:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.069] [DEBUG] QUERY OK source="ota_configurations" db=2.7ms idle=1.5ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 16:00:00Z], ~U[2026-06-29 17:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.073] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=1.0ms queue=1.9ms idle=3.2ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 16:00:00Z], ~U[2026-06-29 17:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.080] [DEBUG] QUERY OK source="ota_configurations" db=0.7ms idle=9.6ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 17:00:00Z], ~U[2026-06-29 18:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.081] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms queue=0.1ms idle=7.5ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 17:00:00Z], ~U[2026-06-29 18:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.082] [DEBUG] QUERY OK source="ota_configurations" db=1.2ms idle=0.9ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 18:00:00Z], ~U[2026-06-29 19:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.085] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=2.4ms idle=1.7ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 18:00:00Z], ~U[2026-06-29 19:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.087] [DEBUG] QUERY OK source="ota_configurations" db=1.8ms queue=0.1ms idle=2.9ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 19:00:00Z], ~U[2026-06-29 20:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.089] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=1.7ms idle=2.6ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 19:00:00Z], ~U[2026-06-29 20:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.093] [DEBUG] QUERY OK source="ota_configurations" db=3.4ms idle=2.2ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 20:00:00Z], ~U[2026-06-29 21:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.098] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=5.0ms idle=4.0ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 20:00:00Z], ~U[2026-06-29 21:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.108] [DEBUG] QUERY OK source="ota_configurations" db=5.4ms queue=3.4ms idle=5.7ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 21:00:00Z], ~U[2026-06-29 22:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.109] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.6ms idle=10.3ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 21:00:00Z], ~U[2026-06-29 22:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.114] [DEBUG] QUERY OK source="ota_configurations" db=4.0ms queue=0.3ms idle=2.0ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 22:00:00Z], ~U[2026-06-29 23:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.120] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=2.7ms queue=0.1ms idle=7.9ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 22:00:00Z], ~U[2026-06-29 23:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.123] [DEBUG] QUERY OK source="ota_configurations" db=2.7ms idle=6.4ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 23:00:00Z], ~U[2026-06-30 00:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:48.124] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.7ms idle=3.5ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 23:00:00Z], ~U[2026-06-30 00:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:48.200] [DEBUG] QUERY OK source="tms_terminals" db=71.9ms queue=3.4ms idle=1.3ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:48:48.124943Z], ~U[2026-06-29 11:23:48.124943Z], ~U[2026-06-29 10:53:48.124943Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:53:48.217] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.4ms queue=2.1ms idle=76.2ms
SELECT DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i'), count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) GROUP BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') ORDER BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') [~N[2026-06-29 10:53:48]]
[90m↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1531[0m
[2026-06-29 11:53:48.230] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.2ms queue=1.1ms idle=19.1ms
SELECT count(DISTINCT t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 11:52:48]]
[90m↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1539[0m
[2026-06-29 11:53:48.244] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.2ms queue=0.7ms idle=13.3ms
SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 10:53:48]]
[90m↳ TmsCore.TerminalManagement.get_parameter_push_success_rate/1, at: lib/tms_core/terminal_management.ex:1605[0m
[2026-06-29 11:53:48.257] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.9ms idle=14.7ms
SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 10:53:48]]
[90m↳ TmsCore.TerminalManagement.get_average_response_time/1, at: lib/tms_core/terminal_management.ex:1621[0m
[2026-06-29 11:53:48.276] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.6ms queue=0.7ms idle=12.7ms
SELECT count(t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 10:53:48]]
[90m↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1647[0m
[2026-06-29 11:53:48.276] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=19.1ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1652[0m
[2026-06-29 11:53:48.344] [DEBUG] QUERY OK source="tms_terminals" db=66.1ms queue=0.6ms idle=1.1ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:48:48.277007Z], ~U[2026-06-29 11:23:48.277007Z], ~U[2026-06-29 10:53:48.277007Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:53:48.395] [DEBUG] QUERY OK source="tms_terminals" db=49.5ms queue=1.3ms idle=67.9ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:48:48.344513Z], ~U[2026-06-29 11:23:48.344513Z], ~U[2026-06-29 10:53:48.344513Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:53:48.451] [DEBUG] QUERY OK source="tms_terminals" db=55.3ms idle=52.4ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:48:48.395963Z], ~U[2026-06-29 11:23:48.395963Z], ~U[2026-06-29 10:53:48.395963Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:53:48.504] [DEBUG] QUERY OK source="tms_terminals" db=52.1ms idle=56.6ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:48:48.452046Z], ~U[2026-06-29 11:23:48.452046Z], ~U[2026-06-29 10:53:48.452046Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:53:48.529] [INFO ] Sent 200 in 825ms
[2026-06-29 11:53:49.772] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 32µs
  Transport: :websocket
  Serializer: Phoenix.Socket.V2.JSONSerializer
  Parameters: %{"_csrf_token" => "HA05OwsDQEQMIAUpWDAKByIhEERaWykji8plz6p-zOBCmtc4sEU7b7as", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"}
[2026-06-29 11:53:49.945] [DEBUG] MOUNT PlatformWeb.DashboardLive
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 11:53:49.946] [DEBUG] QUERY OK source="users_tokens" db=0.8ms queue=0.1ms idle=500.4ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:53:49.945207Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 11:53:49.947] [DEBUG] QUERY OK source="users_tokens" db=0.5ms idle=501.7ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:53:49.946533Z]]
[90m↳ PlatformWeb.DashboardLive.mount/3, at: lib/platform_web/live/dashboard_live.ex:10[0m
[2026-06-29 11:53:49.948] [DEBUG] Socket Assigns: %{__changed__: %{current_user: true}, current_user: #DaProductApp.Users.User<__meta__: #Ecto.Schema.Metadata<:loaded, "users">, id: 3, email: "demo@mercury.com", confirmed_at: nil, role: :superuser, name: nil, first_name: nil, last_name: nil, data: nil, permissions: #Ecto.Association.NotLoaded<association :permissions is not loaded>, roles: #Ecto.Association.NotLoaded<association :roles is not loaded>, inserted_at: ~U[2025-05-12 07:36:10Z], updated_at: ~U[2026-03-13 10:38:22Z], ...>, flash: %{"info" => "Welcome back!"}, live_action: :index}
[2026-06-29 11:53:49.948] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=1124.0ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:83[0m
[2026-06-29 11:53:49.949] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=122.8ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 00:00:00]]
[90m↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:86[0m
[2026-06-29 11:53:49.962] [DEBUG] QUERY OK source="tms_terminals" db=12.5ms idle=1.0ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 INNER JOIN `tms_terminal_status_logs` AS t1 ON t1.`terminal_id` = t0.`id` WHERE (t1.`inserted_at` >= ?) [~N[2026-06-29 00:00:00]]
[90m↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:92[0m
[2026-06-29 11:53:49.963] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms idle=13.1ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE (t0.`installed_at` >= ?) [~U[2026-06-29 00:00:00Z]]
[90m↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:101[0m
[2026-06-29 11:53:49.963] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms idle=0.9ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.get_device_online_rate/0, at: lib/tms_core/terminal_management.ex:140[0m
[2026-06-29 11:53:49.964] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms idle=0.6ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('connected','online','Online')) []
[90m↳ TmsCore.TerminalManagement.get_device_online_rate/0, at: lib/tms_core/terminal_management.ex:143[0m
[2026-06-29 11:53:50.016] [DEBUG] QUERY OK source="tms_terminals" db=52.1ms idle=0.6ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` []
[90m↳ PlatformWeb.DashboardLive.mount/3, at: lib/platform_web/live/dashboard_live.ex:19[0m
[2026-06-29 11:53:50.017] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms queue=0.1ms idle=53.1ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 00:00:00Z], ~U[2026-06-29 01:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.018] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=1.5ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 00:00:00Z], ~U[2026-06-29 01:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.019] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=0.7ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 01:00:00Z], ~U[2026-06-29 02:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.019] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.8ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 01:00:00Z], ~U[2026-06-29 02:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.020] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=0.7ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 02:00:00Z], ~U[2026-06-29 03:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.020] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.7ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 02:00:00Z], ~U[2026-06-29 03:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.021] [DEBUG] QUERY OK source="ota_configurations" db=0.2ms idle=0.7ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 03:00:00Z], ~U[2026-06-29 04:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.022] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms idle=0.7ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 03:00:00Z], ~U[2026-06-29 04:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.022] [DEBUG] QUERY OK source="ota_configurations" db=0.2ms queue=0.1ms idle=1.3ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 04:00:00Z], ~U[2026-06-29 05:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.023] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=1.6ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 04:00:00Z], ~U[2026-06-29 05:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.024] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=1.2ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 05:00:00Z], ~U[2026-06-29 06:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.025] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=0.8ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 05:00:00Z], ~U[2026-06-29 06:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.025] [DEBUG] QUERY OK source="ota_configurations" db=0.4ms idle=0.7ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 06:00:00Z], ~U[2026-06-29 07:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.026] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms queue=0.1ms idle=0.8ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 06:00:00Z], ~U[2026-06-29 07:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.027] [DEBUG] QUERY OK source="ota_configurations" db=0.4ms idle=1.0ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 07:00:00Z], ~U[2026-06-29 08:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.028] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.5ms idle=1.0ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 07:00:00Z], ~U[2026-06-29 08:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.029] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms queue=0.9ms idle=1.0ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 08:00:00Z], ~U[2026-06-29 09:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.031] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.7ms idle=2.1ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 08:00:00Z], ~U[2026-06-29 09:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.032] [DEBUG] QUERY OK source="ota_configurations" db=0.2ms idle=1.9ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 09:00:00Z], ~U[2026-06-29 10:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.032] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=1.1ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 09:00:00Z], ~U[2026-06-29 10:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.033] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=1.2ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 10:00:00Z], ~U[2026-06-29 11:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.034] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=1.1ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 10:00:00Z], ~U[2026-06-29 11:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.035] [DEBUG] QUERY OK source="ota_configurations" db=0.6ms queue=0.1ms idle=0.7ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 11:00:00Z], ~U[2026-06-29 12:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.035] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=1.1ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 11:00:00Z], ~U[2026-06-29 12:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.036] [DEBUG] QUERY OK source="ota_configurations" db=0.5ms idle=0.8ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 12:00:00Z], ~U[2026-06-29 13:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.037] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=1.5ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 12:00:00Z], ~U[2026-06-29 13:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.038] [DEBUG] QUERY OK source="ota_configurations" db=0.7ms idle=1.3ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 13:00:00Z], ~U[2026-06-29 14:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.039] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms queue=0.1ms idle=1.3ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 13:00:00Z], ~U[2026-06-29 14:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.040] [DEBUG] QUERY OK source="ota_configurations" db=0.5ms queue=0.1ms idle=0.8ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 14:00:00Z], ~U[2026-06-29 15:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.040] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=1.1ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 14:00:00Z], ~U[2026-06-29 15:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.041] [DEBUG] QUERY OK source="ota_configurations" db=0.2ms idle=0.7ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 15:00:00Z], ~U[2026-06-29 16:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.042] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.6ms idle=0.7ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 15:00:00Z], ~U[2026-06-29 16:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.042] [DEBUG] QUERY OK source="ota_configurations" db=0.2ms queue=0.1ms idle=1.1ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 16:00:00Z], ~U[2026-06-29 17:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.043] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.8ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 16:00:00Z], ~U[2026-06-29 17:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.044] [DEBUG] QUERY OK source="ota_configurations" db=0.2ms idle=0.9ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 17:00:00Z], ~U[2026-06-29 18:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.044] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=1.0ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 17:00:00Z], ~U[2026-06-29 18:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.045] [DEBUG] QUERY OK source="ota_configurations" db=0.2ms idle=0.9ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 18:00:00Z], ~U[2026-06-29 19:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.045] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=0.7ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 18:00:00Z], ~U[2026-06-29 19:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.046] [DEBUG] QUERY OK source="ota_configurations" db=0.4ms idle=0.7ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 19:00:00Z], ~U[2026-06-29 20:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.047] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.9ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 19:00:00Z], ~U[2026-06-29 20:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.048] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=1.7ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 20:00:00Z], ~U[2026-06-29 21:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.049] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=1.7ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 20:00:00Z], ~U[2026-06-29 21:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.050] [DEBUG] QUERY OK source="ota_configurations" db=0.6ms idle=0.9ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 21:00:00Z], ~U[2026-06-29 22:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.050] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms idle=1.1ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 21:00:00Z], ~U[2026-06-29 22:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.051] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=0.8ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 22:00:00Z], ~U[2026-06-29 23:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.052] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.8ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 22:00:00Z], ~U[2026-06-29 23:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.052] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=0.7ms
SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-06-29 23:00:00Z], ~U[2026-06-30 00:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197[0m
[2026-06-29 11:53:50.053] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.7ms
SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-06-29 23:00:00Z], ~U[2026-06-30 00:00:00Z]]
[90m↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204[0m
[2026-06-29 11:53:50.097] [DEBUG] QUERY OK source="tms_terminals" db=44.1ms idle=0.7ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:48:50.053226Z], ~U[2026-06-29 11:23:50.053226Z], ~U[2026-06-29 10:53:50.053226Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:53:50.109] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.9ms idle=44.9ms
SELECT DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i'), count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) GROUP BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') ORDER BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') [~N[2026-06-29 10:53:50]]
[90m↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1531[0m
[2026-06-29 11:53:50.120] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.6ms idle=11.9ms
SELECT count(DISTINCT t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 11:52:50]]
[90m↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1539[0m
[2026-06-29 11:53:50.132] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.4ms idle=11.5ms
SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 10:53:50]]
[90m↳ TmsCore.TerminalManagement.get_parameter_push_success_rate/1, at: lib/tms_core/terminal_management.ex:1605[0m
[2026-06-29 11:53:50.144] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.2ms idle=12.1ms
SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 10:53:50]]
[90m↳ TmsCore.TerminalManagement.get_average_response_time/1, at: lib/tms_core/terminal_management.ex:1621[0m
[2026-06-29 11:53:50.157] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.2ms idle=12.9ms
SELECT count(t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 10:53:50]]
[90m↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1647[0m
[2026-06-29 11:53:50.158] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=12.9ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1652[0m
[2026-06-29 11:53:50.212] [DEBUG] QUERY OK source="tms_terminals" db=54.0ms idle=1.2ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:48:50.158455Z], ~U[2026-06-29 11:23:50.158455Z], ~U[2026-06-29 10:53:50.158455Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:53:50.263] [DEBUG] QUERY OK source="tms_terminals" db=50.1ms idle=54.8ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:48:50.212978Z], ~U[2026-06-29 11:23:50.212978Z], ~U[2026-06-29 10:53:50.212978Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:53:50.317] [DEBUG] QUERY OK source="tms_terminals" db=53.7ms idle=51.3ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:48:50.263663Z], ~U[2026-06-29 11:23:50.263663Z], ~U[2026-06-29 10:53:50.263663Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:53:50.367] [DEBUG] QUERY OK source="tms_terminals" db=49.1ms queue=0.1ms idle=54.8ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:48:50.317962Z], ~U[2026-06-29 11:23:50.317962Z], ~U[2026-06-29 10:53:50.317962Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:53:50.367] [DEBUG] Replied in 422ms
[2026-06-29 11:54:07.701] [DEBUG] MOUNT PlatformWeb.TerminalLive.Index
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 11:54:07.705] [DEBUG] QUERY OK source="users_tokens" db=0.7ms idle=252.2ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:54:07.702675Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 11:54:07.709] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms queue=1.9ms idle=1354.1ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:32[0m
[2026-06-29 11:54:07.718] [DEBUG] QUERY OK source="app_packages" db=0.5ms queue=1.0ms idle=799.7ms
SELECT a0.`id`, a0.`version_name`, a0.`model`, a0.`vendor`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`file_path`, a0.`remark`, a0.`creator_id`, a0.`inserted_at`, a0.`updated_at` FROM `app_packages` AS a0 []
[90m↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:37[0m
[2026-06-29 11:54:07.748] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=38.1ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346[0m
[2026-06-29 11:54:07.751] [DEBUG] QUERY OK source="terminal_groups" db=1.0ms queue=0.9ms idle=31.1ms
SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` WHERE (t0.`is_active` = TRUE) [42]
[90m↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:40[0m
[2026-06-29 11:54:07.752] [DEBUG] Replied in 50ms
[2026-06-29 11:54:07.752] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLive.Index
  Parameters: %{}
[2026-06-29 11:54:07.753] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=4.1ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135[0m
[2026-06-29 11:54:07.757] [DEBUG] Replied in 4ms
[2026-06-29 11:54:23.646] [DEBUG] MOUNT PlatformWeb.TerminalLive.Index
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 11:54:23.647] [DEBUG] QUERY OK source="users_tokens" db=0.7ms idle=196.9ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:54:23.646381Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 11:54:23.648] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=695.2ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:32[0m
[2026-06-29 11:54:23.650] [DEBUG] QUERY OK source="app_packages" db=0.7ms idle=671.1ms
SELECT a0.`id`, a0.`version_name`, a0.`model`, a0.`vendor`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`file_path`, a0.`remark`, a0.`creator_id`, a0.`inserted_at`, a0.`updated_at` FROM `app_packages` AS a0 []
[90m↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:37[0m
[2026-06-29 11:54:23.650] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms idle=1.6ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346[0m
[2026-06-29 11:54:23.651] [DEBUG] QUERY OK source="terminal_groups" db=0.5ms idle=0.7ms
SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` WHERE (t0.`is_active` = TRUE) [42]
[90m↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:40[0m
[2026-06-29 11:54:23.651] [DEBUG] Replied in 5ms
[2026-06-29 11:54:23.651] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLive.Index
  Parameters: %{}
[2026-06-29 11:54:23.653] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=2.0ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135[0m
[2026-06-29 11:54:23.654] [DEBUG] Replied in 2ms
[2026-06-29 11:54:32.858] [DEBUG] MOUNT PlatformWeb.TerminalLocationsLive
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 11:54:32.859] [DEBUG] QUERY OK source="users_tokens" db=1.0ms idle=1408.0ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:54:32.858297Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 11:54:32.944] [DEBUG] QUERY OK source="tms_terminals" db=84.5ms idle=1507.1ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` []
[90m↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:406[0m
[2026-06-29 11:54:33.408] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=455.9ms queue=1.0ms idle=936.9ms
SELECT t0.`terminal_id`, max(t0.`id`) FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE (t0.`terminal_id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND t1.`itemkey` IN ('latitude','longitude')) GROUP BY t0.`terminal_id` [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 26, 29, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 55, 60, 61, 62]
[90m↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:420[0m
[2026-06-29 11:54:33.420] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.9ms queue=0.9ms idle=387.6ms
SELECT t0.`terminal_id`, max(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) GROUP BY t0.`terminal_id` [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 18, 20, 22, 23, 26, 29, 35, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 53, 60, 61]
[90m↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:435[0m
[2026-06-29 11:54:33.424] [DEBUG] QUERY OK source="tms_terminal_status_items" db=2.4ms queue=0.9ms idle=12.7ms
SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [36750, 5539, 30717, 42561, 14055, 24914, 41238, 40151, 21561, 41532, 34584, 28095, 21678, 35829, 22345, 5499, 5486, 41580, 39756, 8788, 43358, 23998, 41285, 43758, 7335, 43039, 5495, 24539, 37565, 8760, 6171, 18630, 33446, 15230, 15147, 42399, 32284, 25675, 38945, 5453, 13926, 6790]
[90m↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:448[0m
[2026-06-29 11:54:33.463] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=36.7ms idle=4.5ms
SELECT t0.`id`, t0.`inserted_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [36750, 5539, 30717, 42561, 14055, 24914, 41238, 40151, 21561, 41532, 34584, 28095, 21678, 35829, 22345, 5499, 5486, 41580, 39756, 8788, 43358, 23998, 41285, 43758, 7335, 43039, 5495, 24539, 37565, 8760, 6171, 18630, 33446, 15230, 15147, 42399, 32284, 25675, 38945, 5453, 13926, 6790]
[90m↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:457[0m
[2026-06-29 11:54:33.466] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=2.3ms idle=38.9ms
SELECT DISTINCT t0.`vendor` FROM `tms_terminals` AS t0 WHERE (NOT (t0.`vendor` IS NULL) AND (t0.`vendor` != '')) []
[90m↳ TmsCore.TerminalManagement.list_distinct_vendors/0, at: lib/tms_core/terminal_management.ex:533[0m
[2026-06-29 11:54:33.504] [DEBUG] QUERY OK source="tms_terminals" db=37.3ms idle=3.6ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346[0m
[2026-06-29 11:54:33.506] [DEBUG] QUERY OK source="terminal_groups" db=0.7ms queue=0.8ms idle=38.2ms
SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` [42]
[90m↳ PlatformWeb.TerminalLocationsLive.mount/3, at: lib/platform_web/live/terminal_locations_live.ex:17[0m
[2026-06-29 11:54:33.583] [DEBUG] QUERY OK source="tms_terminals" db=77.2ms idle=2.3ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` []
[90m↳ PlatformWeb.TerminalLocationsLive.load_location_data/1, at: lib/platform_web/live/terminal_locations_live.ex:368[0m
[2026-06-29 11:54:33.585] [DEBUG] Replied in 727ms
[2026-06-29 11:54:33.585] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLocationsLive
  Parameters: %{}
[2026-06-29 11:54:33.643] [DEBUG] QUERY OK source="tms_terminals" db=57.2ms queue=0.1ms idle=80.0ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` []
[90m↳ PlatformWeb.TerminalLocationsLive.load_location_data/1, at: lib/platform_web/live/terminal_locations_live.ex:368[0m
[2026-06-29 11:54:33.645] [DEBUG] Replied in 59ms
[2026-06-29 11:54:44.193] [DEBUG] HANDLE EVENT "update_filter" in PlatformWeb.TerminalLocationsLive
  Parameters: %{"_target" => ["filter", "status"], "filter" => %{"_unused_country" => "", "_unused_date_from" => "", "_unused_date_to" => "", "_unused_device_model" => "", "_unused_last_activity_days" => "", "_unused_vendor" => "", "country" => "", "date_from" => "2026-05-30", "date_to" => "2026-06-29", "device_model" => "", "last_activity_days" => "30", "status" => "online", "vendor" => ""}}
[2026-06-29 11:54:44.193] [DEBUG] Replied in 398µs
[2026-06-29 11:54:44.193] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLocationsLive
  Parameters: %{"date_from" => "2026-05-30", "date_to" => "2026-06-29", "last_activity_days" => "30", "status" => "online"}
[2026-06-29 11:54:44.247] [DEBUG] QUERY OK source="tms_terminals" db=53.5ms idle=1140.0ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` []
[90m↳ PlatformWeb.TerminalLocationsLive.load_location_data/1, at: lib/platform_web/live/terminal_locations_live.ex:368[0m
[2026-06-29 11:54:44.248] [DEBUG] Replied in 54ms
[2026-06-29 11:54:48.653] [DEBUG] HANDLE EVENT "update_filter" in PlatformWeb.TerminalLocationsLive
  Parameters: %{"_target" => ["filter", "status"], "filter" => %{"_unused_country" => "", "_unused_date_from" => "", "_unused_date_to" => "", "_unused_device_model" => "", "_unused_last_activity_days" => "", "_unused_vendor" => "", "country" => "", "date_from" => "2026-05-30", "date_to" => "2026-06-29", "device_model" => "", "last_activity_days" => "30", "status" => "offline", "vendor" => ""}}
[2026-06-29 11:54:48.653] [DEBUG] Replied in 285µs
[2026-06-29 11:54:48.653] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLocationsLive
  Parameters: %{"date_from" => "2026-05-30", "date_to" => "2026-06-29", "last_activity_days" => "30", "status" => "offline"}
[2026-06-29 11:54:48.707] [DEBUG] QUERY OK source="tms_terminals" db=53.4ms idle=1299.9ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` []
[90m↳ PlatformWeb.TerminalLocationsLive.load_location_data/1, at: lib/platform_web/live/terminal_locations_live.ex:368[0m
[2026-06-29 11:54:48.708] [DEBUG] Replied in 55ms
[2026-06-29 11:55:01.198] [DEBUG] MOUNT PlatformWeb.ParameterManagementLive.Dashboard
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 11:55:01.200] [DEBUG] QUERY OK source="users_tokens" db=1.8ms idle=1744.0ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:55:01.198856Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 11:55:01.215] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms queue=0.5ms idle=759.7ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (p0.`is_active` = TRUE) []
[90m↳ PlatformWeb.ParameterManagementLive.Dashboard.mount/3, at: lib/platform_web/live/parameter_management_live/dashboard.ex:8[0m
[2026-06-29 11:55:01.217] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=709.6ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346[0m
[2026-06-29 11:55:01.218] [DEBUG] QUERY OK source="terminal_groups" db=0.8ms queue=0.1ms idle=105.4ms
SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` [42]
[90m↳ PlatformWeb.ParameterManagementLive.Dashboard.mount/3, at: lib/platform_web/live/parameter_management_live/dashboard.ex:9[0m
[2026-06-29 11:55:01.218] [DEBUG] Replied in 19ms
[2026-06-29 11:55:01.218] [DEBUG] HANDLE PARAMS in PlatformWeb.ParameterManagementLive.Dashboard
  Parameters: %{}
[2026-06-29 11:55:01.307] [DEBUG] QUERY OK source="parameter_push_logs" db=81.7ms queue=0.6ms idle=24.4ms
SELECT p0.`id`, p0.`parameters_sent`, p0.`request_id`, p0.`status`, p0.`log_time`, p0.`message`, p0.`sent_at`, p0.`acknowledged_at`, p0.`error_message`, p0.`push_type`, p0.`config_type`, p0.`file_path`, p0.`file_size`, p0.`checksum`, p0.`version_sent`, p0.`device_vendor`, p0.`device_model`, p0.`trigger_reason`, p0.`terminal_id`, p0.`template_id`, p0.`triggered_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_push_logs` AS p0 ORDER BY p0.`inserted_at` DESC LIMIT ? [10]
[90m↳ PlatformWeb.ParameterManagementLive.Dashboard.handle_params/3, at: lib/platform_web/live/parameter_management_live/dashboard.ex:39[0m
[2026-06-29 11:55:01.309] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms queue=0.8ms idle=92.5ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_templates` AS p0 WHERE (p0.`id` = ?) [10]
[90m↳ PlatformWeb.ParameterManagementLive.Dashboard.handle_params/3, at: lib/platform_web/live/parameter_management_live/dashboard.ex:39[0m
[2026-06-29 11:55:01.310] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms queue=0.8ms idle=0.6ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` IN (?,?)) [13, 33]
[90m↳ PlatformWeb.ParameterManagementLive.Dashboard.handle_params/3, at: lib/platform_web/live/parameter_management_live/dashboard.ex:39[0m
[2026-06-29 11:55:01.319] [DEBUG] QUERY OK source="parameter_push_logs" db=7.6ms queue=0.4ms idle=1.6ms
SELECT count(p0.`id`) FROM `parameter_push_logs` AS p0 []
[90m↳ DaProductApp.ParameterManagement.get_parameter_push_statistics/0, at: lib/da_product_app/parameter_management.ex:712[0m
[2026-06-29 11:55:01.372] [DEBUG] QUERY OK source="parameter_push_logs" db=20.8ms queue=32.0ms idle=9.3ms
SELECT count(p0.`id`) FROM `parameter_push_logs` AS p0 WHERE (p0.`status` = ?) ["acknowledged"]
[90m↳ DaProductApp.ParameterManagement.count_by_status/1, at: lib/da_product_app/parameter_management.ex:832[0m
[2026-06-29 11:55:01.386] [DEBUG] QUERY OK source="parameter_push_logs" db=13.7ms idle=53.5ms
SELECT count(p0.`id`) FROM `parameter_push_logs` AS p0 WHERE (p0.`status` = ?) ["failed"]
[90m↳ DaProductApp.ParameterManagement.count_by_status/1, at: lib/da_product_app/parameter_management.ex:832[0m
[2026-06-29 11:55:01.407] [DEBUG] QUERY OK source="parameter_push_logs" db=20.6ms idle=14.4ms
SELECT count(p0.`id`) FROM `parameter_push_logs` AS p0 WHERE (p0.`status` = ?) ["pending"]
[90m↳ DaProductApp.ParameterManagement.count_by_status/1, at: lib/da_product_app/parameter_management.ex:832[0m
[2026-06-29 11:55:01.421] [DEBUG] QUERY OK source="parameter_push_logs" db=12.9ms queue=0.7ms idle=21.4ms
SELECT count(p0.`id`) FROM `parameter_push_logs` AS p0 WHERE (p0.`inserted_at` >= ?) [~N[2026-06-28 11:55:01]]
[90m↳ DaProductApp.ParameterManagement.count_recent_pushes/1, at: lib/da_product_app/parameter_management.ex:842[0m
[2026-06-29 11:55:01.440] [DEBUG] QUERY OK source="parameter_push_logs" db=17.7ms idle=14.4ms
SELECT count(p0.`id`) FROM `parameter_push_logs` AS p0 WHERE (p0.`inserted_at` >= ?) [~N[2026-06-22 11:55:01]]
[90m↳ DaProductApp.ParameterManagement.count_recent_pushes/1, at: lib/da_product_app/parameter_management.ex:842[0m
[2026-06-29 11:55:01.478] [DEBUG] QUERY OK source="parameter_push_logs" db=36.7ms queue=1.4ms idle=18.5ms
SELECT p1.`id`, p1.`name`, count(p0.`id`) FROM `parameter_push_logs` AS p0 INNER JOIN `parameter_templates` AS p1 ON p0.`template_id` = p1.`id` GROUP BY p1.`id`, p1.`name` ORDER BY count(p0.`id`) DESC LIMIT ? [5]
[90m↳ DaProductApp.ParameterManagement.get_parameter_push_statistics/0, at: lib/da_product_app/parameter_management.ex:718[0m
[2026-06-29 11:55:01.486] [DEBUG] QUERY OK source="parameter_push_logs" db=7.6ms idle=38.8ms
SELECT count(p0.`id`) FROM `parameter_push_logs` AS p0 []
[90m↳ DaProductApp.ParameterManagement.calculate_push_success_rate/0, at: lib/da_product_app/parameter_management.ex:858[0m
[2026-06-29 11:55:01.500] [DEBUG] QUERY OK source="parameter_push_logs" db=13.5ms idle=8.3ms
SELECT count(p0.`id`) FROM `parameter_push_logs` AS p0 WHERE (p0.`status` = ?) ["acknowledged"]
[90m↳ DaProductApp.ParameterManagement.count_by_status/1, at: lib/da_product_app/parameter_management.ex:832[0m
[2026-06-29 11:55:01.500] [DEBUG] Replied in 282ms
[2026-06-29 11:55:06.851] [DEBUG] MOUNT PlatformWeb.ParameterManagementLive.Logs
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 11:55:06.857] [DEBUG] QUERY OK source="users_tokens" db=5.8ms idle=1392.6ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:55:06.851265Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 11:55:06.857] [DEBUG] Replied in 6ms
[2026-06-29 11:55:06.857] [DEBUG] HANDLE PARAMS in PlatformWeb.ParameterManagementLive.Logs
  Parameters: %{}
[2026-06-29 11:55:06.862] [DEBUG] QUERY OK source="parameter_templates" db=4.5ms idle=1398.1ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (p0.`is_active` = TRUE) []
[90m↳ PlatformWeb.ParameterManagementLive.Logs.load_parameter_templates/1, at: lib/platform_web/live/parameter_management_live/logs.ex:200[0m
[2026-06-29 11:55:07.071] [DEBUG] QUERY OK source="parameter_push_logs" db=204.4ms idle=9.3ms
SELECT p0.`id`, p0.`parameters_sent`, p0.`request_id`, p0.`status`, p0.`log_time`, p0.`message`, p0.`sent_at`, p0.`acknowledged_at`, p0.`error_message`, p0.`push_type`, p0.`config_type`, p0.`file_path`, p0.`file_size`, p0.`checksum`, p0.`version_sent`, p0.`device_vendor`, p0.`device_model`, p0.`trigger_reason`, p0.`terminal_id`, p0.`template_id`, p0.`triggered_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_push_logs` AS p0 ORDER BY p0.`inserted_at` DESC LIMIT ? [50]
[90m↳ PlatformWeb.ParameterManagementLive.Logs.load_logs/1, at: lib/platform_web/live/parameter_management_live/logs.ex:213[0m
[2026-06-29 11:55:07.073] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms idle=211.3ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_templates` AS p0 WHERE (p0.`id` = ?) [10]
[90m↳ PlatformWeb.ParameterManagementLive.Logs.load_logs/1, at: lib/platform_web/live/parameter_management_live/logs.ex:213[0m
[2026-06-29 11:55:07.078] [DEBUG] QUERY OK source="tms_terminals" db=4.7ms queue=1.5ms idle=0.7ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` IN (?,?)) [13, 33]
[90m↳ PlatformWeb.ParameterManagementLive.Logs.load_logs/1, at: lib/platform_web/live/parameter_management_live/logs.ex:213[0m
[2026-06-29 11:55:07.078] [DEBUG] Replied in 220ms
[2026-06-29 11:55:10.207] [DEBUG] MOUNT PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 11:55:10.208] [DEBUG] QUERY OK source="users_tokens" db=1.2ms idle=1750.5ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:55:10.207179Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 11:55:10.218] [DEBUG] QUERY OK source="device_configurations" db=2.8ms queue=0.9ms idle=853.0ms
SELECT d0.`id`, d0.`name`, d0.`status`, d0.`description`, d0.`device_type`, d0.`configuration_data`, d0.`created_by`, d0.`updated_by`, d0.`terminal_id`, d0.`inserted_at`, d0.`updated_at` FROM `device_configurations` AS d0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 11:55:10.223] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=4.1ms idle=11.5ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` = ?) [1]
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 11:55:10.224] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=5.6ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:13[0m
[2026-06-29 11:55:10.225] [DEBUG] Replied in 18ms
[2026-06-29 11:55:10.225] [DEBUG] HANDLE PARAMS in PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
[2026-06-29 11:55:10.225] [DEBUG] Replied in 135µs
[2026-06-29 11:55:29.241] [DEBUG] HANDLE EVENT "show_config_details" in PlatformWeb.DeviceConfigLive.Index
  Parameters: %{"id" => "1"}
[2026-06-29 11:55:29.243] [DEBUG] QUERY OK source="device_configurations" db=0.5ms queue=1.1ms idle=1874.1ms
SELECT d0.`id`, d0.`name`, d0.`status`, d0.`description`, d0.`device_type`, d0.`configuration_data`, d0.`created_by`, d0.`updated_by`, d0.`terminal_id`, d0.`inserted_at`, d0.`updated_at` FROM `device_configurations` AS d0 WHERE (d0.`id` = ?) [1]
[90m↳ PlatformWeb.DeviceConfigLive.Index.handle_event/3, at: lib/platform_web/live/device_config_live/index.ex:90[0m
[2026-06-29 11:55:29.245] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=972.5ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` = ?) [1]
[90m↳ PlatformWeb.DeviceConfigLive.Index.handle_event/3, at: lib/platform_web/live/device_config_live/index.ex:90[0m
[2026-06-29 11:55:29.250] [DEBUG] Replied in 8ms
[2026-06-29 11:55:33.492] [DEBUG] HANDLE EVENT "close_slide_over" in PlatformWeb.DeviceConfigLive.Index
  Parameters: %{"value" => ""}
[2026-06-29 11:55:33.492] [DEBUG] Replied in 172µs
[2026-06-29 11:55:33.674] [DEBUG] HANDLE EVENT "close_slide_over" in PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
[2026-06-29 11:55:33.674] [DEBUG] Replied in 188µs
[2026-06-29 11:55:36.087] [DEBUG] MOUNT PlatformWeb.AlertsLive
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 11:55:36.089] [DEBUG] QUERY OK source="users_tokens" db=2.0ms idle=1626.4ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:55:36.087567Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 11:55:36.159] [DEBUG] QUERY OK source="tms_terminals" db=68.7ms idle=1708.6ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:50:36.090126Z], ~U[2026-06-29 11:25:36.090126Z], ~U[2026-06-29 10:55:36.090126Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:55:36.173] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.6ms idle=865.8ms
SELECT DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i'), count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) GROUP BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') ORDER BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') [~N[2026-06-29 10:55:36]]
[90m↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1531[0m
[2026-06-29 11:55:36.185] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.3ms queue=0.2ms idle=14.7ms
SELECT count(DISTINCT t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 11:54:36]]
[90m↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1539[0m
[2026-06-29 11:55:36.196] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.5ms idle=12.4ms
SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 10:55:36]]
[90m↳ TmsCore.TerminalManagement.get_parameter_push_success_rate/1, at: lib/tms_core/terminal_management.ex:1605[0m
[2026-06-29 11:55:36.209] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.5ms idle=11.3ms
SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 10:55:36]]
[90m↳ TmsCore.TerminalManagement.get_average_response_time/1, at: lib/tms_core/terminal_management.ex:1621[0m
[2026-06-29 11:55:36.222] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.5ms queue=0.1ms idle=13.3ms
SELECT count(t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 10:55:36]]
[90m↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1647[0m
[2026-06-29 11:55:36.223] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=13.3ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1652[0m
[2026-06-29 11:55:36.288] [DEBUG] QUERY OK source="tms_terminals" db=64.4ms idle=1.4ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:50:36.223717Z], ~U[2026-06-29 11:25:36.223717Z], ~U[2026-06-29 10:55:36.223717Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:55:36.343] [DEBUG] QUERY OK source="tms_terminals" db=53.9ms queue=0.1ms idle=65.6ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:50:36.288776Z], ~U[2026-06-29 11:25:36.288776Z], ~U[2026-06-29 10:55:36.288776Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:55:36.396] [DEBUG] QUERY OK source="tms_terminals" db=51.6ms queue=0.1ms idle=46.2ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:50:36.343383Z], ~U[2026-06-29 11:25:36.343383Z], ~U[2026-06-29 10:55:36.343383Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:55:36.446] [DEBUG] QUERY OK source="tms_terminals" db=49.1ms queue=0.1ms idle=53.9ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:50:36.396744Z], ~U[2026-06-29 11:25:36.396744Z], ~U[2026-06-29 10:55:36.396744Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:55:36.446] [DEBUG] Replied in 359ms
[2026-06-29 11:55:36.446] [DEBUG] HANDLE PARAMS in PlatformWeb.AlertsLive
  Parameters: %{}
[2026-06-29 11:55:36.503] [DEBUG] QUERY OK source="tms_terminals" db=56.7ms idle=51.7ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:50:36.446925Z], ~U[2026-06-29 11:25:36.446925Z], ~U[2026-06-29 10:55:36.446925Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:55:36.517] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.0ms idle=58.3ms
SELECT DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i'), count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) GROUP BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') ORDER BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') [~N[2026-06-29 10:55:36]]
[90m↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1531[0m
[2026-06-29 11:55:36.532] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.3ms idle=14.2ms
SELECT count(DISTINCT t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 11:54:36]]
[90m↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1539[0m
[2026-06-29 11:55:36.545] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.0ms idle=15.2ms
SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 10:55:36]]
[90m↳ TmsCore.TerminalManagement.get_parameter_push_success_rate/1, at: lib/tms_core/terminal_management.ex:1605[0m
[2026-06-29 11:55:36.557] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.4ms idle=12.8ms
SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 10:55:36]]
[90m↳ TmsCore.TerminalManagement.get_average_response_time/1, at: lib/tms_core/terminal_management.ex:1621[0m
[2026-06-29 11:55:36.571] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.0ms idle=13.1ms
SELECT count(t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-06-29 10:55:36]]
[90m↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1647[0m
[2026-06-29 11:55:36.572] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=13.7ms
SELECT count(t0.`id`) FROM `tms_terminals` AS t0 []
[90m↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1652[0m
[2026-06-29 11:55:36.627] [DEBUG] QUERY OK source="tms_terminals" db=55.0ms idle=1.3ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:50:36.572458Z], ~U[2026-06-29 11:25:36.572458Z], ~U[2026-06-29 10:55:36.572458Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:55:36.692] [DEBUG] QUERY OK source="tms_terminals" db=62.5ms idle=57.5ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:50:36.629275Z], ~U[2026-06-29 11:25:36.629275Z], ~U[2026-06-29 10:55:36.629275Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:55:36.753] [DEBUG] QUERY OK source="tms_terminals" db=60.0ms idle=65.0ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:50:36.692627Z], ~U[2026-06-29 11:25:36.692627Z], ~U[2026-06-29 10:55:36.692627Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:55:36.824] [DEBUG] QUERY OK source="tms_terminals" db=70.3ms idle=61.3ms
SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE 
          WHEN s1.`last_seen` > ? THEN 'healthy'
          WHEN s1.`last_seen` > ? THEN 'warning' 
          WHEN s1.`last_seen` > ? THEN 'critical'
          ELSE 'offline'
        END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-06-29 11:50:36.753297Z], ~U[2026-06-29 11:25:36.753297Z], ~U[2026-06-29 10:55:36.753297Z]]
[90m↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499[0m
[2026-06-29 11:55:36.824] [DEBUG] Replied in 377ms
[2026-06-29 11:55:47.603] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 11:55:47.603] [INFO ] Incoming JSON payload: {"oid":"d0ac462b-6064-49af-af03-61d853ecffc6","sn":"98250623730001","uploadTime":"2026-06-29T03:05:46Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"ram_free_mb","value":"1107","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"data_usage_mb","value":"259","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-29T03:05:46Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.resources.overlay (com (truncated)
[2026-06-29 11:55:47.604] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "d0ac462b-6064-49af-af03-61d853ecffc6", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:05:46Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-29T03:05:46Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:05:46Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:05:46Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:05:46Z", "value" => "1107"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:05:46Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:05:46Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:05:46Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:05:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:05:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:05:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:05:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:05:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:05:46Z", "value" => "259"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:05:46Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:05:46Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-29T03:05:46Z", "vendor" => "morefun"}
[2026-06-29 11:55:47.605] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 11:55:47.621] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 11:55:47.621] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 11:55:47.623] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms queue=0.8ms idle=1244.6ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 11:55:47.626] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms queue=1.8ms idle=294.3ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 11:55:47.627] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 11:55:47.630] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=1.4ms idle=4.7ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 11:55:47.642] [INFO ] Terminal updated: 98250623730001
[2026-06-29 11:55:47.651] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 11:55:47.654] [DEBUG] QUERY OK source="tms_terminals" db=2.0ms queue=0.1ms idle=25.5ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 11:55:47.665] [DEBUG] QUERY OK source="tms_terminals" db=10.1ms queue=0.6ms idle=24.6ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 11:55:47], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 11:55:47.696] [DEBUG] QUERY OK db=17.6ms queue=12.6ms idle=11.5ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "d0ac462b-6064-49af-af03-61d853ecffc6", "2026-06-29T03:05:46Z", ~N[2026-06-29 11:55:47], ~N[2026-06-29 11:55:47]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 11:55:47.696] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 45277, oid: "d0ac462b-6064-49af-af03-61d853ecffc6", upload_time: "2026-06-29T03:05:46Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 11:55:47], updated_at: ~N[2026-06-29 11:55:47]}
[2026-06-29 11:55:47.697] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:05:46Z", "value" => "morefun"}
[2026-06-29 11:55:47.728] [DEBUG] QUERY OK db=28.6ms queue=1.9ms idle=32.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "morefun", "vendor", 45277, ~N[2026-06-29 11:55:47], ~N[2026-06-29 11:55:47]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:47.729] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380301, itemkey: "vendor", value: "morefun", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:47], updated_at: ~N[2026-06-29 11:55:47]}}
[2026-06-29 11:55:47.729] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-29T03:05:46Z", "value" => "kiosk_launcher"}
[2026-06-29 11:55:47.787] [DEBUG] QUERY OK db=57.4ms queue=0.9ms idle=33.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "kiosk_launcher", "model", 45277, ~N[2026-06-29 11:55:47], ~N[2026-06-29 11:55:47]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:47.788] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380303, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:47], updated_at: ~N[2026-06-29 11:55:47]}}
[2026-06-29 11:55:47.788] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:05:46Z", "value" => "1.0"}
[2026-06-29 11:55:47.800] [DEBUG] QUERY OK db=11.9ms idle=59.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "1.0", "app_version", 45277, ~N[2026-06-29 11:55:47], ~N[2026-06-29 11:55:47]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:47.800] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380305, itemkey: "app_version", value: "1.0", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:47], updated_at: ~N[2026-06-29 11:55:47]}}
[2026-06-29 11:55:47.800] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:05:46Z", "value" => "13"}
[2026-06-29 11:55:47.828] [DEBUG] QUERY OK db=27.5ms idle=13.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "13", "android_version", 45277, ~N[2026-06-29 11:55:47], ~N[2026-06-29 11:55:47]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:47.829] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380307, itemkey: "android_version", value: "13", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:47], updated_at: ~N[2026-06-29 11:55:47]}}
[2026-06-29 11:55:47.829] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:05:46Z", "value" => "1107"}
[2026-06-29 11:55:47.872] [DEBUG] QUERY OK db=36.6ms idle=35.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "1107", "ram_free_mb", 45277, ~N[2026-06-29 11:55:47], ~N[2026-06-29 11:55:47]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:47.872] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380309, itemkey: "ram_free_mb", value: "1107", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:47], updated_at: ~N[2026-06-29 11:55:47]}}
[2026-06-29 11:55:47.872] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:05:46Z", "value" => "WIFI"}
[2026-06-29 11:55:47.891] [DEBUG] QUERY OK db=18.1ms idle=44.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "WIFI", "network_type", 45277, ~N[2026-06-29 11:55:47], ~N[2026-06-29 11:55:47]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:47.891] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380311, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:47], updated_at: ~N[2026-06-29 11:55:47]}}
[2026-06-29 11:55:47.891] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:05:46Z", "value" => "true"}
[2026-06-29 11:55:47.925] [DEBUG] QUERY OK db=33.0ms idle=19.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "true", "kiosk_active", 45277, ~N[2026-06-29 11:55:47], ~N[2026-06-29 11:55:47]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:47.925] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380313, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:47], updated_at: ~N[2026-06-29 11:55:47]}}
[2026-06-29 11:55:47.925] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:05:46Z", "value" => ""}
[2026-06-29 11:55:47.964] [DEBUG] QUERY OK db=34.9ms queue=3.6ms idle=34.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-29T03:05:46Z", "sim_operator", 45277, ~N[2026-06-29 11:55:47], ~N[2026-06-29 11:55:47]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:47.964] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380315, itemkey: "sim_operator", value: nil, timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:47], updated_at: ~N[2026-06-29 11:55:47]}}
[2026-06-29 11:55:47.964] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:05:46Z", "value" => "UNKNOWN"}
[2026-06-29 11:55:47.977] [DEBUG] QUERY OK db=11.7ms idle=40.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "UNKNOWN", "sim_number", 45277, ~N[2026-06-29 11:55:47], ~N[2026-06-29 11:55:47]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:47.977] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380317, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:47], updated_at: ~N[2026-06-29 11:55:47]}}
[2026-06-29 11:55:47.977] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:05:46Z", "value" => "UNKNOWN"}
[2026-06-29 11:55:47.999] [DEBUG] QUERY OK db=21.3ms idle=14.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "UNKNOWN", "sim_iccid", 45277, ~N[2026-06-29 11:55:47], ~N[2026-06-29 11:55:47]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:48.000] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380319, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:47], updated_at: ~N[2026-06-29 11:55:47]}}
[2026-06-29 11:55:48.000] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:05:46Z", "value" => "UNKNOWN"}
[2026-06-29 11:55:48.038] [DEBUG] QUERY OK db=37.8ms idle=23.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "UNKNOWN", "sim_imsi", 45277, ~N[2026-06-29 11:55:48], ~N[2026-06-29 11:55:48]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:48.038] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380321, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:48], updated_at: ~N[2026-06-29 11:55:48]}}
[2026-06-29 11:55:48.038] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:05:46Z", "value" => "UNKNOWN"}
[2026-06-29 11:55:48.059] [DEBUG] QUERY OK db=20.3ms idle=39.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "UNKNOWN", "sim_iccid2", 45277, ~N[2026-06-29 11:55:48], ~N[2026-06-29 11:55:48]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:48.059] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380323, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:48], updated_at: ~N[2026-06-29 11:55:48]}}
[2026-06-29 11:55:48.060] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:05:46Z", "value" => "UNKNOWN"}
[2026-06-29 11:55:48.074] [DEBUG] QUERY OK db=13.9ms idle=21.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "UNKNOWN", "sim_imsi2", 45277, ~N[2026-06-29 11:55:48], ~N[2026-06-29 11:55:48]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:48.074] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380325, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:48], updated_at: ~N[2026-06-29 11:55:48]}}
[2026-06-29 11:55:48.074] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:05:46Z", "value" => "259"}
[2026-06-29 11:55:48.105] [DEBUG] QUERY OK db=30.3ms idle=15.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "259", "data_usage_mb", 45277, ~N[2026-06-29 11:55:48], ~N[2026-06-29 11:55:48]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:48.105] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380327, itemkey: "data_usage_mb", value: "259", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:48], updated_at: ~N[2026-06-29 11:55:48]}}
[2026-06-29 11:55:48.105] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:05:46Z", "value" => "0"}
[2026-06-29 11:55:48.136] [DEBUG] QUERY OK db=29.9ms queue=0.1ms idle=31.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "0", "mobile_data_mb", 45277, ~N[2026-06-29 11:55:48], ~N[2026-06-29 11:55:48]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:48.136] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380329, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:48], updated_at: ~N[2026-06-29 11:55:48]}}
[2026-06-29 11:55:48.137] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:05:46Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 11:55:48.164] [DEBUG] QUERY OK db=24.2ms idle=33.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:05:46Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 45277, ~N[2026-06-29 11:55:48], ~N[2026-06-29 11:55:48]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 11:55:48.165] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380331, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-29T03:05:46Z", message: nil, status_log_id: 45277, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 11:55:48], updated_at: ~N[2026-06-29 11:55:48]}}
[2026-06-29 11:56:31.649] [WARN ] navigate event to "http://demo.ctrmv.com:4059/admin/settlements/tid-master" failed because you are redirecting across live_sessions. A full page reload will be performed instead
[2026-06-29 11:56:32.214] [INFO ] GET /admin/settlements/tid-master
[2026-06-29 11:56:32.214] [DEBUG] Processing with PlatformWeb.SettlementLive.TidMasterBrowser.index/2
  Parameters: %{}
  Pipelines: [:browser, :require_authenticated_user]
[2026-06-29 11:56:32.216] [DEBUG] QUERY OK source="users_tokens" db=0.7ms idle=751.5ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:56:32.215194Z]]
[90m↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97[0m
[2026-06-29 11:56:32.226] [DEBUG] QUERY OK source="tid_masters" db=0.3ms queue=0.8ms idle=1709.2ms
SELECT count(t0.`id`) FROM `tid_masters` AS t0 []
[90m↳ PlatformWeb.SettlementLive.TidMasterBrowser.load_rows/1, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:413[0m
[2026-06-29 11:56:32.228] [DEBUG] QUERY OK source="tid_masters" db=0.9ms queue=0.5ms idle=763.9ms
SELECT t0.`id`, t0.`mms_user_id`, t0.`mid`, t0.`store_id`, t0.`merchant_ref_number`, t0.`tid`, t0.`qr_id`, t0.`merchant_name_legal`, t0.`merchant_name_dba`, t0.`registered_mobile`, t0.`registered_email`, t0.`mcc_code`, t0.`mcc_description`, t0.`bank_code`, t0.`bank_name`, t0.`bank_account_number`, t0.`iban`, t0.`virtual_iban`, t0.`enabled_schemes`, t0.`mdr_rates`, t0.`onboarding_date`, t0.`contract_approved_at`, t0.`onboarding_source`, t0.`onboarding_id`, t0.`last_transaction_date`, t0.`last_transaction_amount`, t0.`mms_synced_at`, t0.`status`, t0.`spare_fields`, t0.`inserted_at`, t0.`updated_at` FROM `tid_masters` AS t0 ORDER BY t0.`merchant_name_legal`, t0.`mid` LIMIT 500 []
[90m↳ PlatformWeb.SettlementLive.TidMasterBrowser.load_rows/1, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:419[0m
[2026-06-29 11:56:32.229] [DEBUG] QUERY OK source="tid_masters" db=0.3ms queue=0.2ms idle=2.2ms
SELECT DISTINCT t0.`bank_code` FROM `tid_masters` AS t0 WHERE (NOT (t0.`bank_code` IS NULL)) ORDER BY t0.`bank_code` []
[90m↳ PlatformWeb.SettlementLive.TidMasterBrowser.mount/3, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:52[0m
[2026-06-29 11:56:32.230] [DEBUG] QUERY OK source="tid_masters" db=0.2ms queue=0.2ms idle=1.1ms
SELECT DISTINCT t0.`mcc_code` FROM `tid_masters` AS t0 WHERE (NOT (t0.`mcc_code` IS NULL)) ORDER BY t0.`mcc_code` []
[90m↳ PlatformWeb.SettlementLive.TidMasterBrowser.mount/3, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:53[0m
[2026-06-29 11:56:32.231] [DEBUG] QUERY OK source="tid_masters" db=0.3ms queue=0.2ms idle=0.9ms
SELECT DISTINCT t0.`onboarding_source` FROM `tid_masters` AS t0 WHERE (NOT (t0.`onboarding_source` IS NULL)) ORDER BY t0.`onboarding_source` []
[90m↳ PlatformWeb.SettlementLive.TidMasterBrowser.mount/3, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:54[0m
[2026-06-29 11:56:32.232] [INFO ] Sent 200 in 18ms
[2026-06-29 11:56:33.376] [INFO ] GET /admin/device-configs
[2026-06-29 11:56:33.376] [DEBUG] Processing with PlatformWeb.DeviceConfigLive.Index.index/2
  Parameters: %{}
  Pipelines: [:browser, :require_authenticated_user]
[2026-06-29 11:56:33.378] [DEBUG] QUERY OK source="users_tokens" db=0.6ms queue=0.2ms idle=1913.3ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:56:33.376944Z]]
[90m↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97[0m
[2026-06-29 11:56:33.379] [DEBUG] QUERY OK source="device_configurations" db=1.2ms queue=0.1ms idle=1147.3ms
SELECT d0.`id`, d0.`name`, d0.`status`, d0.`description`, d0.`device_type`, d0.`configuration_data`, d0.`created_by`, d0.`updated_by`, d0.`terminal_id`, d0.`inserted_at`, d0.`updated_at` FROM `device_configurations` AS d0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 11:56:33.381] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms idle=913.5ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` = ?) [1]
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 11:56:33.385] [DEBUG] QUERY OK source="tms_terminals" db=3.0ms idle=3.0ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:13[0m
[2026-06-29 11:56:33.387] [INFO ] Sent 200 in 11ms
[2026-06-29 11:56:33.579] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 42µs
  Transport: :longpoll
  Serializer: Phoenix.Socket.V2.JSONSerializer
  Parameters: %{"_csrf_token" => "P0UqBx0Efg5BH3chUQg-YBhWKSRsPCdpJpcPl1Ng7p0KdLWSI2lWTPo9", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"}
[2026-06-29 11:56:33.579] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 21µs
  Transport: :longpoll
  Serializer: Phoenix.Socket.V2.JSONSerializer
  Parameters: %{"_csrf_token" => "P0UqBx0Efg5BH3chUQg-YBhWKSRsPCdpJpcPl1Ng7p0KdLWSI2lWTPo9", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"}
[2026-06-29 11:56:33.729] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 76µs
  Transport: :longpoll
  Serializer: Phoenix.Socket.V2.JSONSerializer
  Parameters: %{"_csrf_token" => "P0UqBx0Efg5BH3chUQg-YBhWKSRsPCdpJpcPl1Ng7p0KdLWSI2lWTPo9", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"}
[2026-06-29 11:56:34.371] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 24µs
  Transport: :websocket
  Serializer: Phoenix.Socket.V2.JSONSerializer
  Parameters: %{"_csrf_token" => "LXN7ZQYCSlopCzYnBzYwRA4mPStSBwU0XF22w7z3_dqM2rYw_BxXjkMd", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"}
[2026-06-29 11:56:34.583] [DEBUG] MOUNT PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 11:56:34.587] [DEBUG] QUERY OK source="users_tokens" db=2.0ms queue=0.2ms idle=1119.6ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 11:56:34.584766Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 11:56:34.590] [DEBUG] QUERY OK source="device_configurations" db=0.7ms idle=1119.9ms
SELECT d0.`id`, d0.`name`, d0.`status`, d0.`description`, d0.`device_type`, d0.`configuration_data`, d0.`created_by`, d0.`updated_by`, d0.`terminal_id`, d0.`inserted_at`, d0.`updated_at` FROM `device_configurations` AS d0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 11:56:34.592] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.7ms idle=114.5ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` = ?) [1]
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 11:56:34.595] [DEBUG] QUERY OK source="tms_terminals" db=2.1ms idle=2.1ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:13[0m
[2026-06-29 11:56:34.595] [DEBUG] Replied in 12ms
[2026-06-29 11:56:34.596] [DEBUG] HANDLE PARAMS in PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
[2026-06-29 11:56:34.596] [DEBUG] Replied in 102µs
[2026-06-29 12:01:24.317] [INFO ] [Ysp.Scheduler] Started. SFTP in 14h 58m, MIS in 18h 58m
[2026-06-29 12:01:24.370] [INFO ]     :alarm_handler: {:set, {:system_memory_high_watermark, []}}
[2026-06-29 12:01:24.384] [INFO ]     :alarm_handler: {:set, {{:disk_almost_full, ~c"/"}, []}}
[2026-06-29 12:01:24.384] [INFO ]     :alarm_handler: {:set,
 {{:disk_almost_full,
   ~c"/var/lib/docker/overlay2/5ac02f430354be658e0135c16f9c5c73036e99cd70c78352a2f72d6bf47bb2af/merged"},
  []}}
[2026-06-29 12:01:24.384] [INFO ]     :alarm_handler: {:set,
 {{:disk_almost_full,
   ~c"/var/lib/docker/overlay2/5f3fdd9b13261e59b7562aca9831101518237abaa6eb67abe9e41e0b402f7004/merged"},
  []}}
[2026-06-29 12:01:25.841] [INFO ] Terminal Event Listener started and listening to events
[2026-06-29 12:01:25.841] [INFO ] Rule Validation Worker started - will run every hour
[2026-06-29 12:01:25.841] [INFO ] Building initial filter cache...
[2026-06-29 12:01:25.851] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.4ms idle=1733.3ms
SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) []
[90m↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153[0m
[2026-06-29 12:01:25.858] [DEBUG] QUERY OK source="filter_usage" db=1.2ms queue=0.6ms idle=810.2ms
SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` []
[90m↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190[0m
[2026-06-29 12:01:25.858] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models
[2026-06-29 12:01:25.927] [INFO ] Device phoenix_client_piyush connected
[2026-06-29 12:01:25.939] [INFO ] Running PlatformWeb.Endpoint with Bandit 1.10.2 at 0.0.0.0:4059 (http)
[2026-06-29 12:01:25.953] [INFO ] Access PlatformWeb.Endpoint at http://localhost:4059
[2026-06-29 12:01:27.309] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 39µs
  Transport: :longpoll
  Serializer: Phoenix.Socket.V2.JSONSerializer
  Parameters: %{"_csrf_token" => "LXN7ZQYCSlopCzYnBzYwRA4mPStSBwU0XF22w7z3_dqM2rYw_BxXjkMd", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"}
[2026-06-29 12:01:28.222] [DEBUG] MOUNT PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 12:01:28.414] [DEBUG] QUERY OK source="users_tokens" db=0.8ms queue=3.8ms idle=606.7ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 12:01:28.339027Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 12:01:28.515] [DEBUG] QUERY OK source="device_configurations" db=0.4ms queue=0.6ms idle=1440.9ms
SELECT d0.`id`, d0.`name`, d0.`status`, d0.`description`, d0.`device_type`, d0.`configuration_data`, d0.`created_by`, d0.`updated_by`, d0.`terminal_id`, d0.`inserted_at`, d0.`updated_at` FROM `device_configurations` AS d0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:01:28.533] [DEBUG] QUERY OK source="tms_terminals" db=3.2ms queue=0.6ms idle=453.1ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` = ?) [1]
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:01:28.535] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.4ms idle=19.0ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:13[0m
[2026-06-29 12:01:28.540] [DEBUG] Replied in 334ms
[2026-06-29 12:01:28.559] [DEBUG] HANDLE PARAMS in PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
[2026-06-29 12:01:28.559] [DEBUG] Replied in 168µs
[2026-06-29 12:01:38.015] [INFO ] GET /
[2026-06-29 12:01:38.045] [DEBUG] Processing with PlatformWeb.PageController.home/2
  Parameters: %{}
  Pipelines: [:browser]
[2026-06-29 12:01:38.061] [INFO ] Sent 200 in 46ms
[2026-06-29 12:01:41.240] [INFO ] GET /images/favicon.png
[2026-06-29 12:01:41.293] [DEBUG] ** (Phoenix.Router.NoRouteError) no route found for GET /images/favicon.png (PlatformWeb.Router)
    (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/phoenix/lib/phoenix/router.ex:541: PlatformWeb.Router.call/2
    (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.plug_builder_call/2
    (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/plug/lib/plug/debugger.ex:155: PlatformWeb.Endpoint."call (overridable 3)"/2
    (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.call/2
    (phoenix 1.7.21) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4
    (bandit 1.10.2) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2
    (bandit 1.10.2) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5
    (bandit 1.10.2) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3
    (bandit 1.10.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3
    (bandit 1.10.2) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_info/2
    (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3
    (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6
    (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3

[2026-06-29 12:01:44.083] [INFO ] GET /admin/device-configs
[2026-06-29 12:01:44.083] [DEBUG] Processing with PlatformWeb.DeviceConfigLive.Index.index/2
  Parameters: %{}
  Pipelines: [:browser, :require_authenticated_user]
[2026-06-29 12:01:44.084] [DEBUG] QUERY OK source="users_tokens" db=0.7ms idle=298.7ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 12:01:44.083867Z]]
[90m↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97[0m
[2026-06-29 12:01:44.094] [DEBUG] QUERY OK source="device_configurations" db=1.2ms idle=964.6ms
SELECT d0.`id`, d0.`name`, d0.`status`, d0.`description`, d0.`device_type`, d0.`configuration_data`, d0.`created_by`, d0.`updated_by`, d0.`terminal_id`, d0.`inserted_at`, d0.`updated_at` FROM `device_configurations` AS d0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:01:44.096] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=196.3ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` = ?) [1]
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:01:44.100] [DEBUG] QUERY OK source="tms_terminals" db=2.9ms idle=2.3ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:13[0m
[2026-06-29 12:01:44.103] [INFO ] Sent 200 in 19ms
[2026-06-29 12:01:56.037] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 26µs
  Transport: :websocket
  Serializer: Phoenix.Socket.V2.JSONSerializer
  Parameters: %{"_csrf_token" => "JEwEFSAGcl8pLhA_RjA5ayQCLwRqCAkVQyMBQ3B6_AWUstPXufjwRdAE", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"}
[2026-06-29 12:01:56.268] [DEBUG] MOUNT PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 12:01:56.269] [DEBUG] QUERY OK source="users_tokens" db=0.5ms idle=483.5ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 12:01:56.268575Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 12:01:56.270] [DEBUG] QUERY OK source="device_configurations" db=0.3ms idle=371.4ms
SELECT d0.`id`, d0.`name`, d0.`status`, d0.`description`, d0.`device_type`, d0.`configuration_data`, d0.`created_by`, d0.`updated_by`, d0.`terminal_id`, d0.`inserted_at`, d0.`updated_at` FROM `device_configurations` AS d0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:01:56.271] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=104.8ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` = ?) [1]
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:01:56.272] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=1.0ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:13[0m
[2026-06-29 12:01:56.272] [DEBUG] Replied in 4ms
[2026-06-29 12:01:56.272] [DEBUG] HANDLE PARAMS in PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
[2026-06-29 12:01:56.273] [DEBUG] Replied in 111µs
[2026-06-29 12:07:34.299] [INFO ] [Ysp.Scheduler] Started. SFTP in 14h 52m, MIS in 18h 52m
[2026-06-29 12:07:34.345] [INFO ]     :alarm_handler: {:set, {{:disk_almost_full, ~c"/"}, []}}
[2026-06-29 12:07:34.368] [INFO ]     :alarm_handler: {:set,
 {{:disk_almost_full,
   ~c"/var/lib/docker/overlay2/5ac02f430354be658e0135c16f9c5c73036e99cd70c78352a2f72d6bf47bb2af/merged"},
  []}}
[2026-06-29 12:07:34.368] [INFO ]     :alarm_handler: {:set,
 {{:disk_almost_full,
   ~c"/var/lib/docker/overlay2/5f3fdd9b13261e59b7562aca9831101518237abaa6eb67abe9e41e0b402f7004/merged"},
  []}}
[2026-06-29 12:07:34.368] [INFO ]     :alarm_handler: {:set, {:system_memory_high_watermark, []}}
[2026-06-29 12:07:36.007] [INFO ] Terminal Event Listener started and listening to events
[2026-06-29 12:07:36.009] [INFO ] Rule Validation Worker started - will run every hour
[2026-06-29 12:07:36.013] [INFO ] Building initial filter cache...
[2026-06-29 12:07:36.041] [DEBUG] QUERY OK source="tms_terminals" db=3.4ms queue=0.5ms idle=393.5ms
SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) []
[90m↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153[0m
[2026-06-29 12:07:36.057] [DEBUG] QUERY OK source="filter_usage" db=0.4ms queue=2.8ms idle=189.5ms
SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` []
[90m↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190[0m
[2026-06-29 12:07:36.058] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models
[2026-06-29 12:07:36.156] [INFO ] Device phoenix_client_piyush connected
[2026-06-29 12:07:36.192] [INFO ] Running PlatformWeb.Endpoint with Bandit 1.10.2 at 0.0.0.0:4059 (http)
[2026-06-29 12:07:36.213] [INFO ] Access PlatformWeb.Endpoint at http://localhost:4059
[2026-06-29 12:07:41.663] [INFO ] GET /admin/device-configs
[2026-06-29 12:07:41.737] [DEBUG] Processing with PlatformWeb.DeviceConfigLive.Index.index/2
  Parameters: %{}
  Pipelines: [:browser, :require_authenticated_user]
[2026-06-29 12:07:41.861] [DEBUG] QUERY OK source="users_tokens" db=3.8ms queue=1.9ms idle=1917.8ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 12:07:41.832007Z]]
[90m↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97[0m
[2026-06-29 12:07:42.021] [DEBUG] QUERY OK source="device_configurations" db=0.4ms queue=1.7ms idle=369.6ms
SELECT d0.`id`, d0.`name`, d0.`status`, d0.`description`, d0.`device_type`, d0.`configuration_data`, d0.`created_by`, d0.`updated_by`, d0.`terminal_id`, d0.`inserted_at`, d0.`updated_at` FROM `device_configurations` AS d0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:07:42.032] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=2.4ms idle=94.9ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` = ?) [1]
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:07:42.039] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=3.9ms idle=13.9ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:13[0m
[2026-06-29 12:07:42.320] [INFO ] Sent 200 in 657ms
[2026-06-29 12:07:48.665] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 12:07:48.665] [INFO ] Incoming JSON payload: {"oid":"f8b586d9-b66d-456e-943d-f21962eba50a","sn":"98250623730001","uploadTime":"2026-06-29T03:17:47Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"ram_free_mb","value":"1021","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"data_usage_mb","value":"259","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-29T03:17:47Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.resources.overlay (com (truncated)
[2026-06-29 12:07:48.666] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "f8b586d9-b66d-456e-943d-f21962eba50a", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:17:47Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-29T03:17:47Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:17:47Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:17:47Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:17:47Z", "value" => "1021"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:17:47Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:17:47Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:17:47Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:17:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:17:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:17:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:17:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:17:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:17:47Z", "value" => "259"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:17:47Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:17:47Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-29T03:17:47Z", "vendor" => "morefun"}
[2026-06-29 12:07:48.667] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 12:07:48.684] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 12:07:48.684] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 12:07:48.693] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms queue=0.4ms idle=645.4ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 12:07:48.696] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms queue=0.6ms idle=645.8ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 12:07:48.696] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 12:07:48.704] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=4.9ms idle=5.2ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 12:07:48.716] [INFO ] Terminal updated: 98250623730001
[2026-06-29 12:07:49.106] [DEBUG] QUERY OK source="tms_terminals" db=382.7ms queue=0.4ms idle=19.9ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 12:07:48], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 12:07:49.116] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 12:07:49.117] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=63.5ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 12:07:49.623] [DEBUG] QUERY OK source="tms_terminals" db=505.2ms idle=18.1ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 12:07:49], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 12:07:50.202] [DEBUG] QUERY OK db=562.3ms queue=0.9ms idle=521.8ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "f8b586d9-b66d-456e-943d-f21962eba50a", "2026-06-29T03:17:47Z", ~N[2026-06-29 12:07:49], ~N[2026-06-29 12:07:49]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 12:07:50.215] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 45279, oid: "f8b586d9-b66d-456e-943d-f21962eba50a", upload_time: "2026-06-29T03:17:47Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 12:07:49], updated_at: ~N[2026-06-29 12:07:49]}
[2026-06-29 12:07:50.215] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:17:47Z", "value" => "morefun"}
[2026-06-29 12:07:50.248] [DEBUG] QUERY OK db=32.0ms queue=0.7ms idle=160.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "morefun", "vendor", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.249] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380333, itemkey: "vendor", value: "morefun", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.249] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-29T03:17:47Z", "value" => "kiosk_launcher"}
[2026-06-29 12:07:50.276] [DEBUG] QUERY OK db=26.0ms queue=1.0ms idle=46.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "kiosk_launcher", "model", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.276] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380335, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.277] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:17:47Z", "value" => "1.0"}
[2026-06-29 12:07:50.310] [DEBUG] QUERY OK db=33.0ms idle=28.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "1.0", "app_version", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.310] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380337, itemkey: "app_version", value: "1.0", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.310] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:17:47Z", "value" => "13"}
[2026-06-29 12:07:50.366] [DEBUG] QUERY OK db=54.2ms idle=35.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "13", "android_version", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.368] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380339, itemkey: "android_version", value: "13", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.369] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:17:47Z", "value" => "1021"}
[2026-06-29 12:07:50.412] [DEBUG] QUERY OK db=41.9ms queue=1.3ms idle=58.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "1021", "ram_free_mb", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.413] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380341, itemkey: "ram_free_mb", value: "1021", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.413] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:17:47Z", "value" => "WIFI"}
[2026-06-29 12:07:50.457] [DEBUG] QUERY OK db=43.7ms idle=47.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "WIFI", "network_type", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.459] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380343, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.459] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:17:47Z", "value" => "true"}
[2026-06-29 12:07:50.488] [DEBUG] QUERY OK db=28.5ms idle=46.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "true", "kiosk_active", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.488] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380345, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.488] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:17:47Z", "value" => ""}
[2026-06-29 12:07:50.534] [DEBUG] QUERY OK db=43.0ms queue=2.3ms idle=31.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-29T03:17:47Z", "sim_operator", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.534] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380347, itemkey: "sim_operator", value: nil, timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.534] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:17:47Z", "value" => "UNKNOWN"}
[2026-06-29 12:07:50.577] [DEBUG] QUERY OK db=42.2ms idle=46.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "UNKNOWN", "sim_number", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.577] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380349, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.577] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:17:47Z", "value" => "UNKNOWN"}
[2026-06-29 12:07:50.604] [DEBUG] QUERY OK db=26.9ms idle=43.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "UNKNOWN", "sim_iccid", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.605] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380351, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.605] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:17:47Z", "value" => "UNKNOWN"}
[2026-06-29 12:07:50.650] [DEBUG] QUERY OK db=44.8ms idle=28.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "UNKNOWN", "sim_imsi", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.650] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380353, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.650] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:17:47Z", "value" => "UNKNOWN"}
[2026-06-29 12:07:50.695] [DEBUG] QUERY OK db=43.8ms queue=0.1ms idle=46.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "UNKNOWN", "sim_iccid2", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.695] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380355, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.695] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:17:47Z", "value" => "UNKNOWN"}
[2026-06-29 12:07:50.719] [DEBUG] QUERY OK db=23.8ms idle=45.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "UNKNOWN", "sim_imsi2", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.720] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380357, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.720] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:17:47Z", "value" => "259"}
[2026-06-29 12:07:50.763] [DEBUG] QUERY OK db=42.9ms idle=25.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "259", "data_usage_mb", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.763] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380359, itemkey: "data_usage_mb", value: "259", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.764] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:17:47Z", "value" => "0"}
[2026-06-29 12:07:50.797] [DEBUG] QUERY OK db=31.5ms idle=46.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "0", "mobile_data_mb", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.797] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380361, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:50.798] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:17:47Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 12:07:50.838] [DEBUG] QUERY OK db=38.9ms idle=35.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:17:47Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 45279, ~N[2026-06-29 12:07:50], ~N[2026-06-29 12:07:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:07:50.839] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380363, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-29T03:17:47Z", message: nil, status_log_id: 45279, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:07:50], updated_at: ~N[2026-06-29 12:07:50]}}
[2026-06-29 12:07:52.422] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 37µs
  Transport: :websocket
  Serializer: Phoenix.Socket.V2.JSONSerializer
  Parameters: %{"_csrf_token" => "Pk8ZPDRqdBAhPyVdUHwLUD4cCERBInAWKzPkE_DyWPb7e8bcoxM7yN8F", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"}
[2026-06-29 12:07:52.657] [DEBUG] MOUNT PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 12:07:52.659] [DEBUG] QUERY OK source="users_tokens" db=0.6ms idle=1729.6ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 12:07:52.658573Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 12:07:52.661] [DEBUG] QUERY OK source="device_configurations" db=2.0ms idle=598.2ms
SELECT d0.`id`, d0.`name`, d0.`status`, d0.`description`, d0.`device_type`, d0.`configuration_data`, d0.`created_by`, d0.`updated_by`, d0.`terminal_id`, d0.`inserted_at`, d0.`updated_at` FROM `device_configurations` AS d0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:07:52.662] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=11.0ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` = ?) [1]
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:07:52.665] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms idle=1.2ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:13[0m
[2026-06-29 12:07:52.666] [DEBUG] Replied in 9ms
[2026-06-29 12:07:52.666] [DEBUG] HANDLE PARAMS in PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
[2026-06-29 12:07:52.669] [DEBUG] Replied in 2ms
[2026-06-29 12:08:19.030] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 12:08:19.030] [INFO ] Incoming JSON payload: {"oid":"0ba47002-ded8-4fbb-ac76-cfa861b38a94","sn":"98250623730001","uploadTime":"2026-06-29T03:18:17Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"ram_free_mb","value":"1020","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"data_usage_mb","value":"259","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-29T03:18:17Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.resources.overlay (com (truncated)
[2026-06-29 12:08:19.035] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "0ba47002-ded8-4fbb-ac76-cfa861b38a94", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:18:17Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-29T03:18:17Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:18:17Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:18:17Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:18:17Z", "value" => "1020"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:18:17Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:18:17Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:18:17Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:18:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:18:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:18:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:18:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:18:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:18:17Z", "value" => "259"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:18:17Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:18:17Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-29T03:18:17Z", "vendor" => "morefun"}
[2026-06-29 12:08:19.037] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 12:08:19.037] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 12:08:19.037] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 12:08:19.038] [DEBUG] QUERY OK source="parameter_templates" db=0.9ms idle=1385.4ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 12:08:19.039] [DEBUG] QUERY OK source="parameter_templates" db=0.9ms idle=886.2ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 12:08:19.039] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 12:08:19.041] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms queue=0.1ms idle=1.4ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 12:08:19.041] [INFO ] Terminal updated: 98250623730001
[2026-06-29 12:08:19.059] [DEBUG] QUERY OK source="tms_terminals" db=17.1ms queue=0.5ms idle=2.0ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 12:08:19], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 12:08:19.059] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 12:08:19.061] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=18.8ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 12:08:19.090] [DEBUG] QUERY OK source="tms_terminals" db=28.1ms idle=2.4ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 12:08:19], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 12:08:19.107] [DEBUG] QUERY OK db=15.5ms queue=1.1ms idle=28.8ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "0ba47002-ded8-4fbb-ac76-cfa861b38a94", "2026-06-29T03:18:17Z", ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 12:08:19.107] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 45281, oid: "0ba47002-ded8-4fbb-ac76-cfa861b38a94", upload_time: "2026-06-29T03:18:17Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}
[2026-06-29 12:08:19.107] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:18:17Z", "value" => "morefun"}
[2026-06-29 12:08:19.131] [DEBUG] QUERY OK db=23.6ms queue=0.1ms idle=17.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "morefun", "vendor", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.131] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380365, itemkey: "vendor", value: "morefun", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.132] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-29T03:18:17Z", "value" => "kiosk_launcher"}
[2026-06-29 12:08:19.177] [DEBUG] QUERY OK db=44.8ms idle=25.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "kiosk_launcher", "model", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.177] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380367, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.177] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:18:17Z", "value" => "1.0"}
[2026-06-29 12:08:19.197] [DEBUG] QUERY OK db=17.9ms queue=1.2ms idle=21.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "1.0", "app_version", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.198] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380369, itemkey: "app_version", value: "1.0", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.198] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:18:17Z", "value" => "13"}
[2026-06-29 12:08:19.233] [DEBUG] QUERY OK db=31.8ms idle=24.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "13", "android_version", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.233] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380371, itemkey: "android_version", value: "13", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.233] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:18:17Z", "value" => "1020"}
[2026-06-29 12:08:19.268] [DEBUG] QUERY OK db=34.7ms idle=36.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "1020", "ram_free_mb", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.268] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380373, itemkey: "ram_free_mb", value: "1020", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.269] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:18:17Z", "value" => "WIFI"}
[2026-06-29 12:08:19.283] [DEBUG] QUERY OK db=14.4ms idle=36.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "WIFI", "network_type", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.284] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380375, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.284] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:18:17Z", "value" => "true"}
[2026-06-29 12:08:19.314] [DEBUG] QUERY OK db=28.6ms queue=0.2ms idle=16.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "true", "kiosk_active", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.314] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380377, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.314] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:18:17Z", "value" => ""}
[2026-06-29 12:08:19.355] [DEBUG] QUERY OK db=40.0ms queue=0.3ms idle=31.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-29T03:18:17Z", "sim_operator", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.356] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380379, itemkey: "sim_operator", value: nil, timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.356] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:18:17Z", "value" => "UNKNOWN"}
[2026-06-29 12:08:19.371] [DEBUG] QUERY OK db=14.6ms queue=0.1ms idle=42.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "UNKNOWN", "sim_number", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.371] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380381, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.371] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:18:17Z", "value" => "UNKNOWN"}
[2026-06-29 12:08:19.397] [DEBUG] QUERY OK db=23.0ms idle=18.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "UNKNOWN", "sim_iccid", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.397] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380383, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.397] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:18:17Z", "value" => "UNKNOWN"}
[2026-06-29 12:08:19.441] [DEBUG] QUERY OK db=42.7ms idle=27.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "UNKNOWN", "sim_imsi", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.441] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380385, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.441] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:18:17Z", "value" => "UNKNOWN"}
[2026-06-29 12:08:19.464] [DEBUG] QUERY OK db=19.9ms idle=47.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "UNKNOWN", "sim_iccid2", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.465] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380387, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.465] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:18:17Z", "value" => "UNKNOWN"}
[2026-06-29 12:08:19.508] [DEBUG] QUERY OK db=42.7ms idle=24.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "UNKNOWN", "sim_imsi2", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.509] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380389, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.509] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:18:17Z", "value" => "259"}
[2026-06-29 12:08:19.531] [DEBUG] QUERY OK db=21.8ms idle=45.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "259", "data_usage_mb", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.531] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380391, itemkey: "data_usage_mb", value: "259", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.531] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:18:17Z", "value" => "0"}
[2026-06-29 12:08:19.572] [DEBUG] QUERY OK db=38.9ms queue=1.0ms idle=23.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "0", "mobile_data_mb", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.572] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380393, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:19.573] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:18:17Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 12:08:19.607] [DEBUG] QUERY OK db=32.7ms idle=42.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:17Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 45281, ~N[2026-06-29 12:08:19], ~N[2026-06-29 12:08:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:19.607] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380395, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-29T03:18:17Z", message: nil, status_log_id: 45281, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:19], updated_at: ~N[2026-06-29 12:08:19]}}
[2026-06-29 12:08:49.183] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 12:08:49.184] [INFO ] Incoming JSON payload: {"oid":"60131b3c-2f90-4267-a71d-78c50c2aa427","sn":"98250623730001","uploadTime":"2026-06-29T03:18:48Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"ram_free_mb","value":"1015","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"data_usage_mb","value":"259","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-29T03:18:48Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.resources.overlay (com (truncated)
[2026-06-29 12:08:49.185] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "60131b3c-2f90-4267-a71d-78c50c2aa427", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:18:48Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-29T03:18:48Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:18:48Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:18:48Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:18:48Z", "value" => "1015"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:18:48Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:18:48Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:18:48Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:18:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:18:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:18:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:18:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:18:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:18:48Z", "value" => "259"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:18:48Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:18:48Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-29T03:18:48Z", "vendor" => "morefun"}
[2026-06-29 12:08:49.185] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 12:08:49.185] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 12:08:49.186] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 12:08:49.192] [DEBUG] QUERY OK source="parameter_templates" db=6.0ms idle=1534.0ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 12:08:49.196] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms queue=0.3ms idle=958.2ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 12:08:49.196] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 12:08:49.199] [DEBUG] QUERY OK source="tms_terminals" db=2.8ms queue=0.1ms idle=4.0ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 12:08:49.202] [INFO ] Terminal updated: 98250623730001
[2026-06-29 12:08:49.241] [DEBUG] QUERY OK source="tms_terminals" db=37.4ms idle=7.7ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 12:08:49], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 12:08:49.241] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 12:08:49.242] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=0.7ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 12:08:49.277] [DEBUG] QUERY OK source="tms_terminals" db=33.9ms queue=0.2ms idle=1.6ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 12:08:49], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 12:08:49.327] [DEBUG] QUERY OK db=49.9ms idle=34.9ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "60131b3c-2f90-4267-a71d-78c50c2aa427", "2026-06-29T03:18:48Z", ~N[2026-06-29 12:08:49], ~N[2026-06-29 12:08:49]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 12:08:49.327] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 45283, oid: "60131b3c-2f90-4267-a71d-78c50c2aa427", upload_time: "2026-06-29T03:18:48Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 12:08:49], updated_at: ~N[2026-06-29 12:08:49]}
[2026-06-29 12:08:49.328] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:18:48Z", "value" => "morefun"}
[2026-06-29 12:08:49.371] [DEBUG] QUERY OK db=42.5ms queue=0.7ms idle=51.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "morefun", "vendor", 45283, ~N[2026-06-29 12:08:49], ~N[2026-06-29 12:08:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:49.372] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380397, itemkey: "vendor", value: "morefun", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:49], updated_at: ~N[2026-06-29 12:08:49]}}
[2026-06-29 12:08:49.372] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-29T03:18:48Z", "value" => "kiosk_launcher"}
[2026-06-29 12:08:49.417] [DEBUG] QUERY OK db=43.1ms queue=0.2ms idle=46.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "kiosk_launcher", "model", 45283, ~N[2026-06-29 12:08:49], ~N[2026-06-29 12:08:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:49.417] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380399, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:49], updated_at: ~N[2026-06-29 12:08:49]}}
[2026-06-29 12:08:49.417] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:18:48Z", "value" => "1.0"}
[2026-06-29 12:08:49.475] [DEBUG] QUERY OK db=56.8ms idle=46.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "1.0", "app_version", 45283, ~N[2026-06-29 12:08:49], ~N[2026-06-29 12:08:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:49.476] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380401, itemkey: "app_version", value: "1.0", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:49], updated_at: ~N[2026-06-29 12:08:49]}}
[2026-06-29 12:08:49.476] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:18:48Z", "value" => "13"}
[2026-06-29 12:08:49.522] [DEBUG] QUERY OK db=44.9ms idle=60.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "13", "android_version", 45283, ~N[2026-06-29 12:08:49], ~N[2026-06-29 12:08:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:49.522] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380403, itemkey: "android_version", value: "13", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:49], updated_at: ~N[2026-06-29 12:08:49]}}
[2026-06-29 12:08:49.522] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:18:48Z", "value" => "1015"}
[2026-06-29 12:08:49.719] [DEBUG] QUERY OK db=196.1ms queue=0.1ms idle=48.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "1015", "ram_free_mb", 45283, ~N[2026-06-29 12:08:49], ~N[2026-06-29 12:08:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:49.720] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380405, itemkey: "ram_free_mb", value: "1015", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:49], updated_at: ~N[2026-06-29 12:08:49]}}
[2026-06-29 12:08:49.720] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:18:48Z", "value" => "WIFI"}
[2026-06-29 12:08:49.779] [DEBUG] QUERY OK db=58.8ms idle=198.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "WIFI", "network_type", 45283, ~N[2026-06-29 12:08:49], ~N[2026-06-29 12:08:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:49.781] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380407, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:49], updated_at: ~N[2026-06-29 12:08:49]}}
[2026-06-29 12:08:49.781] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:18:48Z", "value" => "true"}
[2026-06-29 12:08:49.847] [DEBUG] QUERY OK db=63.7ms queue=0.1ms idle=62.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "true", "kiosk_active", 45283, ~N[2026-06-29 12:08:49], ~N[2026-06-29 12:08:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:49.847] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380409, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:49], updated_at: ~N[2026-06-29 12:08:49]}}
[2026-06-29 12:08:49.847] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:18:48Z", "value" => ""}
[2026-06-29 12:08:49.896] [DEBUG] QUERY OK db=46.6ms idle=69.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-29T03:18:48Z", "sim_operator", 45283, ~N[2026-06-29 12:08:49], ~N[2026-06-29 12:08:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:49.896] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380411, itemkey: "sim_operator", value: nil, timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:49], updated_at: ~N[2026-06-29 12:08:49]}}
[2026-06-29 12:08:49.896] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:18:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:08:49.988] [DEBUG] QUERY OK db=90.9ms idle=51.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "UNKNOWN", "sim_number", 45283, ~N[2026-06-29 12:08:49], ~N[2026-06-29 12:08:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:49.988] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380413, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:49], updated_at: ~N[2026-06-29 12:08:49]}}
[2026-06-29 12:08:49.988] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:18:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:08:50.038] [DEBUG] QUERY OK db=49.1ms idle=92.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "UNKNOWN", "sim_iccid", 45283, ~N[2026-06-29 12:08:49], ~N[2026-06-29 12:08:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:50.038] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380415, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:49], updated_at: ~N[2026-06-29 12:08:49]}}
[2026-06-29 12:08:50.038] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:18:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:08:50.073] [DEBUG] QUERY OK db=34.4ms idle=50.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "UNKNOWN", "sim_imsi", 45283, ~N[2026-06-29 12:08:50], ~N[2026-06-29 12:08:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:50.073] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380417, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:50], updated_at: ~N[2026-06-29 12:08:50]}}
[2026-06-29 12:08:50.073] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:18:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:08:50.115] [DEBUG] QUERY OK db=40.8ms idle=36.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "UNKNOWN", "sim_iccid2", 45283, ~N[2026-06-29 12:08:50], ~N[2026-06-29 12:08:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:50.115] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380419, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:50], updated_at: ~N[2026-06-29 12:08:50]}}
[2026-06-29 12:08:50.115] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:18:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:08:50.148] [DEBUG] QUERY OK db=32.6ms idle=42.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "UNKNOWN", "sim_imsi2", 45283, ~N[2026-06-29 12:08:50], ~N[2026-06-29 12:08:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:50.148] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380421, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:50], updated_at: ~N[2026-06-29 12:08:50]}}
[2026-06-29 12:08:50.148] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:18:48Z", "value" => "259"}
[2026-06-29 12:08:50.183] [DEBUG] QUERY OK db=34.1ms idle=33.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "259", "data_usage_mb", 45283, ~N[2026-06-29 12:08:50], ~N[2026-06-29 12:08:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:50.183] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380423, itemkey: "data_usage_mb", value: "259", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:50], updated_at: ~N[2026-06-29 12:08:50]}}
[2026-06-29 12:08:50.183] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:18:48Z", "value" => "0"}
[2026-06-29 12:08:50.233] [DEBUG] QUERY OK db=49.0ms idle=35.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "0", "mobile_data_mb", 45283, ~N[2026-06-29 12:08:50], ~N[2026-06-29 12:08:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:50.233] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380425, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:50], updated_at: ~N[2026-06-29 12:08:50]}}
[2026-06-29 12:08:50.234] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:18:48Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 12:08:50.328] [DEBUG] QUERY OK db=93.9ms idle=51.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:18:48Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 45283, ~N[2026-06-29 12:08:50], ~N[2026-06-29 12:08:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:08:50.332] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380427, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-29T03:18:48Z", message: nil, status_log_id: 45283, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:08:50], updated_at: ~N[2026-06-29 12:08:50]}}
[2026-06-29 12:08:55.294] [INFO ] GET /admin/device-configs
[2026-06-29 12:08:55.294] [DEBUG] Processing with PlatformWeb.DeviceConfigLive.Index.index/2
  Parameters: %{}
  Pipelines: [:browser, :require_authenticated_user]
[2026-06-29 12:08:55.297] [DEBUG] QUERY OK source="users_tokens" db=2.1ms idle=1361.9ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 12:08:55.294963Z]]
[90m↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97[0m
[2026-06-29 12:08:55.299] [DEBUG] QUERY OK source="device_configurations" db=1.1ms idle=1042.5ms
SELECT d0.`id`, d0.`name`, d0.`status`, d0.`description`, d0.`device_type`, d0.`configuration_data`, d0.`created_by`, d0.`updated_by`, d0.`terminal_id`, d0.`inserted_at`, d0.`updated_at` FROM `device_configurations` AS d0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:08:55.301] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.1ms idle=37.7ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` = ?) [1]
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:08:55.302] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=2.5ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:13[0m
[2026-06-29 12:08:55.305] [INFO ] Sent 200 in 11ms
[2026-06-29 12:08:57.402] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 25µs
  Transport: :websocket
  Serializer: Phoenix.Socket.V2.JSONSerializer
  Parameters: %{"_csrf_token" => "R34Dbhx8A14MAz4gGCcZbAhVCRdiOis62KJ9mI37zlyJ-cp_Y1LdZVcj", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"}
[2026-06-29 12:08:57.723] [DEBUG] MOUNT PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 12:08:57.725] [DEBUG] QUERY OK source="users_tokens" db=2.1ms queue=0.1ms idle=1789.7ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 12:08:57.723267Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 12:08:57.726] [DEBUG] QUERY OK source="device_configurations" db=0.4ms idle=1072.3ms
SELECT d0.`id`, d0.`name`, d0.`status`, d0.`description`, d0.`device_type`, d0.`configuration_data`, d0.`created_by`, d0.`updated_by`, d0.`terminal_id`, d0.`inserted_at`, d0.`updated_at` FROM `device_configurations` AS d0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:08:57.727] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.1ms idle=458.2ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` = ?) [1]
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:08:57.728] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=1.3ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:13[0m
[2026-06-29 12:08:57.729] [DEBUG] Replied in 6ms
[2026-06-29 12:08:57.729] [DEBUG] HANDLE PARAMS in PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
[2026-06-29 12:08:57.729] [DEBUG] Replied in 96µs
[2026-06-29 12:09:19.279] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 12:09:19.279] [INFO ] Incoming JSON payload: {"oid":"94c73c27-9f3d-4dad-adec-b7cfeba123c6","sn":"98250623730001","uploadTime":"2026-06-29T03:19:18Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"ram_free_mb","value":"1023","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"data_usage_mb","value":"259","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-29T03:19:18Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.resources.overlay (com (truncated)
[2026-06-29 12:09:19.285] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "94c73c27-9f3d-4dad-adec-b7cfeba123c6", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:19:18Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-29T03:19:18Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:19:18Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:19:18Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:19:18Z", "value" => "1023"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:19:18Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:19:18Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:19:18Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:19:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:19:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:19:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:19:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:19:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:19:18Z", "value" => "259"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:19:18Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:19:18Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-29T03:19:18Z", "vendor" => "morefun"}
[2026-06-29 12:09:19.285] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 12:09:19.289] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 12:09:19.289] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 12:09:19.293] [DEBUG] QUERY OK source="parameter_templates" db=1.2ms idle=1630.8ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 12:09:19.295] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms idle=922.1ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 12:09:19.295] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 12:09:19.298] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms queue=0.6ms idle=1.8ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 12:09:19.298] [INFO ] Terminal updated: 98250623730001
[2026-06-29 12:09:19.326] [DEBUG] QUERY OK source="tms_terminals" db=26.2ms idle=4.6ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 12:09:19], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 12:09:19.326] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 12:09:19.328] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=29.4ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 12:09:19.351] [DEBUG] QUERY OK source="tms_terminals" db=22.7ms queue=0.3ms idle=2.3ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 12:09:19], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 12:09:19.391] [DEBUG] QUERY OK db=38.8ms idle=23.7ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "94c73c27-9f3d-4dad-adec-b7cfeba123c6", "2026-06-29T03:19:18Z", ~N[2026-06-29 12:09:19], ~N[2026-06-29 12:09:19]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 12:09:19.391] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 45284, oid: "94c73c27-9f3d-4dad-adec-b7cfeba123c6", upload_time: "2026-06-29T03:19:18Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 12:09:19], updated_at: ~N[2026-06-29 12:09:19]}
[2026-06-29 12:09:19.391] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:19:18Z", "value" => "morefun"}
[2026-06-29 12:09:19.446] [DEBUG] QUERY OK db=54.5ms queue=0.1ms idle=16.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "morefun", "vendor", 45284, ~N[2026-06-29 12:09:19], ~N[2026-06-29 12:09:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:19.446] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380429, itemkey: "vendor", value: "morefun", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:19], updated_at: ~N[2026-06-29 12:09:19]}}
[2026-06-29 12:09:19.448] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-29T03:19:18Z", "value" => "kiosk_launcher"}
[2026-06-29 12:09:19.521] [DEBUG] QUERY OK db=72.9ms idle=57.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "kiosk_launcher", "model", 45284, ~N[2026-06-29 12:09:19], ~N[2026-06-29 12:09:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:19.522] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380431, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:19], updated_at: ~N[2026-06-29 12:09:19]}}
[2026-06-29 12:09:19.522] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:19:18Z", "value" => "1.0"}
[2026-06-29 12:09:19.572] [DEBUG] QUERY OK db=50.4ms idle=75.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "1.0", "app_version", 45284, ~N[2026-06-29 12:09:19], ~N[2026-06-29 12:09:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:19.573] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380433, itemkey: "app_version", value: "1.0", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:19], updated_at: ~N[2026-06-29 12:09:19]}}
[2026-06-29 12:09:19.573] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:19:18Z", "value" => "13"}
[2026-06-29 12:09:19.700] [DEBUG] QUERY OK db=126.6ms idle=51.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "13", "android_version", 45284, ~N[2026-06-29 12:09:19], ~N[2026-06-29 12:09:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:19.700] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380435, itemkey: "android_version", value: "13", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:19], updated_at: ~N[2026-06-29 12:09:19]}}
[2026-06-29 12:09:19.700] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:19:18Z", "value" => "1023"}
[2026-06-29 12:09:19.787] [DEBUG] QUERY OK db=86.6ms idle=128.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "1023", "ram_free_mb", 45284, ~N[2026-06-29 12:09:19], ~N[2026-06-29 12:09:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:19.788] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380437, itemkey: "ram_free_mb", value: "1023", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:19], updated_at: ~N[2026-06-29 12:09:19]}}
[2026-06-29 12:09:19.788] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:19:18Z", "value" => "WIFI"}
[2026-06-29 12:09:19.852] [DEBUG] QUERY OK db=64.0ms idle=88.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "WIFI", "network_type", 45284, ~N[2026-06-29 12:09:19], ~N[2026-06-29 12:09:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:19.853] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380439, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:19], updated_at: ~N[2026-06-29 12:09:19]}}
[2026-06-29 12:09:19.853] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:19:18Z", "value" => "true"}
[2026-06-29 12:09:19.898] [DEBUG] QUERY OK db=42.1ms queue=2.5ms idle=66.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "true", "kiosk_active", 45284, ~N[2026-06-29 12:09:19], ~N[2026-06-29 12:09:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:19.899] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380441, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:19], updated_at: ~N[2026-06-29 12:09:19]}}
[2026-06-29 12:09:19.899] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:19:18Z", "value" => ""}
[2026-06-29 12:09:19.937] [DEBUG] QUERY OK db=37.5ms idle=47.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-29T03:19:18Z", "sim_operator", 45284, ~N[2026-06-29 12:09:19], ~N[2026-06-29 12:09:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:19.937] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380443, itemkey: "sim_operator", value: nil, timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:19], updated_at: ~N[2026-06-29 12:09:19]}}
[2026-06-29 12:09:19.938] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:19:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:09:19.969] [DEBUG] QUERY OK db=31.5ms idle=39.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "UNKNOWN", "sim_number", 45284, ~N[2026-06-29 12:09:19], ~N[2026-06-29 12:09:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:19.970] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380445, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:19], updated_at: ~N[2026-06-29 12:09:19]}}
[2026-06-29 12:09:19.970] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:19:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:09:20.021] [DEBUG] QUERY OK db=50.5ms idle=32.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "UNKNOWN", "sim_iccid", 45284, ~N[2026-06-29 12:09:19], ~N[2026-06-29 12:09:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:20.021] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380447, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:19], updated_at: ~N[2026-06-29 12:09:19]}}
[2026-06-29 12:09:20.021] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:19:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:09:20.055] [DEBUG] QUERY OK db=33.1ms idle=52.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "UNKNOWN", "sim_imsi", 45284, ~N[2026-06-29 12:09:20], ~N[2026-06-29 12:09:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:20.055] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380449, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:20], updated_at: ~N[2026-06-29 12:09:20]}}
[2026-06-29 12:09:20.055] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:19:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:09:20.098] [DEBUG] QUERY OK db=42.1ms queue=0.1ms idle=34.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "UNKNOWN", "sim_iccid2", 45284, ~N[2026-06-29 12:09:20], ~N[2026-06-29 12:09:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:20.098] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380451, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:20], updated_at: ~N[2026-06-29 12:09:20]}}
[2026-06-29 12:09:20.098] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:19:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:09:20.141] [DEBUG] QUERY OK db=41.4ms idle=44.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "UNKNOWN", "sim_imsi2", 45284, ~N[2026-06-29 12:09:20], ~N[2026-06-29 12:09:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:20.141] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380453, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:20], updated_at: ~N[2026-06-29 12:09:20]}}
[2026-06-29 12:09:20.141] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:19:18Z", "value" => "259"}
[2026-06-29 12:09:20.186] [DEBUG] QUERY OK db=43.9ms queue=1.0ms idle=43.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "259", "data_usage_mb", 45284, ~N[2026-06-29 12:09:20], ~N[2026-06-29 12:09:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:20.187] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380455, itemkey: "data_usage_mb", value: "259", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:20], updated_at: ~N[2026-06-29 12:09:20]}}
[2026-06-29 12:09:20.187] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:19:18Z", "value" => "0"}
[2026-06-29 12:09:20.231] [DEBUG] QUERY OK db=43.6ms idle=46.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "0", "mobile_data_mb", 45284, ~N[2026-06-29 12:09:20], ~N[2026-06-29 12:09:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:20.231] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380457, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:20], updated_at: ~N[2026-06-29 12:09:20]}}
[2026-06-29 12:09:20.232] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:19:18Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 12:09:20.291] [DEBUG] QUERY OK db=55.1ms idle=45.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:18Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 45284, ~N[2026-06-29 12:09:20], ~N[2026-06-29 12:09:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:20.292] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380459, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-29T03:19:18Z", message: nil, status_log_id: 45284, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:20], updated_at: ~N[2026-06-29 12:09:20]}}
[2026-06-29 12:09:45.900] [INFO ] [Ysp.Scheduler] Started. SFTP in 14h 50m, MIS in 18h 50m
[2026-06-29 12:09:45.934] [INFO ]     :alarm_handler: {:set, {:system_memory_high_watermark, []}}
[2026-06-29 12:09:45.942] [INFO ]     :alarm_handler: {:set, {{:disk_almost_full, ~c"/"}, []}}
[2026-06-29 12:09:45.942] [INFO ]     :alarm_handler: {:set,
 {{:disk_almost_full,
   ~c"/var/lib/docker/overlay2/5ac02f430354be658e0135c16f9c5c73036e99cd70c78352a2f72d6bf47bb2af/merged"},
  []}}
[2026-06-29 12:09:45.942] [INFO ]     :alarm_handler: {:set,
 {{:disk_almost_full,
   ~c"/var/lib/docker/overlay2/5f3fdd9b13261e59b7562aca9831101518237abaa6eb67abe9e41e0b402f7004/merged"},
  []}}
[2026-06-29 12:09:47.465] [INFO ] Terminal Event Listener started and listening to events
[2026-06-29 12:09:47.466] [INFO ] Rule Validation Worker started - will run every hour
[2026-06-29 12:09:47.466] [INFO ] Building initial filter cache...
[2026-06-29 12:09:47.480] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.3ms idle=863.3ms
SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) []
[90m↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153[0m
[2026-06-29 12:09:47.491] [DEBUG] QUERY OK source="filter_usage" db=0.6ms queue=2.9ms idle=62.5ms
SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` []
[90m↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190[0m
[2026-06-29 12:09:47.491] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models
[2026-06-29 12:09:47.606] [INFO ] Device phoenix_client_piyush connected
[2026-06-29 12:09:47.661] [INFO ] Running PlatformWeb.Endpoint with Bandit 1.10.2 at 0.0.0.0:4059 (http)
[2026-06-29 12:09:47.687] [INFO ] Access PlatformWeb.Endpoint at http://localhost:4059
[2026-06-29 12:09:48.883] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 48µs
  Transport: :longpoll
  Serializer: Phoenix.Socket.V2.JSONSerializer
  Parameters: %{"_csrf_token" => "R34Dbhx8A14MAz4gGCcZbAhVCRdiOis62KJ9mI37zlyJ-cp_Y1LdZVcj", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"}
[2026-06-29 12:09:49.389] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 12:09:49.389] [INFO ] Incoming JSON payload: {"oid":"a1566427-dda2-4d5b-9dd1-d6982ea7b346","sn":"98250623730001","uploadTime":"2026-06-29T03:19:48Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"ram_free_mb","value":"1022","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"data_usage_mb","value":"259","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-29T03:19:48Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.resources.overlay (com (truncated)
[2026-06-29 12:09:49.393] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "a1566427-dda2-4d5b-9dd1-d6982ea7b346", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:19:48Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-29T03:19:48Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:19:48Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:19:48Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:19:48Z", "value" => "1022"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:19:48Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:19:48Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:19:48Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:19:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:19:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:19:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:19:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:19:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:19:48Z", "value" => "259"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:19:48Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:19:48Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-29T03:19:48Z", "vendor" => "morefun"}
[2026-06-29 12:09:49.393] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 12:09:49.423] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 12:09:49.425] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 12:09:49.449] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms queue=4.6ms idle=813.0ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 12:09:49.459] [DEBUG] QUERY OK source="parameter_templates" db=2.3ms queue=6.0ms idle=25.1ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 12:09:49.459] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 12:09:49.496] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=1.3ms idle=45.1ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 12:09:49.564] [INFO ] Terminal updated: 98250623730001
[2026-06-29 12:09:49.657] [DEBUG] QUERY OK source="tms_terminals" db=59.8ms queue=2.9ms idle=105.5ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 12:09:49], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 12:09:49.675] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 12:09:49.678] [DEBUG] QUERY OK source="tms_terminals" db=2.5ms idle=52.3ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 12:09:49.739] [DEBUG] QUERY OK source="tms_terminals" db=42.3ms queue=1.2ms idle=53.4ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 12:09:49], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 12:09:49.898] [DEBUG] QUERY OK db=89.7ms queue=0.4ms idle=129.3ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "a1566427-dda2-4d5b-9dd1-d6982ea7b346", "2026-06-29T03:19:48Z", ~N[2026-06-29 12:09:49], ~N[2026-06-29 12:09:49]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 12:09:49.928] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 45287, oid: "a1566427-dda2-4d5b-9dd1-d6982ea7b346", upload_time: "2026-06-29T03:19:48Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 12:09:49], updated_at: ~N[2026-06-29 12:09:49]}
[2026-06-29 12:09:49.929] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:19:48Z", "value" => "morefun"}
[2026-06-29 12:09:49.980] [DEBUG] QUERY OK db=47.3ms queue=0.7ms idle=193.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "morefun", "vendor", 45287, ~N[2026-06-29 12:09:49], ~N[2026-06-29 12:09:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:49.981] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380472, itemkey: "vendor", value: "morefun", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:49], updated_at: ~N[2026-06-29 12:09:49]}}
[2026-06-29 12:09:49.981] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-29T03:19:48Z", "value" => "kiosk_launcher"}
[2026-06-29 12:09:50.022] [DEBUG] QUERY OK db=38.3ms queue=2.4ms idle=83.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "kiosk_launcher", "model", 45287, ~N[2026-06-29 12:09:49], ~N[2026-06-29 12:09:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:50.022] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380474, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:49], updated_at: ~N[2026-06-29 12:09:49]}}
[2026-06-29 12:09:50.023] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:19:48Z", "value" => "1.0"}
[2026-06-29 12:09:50.066] [DEBUG] QUERY OK db=42.8ms idle=42.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "1.0", "app_version", 45287, ~N[2026-06-29 12:09:50], ~N[2026-06-29 12:09:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:50.066] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380476, itemkey: "app_version", value: "1.0", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:50], updated_at: ~N[2026-06-29 12:09:50]}}
[2026-06-29 12:09:50.066] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:19:48Z", "value" => "13"}
[2026-06-29 12:09:50.119] [DEBUG] QUERY OK db=51.8ms queue=0.2ms idle=44.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "13", "android_version", 45287, ~N[2026-06-29 12:09:50], ~N[2026-06-29 12:09:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:50.119] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380478, itemkey: "android_version", value: "13", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:50], updated_at: ~N[2026-06-29 12:09:50]}}
[2026-06-29 12:09:50.119] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:19:48Z", "value" => "1022"}
[2026-06-29 12:09:50.301] [DEBUG] MOUNT PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
  Session: %{"_csrf_token" => "u5IWq50ivoGj5Di3QdEs8lHP", "live_socket_id" => "users_sessions:jp8jMOvoMQm5CcAwqMI47N1scEn_9uix0RFCT7NTz1Q=", "user_token" => <<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>}
[2026-06-29 12:09:50.346] [DEBUG] QUERY OK source="users_tokens" db=0.7ms queue=1.0ms idle=933.4ms
SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<142, 159, 35, 48, 235, 232, 49, 9, 185, 9, 192, 48, 168, 194, 56, 236, 221, 108, 112, 73, 255, 246, 232, 177, 209, 17, 66, 79, 179, 83, 207, 84>>, "session", ~U[2026-06-29 12:09:50.332838Z]]
[90m↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79[0m
[2026-06-29 12:09:50.360] [DEBUG] QUERY OK source="device_configurations" db=0.4ms queue=1.9ms idle=238.5ms
SELECT d0.`id`, d0.`name`, d0.`status`, d0.`description`, d0.`device_type`, d0.`configuration_data`, d0.`created_by`, d0.`updated_by`, d0.`terminal_id`, d0.`inserted_at`, d0.`updated_at` FROM `device_configurations` AS d0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:09:50.362] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.3ms idle=0.8ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at`, t0.`id` FROM `tms_terminals` AS t0 WHERE (t0.`id` = ?) [1]
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:12[0m
[2026-06-29 12:09:50.365] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=0.8ms idle=1.2ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 []
[90m↳ PlatformWeb.DeviceConfigLive.Index.mount/3, at: lib/platform_web/live/device_config_live/index.ex:13[0m
[2026-06-29 12:09:50.366] [DEBUG] Replied in 73ms
[2026-06-29 12:09:50.374] [DEBUG] HANDLE PARAMS in PlatformWeb.DeviceConfigLive.Index
  Parameters: %{}
[2026-06-29 12:09:50.374] [DEBUG] Replied in 432µs
[2026-06-29 12:09:51.058] [DEBUG] QUERY OK db=937.8ms idle=54.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "1022", "ram_free_mb", 45287, ~N[2026-06-29 12:09:50], ~N[2026-06-29 12:09:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:51.058] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380480, itemkey: "ram_free_mb", value: "1022", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:50], updated_at: ~N[2026-06-29 12:09:50]}}
[2026-06-29 12:09:51.058] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:19:48Z", "value" => "WIFI"}
[2026-06-29 12:09:51.116] [DEBUG] QUERY OK db=57.0ms idle=412.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "WIFI", "network_type", 45287, ~N[2026-06-29 12:09:51], ~N[2026-06-29 12:09:51]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:51.116] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380481, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:51], updated_at: ~N[2026-06-29 12:09:51]}}
[2026-06-29 12:09:51.116] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:19:48Z", "value" => "true"}
[2026-06-29 12:09:51.155] [DEBUG] QUERY OK db=38.5ms idle=59.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "true", "kiosk_active", 45287, ~N[2026-06-29 12:09:51], ~N[2026-06-29 12:09:51]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:51.155] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380482, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:51], updated_at: ~N[2026-06-29 12:09:51]}}
[2026-06-29 12:09:51.156] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:19:48Z", "value" => ""}
[2026-06-29 12:09:51.205] [DEBUG] QUERY OK db=47.1ms queue=1.1ms idle=40.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-29T03:19:48Z", "sim_operator", 45287, ~N[2026-06-29 12:09:51], ~N[2026-06-29 12:09:51]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:51.205] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380483, itemkey: "sim_operator", value: nil, timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:51], updated_at: ~N[2026-06-29 12:09:51]}}
[2026-06-29 12:09:51.205] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:19:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:09:51.231] [DEBUG] QUERY OK db=23.3ms queue=0.3ms idle=52.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "UNKNOWN", "sim_number", 45287, ~N[2026-06-29 12:09:51], ~N[2026-06-29 12:09:51]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:51.231] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380484, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:51], updated_at: ~N[2026-06-29 12:09:51]}}
[2026-06-29 12:09:51.231] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:19:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:09:51.258] [DEBUG] QUERY OK db=25.9ms idle=27.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "UNKNOWN", "sim_iccid", 45287, ~N[2026-06-29 12:09:51], ~N[2026-06-29 12:09:51]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:51.259] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380485, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:51], updated_at: ~N[2026-06-29 12:09:51]}}
[2026-06-29 12:09:51.259] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:19:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:09:51.296] [DEBUG] QUERY OK db=36.5ms idle=28.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "UNKNOWN", "sim_imsi", 45287, ~N[2026-06-29 12:09:51], ~N[2026-06-29 12:09:51]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:51.296] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380486, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:51], updated_at: ~N[2026-06-29 12:09:51]}}
[2026-06-29 12:09:51.296] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:19:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:09:51.330] [DEBUG] QUERY OK db=32.4ms idle=39.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "UNKNOWN", "sim_iccid2", 45287, ~N[2026-06-29 12:09:51], ~N[2026-06-29 12:09:51]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:51.330] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380487, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:51], updated_at: ~N[2026-06-29 12:09:51]}}
[2026-06-29 12:09:51.330] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:19:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:09:51.382] [DEBUG] QUERY OK db=51.5ms idle=34.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "UNKNOWN", "sim_imsi2", 45287, ~N[2026-06-29 12:09:51], ~N[2026-06-29 12:09:51]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:51.382] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380488, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:51], updated_at: ~N[2026-06-29 12:09:51]}}
[2026-06-29 12:09:51.383] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:19:48Z", "value" => "259"}
[2026-06-29 12:09:51.418] [DEBUG] QUERY OK db=33.2ms idle=54.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "259", "data_usage_mb", 45287, ~N[2026-06-29 12:09:51], ~N[2026-06-29 12:09:51]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:51.418] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380489, itemkey: "data_usage_mb", value: "259", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:51], updated_at: ~N[2026-06-29 12:09:51]}}
[2026-06-29 12:09:51.418] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:19:48Z", "value" => "0"}
[2026-06-29 12:09:51.477] [DEBUG] QUERY OK db=56.9ms queue=0.3ms idle=37.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "0", "mobile_data_mb", 45287, ~N[2026-06-29 12:09:51], ~N[2026-06-29 12:09:51]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:51.477] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380490, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:51], updated_at: ~N[2026-06-29 12:09:51]}}
[2026-06-29 12:09:51.479] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:19:48Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 12:09:51.505] [DEBUG] QUERY OK db=25.7ms idle=61.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:19:48Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 45287, ~N[2026-06-29 12:09:51], ~N[2026-06-29 12:09:51]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:09:51.506] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380491, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-29T03:19:48Z", message: nil, status_log_id: 45287, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:09:51], updated_at: ~N[2026-06-29 12:09:51]}}
[2026-06-29 12:10:19.754] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 12:10:19.755] [INFO ] Incoming JSON payload: {"oid":"dcbc1bfd-d8c5-4a52-8f55-1d9acdb6a5a4","sn":"98250623730001","uploadTime":"2026-06-29T03:20:18Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"ram_free_mb","value":"1022","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"data_usage_mb","value":"259","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-29T03:20:18Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.resources.overlay (com (truncated)
[2026-06-29 12:10:19.757] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "dcbc1bfd-d8c5-4a52-8f55-1d9acdb6a5a4", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:20:18Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-29T03:20:18Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:20:18Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:20:18Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:20:18Z", "value" => "1022"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:20:18Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:20:18Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:20:18Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:20:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:20:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:20:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:20:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:20:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:20:18Z", "value" => "259"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:20:18Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:20:18Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-29T03:20:18Z", "vendor" => "morefun"}
[2026-06-29 12:10:19.757] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 12:10:19.757] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 12:10:19.757] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 12:10:19.760] [DEBUG] QUERY OK source="parameter_templates" db=2.1ms idle=940.7ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 12:10:19.761] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms idle=330.4ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 12:10:19.761] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 12:10:19.761] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=1.2ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 12:10:19.762] [INFO ] Terminal updated: 98250623730001
[2026-06-29 12:10:19.784] [DEBUG] QUERY OK source="tms_terminals" db=22.3ms idle=1.2ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 12:10:19], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 12:10:19.785] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 12:10:19.787] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=24.6ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 12:10:19.818] [DEBUG] QUERY OK source="tms_terminals" db=31.1ms queue=0.1ms idle=2.7ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 12:10:19], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 12:10:19.860] [DEBUG] QUERY OK db=39.0ms queue=2.1ms idle=0.8ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "dcbc1bfd-d8c5-4a52-8f55-1d9acdb6a5a4", "2026-06-29T03:20:18Z", ~N[2026-06-29 12:10:19], ~N[2026-06-29 12:10:19]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 12:10:19.861] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 45289, oid: "dcbc1bfd-d8c5-4a52-8f55-1d9acdb6a5a4", upload_time: "2026-06-29T03:20:18Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 12:10:19], updated_at: ~N[2026-06-29 12:10:19]}
[2026-06-29 12:10:19.861] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:20:18Z", "value" => "morefun"}
[2026-06-29 12:10:19.927] [DEBUG] QUERY OK db=65.7ms idle=39.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "morefun", "vendor", 45289, ~N[2026-06-29 12:10:19], ~N[2026-06-29 12:10:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:19.927] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380493, itemkey: "vendor", value: "morefun", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:19], updated_at: ~N[2026-06-29 12:10:19]}}
[2026-06-29 12:10:19.927] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-29T03:20:18Z", "value" => "kiosk_launcher"}
[2026-06-29 12:10:19.975] [DEBUG] QUERY OK db=46.8ms idle=67.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "kiosk_launcher", "model", 45289, ~N[2026-06-29 12:10:19], ~N[2026-06-29 12:10:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:19.975] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380495, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:19], updated_at: ~N[2026-06-29 12:10:19]}}
[2026-06-29 12:10:19.975] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:20:18Z", "value" => "1.0"}
[2026-06-29 12:10:20.002] [DEBUG] QUERY OK db=25.5ms queue=0.1ms idle=49.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "1.0", "app_version", 45289, ~N[2026-06-29 12:10:19], ~N[2026-06-29 12:10:19]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.002] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380497, itemkey: "app_version", value: "1.0", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:19], updated_at: ~N[2026-06-29 12:10:19]}}
[2026-06-29 12:10:20.002] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:20:18Z", "value" => "13"}
[2026-06-29 12:10:20.077] [DEBUG] QUERY OK db=74.0ms queue=0.3ms idle=27.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "13", "android_version", 45289, ~N[2026-06-29 12:10:20], ~N[2026-06-29 12:10:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.078] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380499, itemkey: "android_version", value: "13", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:20], updated_at: ~N[2026-06-29 12:10:20]}}
[2026-06-29 12:10:20.079] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:20:18Z", "value" => "1022"}
[2026-06-29 12:10:20.100] [DEBUG] QUERY OK db=20.7ms idle=77.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "1022", "ram_free_mb", 45289, ~N[2026-06-29 12:10:20], ~N[2026-06-29 12:10:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.100] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380501, itemkey: "ram_free_mb", value: "1022", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:20], updated_at: ~N[2026-06-29 12:10:20]}}
[2026-06-29 12:10:20.100] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:20:18Z", "value" => "WIFI"}
[2026-06-29 12:10:20.147] [DEBUG] QUERY OK db=44.9ms queue=0.3ms idle=24.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "WIFI", "network_type", 45289, ~N[2026-06-29 12:10:20], ~N[2026-06-29 12:10:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.148] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380503, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:20], updated_at: ~N[2026-06-29 12:10:20]}}
[2026-06-29 12:10:20.148] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:20:18Z", "value" => "true"}
[2026-06-29 12:10:20.182] [DEBUG] QUERY OK db=32.5ms idle=49.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "true", "kiosk_active", 45289, ~N[2026-06-29 12:10:20], ~N[2026-06-29 12:10:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.183] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380505, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:20], updated_at: ~N[2026-06-29 12:10:20]}}
[2026-06-29 12:10:20.183] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:20:18Z", "value" => ""}
[2026-06-29 12:10:20.230] [DEBUG] QUERY OK db=46.6ms queue=0.5ms idle=35.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-29T03:20:18Z", "sim_operator", 45289, ~N[2026-06-29 12:10:20], ~N[2026-06-29 12:10:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.230] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380507, itemkey: "sim_operator", value: nil, timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:20], updated_at: ~N[2026-06-29 12:10:20]}}
[2026-06-29 12:10:20.230] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:20:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:10:20.266] [DEBUG] QUERY OK db=35.1ms idle=49.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "UNKNOWN", "sim_number", 45289, ~N[2026-06-29 12:10:20], ~N[2026-06-29 12:10:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.266] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380509, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:20], updated_at: ~N[2026-06-29 12:10:20]}}
[2026-06-29 12:10:20.266] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:20:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:10:20.315] [DEBUG] QUERY OK db=48.2ms idle=36.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "UNKNOWN", "sim_iccid", 45289, ~N[2026-06-29 12:10:20], ~N[2026-06-29 12:10:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.316] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380511, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:20], updated_at: ~N[2026-06-29 12:10:20]}}
[2026-06-29 12:10:20.316] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:20:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:10:20.351] [DEBUG] QUERY OK db=34.4ms idle=50.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "UNKNOWN", "sim_imsi", 45289, ~N[2026-06-29 12:10:20], ~N[2026-06-29 12:10:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.351] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380513, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:20], updated_at: ~N[2026-06-29 12:10:20]}}
[2026-06-29 12:10:20.352] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:20:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:10:20.408] [DEBUG] QUERY OK db=56.6ms idle=36.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "UNKNOWN", "sim_iccid2", 45289, ~N[2026-06-29 12:10:20], ~N[2026-06-29 12:10:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.409] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380515, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:20], updated_at: ~N[2026-06-29 12:10:20]}}
[2026-06-29 12:10:20.409] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:20:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:10:20.442] [DEBUG] QUERY OK db=33.2ms idle=57.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "UNKNOWN", "sim_imsi2", 45289, ~N[2026-06-29 12:10:20], ~N[2026-06-29 12:10:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.443] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380517, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:20], updated_at: ~N[2026-06-29 12:10:20]}}
[2026-06-29 12:10:20.443] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:20:18Z", "value" => "259"}
[2026-06-29 12:10:20.507] [DEBUG] QUERY OK db=64.1ms idle=34.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "259", "data_usage_mb", 45289, ~N[2026-06-29 12:10:20], ~N[2026-06-29 12:10:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.508] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380519, itemkey: "data_usage_mb", value: "259", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:20], updated_at: ~N[2026-06-29 12:10:20]}}
[2026-06-29 12:10:20.508] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:20:18Z", "value" => "0"}
[2026-06-29 12:10:20.567] [DEBUG] QUERY OK db=59.0ms idle=65.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "0", "mobile_data_mb", 45289, ~N[2026-06-29 12:10:20], ~N[2026-06-29 12:10:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.568] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380521, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:20], updated_at: ~N[2026-06-29 12:10:20]}}
[2026-06-29 12:10:20.569] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:20:18Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 12:10:20.615] [DEBUG] QUERY OK db=45.0ms idle=62.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:18Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 45289, ~N[2026-06-29 12:10:20], ~N[2026-06-29 12:10:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:20.617] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380523, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-29T03:20:18Z", message: nil, status_log_id: 45289, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:20], updated_at: ~N[2026-06-29 12:10:20]}}
[2026-06-29 12:10:49.814] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 12:10:49.814] [INFO ] Incoming JSON payload: {"oid":"fb651802-3bbc-49e2-bb30-7ea0733d1ead","sn":"98250623730001","uploadTime":"2026-06-29T03:20:48Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"ram_free_mb","value":"1018","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"data_usage_mb","value":"259","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-29T03:20:48Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.resources.overlay (com (truncated)
[2026-06-29 12:10:49.815] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "fb651802-3bbc-49e2-bb30-7ea0733d1ead", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:20:48Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-29T03:20:48Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:20:48Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:20:48Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:20:48Z", "value" => "1018"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:20:48Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:20:48Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:20:48Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:20:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:20:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:20:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:20:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:20:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:20:48Z", "value" => "259"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:20:48Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:20:48Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-29T03:20:48Z", "vendor" => "morefun"}
[2026-06-29 12:10:49.815] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 12:10:49.815] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 12:10:49.815] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 12:10:49.817] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms idle=895.8ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 12:10:49.818] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=383.4ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 12:10:49.818] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 12:10:49.819] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.3ms idle=1.0ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 12:10:49.819] [INFO ] Terminal updated: 98250623730001
[2026-06-29 12:10:49.862] [DEBUG] QUERY OK source="tms_terminals" db=42.5ms idle=1.9ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 12:10:49], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 12:10:49.862] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 12:10:49.863] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=43.3ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 12:10:49.902] [DEBUG] QUERY OK source="tms_terminals" db=38.4ms idle=1.5ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 12:10:49], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 12:10:49.918] [DEBUG] QUERY OK db=14.9ms idle=39.1ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "fb651802-3bbc-49e2-bb30-7ea0733d1ead", "2026-06-29T03:20:48Z", ~N[2026-06-29 12:10:49], ~N[2026-06-29 12:10:49]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 12:10:49.918] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 45290, oid: "fb651802-3bbc-49e2-bb30-7ea0733d1ead", upload_time: "2026-06-29T03:20:48Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 12:10:49], updated_at: ~N[2026-06-29 12:10:49]}
[2026-06-29 12:10:49.918] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:20:48Z", "value" => "morefun"}
[2026-06-29 12:10:49.981] [DEBUG] QUERY OK db=62.2ms idle=16.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "morefun", "vendor", 45290, ~N[2026-06-29 12:10:49], ~N[2026-06-29 12:10:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:49.981] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380524, itemkey: "vendor", value: "morefun", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:49], updated_at: ~N[2026-06-29 12:10:49]}}
[2026-06-29 12:10:49.982] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-29T03:20:48Z", "value" => "kiosk_launcher"}
[2026-06-29 12:10:50.030] [DEBUG] QUERY OK db=47.9ms idle=60.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "kiosk_launcher", "model", 45290, ~N[2026-06-29 12:10:49], ~N[2026-06-29 12:10:49]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.031] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380526, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:49], updated_at: ~N[2026-06-29 12:10:49]}}
[2026-06-29 12:10:50.031] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:20:48Z", "value" => "1.0"}
[2026-06-29 12:10:50.070] [DEBUG] QUERY OK db=38.7ms idle=50.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "1.0", "app_version", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.071] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380528, itemkey: "app_version", value: "1.0", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:10:50.071] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:20:48Z", "value" => "13"}
[2026-06-29 12:10:50.112] [DEBUG] QUERY OK db=41.1ms idle=40.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "13", "android_version", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.113] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380530, itemkey: "android_version", value: "13", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:10:50.113] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:20:48Z", "value" => "1018"}
[2026-06-29 12:10:50.145] [DEBUG] QUERY OK db=32.4ms idle=43.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "1018", "ram_free_mb", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.146] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380532, itemkey: "ram_free_mb", value: "1018", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:10:50.146] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:20:48Z", "value" => "WIFI"}
[2026-06-29 12:10:50.194] [DEBUG] QUERY OK db=47.7ms idle=34.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "WIFI", "network_type", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.194] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380534, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:10:50.194] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:20:48Z", "value" => "true"}
[2026-06-29 12:10:50.254] [DEBUG] QUERY OK db=59.2ms idle=49.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "true", "kiosk_active", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.254] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380536, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:10:50.255] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:20:48Z", "value" => ""}
[2026-06-29 12:10:50.298] [DEBUG] QUERY OK db=43.3ms idle=61.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-29T03:20:48Z", "sim_operator", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.299] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380538, itemkey: "sim_operator", value: nil, timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:10:50.299] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:20:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:10:50.334] [DEBUG] QUERY OK db=34.9ms queue=0.1ms idle=45.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "UNKNOWN", "sim_number", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.335] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380540, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:10:50.335] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:20:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:10:50.369] [DEBUG] QUERY OK db=33.5ms queue=0.1ms idle=36.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "UNKNOWN", "sim_iccid", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.369] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380542, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:10:50.369] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:20:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:10:50.413] [DEBUG] QUERY OK db=43.0ms queue=0.2ms idle=35.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "UNKNOWN", "sim_imsi", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.413] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380544, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:10:50.413] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:20:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:10:50.446] [DEBUG] QUERY OK db=31.5ms queue=0.3ms idle=44.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "UNKNOWN", "sim_iccid2", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.446] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380546, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:10:50.446] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:20:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:10:50.502] [DEBUG] QUERY OK db=55.7ms idle=33.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "UNKNOWN", "sim_imsi2", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.503] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380548, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:10:50.503] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:20:48Z", "value" => "259"}
[2026-06-29 12:10:50.536] [DEBUG] QUERY OK db=32.2ms queue=0.2ms idle=57.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "259", "data_usage_mb", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.536] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380550, itemkey: "data_usage_mb", value: "259", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:10:50.536] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:20:48Z", "value" => "0"}
[2026-06-29 12:10:50.580] [DEBUG] QUERY OK db=43.3ms idle=34.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "0", "mobile_data_mb", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.580] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380552, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:10:50.581] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:20:48Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 12:10:50.615] [DEBUG] QUERY OK db=32.9ms idle=45.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:20:48Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 45290, ~N[2026-06-29 12:10:50], ~N[2026-06-29 12:10:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:10:50.616] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380554, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-29T03:20:48Z", message: nil, status_log_id: 45290, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:10:50], updated_at: ~N[2026-06-29 12:10:50]}}
[2026-06-29 12:11:19.963] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 12:11:19.963] [INFO ] Incoming JSON payload: {"oid":"93258fad-4cef-466a-b8dc-ebbc19b521a7","sn":"98250623730001","uploadTime":"2026-06-29T03:21:18Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"ram_free_mb","value":"1013","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"data_usage_mb","value":"259","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-29T03:21:18Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.resources.overlay (com (truncated)
[2026-06-29 12:11:19.964] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "93258fad-4cef-466a-b8dc-ebbc19b521a7", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:21:18Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-29T03:21:18Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:21:18Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:21:18Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:21:18Z", "value" => "1013"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:21:18Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:21:18Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:21:18Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:21:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:21:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:21:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:21:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:21:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:21:18Z", "value" => "259"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:21:18Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:21:18Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-29T03:21:18Z", "vendor" => "morefun"}
[2026-06-29 12:11:19.965] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 12:11:19.965] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 12:11:19.965] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 12:11:19.966] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms queue=0.1ms idle=863.3ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 12:11:19.970] [DEBUG] QUERY OK source="parameter_templates" db=2.0ms idle=531.2ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 12:11:19.970] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 12:11:19.973] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms queue=0.7ms idle=3.5ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 12:11:19.973] [INFO ] Terminal updated: 98250623730001
[2026-06-29 12:11:20.004] [DEBUG] QUERY OK source="tms_terminals" db=30.2ms idle=4.7ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 12:11:19], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 12:11:20.004] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 12:11:20.005] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=31.3ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 12:11:20.066] [DEBUG] QUERY OK source="tms_terminals" db=60.0ms idle=1.9ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 12:11:20], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 12:11:20.117] [DEBUG] QUERY OK db=51.4ms idle=61.2ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "93258fad-4cef-466a-b8dc-ebbc19b521a7", "2026-06-29T03:21:18Z", ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 12:11:20.118] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 45292, oid: "93258fad-4cef-466a-b8dc-ebbc19b521a7", upload_time: "2026-06-29T03:21:18Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}
[2026-06-29 12:11:20.119] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:21:18Z", "value" => "morefun"}
[2026-06-29 12:11:20.158] [DEBUG] QUERY OK db=38.7ms idle=14.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "morefun", "vendor", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.158] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380557, itemkey: "vendor", value: "morefun", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.158] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-29T03:21:18Z", "value" => "kiosk_launcher"}
[2026-06-29 12:11:20.182] [DEBUG] QUERY OK db=23.2ms idle=40.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "kiosk_launcher", "model", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.182] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380559, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.183] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:21:18Z", "value" => "1.0"}
[2026-06-29 12:11:20.245] [DEBUG] QUERY OK db=61.1ms idle=25.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "1.0", "app_version", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.245] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380561, itemkey: "app_version", value: "1.0", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.245] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:21:18Z", "value" => "13"}
[2026-06-29 12:11:20.287] [DEBUG] QUERY OK db=41.2ms idle=63.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "13", "android_version", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.287] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380563, itemkey: "android_version", value: "13", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.288] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:21:18Z", "value" => "1013"}
[2026-06-29 12:11:20.320] [DEBUG] QUERY OK db=31.7ms idle=43.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "1013", "ram_free_mb", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.320] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380565, itemkey: "ram_free_mb", value: "1013", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.320] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:21:18Z", "value" => "WIFI"}
[2026-06-29 12:11:20.351] [DEBUG] QUERY OK db=30.8ms idle=33.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "WIFI", "network_type", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.353] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380567, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.353] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:21:18Z", "value" => "true"}
[2026-06-29 12:11:20.408] [DEBUG] QUERY OK db=55.1ms idle=33.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "true", "kiosk_active", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.409] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380569, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.409] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:21:18Z", "value" => ""}
[2026-06-29 12:11:20.464] [DEBUG] QUERY OK db=54.7ms idle=57.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-29T03:21:18Z", "sim_operator", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.464] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380571, itemkey: "sim_operator", value: nil, timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.465] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:21:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:11:20.520] [DEBUG] QUERY OK db=55.2ms idle=56.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "UNKNOWN", "sim_number", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.521] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380573, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.521] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:21:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:11:20.561] [DEBUG] QUERY OK db=40.2ms idle=57.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "UNKNOWN", "sim_iccid", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.562] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380575, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.562] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:21:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:11:20.596] [DEBUG] QUERY OK db=33.5ms idle=42.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "UNKNOWN", "sim_imsi", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.596] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380577, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.596] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:21:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:11:20.652] [DEBUG] QUERY OK db=55.3ms idle=35.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "UNKNOWN", "sim_iccid2", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.652] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380579, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.652] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:21:18Z", "value" => "UNKNOWN"}
[2026-06-29 12:11:20.696] [DEBUG] QUERY OK db=43.5ms idle=56.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "UNKNOWN", "sim_imsi2", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.697] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380581, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.697] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:21:18Z", "value" => "259"}
[2026-06-29 12:11:20.748] [DEBUG] QUERY OK db=51.0ms idle=45.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "259", "data_usage_mb", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.749] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380583, itemkey: "data_usage_mb", value: "259", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.749] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:21:18Z", "value" => "0"}
[2026-06-29 12:11:20.784] [DEBUG] QUERY OK db=34.8ms idle=52.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "0", "mobile_data_mb", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.784] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380585, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:20.785] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:21:18Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 12:11:20.851] [DEBUG] QUERY OK db=65.4ms queue=0.1ms idle=36.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:18Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 45292, ~N[2026-06-29 12:11:20], ~N[2026-06-29 12:11:20]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:20.852] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380587, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-29T03:21:18Z", message: nil, status_log_id: 45292, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:20], updated_at: ~N[2026-06-29 12:11:20]}}
[2026-06-29 12:11:50.073] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 12:11:50.073] [INFO ] Incoming JSON payload: {"oid":"895bd4a8-b05f-45fb-921a-20268fca5204","sn":"98250623730001","uploadTime":"2026-06-29T03:21:48Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"ram_free_mb","value":"1013","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"data_usage_mb","value":"259","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-29T03:21:48Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.resources.overlay (com (truncated)
[2026-06-29 12:11:50.074] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "895bd4a8-b05f-45fb-921a-20268fca5204", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:21:48Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-29T03:21:48Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:21:48Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:21:48Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:21:48Z", "value" => "1013"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:21:48Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:21:48Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:21:48Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:21:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:21:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:21:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:21:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:21:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:21:48Z", "value" => "259"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:21:48Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:21:48Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-29T03:21:48Z", "vendor" => "morefun"}
[2026-06-29 12:11:50.074] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 12:11:50.074] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 12:11:50.074] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 12:11:50.075] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=870.7ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 12:11:50.077] [DEBUG] QUERY OK source="parameter_templates" db=1.7ms idle=639.1ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 12:11:50.077] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 12:11:50.079] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=2.3ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 12:11:50.079] [INFO ] Terminal updated: 98250623730001
[2026-06-29 12:11:50.112] [DEBUG] QUERY OK source="tms_terminals" db=32.2ms idle=1.9ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 12:11:50], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 12:11:50.112] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 12:11:50.114] [DEBUG] QUERY OK source="tms_terminals" db=2.0ms idle=33.1ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 12:11:50.152] [DEBUG] QUERY OK source="tms_terminals" db=37.5ms queue=0.1ms idle=2.8ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 12:11:50], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 12:11:50.199] [DEBUG] QUERY OK db=46.2ms queue=0.1ms idle=38.8ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "895bd4a8-b05f-45fb-921a-20268fca5204", "2026-06-29T03:21:48Z", ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 12:11:50.200] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 45294, oid: "895bd4a8-b05f-45fb-921a-20268fca5204", upload_time: "2026-06-29T03:21:48Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}
[2026-06-29 12:11:50.200] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:21:48Z", "value" => "morefun"}
[2026-06-29 12:11:50.237] [DEBUG] QUERY OK db=36.8ms idle=48.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "morefun", "vendor", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.238] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380588, itemkey: "vendor", value: "morefun", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.238] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-29T03:21:48Z", "value" => "kiosk_launcher"}
[2026-06-29 12:11:50.288] [DEBUG] QUERY OK db=49.9ms idle=31.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "kiosk_launcher", "model", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.289] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380590, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.289] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:21:48Z", "value" => "1.0"}
[2026-06-29 12:11:50.327] [DEBUG] QUERY OK db=37.0ms idle=52.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "1.0", "app_version", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.327] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380592, itemkey: "app_version", value: "1.0", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.327] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:21:48Z", "value" => "13"}
[2026-06-29 12:11:50.376] [DEBUG] QUERY OK db=48.8ms idle=39.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "13", "android_version", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.376] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380594, itemkey: "android_version", value: "13", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.377] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:21:48Z", "value" => "1013"}
[2026-06-29 12:11:50.414] [DEBUG] QUERY OK db=36.7ms idle=50.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "1013", "ram_free_mb", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.414] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380596, itemkey: "ram_free_mb", value: "1013", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.414] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:21:48Z", "value" => "WIFI"}
[2026-06-29 12:11:50.462] [DEBUG] QUERY OK db=47.2ms idle=38.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "WIFI", "network_type", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.462] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380598, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.462] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:21:48Z", "value" => "true"}
[2026-06-29 12:11:50.497] [DEBUG] QUERY OK db=34.3ms idle=48.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "true", "kiosk_active", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.497] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380600, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.497] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:21:48Z", "value" => ""}
[2026-06-29 12:11:50.595] [DEBUG] QUERY OK db=97.5ms idle=35.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-29T03:21:48Z", "sim_operator", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.596] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380602, itemkey: "sim_operator", value: nil, timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.596] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:21:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:11:50.702] [DEBUG] QUERY OK db=106.0ms idle=99.3ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "UNKNOWN", "sim_number", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.703] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380604, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.703] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:21:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:11:50.773] [DEBUG] QUERY OK db=69.9ms idle=107.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "UNKNOWN", "sim_iccid", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.775] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380606, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.776] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:21:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:11:50.823] [DEBUG] QUERY OK db=45.9ms idle=74.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "UNKNOWN", "sim_imsi", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.823] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380608, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.824] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:21:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:11:50.860] [DEBUG] QUERY OK db=35.9ms queue=0.5ms idle=51.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "UNKNOWN", "sim_iccid2", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.861] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380610, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.861] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:21:48Z", "value" => "UNKNOWN"}
[2026-06-29 12:11:50.906] [DEBUG] QUERY OK db=44.6ms idle=38.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "UNKNOWN", "sim_imsi2", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.906] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380612, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.906] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:21:48Z", "value" => "259"}
[2026-06-29 12:11:50.946] [DEBUG] QUERY OK db=39.4ms idle=45.9ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "259", "data_usage_mb", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.946] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380614, itemkey: "data_usage_mb", value: "259", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.946] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:21:48Z", "value" => "0"}
[2026-06-29 12:11:50.974] [DEBUG] QUERY OK db=27.6ms idle=40.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "0", "mobile_data_mb", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:50.974] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380616, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:11:50.977] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:21:48Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 12:11:51.016] [DEBUG] QUERY OK db=36.7ms queue=0.1ms idle=32.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:21:48Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 45294, ~N[2026-06-29 12:11:50], ~N[2026-06-29 12:11:50]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:11:51.019] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380618, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-29T03:21:48Z", message: nil, status_log_id: 45294, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:11:50], updated_at: ~N[2026-06-29 12:11:50]}}
[2026-06-29 12:12:36.014] [INFO ] Received status update for terminal 98250623730001
[2026-06-29 12:12:36.014] [INFO ] Incoming JSON payload: {"oid":"913b5d23-faa2-4f30-8d00-eea502e32c18","sn":"98250623730001","uploadTime":"2026-06-29T03:22:25Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"ram_free_mb","value":"1039","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"data_usage_mb","value":"259","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-06-29T03:22:25Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria (com.newland.template), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.mainline.resources.overlay (com.android.wifi.mainline.resources.overlay), com.android.wifi.resources.overlay (com (truncated)
[2026-06-29 12:12:36.015] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "913b5d23-faa2-4f30-8d00-eea502e32c18", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:22:25Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-06-29T03:22:25Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:22:25Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:22:25Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:22:25Z", "value" => "1039"}, %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:22:25Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:22:25Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:22:25Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:22:25Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:22:25Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:22:25Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:22:25Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:22:25Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:22:25Z", "value" => "259"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:22:25Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:22:25Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}], "sn" => "98250623730001", "uploadTime" => "2026-06-29T03:22:25Z", "vendor" => "morefun"}
[2026-06-29 12:12:36.015] [INFO ] Extracted versions for 98250623730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil}
[2026-06-29 12:12:36.015] [INFO ] Detected missing versions for 98250623730001, triggering auto-push
[2026-06-29 12:12:36.015] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (morefun kiosk_launcher) - missing version
[2026-06-29 12:12:36.018] [DEBUG] QUERY OK source="parameter_templates" db=2.0ms idle=646.7ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132[0m
[2026-06-29 12:12:36.019] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms queue=0.1ms idle=569.8ms
SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE ((((p0.`is_active` = TRUE) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"]
[90m↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36[0m
[2026-06-29 12:12:36.019] [WARN ] AutoPushService: No template found for morefun kiosk_launcher
[2026-06-29 12:12:36.021] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=1.8ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98[0m
[2026-06-29 12:12:36.021] [INFO ] Terminal updated: 98250623730001
[2026-06-29 12:12:36.046] [DEBUG] QUERY OK source="tms_terminals" db=24.2ms idle=3.0ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-29 12:12:36], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122[0m
[2026-06-29 12:12:36.046] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant
[2026-06-29 12:12:36.048] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=25.2ms
SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"]
[90m↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697[0m
[2026-06-29 12:12:36.078] [DEBUG] QUERY OK source="tms_terminals" db=29.7ms idle=2.1ms
UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-29 12:12:36], 19]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132[0m
[2026-06-29 12:12:36.123] [DEBUG] QUERY OK db=45.1ms idle=30.3ms
INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "913b5d23-faa2-4f30-8d00-eea502e32c18", "2026-06-29T03:22:25Z", ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134[0m
[2026-06-29 12:12:36.125] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 45296, oid: "913b5d23-faa2-4f30-8d00-eea502e32c18", upload_time: "2026-06-29T03:22:25Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded<association :terminal is not loaded>, status_items: #Ecto.Association.NotLoaded<association :status_items is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}
[2026-06-29 12:12:36.125] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-06-29T03:22:25Z", "value" => "morefun"}
[2026-06-29 12:12:36.157] [DEBUG] QUERY OK db=31.7ms idle=47.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "morefun", "vendor", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.159] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380620, itemkey: "vendor", value: "morefun", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.159] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-06-29T03:22:25Z", "value" => "kiosk_launcher"}
[2026-06-29 12:12:36.258] [DEBUG] QUERY OK db=98.6ms idle=36.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "kiosk_launcher", "model", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.258] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380622, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.261] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-06-29T03:22:25Z", "value" => "1.0"}
[2026-06-29 12:12:36.307] [DEBUG] QUERY OK db=46.1ms idle=103.5ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "1.0", "app_version", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.307] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380624, itemkey: "app_version", value: "1.0", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.308] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-06-29T03:22:25Z", "value" => "13"}
[2026-06-29 12:12:36.337] [DEBUG] QUERY OK db=29.1ms idle=49.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "13", "android_version", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.338] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380626, itemkey: "android_version", value: "13", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.338] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-06-29T03:22:25Z", "value" => "1039"}
[2026-06-29 12:12:36.396] [DEBUG] QUERY OK db=58.1ms idle=31.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "1039", "ram_free_mb", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.397] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380628, itemkey: "ram_free_mb", value: "1039", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.397] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-06-29T03:22:25Z", "value" => "WIFI"}
[2026-06-29 12:12:36.422] [DEBUG] QUERY OK db=24.3ms queue=0.2ms idle=26.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "WIFI", "network_type", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.423] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380630, itemkey: "network_type", value: "WIFI", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.423] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-06-29T03:22:25Z", "value" => "true"}
[2026-06-29 12:12:36.455] [DEBUG] QUERY OK db=31.8ms idle=26.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "true", "kiosk_active", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.456] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380632, itemkey: "kiosk_active", value: "true", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.456] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-06-29T03:22:25Z", "value" => ""}
[2026-06-29 12:12:36.527] [DEBUG] QUERY OK db=70.4ms queue=0.9ms idle=34.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-06-29T03:22:25Z", "sim_operator", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.528] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380634, itemkey: "sim_operator", value: nil, timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.528] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-06-29T03:22:25Z", "value" => "UNKNOWN"}
[2026-06-29 12:12:36.733] [DEBUG] QUERY OK db=205.0ms idle=73.0ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "UNKNOWN", "sim_number", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.733] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380636, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.734] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-06-29T03:22:25Z", "value" => "UNKNOWN"}
[2026-06-29 12:12:36.782] [DEBUG] QUERY OK db=47.2ms idle=206.7ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "UNKNOWN", "sim_iccid", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.782] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380639, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.782] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-06-29T03:22:25Z", "value" => "UNKNOWN"}
[2026-06-29 12:12:36.857] [DEBUG] QUERY OK db=73.4ms idle=50.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "UNKNOWN", "sim_imsi", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.857] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380641, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.858] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-06-29T03:22:25Z", "value" => "UNKNOWN"}
[2026-06-29 12:12:36.896] [DEBUG] QUERY OK db=37.7ms idle=76.4ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "UNKNOWN", "sim_iccid2", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.896] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380643, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.896] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-06-29T03:22:25Z", "value" => "UNKNOWN"}
[2026-06-29 12:12:36.935] [DEBUG] QUERY OK db=38.3ms idle=39.6ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "UNKNOWN", "sim_imsi2", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.935] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380645, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.935] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-06-29T03:22:25Z", "value" => "259"}
[2026-06-29 12:12:36.967] [DEBUG] QUERY OK db=31.4ms idle=40.1ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "259", "data_usage_mb", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.968] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380647, itemkey: "data_usage_mb", value: "259", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.968] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-06-29T03:22:25Z", "value" => "0"}
[2026-06-29 12:12:36.997] [DEBUG] QUERY OK db=28.7ms idle=33.2ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "0", "mobile_data_mb", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:36.997] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380649, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
[2026-06-29 12:12:36.998] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-06-29T03:22:25Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ...}
[2026-06-29 12:12:37.037] [DEBUG] QUERY OK db=37.6ms queue=0.2ms idle=30.8ms
INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-29T03:22:25Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., "installed_apps", 45296, ~N[2026-06-29 12:12:36], ~N[2026-06-29 12:12:36]]
[90m↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144[0m
[2026-06-29 12:12:37.037] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 380651, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS (com.mercury.pos), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefu" <> ..., timestamp: "2026-06-29T03:22:25Z", message: nil, status_log_id: 45296, status_log: #Ecto.Association.NotLoaded<association :status_log is not loaded>, inserted_at: ~N[2026-06-29 12:12:36], updated_at: ~N[2026-06-29 12:12:36]}}
