$request->user()->id], ['language' => $request->user()->preferred_language ?? 'en'], ); return $this->ok($prefs->only([ 'pickup_reminder', 'pickup_imminent', 'pickup_completed', 'low_codes_warning', 'codes_purchased', 'schedule_changed', 'household_status', 'sms_enabled', 'email_enabled', 'push_enabled', 'language', ])); } public function update(Request $request): JsonResponse { $data = $request->validate([ 'pickup_reminder' => ['sometimes', 'boolean'], 'pickup_imminent' => ['sometimes', 'boolean'], 'pickup_completed' => ['sometimes', 'boolean'], 'low_codes_warning' => ['sometimes', 'boolean'], 'codes_purchased' => ['sometimes', 'boolean'], 'schedule_changed' => ['sometimes', 'boolean'], 'household_status' => ['sometimes', 'boolean'], 'sms_enabled' => ['sometimes', 'boolean'], 'email_enabled' => ['sometimes', 'boolean'], 'push_enabled' => ['sometimes', 'boolean'], 'language' => ['sometimes', 'in:en,tl,ceb'], ]); $prefs = NotificationPreference::firstOrCreate(['user_id' => $request->user()->id]); $prefs->update($data); return $this->ok($prefs->fresh()->only([ 'pickup_reminder', 'pickup_imminent', 'pickup_completed', 'low_codes_warning', 'codes_purchased', 'schedule_changed', 'household_status', 'sms_enabled', 'email_enabled', 'push_enabled', 'language', ]), 'Preferences updated'); } }