presseportale/app
Kevin Adametz 38884a53d6 Perf-Fix: User::accessibleCompanyIds() hydratisiert keine Company-Models mehr
Auf /admin/me/press-releases wurden bei einem User mit sehr vielen Firmen
~107.000 Company-Models geladen. Ursache: accessibleCompanyIds() nutzte
das Eloquent-Relation-pluck() (ownedCompanies()->pluck() / companies()->
pluck()), das pro ID ein vollstaendiges Model hydratisiert. Die Methode
wird ueber PressRelease::scopeAccessibleBy() pro Seitenaufruf ~2x
ausgewertet (Status-Count- + Listen-Query) -> ~2x 53k Models.

Fix:
- toBase()->pluck() statt Relation-pluck(): liefert nur die ID-Werte ohne
  Hydration, wendet die Global Scopes (PortalScope) weiterhin an.
- Ergebnis pro Request memoisiert (cachedAccessibleCompanyIds), da der Scope
  die Methode mehrfach aufruft.

Messung (User 14016, 26.772 Firmen): 107.238 -> 24 hydratisierte
Company-Models auf der PM-Liste. Ergebnis-IDs unveraendert.

Regressionstests: accessibleCompanyIds liefert owned+member ohne Dubletten
und hydratisiert 0 Company-Models.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 11:18:51 +00:00
..
Actions 29-05-2026 Optimierungen Fixes am Code 2026-05-29 12:42:05 +00:00
Console/Commands Optimierung 3.5: Kleinere Zentralisierungen (VAT, findByEmail, Waehrung, Provisioning) 2026-06-19 11:14:05 +00:00
Contracts 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Enums Optimierung Phase 0: Korrektheit & Security 2026-06-19 08:09:02 +00:00
Exceptions Proof-PDF + Extra-PM-Verkauf ueber die Credit-Wallet (Decision-Update 2.1/2.3) 2026-06-17 14:28:08 +00:00
Helpers 19-05-2026 Rebrand Pressekonto, Hub-Flux UI und Legacy-Media-Migration 2026-05-19 16:36:13 +00:00
Http Optimierung 4.3/4.4 (Home): Page-Data-Service + Invokable Controller 2026-06-19 12:14:38 +00:00
Jobs User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
Listeners Optimierung 3.5: Kleinere Zentralisierungen (VAT, findByEmail, Waehrung, Provisioning) 2026-06-19 11:14:05 +00:00
Livewire Optimierung 5.2 (Teil 1): ProvidesUserFormRules-Concern 2026-06-19 12:41:57 +00:00
Mail 19-05-2026 Rebrand Pressekonto, Hub-Flux UI und Legacy-Media-Migration 2026-05-19 16:36:13 +00:00
Models Perf-Fix: User::accessibleCompanyIds() hydratisiert keine Company-Models mehr 2026-06-30 11:18:51 +00:00
Observers 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Policies Proof-PDF + Extra-PM-Verkauf ueber die Credit-Wallet (Decision-Update 2.1/2.3) 2026-06-17 14:28:08 +00:00
Providers Optimierung 3.6: Zugriffs-Gates und getrennte Impersonation-Sperre 2026-06-19 11:20:28 +00:00
Scopes 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Services Optimierung 5.1: Tabellen-Concerns (Sortierung, Volltext-Heuristik, Stats) 2026-06-19 12:36:48 +00:00
Support Optimierung 4.1: Web-Portal-/Domain-Kontext extrahiert 2026-06-19 11:42:00 +00:00