5.3 KiB
Collections v5 Implementation Summary
Scope
Collections v5 extends the existing collections platform with operational metadata, workflow controls, health scoring, search, canonicalization, merge support, programming assignments, and snapshot-based observability.
Schema additions
The collections table now carries v5 state for:
- workflow and readiness
- health state and health flags
- canonical and duplicate metadata
- program, partner, trust, sponsorship, governance, and experiment metadata
- ranking and search boost tiers
- health component scores and refresh timestamps
- placement eligibility
Supporting tables were added for:
- program assignments
- daily quality snapshots
- recommendation snapshots
- merge actions
- cross-entity links
- saved notes
New services
- CollectionHealthService: evaluates metadata completeness, freshness, engagement, readiness, health state, eligibility, and daily snapshots
- CollectionRankingService: computes recommendation tier, ranking bucket, and search boost tier
- CollectionWorkflowService: validates workflow transitions and runs quality refresh flows
- CollectionSearchService: public and owner/staff search across collection metadata
- CollectionCanonicalService: assigns canonical targets safely
- CollectionMergeService: merges source collections into canonical targets without affecting artwork ownership
- CollectionProgrammingService: manages assignments, previews, eligibility refresh, duplicate scans, and recommendation refreshes
- CollectionBackgroundJobService: dispatches queued health, quality, recommendation, and duplicate maintenance jobs
- CollectionPartnerProgramService: isolates protected partner/program metadata updates
- CollectionObservabilityService: cache keys and collection diagnostics
- CollectionLinkService: manages generic creator, story, and category links for collection context modules
Route coverage
Public:
- GET /collections/search
Owner/staff:
- GET /settings/collections/search
- GET /settings/collections/{collection}/health
- POST /settings/collections/{collection}/workflow
- POST /settings/collections/{collection}/quality-refresh
- POST /settings/collections/{collection}/canonicalize
- POST /settings/collections/{collection}/merge
Staff programming:
- GET /staff/collections/programming
- POST /staff/collections/programs
- PATCH /staff/collections/programs/{program}
- POST /staff/collections/surfaces/preview
- POST /staff/collections/eligibility/refresh
- POST /staff/collections/duplicate-scan
- POST /staff/collections/recommendation-refresh
Scheduled maintenance:
- php artisan collections:dispatch-maintenance
Payload changes
Collection card and detail payloads now expose v5 metadata so dashboard, search, programming, and health tooling can consume the same core shape without custom adapters.
Dashboard changes
The owner dashboard now includes health-oriented summary counts and warning payloads alongside the existing lifecycle, campaign, analytics, and attention views.
It also includes an internal search and filtering panel for workflow, lifecycle, health, visibility, and placement readiness.
Staff programming UI
The staff programming route now renders a dedicated programming studio with:
- assignment management
- live program pool preview
- queued eligibility diagnostics
- queued duplicate scan tools
- queued recommendation refresh tools
- internal experiment and partner/program governance controls with observability diagnostics for the selected collection, including treatment, placement, ranking, pool-version, ownership, sponsorship, and review metadata
- staff merge queue for pending duplicate review and recent merge decisions, including direct canonicalize, merge, and reject actions in the studio
Background jobs
Collections v5 now dispatches queued jobs for:
- owner quality refreshes
- staff eligibility refreshes
- staff recommendation refreshes
- staff duplicate scans
- scheduled maintenance sweeps for stale health, recommendation, and duplicate work
Merge review workflow
Collection management now includes an internal merge-review surface with:
- duplicate candidate comparison cards
- canonical target designation
- direct merge actions for manual targets
- not-duplicate dismissal that suppresses rejected pairs from future review payloads
Saved library changes
The saved collections area now supports lightweight private notes per saved collection.
Cross-entity linking
Collections can now link to creators, public artworks, published stories, and active categories through a generic entity-link flow exposed in collection management and rendered on the public detail page.
Test coverage
Existing collection feature coverage still passes after v5 integration.
Additional focused tests now cover:
- owner-only health access
- owner search scoping
- protected workflow/programming fields
- canonicalization and merge flows
- public canonical redirects for canonicalized collections
- staff programming assignments and previews
- staff programming studio access
- public search safety
- workflow transition validation
- saved collection notes
- collection entity links on owner and public pages, including artwork and tag links with public-only filtering
- public program landing pages with explicit partner and sponsor surfacing on discovery cards and headers
- dashboard search/filter wiring