Add viewer-range categories, nomination tracking, dynamic showact form, session timeout, share URLs, and workflow-per-season
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>
This commit is contained in:
@@ -26,6 +26,11 @@ public static class ServiceCollectionExtensions
|
||||
services.Configure<TwitchAuthOptions>(configuration.GetSection(TwitchAuthOptions.SectionName));
|
||||
services.AddMemoryCache();
|
||||
services.AddHttpClient();
|
||||
services.AddHttpClient("TwitchTracker", client =>
|
||||
{
|
||||
client.Timeout = TimeSpan.FromSeconds(4);
|
||||
client.DefaultRequestHeaders.UserAgent.ParseAdd("VTuberStarAwards/1.0");
|
||||
});
|
||||
var allowedOrigins = ResolveAllowedOrigins(configuration, environment);
|
||||
|
||||
var connectionString = configuration["VTSA_POSTGRES"] ?? configuration.GetConnectionString("Postgres");
|
||||
@@ -88,6 +93,9 @@ public static class ServiceCollectionExtensions
|
||||
services.AddScoped<IRiskRuleService, RiskRuleService>();
|
||||
services.AddScoped<IRiskFlagService, RiskFlagService>();
|
||||
services.AddScoped<IAdminAuditService, AdminAuditService>();
|
||||
services.AddScoped<IViewerStatsProvider, TwitchTrackerViewerStatsProvider>();
|
||||
services.AddScoped<NominationTrackingReviewService>();
|
||||
services.AddScoped<NominationEnrichmentService>();
|
||||
services.AddScoped<AdminSessionFilter>();
|
||||
|
||||
return services;
|
||||
|
||||
Reference in New Issue
Block a user