[2026-03-26 00:00:10] [notification_received] Schedule 168 acknowledged by user_id=20 (event=received)
[2026-03-26 00:00:10] [notification_received] Schedule 170 acknowledged by user_id=20 (event=received)
[2026-03-26 00:00:10] [notification_received] Schedule 169 acknowledged by user_id=20 (event=received)
[2026-03-26 03:45:06] [fcm_token] FCM token saved/updated: user_id=6 device_type=android
[2026-03-26 03:45:12] [notification_received] Schedule 50 acknowledged by user_id=6 (event=received)
[2026-03-26 03:45:14] [notification_received] Schedule 51 acknowledged by user_id=6 (event=received)
[2026-03-26 03:45:17] [notification_received] Schedule 153 acknowledged by user_id=6 (event=received)
[2026-03-26 03:50:03] [notification_received] Schedule 50 acknowledged by user_id=6 (event=tapped)
[2026-03-26 03:53:00] [notification_received] Schedule 50 acknowledged by user_id=6 (event=received)
[2026-03-26 03:53:03] [notification_received] Schedule 51 acknowledged by user_id=6 (event=received)
[2026-03-26 04:00:03] [notification_received] Schedule 51 acknowledged by user_id=6 (event=tapped)
[2026-03-26 04:00:06] [notification_received] Schedule 153 acknowledged by user_id=6 (event=received)
[2026-03-26 04:10:17] [notification_received] Schedule 227 acknowledged by user_id=15 (event=tapped)
[2026-03-26 04:10:18] [fcm_token] FCM token saved/updated: user_id=15 device_type=android
[2026-03-26 04:16:36] [fcm_token] FCM token saved/updated: user_id=5 device_type=android
[2026-03-26 04:16:45] [attendance_code_created] date=2026-03-26 type=first_half
[2026-03-26 04:17:59] [fcm_token] FCM token saved/updated: user_id=7 device_type=android
[2026-03-26 04:18:06] [attendance_login] user_id=7 date=2026-03-26 first_half
[2026-03-26 04:18:24] [fcm_token] FCM token saved/updated: user_id=6 device_type=android
[2026-03-26 04:18:27] [attendance_login] user_id=6 date=2026-03-26 first_half
[2026-03-26 04:26:11] [notification_received] Schedule 162 acknowledged by user_id=17 (event=received)
[2026-03-26 04:26:11] [notification_received] Schedule 164 acknowledged by user_id=17 (event=received)
[2026-03-26 04:26:11] [notification_received] Schedule 172 acknowledged by user_id=17 (event=received)
[2026-03-26 04:26:11] [notification_received] Schedule 163 acknowledged by user_id=17 (event=received)
[2026-03-26 04:26:37] [notification_received] Schedule 162 acknowledged by user_id=17 (event=received)
[2026-03-26 04:26:40] [notification_received] Schedule 163 acknowledged by user_id=17 (event=received)
[2026-03-26 04:26:42] [notification_received] Schedule 164 acknowledged by user_id=17 (event=received)
[2026-03-26 04:26:45] [notification_received] Schedule 172 acknowledged by user_id=17 (event=received)
[2026-03-26 04:30:00] [fcm_token] FCM token saved/updated: user_id=17 device_type=android
[2026-03-26 04:30:21] [attendance_login] user_id=17 date=2026-03-26 first_half
[2026-03-26 04:31:59] [fcm_token] FCM token saved/updated: user_id=21 device_type=android
[2026-03-26 04:32:26] [attendance_login] user_id=21 date=2026-03-26 first_half
[2026-03-26 04:38:05] [notification_received] Schedule 165 acknowledged by user_id=18 (event=received)
[2026-03-26 04:38:07] [notification_received] Schedule 167 acknowledged by user_id=18 (event=received)
[2026-03-26 04:38:08] [notification_received] Schedule 166 acknowledged by user_id=18 (event=received)
[2026-03-26 04:38:10] [attendance_login] user_id=18 date=2026-03-26 first_half
[2026-03-26 04:38:10] [notification_received] Schedule 167 acknowledged by user_id=18 (event=received)
[2026-03-26 04:38:17] [notification_received] Schedule 165 acknowledged by user_id=18 (event=received)
[2026-03-26 04:39:04] [update_leave_day_status] Request: id=95, status=rejected
[2026-03-26 04:39:04] [update_leave_day_status] leave_days UPDATE: affected_rows=1
[2026-03-26 04:39:04] [update_leave_day_status] Skipped schedule update: status=rejected (only approved updates schedules)
[2026-03-26 04:39:04] [update_leave_day_status] Response: success, schedules_updated=0
[2026-03-26 04:39:05] [update_leave_day_status] Request: id=94, status=rejected
[2026-03-26 04:39:05] [update_leave_day_status] leave_days UPDATE: affected_rows=1
[2026-03-26 04:39:05] [update_leave_day_status] Skipped schedule update: status=rejected (only approved updates schedules)
[2026-03-26 04:39:05] [update_leave_day_status] Response: success, schedules_updated=0
[2026-03-26 04:39:19] [fcm_token] FCM token saved/updated: user_id=5 device_type=android
[2026-03-26 07:59:27] [attendance_code_created] date=2026-03-26 type=second_half
[2026-03-26 08:14:57] [fcm_token] FCM token saved/updated: user_id=21 device_type=android
[2026-03-26 08:15:33] [attendance_logout] user_id=21 date=2026-03-26 first_half
[2026-03-26 08:15:40] [attendance_logout] user_id=18 date=2026-03-26 first_half
[2026-03-26 08:15:47] [attendance_login] user_id=18 date=2026-03-26 second_half
[2026-03-26 08:15:50] [attendance_login] user_id=21 date=2026-03-26 second_half
[2026-03-26 08:15:52] [attendance_logout] user_id=18 date=2026-03-26 second_half
[2026-03-26 08:15:55] [attendance_logout] user_id=21 date=2026-03-26 second_half
[2026-03-26 08:18:36] [fcm_token] FCM token saved/updated: user_id=21 device_type=android
[2026-03-26 08:19:29] [fcm_token] FCM token saved/updated: user_id=5 device_type=android
[2026-03-26 08:20:06] [fcm_token] FCM token saved/updated: user_id=5 device_type=android
[2026-03-26 08:20:10] [fcm_token] FCM token saved/updated: user_id=5 device_type=android
[2026-03-26 08:40:08] [fcm_token] FCM token saved/updated: user_id=20 device_type=android
[2026-03-26 08:45:33] [fcm_token] FCM token saved/updated: user_id=23 device_type=android
[2026-03-26 09:48:22] [fcm_token] FCM token saved/updated: user_id=17 device_type=android
[2026-03-26 09:48:33] [attendance_logout] user_id=17 date=2026-03-26 first_half
[2026-03-26 09:48:38] [attendance_login] user_id=17 date=2026-03-26 second_half
[2026-03-26 09:48:43] [attendance_logout] user_id=17 date=2026-03-26 second_half
[2026-03-26 10:20:16] [attendance_logout] user_id=6 date=2026-03-26 first_half
[2026-03-26 10:20:20] [attendance_login] user_id=6 date=2026-03-26 second_half
[2026-03-26 10:20:23] [attendance_logout] user_id=6 date=2026-03-26 second_half
[2026-03-26 10:20:30] [fcm_token] FCM token saved/updated: user_id=7 device_type=android
[2026-03-26 10:20:34] [attendance_logout] user_id=7 date=2026-03-26 first_half
[2026-03-26 10:20:39] [attendance_login] user_id=7 date=2026-03-26 second_half
[2026-03-26 10:20:41] [attendance_logout] user_id=7 date=2026-03-26 second_half
[2026-03-26 12:00:06] [cron_deactivate_schedules_for_inactive_users] start
[2026-03-26 12:00:06] [cron_deactivate_schedules_for_inactive_users] {"success":true,"message":"No inactive users","inactive_user_ids":[],"schedules_updated":0}
[2026-03-26 12:00:06] [cron_deactivate_schedules_for_inactive_users] end
[2026-03-26 12:00:06] [cron_daily_schedule_fcm] Notification Results:
[2026-03-26 12:00:06] [cron_daily_schedule_fcm] -------------------------
[2026-03-26 12:00:06] [cron_daily_schedule_fcm] All schedules reset: sent = 0
[2026-03-26 12:00:06] [cron_daily_schedule_fcm] Active status updated based on leave dates
[2026-03-26 12:00:06] [cron_daily_schedule_fcm] User pooarasan → Schedule 50 (active=1) sent to 1 device(s)
[2026-03-26 12:00:06] [cron_daily_schedule_fcm] User pooarasan → Schedule 51 (active=1) sent to 1 device(s)
[2026-03-26 12:00:07] [cron_daily_schedule_fcm] User pooarasan → Schedule 153 (active=1) sent to 1 device(s)
[2026-03-26 12:00:07] [cron_daily_schedule_fcm] User Sathish → Schedule 162 (active=1) sent to 1 device(s)
[2026-03-26 12:00:07] [notification_received] Schedule 50 acknowledged by user_id=6 (event=received)
[2026-03-26 12:00:07] [cron_daily_schedule_fcm] User Sathish → Schedule 163 (active=1) sent to 1 device(s)
[2026-03-26 12:00:07] [cron_daily_schedule_fcm] User Sathish → Schedule 164 (active=1) sent to 1 device(s)
[2026-03-26 12:00:08] [cron_daily_schedule_fcm] User Naveen → Schedule 165 (active=1) sent to 1 device(s)
[2026-03-26 12:00:08] [cron_daily_schedule_fcm] User Naveen → Schedule 166 (active=1) sent to 1 device(s)
[2026-03-26 12:00:08] [cron_daily_schedule_fcm] User Naveen → Schedule 167 (active=1) sent to 1 device(s)
[2026-03-26 12:00:08] [cron_daily_schedule_fcm] User Tamil → Schedule 168 (active=1) sent to 1 device(s)
[2026-03-26 12:00:08] [cron_daily_schedule_fcm] User Tamil → Schedule 169 (active=1) sent to 1 device(s)
[2026-03-26 12:00:08] [cron_daily_schedule_fcm] User Tamil → Schedule 170 (active=1) sent to 1 device(s)
[2026-03-26 12:00:09] [cron_daily_schedule_fcm] User Sathish → Schedule 172 (active=1) sent to 1 device(s)
[2026-03-26 12:00:09] [cron_daily_schedule_fcm] -------------------------
[2026-03-26 12:00:09] [cron_daily_schedule_fcm] Total Sent: 13
[2026-03-26 12:00:09] [cron_daily_schedule_fcm] Total Skipped: 0
[2026-03-26 12:00:09] [cron_daily_schedule_fcm] Execution Time: 2.91 sec
[2026-03-26 12:00:09] [cron_daily_schedule_fcm] -------------------------
[2026-03-26 12:00:09] [cron_daily_schedule_fcm] Done.
[2026-03-26 12:00:09] [notification_received] Schedule 51 acknowledged by user_id=6 (event=received)
[2026-03-26 12:00:10] [notification_received] Schedule 170 acknowledged by user_id=20 (event=received)
[2026-03-26 12:00:10] [notification_received] Schedule 169 acknowledged by user_id=20 (event=received)
[2026-03-26 12:00:10] [notification_received] Schedule 168 acknowledged by user_id=20 (event=received)
[2026-03-26 12:00:23] [fcm_token] FCM token saved/updated: user_id=20 device_type=android
[2026-03-26 12:00:25] [notification_received] Schedule 153 acknowledged by user_id=6 (event=received)
[2026-03-26 12:26:34] [notification_received] Schedule 164 acknowledged by user_id=17 (event=received)
[2026-03-26 12:26:34] [notification_received] Schedule 163 acknowledged by user_id=17 (event=received)
[2026-03-26 12:26:34] [notification_received] Schedule 162 acknowledged by user_id=17 (event=received)
[2026-03-26 12:29:41] [notification_received] Schedule 165 acknowledged by user_id=18 (event=received)
[2026-03-26 12:29:46] [notification_received] Schedule 166 acknowledged by user_id=18 (event=received)
[2026-03-26 12:29:49] [notification_received] Schedule 167 acknowledged by user_id=18 (event=received)
[2026-03-26 13:00:06] [cron_deactivate_schedules_for_inactive_users] start
[2026-03-26 13:00:06] [cron_deactivate_schedules_for_inactive_users] {"success":true,"message":"No inactive users","inactive_user_ids":[],"schedules_updated":0}
[2026-03-26 13:00:06] [cron_deactivate_schedules_for_inactive_users] end
[2026-03-26 14:00:07] [cron_deactivate_schedules_for_inactive_users] start
[2026-03-26 14:00:07] [cron_deactivate_schedules_for_inactive_users] {"success":true,"message":"No inactive users","inactive_user_ids":[],"schedules_updated":0}
[2026-03-26 14:00:07] [cron_deactivate_schedules_for_inactive_users] end
[2026-03-26 15:00:07] [cron_deactivate_schedules_for_inactive_users] start
[2026-03-26 15:00:07] [cron_deactivate_schedules_for_inactive_users] {"success":true,"message":"No inactive users","inactive_user_ids":[],"schedules_updated":0}
[2026-03-26 15:00:07] [cron_deactivate_schedules_for_inactive_users] end
[2026-03-26 16:00:10] [cron_deactivate_schedules_for_inactive_users] start
[2026-03-26 16:00:10] [cron_deactivate_schedules_for_inactive_users] {"success":true,"message":"No inactive users","inactive_user_ids":[],"schedules_updated":0}
[2026-03-26 16:00:10] [cron_deactivate_schedules_for_inactive_users] end
[2026-03-26 17:00:09] [cron_deactivate_schedules_for_inactive_users] start
[2026-03-26 17:00:09] [cron_deactivate_schedules_for_inactive_users] {"success":true,"message":"No inactive users","inactive_user_ids":[],"schedules_updated":0}
[2026-03-26 17:00:09] [cron_deactivate_schedules_for_inactive_users] end
[2026-03-26 18:00:07] [cron_deactivate_schedules_for_inactive_users] start
[2026-03-26 18:00:07] [cron_deactivate_schedules_for_inactive_users] {"success":true,"message":"No inactive users","inactive_user_ids":[],"schedules_updated":0}
[2026-03-26 18:00:07] [cron_deactivate_schedules_for_inactive_users] end
[2026-03-26 18:50:20] [fcm_token] FCM token saved/updated: user_id=5 device_type=android
[2026-03-26 18:50:52] [update_attendance] Attendance updated: date=2026-03-26 updated=3 user_ids=23,22,5
[2026-03-26 18:50:55] [update_attendance] Attendance updated: date=2026-03-26 updated=3 user_ids=23,22,5
[2026-03-26 18:50:56] [update_attendance] Attendance updated: date=2026-03-26 updated=3 user_ids=23,22,5
[2026-03-26 18:52:08] [fcm_token] FCM token saved/updated: user_id=5 device_type=android
[2026-03-26 18:55:07] [fcm_token] FCM token saved/updated: user_id=5 device_type=android
[2026-03-26 19:00:08] [cron_deactivate_schedules_for_inactive_users] start
[2026-03-26 19:00:08] [cron_deactivate_schedules_for_inactive_users] {"success":true,"message":"No inactive users","inactive_user_ids":[],"schedules_updated":0}
[2026-03-26 19:00:08] [cron_deactivate_schedules_for_inactive_users] end
[2026-03-26 20:00:05] [cron_deactivate_schedules_for_inactive_users] start
[2026-03-26 20:00:05] [cron_deactivate_schedules_for_inactive_users] {"success":true,"message":"No inactive users","inactive_user_ids":[],"schedules_updated":0}
[2026-03-26 20:00:05] [cron_deactivate_schedules_for_inactive_users] end
[2026-03-26 21:00:08] [cron_deactivate_schedules_for_inactive_users] start
[2026-03-26 21:00:08] [cron_deactivate_schedules_for_inactive_users] {"success":true,"message":"No inactive users","inactive_user_ids":[],"schedules_updated":0}
[2026-03-26 21:00:08] [cron_deactivate_schedules_for_inactive_users] end
[2026-03-26 22:00:06] [cron_deactivate_schedules_for_inactive_users] start
[2026-03-26 22:00:06] [cron_deactivate_schedules_for_inactive_users] {"success":true,"message":"No inactive users","inactive_user_ids":[],"schedules_updated":0}
[2026-03-26 22:00:06] [cron_deactivate_schedules_for_inactive_users] end
[2026-03-26 22:00:32] [fcm_token] FCM token saved/updated: user_id=5 device_type=android
[2026-03-26 23:00:08] [cron_deactivate_schedules_for_inactive_users] start
[2026-03-26 23:00:08] [cron_deactivate_schedules_for_inactive_users] {"success":true,"message":"No inactive users","inactive_user_ids":[],"schedules_updated":0}
[2026-03-26 23:00:08] [cron_deactivate_schedules_for_inactive_users] end
