diff --git a/backend/Directory.Packages.props b/backend/Directory.Packages.props
index 775e9b8..6dc7798 100644
--- a/backend/Directory.Packages.props
+++ b/backend/Directory.Packages.props
@@ -3,6 +3,7 @@
true
+
@@ -10,4 +11,4 @@
-
+
\ No newline at end of file
diff --git a/backend/src/Tnsu.ApprovalRoute.Api/Program.cs b/backend/src/Tnsu.ApprovalRoute.Api/Program.cs
index a1dac74..5d1223b 100644
--- a/backend/src/Tnsu.ApprovalRoute.Api/Program.cs
+++ b/backend/src/Tnsu.ApprovalRoute.Api/Program.cs
@@ -1,3 +1,4 @@
+using Extensions.Hosting.AsyncInitialization;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
@@ -18,6 +19,6 @@ if (app.Environment.IsDevelopment())
app.MapHealthChecks("/health");
-app.Run();
+await app.InitAndRunAsync();
public partial class Program;
diff --git a/backend/src/Tnsu.ApprovalRoute.Api/Tnsu.ApprovalRoute.Api.csproj b/backend/src/Tnsu.ApprovalRoute.Api/Tnsu.ApprovalRoute.Api.csproj
index 24f7ac4..efc7fdf 100644
--- a/backend/src/Tnsu.ApprovalRoute.Api/Tnsu.ApprovalRoute.Api.csproj
+++ b/backend/src/Tnsu.ApprovalRoute.Api/Tnsu.ApprovalRoute.Api.csproj
@@ -4,6 +4,7 @@
+
diff --git a/backend/src/Tnsu.ApprovalRoute.Domain/Enums/RouteStepStatus.cs b/backend/src/Tnsu.ApprovalRoute.Domain/Enums/RouteStepStatus.cs
index 147d9d6..77d1367 100644
--- a/backend/src/Tnsu.ApprovalRoute.Domain/Enums/RouteStepStatus.cs
+++ b/backend/src/Tnsu.ApprovalRoute.Domain/Enums/RouteStepStatus.cs
@@ -2,6 +2,7 @@ namespace Tnsu.ApprovalRoute.Domain.Enums;
public enum RouteStepStatus
{
+ None,
Draft,
OnApproval,
Approved,
diff --git a/backend/src/Tnsu.ApprovalRoute.Domain/Enums/RouteType.cs b/backend/src/Tnsu.ApprovalRoute.Domain/Enums/RouteType.cs
index 4a042fa..8004453 100644
--- a/backend/src/Tnsu.ApprovalRoute.Domain/Enums/RouteType.cs
+++ b/backend/src/Tnsu.ApprovalRoute.Domain/Enums/RouteType.cs
@@ -2,6 +2,7 @@ namespace Tnsu.ApprovalRoute.Domain.Enums;
public enum RouteType
{
+ None,
Parallel,
Sequential
}
diff --git a/backend/src/Tnsu.ApprovalRoute.Infrastructure/InfrastructureServiceCollectionExtensions.cs b/backend/src/Tnsu.ApprovalRoute.Infrastructure/InfrastructureServiceCollectionExtensions.cs
index b470fd9..7a70fcf 100644
--- a/backend/src/Tnsu.ApprovalRoute.Infrastructure/InfrastructureServiceCollectionExtensions.cs
+++ b/backend/src/Tnsu.ApprovalRoute.Infrastructure/InfrastructureServiceCollectionExtensions.cs
@@ -1,3 +1,4 @@
+using Extensions.Hosting.AsyncInitialization;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
@@ -12,6 +13,7 @@ public static class InfrastructureServiceCollectionExtensions
{
services.AddDbContext(opt =>
opt.UseNpgsql(configuration.GetConnectionString("Postgres")));
+ services.AddAsyncInitializer();
return services;
}
diff --git a/backend/src/Tnsu.ApprovalRoute.Infrastructure/Persistence/DatabaseMigrationInitializer.cs b/backend/src/Tnsu.ApprovalRoute.Infrastructure/Persistence/DatabaseMigrationInitializer.cs
new file mode 100644
index 0000000..c0e10b5
--- /dev/null
+++ b/backend/src/Tnsu.ApprovalRoute.Infrastructure/Persistence/DatabaseMigrationInitializer.cs
@@ -0,0 +1,10 @@
+using Extensions.Hosting.AsyncInitialization;
+using Microsoft.EntityFrameworkCore;
+
+namespace Tnsu.ApprovalRoute.Infrastructure.Persistence;
+
+public sealed class DatabaseMigrationInitializer(ApprovalRouteDbContext db) : IAsyncInitializer
+{
+ public Task InitializeAsync(CancellationToken cancellationToken) =>
+ db.Database.MigrateAsync(cancellationToken);
+}
diff --git a/backend/src/Tnsu.ApprovalRoute.Infrastructure/Tnsu.ApprovalRoute.Infrastructure.csproj b/backend/src/Tnsu.ApprovalRoute.Infrastructure/Tnsu.ApprovalRoute.Infrastructure.csproj
index f268684..ef0f30b 100644
--- a/backend/src/Tnsu.ApprovalRoute.Infrastructure/Tnsu.ApprovalRoute.Infrastructure.csproj
+++ b/backend/src/Tnsu.ApprovalRoute.Infrastructure/Tnsu.ApprovalRoute.Infrastructure.csproj
@@ -4,6 +4,7 @@
+