diff --git a/resources/views/livewire/customer/press-releases/index.blade.php b/resources/views/livewire/customer/press-releases/index.blade.php index 88689e29..9dfa9917 100644 --- a/resources/views/livewire/customer/press-releases/index.blade.php +++ b/resources/views/livewire/customer/press-releases/index.blade.php @@ -2,6 +2,7 @@ use App\Enums\Portal; use App\Enums\PressReleaseStatus; +use App\Models\Boost; use App\Models\PressRelease; use App\Services\Customer\CustomerCompanyContext; use App\Services\PressRelease\AiDeclarationRequiredException; @@ -150,8 +151,19 @@ new #[Layout('components.layouts.app'), Title('Meine Pressemitteilungen')] class $prs = PressRelease::accessiblePageFor($user, $applyListFilters, $this->sortBy, $this->sortDir); + // Laufende Boosts der Seite in einer Query (statt isBoosted() je + // Zeile): [press_release_id => spätestes ends_at]. + $boostEndsById = Boost::query() + ->active() + ->whereIn('press_release_id', collect($prs->items())->pluck('id')) + ->selectRaw('press_release_id, max(ends_at) as ends_at') + ->groupBy('press_release_id') + ->pluck('ends_at', 'press_release_id') + ->map(fn ($endsAt) => \Illuminate\Support\Carbon::parse($endsAt)); + return [ 'pressReleases' => $prs, + 'boostEndsById' => $boostEndsById, 'statusOptions' => PressReleaseStatus::cases(), 'portalOptions' => Portal::cases(), 'selectedCompany' => $context->selectedCompany(auth()->user()), @@ -472,6 +484,14 @@ new #[Layout('components.layouts.app'), Title('Meine Pressemitteilungen')] class :has-title-image="$pr->images_count > 0" /> @endif + @if ($boostEndsAt = $boostEndsById->get($pr->id)) + {{-- Laufende Boost-Platzierung (Add-on) direkt unter dem Status. --}} +