Wire admin studio SSR and search infrastructure

This commit is contained in:
2026-05-01 11:46:06 +02:00
parent 257b0dbef6
commit 18cea8b0f0
329 changed files with 197465 additions and 2741 deletions

View File

@@ -6,6 +6,7 @@ namespace App\Services\Artworks;
use App\Models\ActivityEvent;
use App\Models\Artwork;
use App\Jobs\IndexArtworkJob;
use App\Services\Activity\UserActivityService;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\DB;
@@ -131,15 +132,28 @@ class ArtworkPublicationService
private function syncSearch(Artwork $artwork): void
{
if (! method_exists($artwork, 'searchable')) {
$artworkId = (int) $artwork->id;
$sync = function () use ($artworkId): void {
try {
IndexArtworkJob::dispatchSync($artworkId);
} catch (\Throwable $exception) {
Log::error('ArtworkPublicationService immediate Meilisearch sync failed; queueing fallback job.', [
'artwork_id' => $artworkId,
'error' => $exception->getMessage(),
]);
IndexArtworkJob::dispatch($artworkId);
}
};
if (DB::transactionLevel() > 0) {
DB::afterCommit($sync);
return;
}
try {
$artwork->searchable();
} catch (\Throwable $e) {
Log::warning("PublishScheduled: scout reindex failed for #{$artwork->id}: {$e->getMessage()}");
}
$sync();
}
private function recordActivity(Artwork $artwork): void