• erio's avatar
    feat(notify): convert email lists to NotifyEmailEntry struct with toggle support · 915b7a4a
    erio authored
    - Change balance_notify_extra_emails and account_quota_notify_emails
      from []string to []NotifyEmailEntry{email, disabled, verified}
    - Add per-email enable/disable toggle for both user and admin notifications
    - Add PUT /user/notify-email/toggle API endpoint
    - Fix critical bug: API key auth cache snapshot missing balance notify
      fields (Email, Username, BalanceNotifyEnabled, etc.), causing
      notifications to never fire on cached request paths
    - Bump cache snapshot version 3→4 to invalidate stale entries
    - Add SQL migration 104 to convert old format data
    - Backward compatible: parseNotifyEmails auto-detects old/new format
    - User balance notify: max 3 emails (primary + 2 extra)
    - Admin quota notify: unlimited emails, each with toggle
    915b7a4a
api_key_repo.go 22.2 KB