{
    "timestamp": "2026-07-06 04:00:05",
    "level": "INFO",
    "message": "[syncCourseTypes] Hoàn thành toàn bộ. Tổng = 0"
}
{
    "timestamp": "2026-07-06 04:00:05",
    "level": "INFO",
    "message": "[syncCourses] Hoàn thành toàn bộ. Tổng = 13"
}
{
    "timestamp": "2026-07-06 04:00:05",
    "level": "INFO",
    "message": "[syncStudents] Hoàn thành toàn bộ. Tổng = 2"
}
{
    "timestamp": "2026-07-06 04:00:05",
    "level": "INFO",
    "message": "[syncCourseStudents] Hoàn thành toàn bộ. Tổng = 2"
}
{
    "timestamp": "2026-07-06 04:00:05",
    "level": "INFO",
    "message": "[syncStudentScores] Hoàn thành toàn bộ. Tổng = 21"
}
{
    "timestamp": "2026-07-06 04:00:06",
    "level": "INFO",
    "message": "[syncUserAssignments] Hoàn thành toàn bộ. Tổng = 1"
}
{
    "timestamp": "2026-07-06 04:00:06",
    "level": "INFO",
    "message": "[mirrorToZeus] Bắt đầu mirror dữ liệu sang Zeus (isSync = 112)..."
}
{
    "timestamp": "2026-07-06 04:00:06",
    "level": "INFO",
    "message": "[mirrorToZeus] Hoàn tất bảng lcms_course_types. Tổng đã sync: 0"
}
{
    "timestamp": "2026-07-06 04:00:06",
    "level": "ERROR",
    "message": "[mirrorToZeus] Bắt catch ngoại lệ bảng lcms_students chi tiết:",
    "context": {
        "msg": "SQLSTATE[HY000] [1049] Unknown database 'ZEUS_speakup' (Connection: zeus, SQL: insert into `lcms_students` (`stu_created_at`, `stu_dob`, `stu_email`, `stu_gender`, `stu_id`, `stu_is_sync`, `stu_name`, `stu_phone`, `stu_updated_at`, `stu_user_id`, `stu_username`) values (2025-09-08 03:11:41, 2029-05-11, test3@hocmai.vn, Male, 41, 112, Test HM, 0912616652, 2026-07-03 12:23:09, 228, test.hm.test3), (2025-12-30 12:25:40, ?, hs4@hocmai.vn, Female, 3627, 112, HỌC SINH BỐN, ?, 2026-07-05 12:00:39, 449, SPW69181199) on duplicate key update `stu_name` = values(`stu_name`), `stu_email` = values(`stu_email`), `stu_username` = values(`stu_username`), `stu_user_id` = values(`stu_user_id`), `stu_phone` = values(`stu_phone`), `stu_dob` = values(`stu_dob`), `stu_gender` = values(`stu_gender`), `stu_is_sync` = values(`stu_is_sync`), `stu_updated_at` = values(`stu_updated_at`))",
        "trace": "#0 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connection.php(779): Illuminate\\Database\\Connection->runQueryCallback()\n#1 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connection.php(584): Illuminate\\Database\\Connection->run()\n#2 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Query\/Builder.php(3917): Illuminate\\Database\\Connection->affectingStatement()\n#3 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(599): Illuminate\\Database\\Query\\Builder->upsert()\n#4 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Concerns\/BuildsQueries.php(59): App\\Console\\Commands\\LmsDailySyncCommand->App\\Console\\Commands\\{closure}()\n#5 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(589): Illuminate\\Database\\Query\\Builder->chunk()\n#6 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(125): App\\Console\\Commands\\LmsDailySyncCommand->mirrorToZeus()\n#7 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(36): App\\Console\\Commands\\LmsDailySyncCommand->handle()\n#8 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()\n#9 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(95): Illuminate\\Container\\Util::unwrapIfClosure()\n#10 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()\n#11 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/Container.php(696): Illuminate\\Container\\BoundMethod::call()\n#12 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Console\/Command.php(213): Illuminate\\Container\\Container->call()\n#13 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Command\/Command.php(341): Illuminate\\Console\\Command->execute()\n#14 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Console\/Command.php(182): Symfony\\Component\\Console\\Command\\Command->run()\n#15 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(1117): Illuminate\\Console\\Command->run()\n#16 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()\n#17 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(195): Symfony\\Component\\Console\\Application->doRun()\n#18 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Console\/Kernel.php(198): Symfony\\Component\\Console\\Application->run()\n#19 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()\n#20 \/var\/www\/html\/lms_hocmai\/artisan(13): Illuminate\\Foundation\\Application->handleCommand()\n#21 {main}"
    }
}
{
    "timestamp": "2026-07-06 04:00:06",
    "level": "ERROR",
    "message": "[mirrorToZeus] Bắt catch ngoại lệ bảng lcms_courses chi tiết:",
    "context": {
        "msg": "SQLSTATE[HY000] [1049] Unknown database 'ZEUS_speakup' (Connection: zeus, SQL: insert into `lcms_courses` (`cou_created_at`, `cou_id`, `cou_is_sync`, `cou_last_round`, `cou_moodle_id`, `cou_name`, `cou_parent_id`, `cou_quiz_setting_type`, `cou_section_type`, `cou_total_round`, `cou_type`, `cou_type_id`, `cou_updated_at`, `cou_visible`) values (2026-07-03 07:09:19, 5034, 112, 11932, 5513, LOẠI C _  SpeakWell-Kid's Box-All Tests-Official, 5032, 36, ?, 2, quiz, ?, 2026-07-03 07:13:32, 1), (2026-07-06 03:20:36, 5035, 112, ?, 248, Hybrid Materials, 0, ?, ?, ?, category, ?, 2026-07-06 03:21:12, 1), (2026-07-06 03:21:29, 5036, 112, ?, 226, [Center] Easy IELTS 25 - Foundation, 5035, ?, ?, ?, course, 1, 2026-07-06 03:21:38, 1), (2026-07-06 03:21:49, 5037, 112, ?, 1838, Lesson 1 Reading, 5036, ?, 2, ?, section, ?, 2026-07-06 03:23:09, 1), (2026-07-06 03:21:51, 5038, 112, ?, 1839, Lesson 2 Listening, 5036, ?, 2, ?, section, ?, 2026-07-06 03:23:27, 1), (2026-07-06 03:21:52, 5039, 112, ?, 1840, Topic 3, 5036, ?, 2, ?, section, ?, 2026-07-06 03:21:52, 1), (2026-07-06 03:21:53, 5040, 112, ?, 1841, Topic 4, 5036, ?, 2, ?, section, ?, 2026-07-06 03:21:53, 1), (2026-07-06 03:21:54, 5041, 112, ?, 1842, Topic 5, 5036, ?, 2, ?, section, ?, 2026-07-06 03:21:54, 1), (2026-07-06 03:59:50, 5042, 112, ?, 1843, Topic 6, 5036, ?, 2, ?, section, ?, 2026-07-06 03:59:50, 1), (2026-07-06 03:59:52, 5043, 112, ?, 1844, Topic 7, 5036, ?, 2, ?, section, ?, 2026-07-06 03:59:52, 1), (2026-07-06 03:59:54, 5044, 112, ?, 1845, Topic 8, 5036, ?, 2, ?, section, ?, 2026-07-06 03:59:54, 1), (2026-07-06 03:59:56, 5045, 112, ?, 1846, Topic 9, 5036, ?, 2, ?, section, ?, 2026-07-06 03:59:56, 1), (2026-07-06 03:59:57, 5046, 112, ?, 1847, Topic 10, 5036, ?, 2, ?, section, ?, 2026-07-06 03:59:57, 1) on duplicate key update `cou_moodle_id` = values(`cou_moodle_id`), `cou_name` = values(`cou_name`), `cou_type` = values(`cou_type`), `cou_parent_id` = values(`cou_parent_id`), `cou_total_round` = values(`cou_total_round`), `cou_last_round` = values(`cou_last_round`), `cou_section_type` = values(`cou_section_type`), `cou_quiz_setting_type` = values(`cou_quiz_setting_type`), `cou_type_id` = values(`cou_type_id`), `cou_visible` = values(`cou_visible`), `cou_is_sync` = values(`cou_is_sync`), `cou_updated_at` = values(`cou_updated_at`))",
        "trace": "#0 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connection.php(779): Illuminate\\Database\\Connection->runQueryCallback()\n#1 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connection.php(584): Illuminate\\Database\\Connection->run()\n#2 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Query\/Builder.php(3917): Illuminate\\Database\\Connection->affectingStatement()\n#3 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(599): Illuminate\\Database\\Query\\Builder->upsert()\n#4 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Concerns\/BuildsQueries.php(59): App\\Console\\Commands\\LmsDailySyncCommand->App\\Console\\Commands\\{closure}()\n#5 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(589): Illuminate\\Database\\Query\\Builder->chunk()\n#6 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(125): App\\Console\\Commands\\LmsDailySyncCommand->mirrorToZeus()\n#7 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(36): App\\Console\\Commands\\LmsDailySyncCommand->handle()\n#8 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()\n#9 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(95): Illuminate\\Container\\Util::unwrapIfClosure()\n#10 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()\n#11 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/Container.php(696): Illuminate\\Container\\BoundMethod::call()\n#12 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Console\/Command.php(213): Illuminate\\Container\\Container->call()\n#13 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Command\/Command.php(341): Illuminate\\Console\\Command->execute()\n#14 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Console\/Command.php(182): Symfony\\Component\\Console\\Command\\Command->run()\n#15 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(1117): Illuminate\\Console\\Command->run()\n#16 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()\n#17 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(195): Symfony\\Component\\Console\\Application->doRun()\n#18 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Console\/Kernel.php(198): Symfony\\Component\\Console\\Application->run()\n#19 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()\n#20 \/var\/www\/html\/lms_hocmai\/artisan(13): Illuminate\\Foundation\\Application->handleCommand()\n#21 {main}"
    }
}
{
    "timestamp": "2026-07-06 04:00:06",
    "level": "ERROR",
    "message": "[mirrorToZeus] Bắt catch ngoại lệ bảng lcms_course_student chi tiết:",
    "context": {
        "msg": "SQLSTATE[HY000] [1049] Unknown database 'ZEUS_speakup' (Connection: zeus, SQL: insert into `lcms_course_student` (`coustu_course_end`, `coustu_course_id`, `coustu_created_at`, `coustu_id`, `coustu_is_sync`, `coustu_student_id`, `coustu_updated_at`, `coustu_user_id`) values (2028-03-06 08:10:49, 218, 2026-03-06 08:10:49, 4974, 112, 41, 2026-07-03 12:23:09, 228), (2029-07-05 12:00:39, 887, 2026-07-05 12:00:39, 5367, 112, 3627, 2026-07-05 12:00:39, 449) on duplicate key update `coustu_student_id` = values(`coustu_student_id`), `coustu_user_id` = values(`coustu_user_id`), `coustu_course_id` = values(`coustu_course_id`), `coustu_course_end` = values(`coustu_course_end`), `coustu_is_sync` = values(`coustu_is_sync`), `coustu_updated_at` = values(`coustu_updated_at`))",
        "trace": "#0 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connection.php(779): Illuminate\\Database\\Connection->runQueryCallback()\n#1 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connection.php(584): Illuminate\\Database\\Connection->run()\n#2 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Query\/Builder.php(3917): Illuminate\\Database\\Connection->affectingStatement()\n#3 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(599): Illuminate\\Database\\Query\\Builder->upsert()\n#4 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Concerns\/BuildsQueries.php(59): App\\Console\\Commands\\LmsDailySyncCommand->App\\Console\\Commands\\{closure}()\n#5 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(589): Illuminate\\Database\\Query\\Builder->chunk()\n#6 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(125): App\\Console\\Commands\\LmsDailySyncCommand->mirrorToZeus()\n#7 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(36): App\\Console\\Commands\\LmsDailySyncCommand->handle()\n#8 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()\n#9 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(95): Illuminate\\Container\\Util::unwrapIfClosure()\n#10 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()\n#11 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/Container.php(696): Illuminate\\Container\\BoundMethod::call()\n#12 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Console\/Command.php(213): Illuminate\\Container\\Container->call()\n#13 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Command\/Command.php(341): Illuminate\\Console\\Command->execute()\n#14 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Console\/Command.php(182): Symfony\\Component\\Console\\Command\\Command->run()\n#15 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(1117): Illuminate\\Console\\Command->run()\n#16 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()\n#17 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(195): Symfony\\Component\\Console\\Application->doRun()\n#18 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Console\/Kernel.php(198): Symfony\\Component\\Console\\Application->run()\n#19 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()\n#20 \/var\/www\/html\/lms_hocmai\/artisan(13): Illuminate\\Foundation\\Application->handleCommand()\n#21 {main}"
    }
}
{
    "timestamp": "2026-07-06 04:00:06",
    "level": "ERROR",
    "message": "[mirrorToZeus] Bắt catch ngoại lệ bảng lcms_student_scores chi tiết:",
    "context": {
        "msg": "SQLSTATE[HY000] [1049] Unknown database 'ZEUS_speakup' (Connection: zeus, SQL: insert into `lcms_student_scores` (`stusco_course_id`, `stusco_created_at`, `stusco_history_contest_id`, `stusco_id`, `stusco_is_sync`, `stusco_mock_contest_id`, `stusco_overall_score`, `stusco_score_status`, `stusco_student_id`, `stusco_updated_at`, `stusco_user_id`) values (108, 2026-03-09 17:00:25, 69ae9a383a1374ae51979fea, 3492, 112, 628, -1, 0, 22, 2026-07-06 02:31:49, 248), (108, 2026-03-09 17:02:09, 69ae9aa13a1374ae5197a00a, 3493, 112, 628, -1, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-09 17:02:53, 69ae9acc3a1374ae5197a020, 3494, 112, 628, -1, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-09 17:04:45, 69ae9b3d3a1374ae5197a036, 3495, 112, 628, -1, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-09 17:05:39, 69ae9b733a1374ae5197a04c, 3496, 112, 628, 0, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-09 17:07:09, 69ae9bcc3a1374ae5197a0f8, 3497, 112, 628, 0, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-09 17:07:51, 69ae9bf63a1374ae5197a1ac, 3498, 112, 628, 0, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-31 10:21:25, 69cb3db57fc76107abb2bc0d, 3700, 112, 628, 1, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-31 10:33:23, 69cb407f7fc76107abb2bcdc, 3702, 112, 628, 2, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-05-18 15:15:24, 6a0aca9c9b1fc6bf18eccdd9, 3935, 112, 628, -1, 0, 22, 2026-07-06 03:15:55, 248), (569, 2026-06-25 10:00:30, 6a3cfc3d762f13a1d09ca823, 4111, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (569, 2026-06-25 10:31:55, 6a3d039a762f13a1d09ca872, 4112, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (569, 2026-06-25 10:41:11, 6a3d05c7762f13a1d09ca8dd, 4114, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (569, 2026-06-25 10:45:30, 6a3d06bd762f13a1d09ca958, 4117, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (5014, 2026-06-25 10:49:26, 6a3d07b6762f13a1d09ca9ab, 4118, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (5014, 2026-06-25 10:51:15, 6a3d0823762f13a1d09ca9e6, 4119, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (5014, 2026-06-25 10:53:59, 6a3d08c7762f13a1d09caa07, 4124, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (5014, 2026-06-25 10:54:18, 6a3d08da762f13a1d09caa1e, 4125, 112, 712, 0.1, 1, 1, 2026-07-03 10:29:07, 485), (569, 2026-07-03 10:12:15, 6a478aff0402e7d001cd935a, 4173, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (569, 2026-07-03 10:16:12, 6a478bec0402e7d001cd939e, 4174, 112, 712, 1.5, 1, 1, 2026-07-03 10:29:07, 485), (108, 2026-07-06 02:31:52, 6a4b1398d9cf97dd74c03269, 4175, 112, 628, 0.5, 0, 22, 2026-07-06 03:59:57, 248) on duplicate key update `stusco_student_id` = values(`stusco_student_id`), `stusco_user_id` = values(`stusco_user_id`), `stusco_course_id` = values(`stusco_course_id`), `stusco_mock_contest_id` = values(`stusco_mock_contest_id`), `stusco_score_status` = values(`stusco_score_status`), `stusco_history_contest_id` = values(`stusco_history_contest_id`), `stusco_overall_score` = values(`stusco_overall_score`), `stusco_is_sync` = values(`stusco_is_sync`), `stusco_updated_at` = values(`stusco_updated_at`))",
        "trace": "#0 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connection.php(779): Illuminate\\Database\\Connection->runQueryCallback()\n#1 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connection.php(584): Illuminate\\Database\\Connection->run()\n#2 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Query\/Builder.php(3917): Illuminate\\Database\\Connection->affectingStatement()\n#3 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(599): Illuminate\\Database\\Query\\Builder->upsert()\n#4 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Concerns\/BuildsQueries.php(59): App\\Console\\Commands\\LmsDailySyncCommand->App\\Console\\Commands\\{closure}()\n#5 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(589): Illuminate\\Database\\Query\\Builder->chunk()\n#6 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(125): App\\Console\\Commands\\LmsDailySyncCommand->mirrorToZeus()\n#7 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(36): App\\Console\\Commands\\LmsDailySyncCommand->handle()\n#8 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()\n#9 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(95): Illuminate\\Container\\Util::unwrapIfClosure()\n#10 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()\n#11 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/Container.php(696): Illuminate\\Container\\BoundMethod::call()\n#12 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Console\/Command.php(213): Illuminate\\Container\\Container->call()\n#13 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Command\/Command.php(341): Illuminate\\Console\\Command->execute()\n#14 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Console\/Command.php(182): Symfony\\Component\\Console\\Command\\Command->run()\n#15 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(1117): Illuminate\\Console\\Command->run()\n#16 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()\n#17 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(195): Symfony\\Component\\Console\\Application->doRun()\n#18 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Console\/Kernel.php(198): Symfony\\Component\\Console\\Application->run()\n#19 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()\n#20 \/var\/www\/html\/lms_hocmai\/artisan(13): Illuminate\\Foundation\\Application->handleCommand()\n#21 {main}"
    }
}
{
    "timestamp": "2026-07-06 04:00:06",
    "level": "ERROR",
    "message": "[mirrorToZeus] Bắt catch ngoại lệ bảng lcms_user_assignments chi tiết:",
    "context": {
        "msg": "SQLSTATE[HY000] [1049] Unknown database 'ZEUS_speakup' (Connection: zeus, SQL: insert into `lcms_user_assignments` (`usrasi_completion_state`, `usrasi_completion_time`, `usrasi_course_id`, `usrasi_created_at`, `usrasi_id`, `usrasi_is_cron`, `usrasi_is_sync`, `usrasi_payload_data`, `usrasi_response_data`, `usrasi_section_id`, `usrasi_student_id`, `usrasi_updated_at`, `usrasi_zeus_id`) values (1, 2025-12-22 10:34:00, 4997, 2026-07-01 10:25:09, 119, 1, 112, {\"course_id\": 221, \"section_id\": 1833, \"start_date\": \"2026-07-01 09:00:00\", \"tenant_key\": \"VWvi4u56mb\", \"zeus_user_id\": 485, \"x_tenant_code\": \"ICC\", \"completion_time\": \"2025-12-22 10:34:00\"}, {\"course\": {\"id\": 221, \"name\": \"Khóa học 65\"}, \"section\": {\"id\": 1833, \"name\": \"Topic 6\"}}, 5027, 1, 2026-07-05 02:00:15, 485) on duplicate key update `usrasi_course_id` = values(`usrasi_course_id`), `usrasi_section_id` = values(`usrasi_section_id`), `usrasi_zeus_id` = values(`usrasi_zeus_id`), `usrasi_student_id` = values(`usrasi_student_id`), `usrasi_completion_time` = values(`usrasi_completion_time`), `usrasi_completion_state` = values(`usrasi_completion_state`), `usrasi_payload_data` = values(`usrasi_payload_data`), `usrasi_response_data` = values(`usrasi_response_data`), `usrasi_is_cron` = values(`usrasi_is_cron`), `usrasi_is_sync` = values(`usrasi_is_sync`), `usrasi_updated_at` = values(`usrasi_updated_at`))",
        "trace": "#0 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connection.php(779): Illuminate\\Database\\Connection->runQueryCallback()\n#1 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connection.php(584): Illuminate\\Database\\Connection->run()\n#2 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Query\/Builder.php(3917): Illuminate\\Database\\Connection->affectingStatement()\n#3 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(599): Illuminate\\Database\\Query\\Builder->upsert()\n#4 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Concerns\/BuildsQueries.php(59): App\\Console\\Commands\\LmsDailySyncCommand->App\\Console\\Commands\\{closure}()\n#5 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(589): Illuminate\\Database\\Query\\Builder->chunk()\n#6 \/var\/www\/html\/lms_hocmai\/app\/Console\/Commands\/LmsDailySyncCommand.php(125): App\\Console\\Commands\\LmsDailySyncCommand->mirrorToZeus()\n#7 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(36): App\\Console\\Commands\\LmsDailySyncCommand->handle()\n#8 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()\n#9 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(95): Illuminate\\Container\\Util::unwrapIfClosure()\n#10 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()\n#11 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/Container.php(696): Illuminate\\Container\\BoundMethod::call()\n#12 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Console\/Command.php(213): Illuminate\\Container\\Container->call()\n#13 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Command\/Command.php(341): Illuminate\\Console\\Command->execute()\n#14 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Console\/Command.php(182): Symfony\\Component\\Console\\Command\\Command->run()\n#15 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(1117): Illuminate\\Console\\Command->run()\n#16 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand()\n#17 \/var\/www\/html\/lms_hocmai\/vendor\/symfony\/console\/Application.php(195): Symfony\\Component\\Console\\Application->doRun()\n#18 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Console\/Kernel.php(198): Symfony\\Component\\Console\\Application->run()\n#19 \/var\/www\/html\/lms_hocmai\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle()\n#20 \/var\/www\/html\/lms_hocmai\/artisan(13): Illuminate\\Foundation\\Application->handleCommand()\n#21 {main}"
    }
}
{
    "timestamp": "2026-07-06 04:00:06",
    "level": "INFO",
    "message": "[mirrorToZeus] Xong tất cả. Tổng = 0"
}
{
    "timestamp": "2026-07-06 04:00:06",
    "level": "INFO",
    "message": "[LmsDailySync] Hoàn thành",
    "context": {
        "tenantCode": "ICC",
        "isSync": 112,
        "elapsed_s": -0.762147,
        "syncCourseTypes": {
            "synced": 0
        },
        "syncCourses": {
            "synced": 13
        },
        "syncStudents": {
            "synced": 2
        },
        "syncCourseStudents": {
            "synced": 2
        },
        "syncStudentScores": {
            "synced": 21
        },
        "syncUserAssignments": {
            "synced": 1
        },
        "mirrorToZeus": {
            "synced": 0,
            "error": "Mirror lcms_students lỗi: SQLSTATE[HY000] [1049] Unknown database 'ZEUS_speakup' (Connection: zeus, SQL: insert into `lcms_students` (`stu_created_at`, `stu_dob`, `stu_email`, `stu_gender`, `stu_id`, `stu_is_sync`, `stu_name`, `stu_phone`, `stu_updated_at`, `stu_user_id`, `stu_username`) values (2025-09-08 03:11:41, 2029-05-11, test3@hocmai.vn, Male, 41, 112, Test HM, 0912616652, 2026-07-03 12:23:09, 228, test.hm.test3), (2025-12-30 12:25:40, ?, hs4@hocmai.vn, Female, 3627, 112, HỌC SINH BỐN, ?, 2026-07-05 12:00:39, 449, SPW69181199) on duplicate key update `stu_name` = values(`stu_name`), `stu_email` = values(`stu_email`), `stu_username` = values(`stu_username`), `stu_user_id` = values(`stu_user_id`), `stu_phone` = values(`stu_phone`), `stu_dob` = values(`stu_dob`), `stu_gender` = values(`stu_gender`), `stu_is_sync` = values(`stu_is_sync`), `stu_updated_at` = values(`stu_updated_at`)) | Mirror lcms_courses lỗi: SQLSTATE[HY000] [1049] Unknown database 'ZEUS_speakup' (Connection: zeus, SQL: insert into `lcms_courses` (`cou_created_at`, `cou_id`, `cou_is_sync`, `cou_last_round`, `cou_moodle_id`, `cou_name`, `cou_parent_id`, `cou_quiz_setting_type`, `cou_section_type`, `cou_total_round`, `cou_type`, `cou_type_id`, `cou_updated_at`, `cou_visible`) values (2026-07-03 07:09:19, 5034, 112, 11932, 5513, LOẠI C _  SpeakWell-Kid's Box-All Tests-Official, 5032, 36, ?, 2, quiz, ?, 2026-07-03 07:13:32, 1), (2026-07-06 03:20:36, 5035, 112, ?, 248, Hybrid Materials, 0, ?, ?, ?, category, ?, 2026-07-06 03:21:12, 1), (2026-07-06 03:21:29, 5036, 112, ?, 226, [Center] Easy IELTS 25 - Foundation, 5035, ?, ?, ?, course, 1, 2026-07-06 03:21:38, 1), (2026-07-06 03:21:49, 5037, 112, ?, 1838, Lesson 1 Reading, 5036, ?, 2, ?, section, ?, 2026-07-06 03:23:09, 1), (2026-07-06 03:21:51, 5038, 112, ?, 1839, Lesson 2 Listening, 5036, ?, 2, ?, section, ?, 2026-07-06 03:23:27, 1), (2026-07-06 03:21:52, 5039, 112, ?, 1840, Topic 3, 5036, ?, 2, ?, section, ?, 2026-07-06 03:21:52, 1), (2026-07-06 03:21:53, 5040, 112, ?, 1841, Topic 4, 5036, ?, 2, ?, section, ?, 2026-07-06 03:21:53, 1), (2026-07-06 03:21:54, 5041, 112, ?, 1842, Topic 5, 5036, ?, 2, ?, section, ?, 2026-07-06 03:21:54, 1), (2026-07-06 03:59:50, 5042, 112, ?, 1843, Topic 6, 5036, ?, 2, ?, section, ?, 2026-07-06 03:59:50, 1), (2026-07-06 03:59:52, 5043, 112, ?, 1844, Topic 7, 5036, ?, 2, ?, section, ?, 2026-07-06 03:59:52, 1), (2026-07-06 03:59:54, 5044, 112, ?, 1845, Topic 8, 5036, ?, 2, ?, section, ?, 2026-07-06 03:59:54, 1), (2026-07-06 03:59:56, 5045, 112, ?, 1846, Topic 9, 5036, ?, 2, ?, section, ?, 2026-07-06 03:59:56, 1), (2026-07-06 03:59:57, 5046, 112, ?, 1847, Topic 10, 5036, ?, 2, ?, section, ?, 2026-07-06 03:59:57, 1) on duplicate key update `cou_moodle_id` = values(`cou_moodle_id`), `cou_name` = values(`cou_name`), `cou_type` = values(`cou_type`), `cou_parent_id` = values(`cou_parent_id`), `cou_total_round` = values(`cou_total_round`), `cou_last_round` = values(`cou_last_round`), `cou_section_type` = values(`cou_section_type`), `cou_quiz_setting_type` = values(`cou_quiz_setting_type`), `cou_type_id` = values(`cou_type_id`), `cou_visible` = values(`cou_visible`), `cou_is_sync` = values(`cou_is_sync`), `cou_updated_at` = values(`cou_updated_at`)) | Mirror lcms_course_student lỗi: SQLSTATE[HY000] [1049] Unknown database 'ZEUS_speakup' (Connection: zeus, SQL: insert into `lcms_course_student` (`coustu_course_end`, `coustu_course_id`, `coustu_created_at`, `coustu_id`, `coustu_is_sync`, `coustu_student_id`, `coustu_updated_at`, `coustu_user_id`) values (2028-03-06 08:10:49, 218, 2026-03-06 08:10:49, 4974, 112, 41, 2026-07-03 12:23:09, 228), (2029-07-05 12:00:39, 887, 2026-07-05 12:00:39, 5367, 112, 3627, 2026-07-05 12:00:39, 449) on duplicate key update `coustu_student_id` = values(`coustu_student_id`), `coustu_user_id` = values(`coustu_user_id`), `coustu_course_id` = values(`coustu_course_id`), `coustu_course_end` = values(`coustu_course_end`), `coustu_is_sync` = values(`coustu_is_sync`), `coustu_updated_at` = values(`coustu_updated_at`)) | Mirror lcms_student_scores lỗi: SQLSTATE[HY000] [1049] Unknown database 'ZEUS_speakup' (Connection: zeus, SQL: insert into `lcms_student_scores` (`stusco_course_id`, `stusco_created_at`, `stusco_history_contest_id`, `stusco_id`, `stusco_is_sync`, `stusco_mock_contest_id`, `stusco_overall_score`, `stusco_score_status`, `stusco_student_id`, `stusco_updated_at`, `stusco_user_id`) values (108, 2026-03-09 17:00:25, 69ae9a383a1374ae51979fea, 3492, 112, 628, -1, 0, 22, 2026-07-06 02:31:49, 248), (108, 2026-03-09 17:02:09, 69ae9aa13a1374ae5197a00a, 3493, 112, 628, -1, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-09 17:02:53, 69ae9acc3a1374ae5197a020, 3494, 112, 628, -1, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-09 17:04:45, 69ae9b3d3a1374ae5197a036, 3495, 112, 628, -1, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-09 17:05:39, 69ae9b733a1374ae5197a04c, 3496, 112, 628, 0, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-09 17:07:09, 69ae9bcc3a1374ae5197a0f8, 3497, 112, 628, 0, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-09 17:07:51, 69ae9bf63a1374ae5197a1ac, 3498, 112, 628, 0, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-31 10:21:25, 69cb3db57fc76107abb2bc0d, 3700, 112, 628, 1, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-03-31 10:33:23, 69cb407f7fc76107abb2bcdc, 3702, 112, 628, 2, 0, 22, 2026-07-06 03:15:55, 248), (108, 2026-05-18 15:15:24, 6a0aca9c9b1fc6bf18eccdd9, 3935, 112, 628, -1, 0, 22, 2026-07-06 03:15:55, 248), (569, 2026-06-25 10:00:30, 6a3cfc3d762f13a1d09ca823, 4111, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (569, 2026-06-25 10:31:55, 6a3d039a762f13a1d09ca872, 4112, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (569, 2026-06-25 10:41:11, 6a3d05c7762f13a1d09ca8dd, 4114, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (569, 2026-06-25 10:45:30, 6a3d06bd762f13a1d09ca958, 4117, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (5014, 2026-06-25 10:49:26, 6a3d07b6762f13a1d09ca9ab, 4118, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (5014, 2026-06-25 10:51:15, 6a3d0823762f13a1d09ca9e6, 4119, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (5014, 2026-06-25 10:53:59, 6a3d08c7762f13a1d09caa07, 4124, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (5014, 2026-06-25 10:54:18, 6a3d08da762f13a1d09caa1e, 4125, 112, 712, 0.1, 1, 1, 2026-07-03 10:29:07, 485), (569, 2026-07-03 10:12:15, 6a478aff0402e7d001cd935a, 4173, 112, 712, -1, 0, 1, 2026-07-03 10:29:07, 485), (569, 2026-07-03 10:16:12, 6a478bec0402e7d001cd939e, 4174, 112, 712, 1.5, 1, 1, 2026-07-03 10:29:07, 485), (108, 2026-07-06 02:31:52, 6a4b1398d9cf97dd74c03269, 4175, 112, 628, 0.5, 0, 22, 2026-07-06 03:59:57, 248) on duplicate key update `stusco_student_id` = values(`stusco_student_id`), `stusco_user_id` = values(`stusco_user_id`), `stusco_course_id` = values(`stusco_course_id`), `stusco_mock_contest_id` = values(`stusco_mock_contest_id`), `stusco_score_status` = values(`stusco_score_status`), `stusco_history_contest_id` = values(`stusco_history_contest_id`), `stusco_overall_score` = values(`stusco_overall_score`), `stusco_is_sync` = values(`stusco_is_sync`), `stusco_updated_at` = values(`stusco_updated_at`)) | Mirror lcms_user_assignments lỗi: SQLSTATE[HY000] [1049] Unknown database 'ZEUS_speakup' (Connection: zeus, SQL: insert into `lcms_user_assignments` (`usrasi_completion_state`, `usrasi_completion_time`, `usrasi_course_id`, `usrasi_created_at`, `usrasi_id`, `usrasi_is_cron`, `usrasi_is_sync`, `usrasi_payload_data`, `usrasi_response_data`, `usrasi_section_id`, `usrasi_student_id`, `usrasi_updated_at`, `usrasi_zeus_id`) values (1, 2025-12-22 10:34:00, 4997, 2026-07-01 10:25:09, 119, 1, 112, {\"course_id\": 221, \"section_id\": 1833, \"start_date\": \"2026-07-01 09:00:00\", \"tenant_key\": \"VWvi4u56mb\", \"zeus_user_id\": 485, \"x_tenant_code\": \"ICC\", \"completion_time\": \"2025-12-22 10:34:00\"}, {\"course\": {\"id\": 221, \"name\": \"Khóa học 65\"}, \"section\": {\"id\": 1833, \"name\": \"Topic 6\"}}, 5027, 1, 2026-07-05 02:00:15, 485) on duplicate key update `usrasi_course_id` = values(`usrasi_course_id`), `usrasi_section_id` = values(`usrasi_section_id`), `usrasi_zeus_id` = values(`usrasi_zeus_id`), `usrasi_student_id` = values(`usrasi_student_id`), `usrasi_completion_time` = values(`usrasi_completion_time`), `usrasi_completion_state` = values(`usrasi_completion_state`), `usrasi_payload_data` = values(`usrasi_payload_data`), `usrasi_response_data` = values(`usrasi_response_data`), `usrasi_is_cron` = values(`usrasi_is_cron`), `usrasi_is_sync` = values(`usrasi_is_sync`), `usrasi_updated_at` = values(`usrasi_updated_at`))"
        }
    }
}
