using Microsoft.Extensions.Configuration; using StellaOps.TimelineIndexer.Core.Abstractions; using StellaOps.TimelineIndexer.Infrastructure.DependencyInjection; using StellaOps.TimelineIndexer.Infrastructure.Options; using StellaOps.TimelineIndexer.Infrastructure.Subscriptions; using StellaOps.TimelineIndexer.Worker; using StellaOps.Worker.Health; var builder = WebApplication.CreateSlimBuilder(args); builder.Configuration.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); builder.Configuration.AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true); builder.Configuration.AddEnvironmentVariables(); builder.Configuration.AddEnvironmentVariables(prefix: "TIMELINE_"); builder.Services.AddTimelineIndexerPostgres(builder.Configuration); builder.Services.AddOptions() .Bind(builder.Configuration.GetSection("Ingestion")); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddHostedService(); builder.Services.AddWorkerHealthChecks(); var app = builder.Build(); app.MapWorkerHealthEndpoints(); app.Run();