2026-06-09 06:41:28 +03:30
|
|
|
using Microsoft.AspNetCore.Routing;
|
2026-06-09 11:58:20 +03:30
|
|
|
using Microsoft.EntityFrameworkCore;
|
2026-06-09 06:41:28 +03:30
|
|
|
using Microsoft.Extensions.Configuration;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
2026-06-09 11:58:20 +03:30
|
|
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
|
|
|
|
using TeamUp.Modules.OrgBoard.Endpoints;
|
|
|
|
|
using TeamUp.Modules.OrgBoard.Persistence;
|
2026-06-09 06:41:28 +03:30
|
|
|
using TeamUp.SharedKernel.Modularity;
|
2026-06-09 11:58:20 +03:30
|
|
|
using TeamUp.SharedKernel.Persistence;
|
2026-06-09 06:41:28 +03:30
|
|
|
|
|
|
|
|
namespace TeamUp.Modules.OrgBoard;
|
|
|
|
|
|
|
|
|
|
/// <summary>Org, products, teams, seats, and the task/board model (M1).</summary>
|
|
|
|
|
public sealed class OrgBoardModule : IModule
|
|
|
|
|
{
|
|
|
|
|
public string Name => "orgboard";
|
|
|
|
|
|
|
|
|
|
public void Register(IServiceCollection services, IConfiguration configuration)
|
|
|
|
|
{
|
2026-06-09 11:58:20 +03:30
|
|
|
var connectionString = configuration.GetConnectionString("Postgres")
|
|
|
|
|
?? throw new InvalidOperationException("Missing connection string 'ConnectionStrings:Postgres'.");
|
2026-06-09 06:41:28 +03:30
|
|
|
|
2026-06-09 11:58:20 +03:30
|
|
|
services.AddDbContext<OrgBoardDbContext>(options => options.UseNpgsql(connectionString));
|
|
|
|
|
services.AddScoped<IModuleDbContext>(sp => sp.GetRequiredService<OrgBoardDbContext>());
|
|
|
|
|
services.TryAddSingleton(TimeProvider.System);
|
2026-06-09 06:41:28 +03:30
|
|
|
}
|
2026-06-09 11:58:20 +03:30
|
|
|
|
|
|
|
|
public void MapEndpoints(IEndpointRouteBuilder endpoints) => OrgBoardEndpoints.Map(endpoints);
|
2026-06-09 06:41:28 +03:30
|
|
|
}
|