27 lines
913 B
C#
27 lines
913 B
C#
using GymLogAI.AI;
|
|
using GymLogAI.Application.Handlers;
|
|
using GymLogAI.Persistence;
|
|
using GymLogAI.Worker;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
var builder = Host.CreateApplicationBuilder(args);
|
|
builder.Services
|
|
.AddOptions<WorkerOptions>()
|
|
.Bind(builder.Configuration.GetSection(WorkerOptions.SectionName));
|
|
builder.Services.AddPersistence(builder.Configuration);
|
|
builder.Services.AddAiServices(builder.Configuration);
|
|
builder.Services.AddScoped<ImportTelegramMessageHandler>();
|
|
builder.Services.AddScoped<ParseTelegramMessageHandler>();
|
|
builder.Services.AddScoped<RecommendWorkoutHandler>();
|
|
builder.Services.AddHostedService<ParsePendingTelegramMessagesJob>();
|
|
|
|
var host = builder.Build();
|
|
|
|
await using (var scope = host.Services.CreateAsyncScope())
|
|
{
|
|
var dbContext = scope.ServiceProvider.GetRequiredService<AppDbContext>();
|
|
await dbContext.Database.MigrateAsync();
|
|
}
|
|
|
|
await host.RunAsync();
|