presseportale/app/Models
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
..
Concerns 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
AdminPreset.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
ApiUsageLog.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
BillingAddress.php WS-8: doppelte Logik konsolidieren (Tags, Kontakt-Query, Billing) 2026-06-18 13:33:59 +00:00
Boost.php Boost-Geschaeftslogik (Decision-Update 2.2) 2026-06-17 14:22:12 +00:00
Category.php Optimierung 5.3 (Teil 2): Category::localizedName() 2026-06-19 13:19:06 +00:00
CategoryTranslation.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Company.php Optimierung 3.1: Company::scopeAccessibleBy() zentralisiert Firmenzugriff 2026-06-19 10:23:16 +00:00
Contact.php Optimierung 5.3 (Teil 1): Contact::displayName() 2026-06-19 13:15:38 +00:00
CreditTopup.php Wallet-Topup ueber Stripe (Credit-Pakete mit Bonus-Staffel) 2026-06-17 14:56:23 +00:00
CreditTransaction.php Credit-Wallet + Ledger + Tier-Preisableitung (Fundament) 2026-06-17 14:16:43 +00:00
CreditWallet.php Credit-Wallet + Ledger + Tier-Preisableitung (Fundament) 2026-06-17 14:16:43 +00:00
FooterCode.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Invoice.php USt-Behandlung: Netto-Preise, VatResolver und Steuer-Ausweis im MAN-Kreis 2026-06-12 10:58:43 +00:00
InvoiceBillingAddress.php User-Panel-Restarbeiten: PM-Guard, Profil-Rework, USt-ID-Prüfung, Buchungspflicht-Adresse 2026-06-12 14:36:18 +00:00
KiAudit.php User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
LegacyImportMap.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
LegacyInvoice.php Optimierung Phase 0: Korrektheit & Security 2026-06-19 08:09:02 +00:00
LegalRequest.php WS-3: Recht & Compliance – Rechts-Kern (DSGVO/Persönlichkeitsrecht/Melden + Queue) 2026-06-16 14:20:05 +00:00
MagicLink.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
NewsletterSubscription.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
PaymentOption.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
PaymentOptionTranslation.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Plan.php Paket-Vorteile: dynamische, im Admin pflegbare Vorteilsliste je Tarif 2026-06-18 16:36:09 +00:00
PressRelease.php Optimierung 4.2: Published-Release-Query ueber PressRelease-Scopes zentralisiert 2026-06-19 11:35:55 +00:00
PressReleaseAttachment.php create PM v0.5 2026-05-20 19:14:39 +02:00
PressReleaseImage.php KI-generierte Bilder: eigener Lizenztyp, Anbieter-Bestätigung, Kennzeichnung 2026-06-12 16:04:12 +00:00
PressReleaseStatusLog.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Profile.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
ReviewCheck.php Pruefzaehler + Pruefkontingent (Decision-Update Phase-2 vorgezogen) 2026-06-17 14:19:37 +00:00
SinglePurchase.php Phase 9D: Tarif-Datenmodell, Cashier und hybride Rechnungskreise STR-/MAN- 2026-06-12 10:15:46 +00:00
User.php Perf-Fix: User::accessibleCompanyIds() hydratisiert keine Company-Models mehr 2026-06-30 11:18:51 +00:00
UserFilterPreset.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
UserPayment.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
UserPaymentOption.php Optimierung Phase 0: Korrektheit & Security 2026-06-19 08:09:02 +00:00