Allow artworks to have one primary category and extra secondaries.

Keep artwork_category as membership, store a deterministic primary_category_id, and let upload plus studio pick up to five additional same-type categories without changing canonical URLs.
This commit is contained in:
test
2026-09-20 14:50:12 +02:00
parent 4d60a876af
commit 232880e01f
43 changed files with 2896 additions and 565 deletions
+2 -2
View File
@@ -140,7 +140,7 @@ class CollectionAiCurationService
->first();
$label = $tag?->name
?: ($artwork->categories->first()?->name)
?: ($artwork->resolvedPrimaryCategory()?->name)
?: ($artwork->stats?->views ? 'Popular highlights' : 'Curated picks');
if (! isset($themeBuckets[$label])) {
@@ -673,7 +673,7 @@ class CollectionAiCurationService
$artworks = $this->candidateArtworks($collection, $draft, 36);
$themes = $this->topThemes($artworks);
$categories = $artworks
->map(fn (Artwork $artwork) => $artwork->categories->first()?->name)
->map(fn (Artwork $artwork) => $artwork->resolvedPrimaryCategory()?->name)
->filter()
->countBy()
->sortDesc();