Go to file
Marc Rejohn Castillano d484f62cbd Implement push notification reminder system with 9 notification types
Adds comprehensive push notification reminders using pg_cron + pg_net:
- Shift check-in reminder (15 min before, with countdown banner)
- Shift check-out reminder (hourly, persistent until checkout)
- Overtime idle reminder (15 min without task)
- Overtime checkout reminder (30 min after task completion)
- IT service request event reminder (1 hour before event)
- IT service request evidence reminder (daily)
- Paused task reminder (daily)
- Backlog reminder (15 min before shift end)
- Pass slip expiry reminder (15 min before 1-hour limit, with countdown banner)

Database: Extended scheduled_notifications table to support polymorphic references
(schedule_id, task_id, it_service_request_id, pass_slip_id) with unique constraint
and epoch column for deduplication. Implemented 8 enqueue functions + master dispatcher.
Uses pg_cron every minute to enqueue and pg_net to trigger process_scheduled_notifications
edge function, eliminating need for external cron job. Credentials stored in vault with
GUC fallback for flexibility.

Flutter: Added ShiftCountdownBanner and PassSlipCountdownBanner widgets that display
persistent countdown timers for active shifts and pass slips. Both auto-dismiss when
user completes the action. FCM handler triggers shift countdown on start_15 messages.
navigate_to field in data payload enables flexible routing to any screen.

Edge function: Updated process_scheduled_notifications to handle all 9 types with
appropriate titles, bodies, and routing. Includes pass_slip_id in idempotency tracking.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-20 18:26:48 +08:00
.claude Added Claude Skills 2026-03-20 15:14:21 +08:00
.github Improve copilot instructions 2026-02-22 21:04:30 +08:00
.vscode chore: remove unused profile lock migration and admin_profile_service 2026-02-18 18:13:10 +08:00
android A more robust self hosted OTA updates implementation 2026-03-13 07:15:28 +08:00
assets OTA Updates for adnroid app and web apk uploader 2026-03-15 19:24:34 +08:00
ios * Workforce, Schedule generation and geofencing. 2026-02-09 22:19:31 +08:00
lib Implement push notification reminder system with 9 notification types 2026-03-20 18:26:48 +08:00
linux platform specific registry 2026-03-07 23:47:18 +08:00
macos OTA Update attempt 2026-03-11 22:28:38 +08:00
supabase Implement push notification reminder system with 9 notification types 2026-03-20 18:26:48 +08:00
test Allow task completion even if signatories are still empty, put an indicator for completed tasks with incomplete details. 2026-02-24 22:08:53 +08:00
web Face Recognition with Liveness Detection for Web Support 2026-03-08 10:19:03 +08:00
windows A more robust pdf generation > preview > print workflow 2026-02-25 20:59:21 +08:00
.gitignore gitignore 2026-02-09 20:10:13 +08:00
.metadata Initial commit 2026-02-09 20:10:42 +08:00
analysis_options.yaml Initial commit 2026-02-09 20:10:42 +08:00
CLAUDE.md chore: remove unused profile lock migration and admin_profile_service 2026-02-18 18:13:10 +08:00
firebase.json * Push Notification Setup and attempt 2026-02-24 21:06:46 +08:00
GEMINI.md chore: remove unused profile lock migration and admin_profile_service 2026-02-18 18:13:10 +08:00
pubspec.lock No need update check for web 2026-03-12 20:38:19 +08:00
pubspec.yaml No need update check for web 2026-03-12 20:38:19 +08:00
README.md Initial commit 2026-02-09 20:10:42 +08:00
RELEASE_NOTES.md Release notes for alpha v0.0.0.1 2026-02-22 21:02:24 +08:00

tasq

A new Flutter project.