• Mahmoud Aglan's avatar
    Mobile API Phase 2: Push notifications via Firebase Cloud Messaging · 0b2c6122
    Mahmoud Aglan authored
    - Install kreait/firebase-php SDK
    - Create PushNotificationService with 3-tier credential resolution
      (system_settings → storage file → env var, graceful degradation)
    - Auto-deactivate invalid/unregistered FCM tokens on send failure
    - Add Push case to NotificationChannel enum
    - Create 6 event listeners for push notifications:
      - AttendanceMarked → notify guardians (present/absent)
      - PaymentReceived → confirm payment to guardians
      - InvoiceCreated → alert guardians of new invoice
      - SessionCancelled → notify all group participants
      - EnrollmentCreated → confirm enrollment to guardians
      - EvaluationShared → notify guardians of new evaluation
    - Register all listeners in EventServiceProvider (queued)
    - Create NotificationController API endpoints:
      - GET notifications (paginated + unread count)
      - PATCH notifications/{id}/read
      - POST notifications/read-all
      - GET/POST notifications/preferences
    - Create scheduled push commands:
      - push:session-reminder (every minute, 30min before session)
      - push:installment-due (daily, 1 and 3 days before due)
    - Add channel_push column to notification_preferences
    - Total: 20 API endpoints now live
    Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
    0b2c6122
Name
Last commit
Last update
.claude Loading commit data...
Screenshots Loading commit data...
app Loading commit data...
bootstrap Loading commit data...
config Loading commit data...
database Loading commit data...
docker Loading commit data...
docs Loading commit data...
docs-site Loading commit data...
gap-filling-plans Loading commit data...
marketing-site Loading commit data...
plans Loading commit data...
public Loading commit data...
resources Loading commit data...
routes Loading commit data...
scripts Loading commit data...
storage Loading commit data...
tests Loading commit data...
.dockerignore Loading commit data...
.editorconfig Loading commit data...
.env.example Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.npmrc Loading commit data...
Beanding Guide.txt Loading commit data...
CLAUDE.md Loading commit data...
Dockerfile Loading commit data...
README.md Loading commit data...
artisan Loading commit data...
captain-definition Loading commit data...
composer.json Loading commit data...
composer.lock Loading commit data...
deploy.sh Loading commit data...
elcaptain-sportsonly-db.md Loading commit data...
one-click-app.yml Loading commit data...
package-lock.json Loading commit data...
package.json Loading commit data...
phpunit.xml Loading commit data...
system info.txt Loading commit data...
vite.config.js Loading commit data...