feat: complete SaaS commercial delivery workflows

This commit is contained in:
2026-08-01 15:26:21 +08:00
parent 46abf4d62f
commit d58bcd97e9
56 changed files with 27505 additions and 181 deletions

View File

@@ -117,6 +117,10 @@ internal static class WorkerDependencyInjection
.Bind(builder.Configuration.GetSection("SaasSubscriptions"));
builder.Services.AddOptions<FeatureUsageReconciliationOptions>()
.Bind(builder.Configuration.GetSection("FeatureUsageReconciliation"));
builder.Services.AddOptions<CommercialBillingOptions>()
.Bind(builder.Configuration.GetSection("CommercialBilling"))
.Validate(options => options.BatchSize is >= 1 and <= 1000, "Commercial billing batch size is invalid.")
.ValidateOnStart();
builder.Services.AddSingleton<IPeriodicProcessorLock, PostgresPeriodicProcessorLock>();
builder.Services.AddSingleton<WorkerStateReporter>();
builder.Services.AddHostedService<TenantDomainWorker>();
@@ -124,6 +128,7 @@ internal static class WorkerDependencyInjection
builder.Services.AddHostedService<FeatureUsageWorker>();
builder.Services.AddHostedService<BackgroundJobsWorker>();
builder.Services.AddHostedService<AuthorizationCacheInvalidationWorker>();
builder.Services.AddHostedService<CommercialBillingWorker>();
return builder;
}