Deliver the demo-ready feature set and seed data so the live site can be
presented end to end:
- Winner archive: ArchivedWinner domain, admin CRUD endpoints/view/manager
and public archive surface, backed by AddArchivedWinners migration.
- Host presentation: host image upload and artist name on SiteSettings with
public image endpoint and supporting migrations.
- Clip submissions: idempotent table-ensure migration plus current-season
demo clips for review workflows.
- Demo seed data: sponsors, share links and 2025 archived winners, with a
guarded RemoveDemoSeasons cleanup; all seeds guard against real data.
- EnsureRuntimeSchemaParity migration to align runtime schema defensively.
- Admin/home UI refinements; remove unused team role permissions modal and
dead share-quick-links code.
All seed and schema migrations are idempotent (IF NOT EXISTS / ON CONFLICT)
and skip when real season data is present.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Splits AdminSeasonsView into AdminSeasonOverviewCard and AdminSeasonWorkflowCard
for cleaner separation of concerns. Adds SeedSponsorsBootstrapper with demo
sponsor SVG assets and extends SeedCatalog with sponsor seed entries.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Rewrites DDL to use IF NOT EXISTS / DROP IF EXISTS and DROP COLUMN IF EXISTS
so the migration can be re-run safely against a DB that already has the schema.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Features:
- Category viewer ranges + subcategory templates (admin group modal, tree workspace)
- Nomination enrichment via TwitchTracker API (NominationEnrichmentService,
TwitchTrackerViewerStatsProvider) with admin tracking rules editor
- Nomination group tracker: CategoryGroupName as primary identifier,
CategoryId stays as nullable legacy field; StreamerIdentity table
- Dynamic showact application form builder (AdminShowactFormBuilder,
ShowactApplicationSchedule)
- Session idle timeout setting (AdminSessionTimeoutCard)
- Share URLs for X and Discord (SiteSettings, public extras)
- Workflow rules now stored per season (falls back to global SiteSettings)
- New admin routes: settings/access, settings/workflows, tracking-rules
- New admin review workspace with subcategory tabs
- AdminCategoriesView rebuilt with group/subcategory modals
Migrations (all additive):
- AddShareUrls, AddShowactDynamicForm, AddCategoryViewerRanges,
AddSessionIdleTimeoutSettings, AddSeasonSubcategoryTemplates,
AddNominationGroupTrackerIdentity, AddShowactApplicationSchedule,
AddSeasonWorkflowRulesJson
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Widen AdminCandidateEditorModal to size lg for better readability
- Rename "Clip-Compilation" section to "Clip / Compilation", update copy to reflect single clips too, drop upload hint and Clip-Plattform field, rename label to "Link"
- Fix NativeSelect dropdown clipping inside overflow-y-auto modals by teleporting the menu to body with fixed positioning, flip-up logic, and dynamic maxHeight capped to viewport
- Add ClipAdminMenuVisible setting (backend domain, contracts, endpoint, migration) with matching frontend types, defaults, form wiring, and toggle in the Clip-Workflow modal — hides the Clips nav item from the admin sidebar when disabled
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Backend
- Add ClipSubmission entity + table (runtime bootstrapper) and
POST /api/public/clips (server-derives platform from the link)
- Surface clip submissions in the admin season detail
- Add DELETE candidate/category/clip endpoints with audit entries
Frontend
- Clips admin: real moderation view (list, open link, delete) instead
of placeholder; wired clipSubmissions through types/api/store
- Categories admin: add delete with confirm modal (matches Candidates)
- Voting ranking bar uses the unified purple gradient
- Fix ASCII transliterations to proper German umlauts across admin
- Remove orphan AdminView 2.vue
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>