Sms & Email

This commit is contained in:
2026-10-20 10:45:03 +05:30
parent a40e463e8b
commit 0e423b806c
29 changed files with 13845 additions and 26 deletions
+19 -1
View File
@@ -50,9 +50,17 @@ if (string.IsNullOrWhiteSpace(connectionString))
"ConnectionStrings:DefaultConnection is not configured. Set it in appsettings.<Environment>.json "
+ "or as the ConnectionStrings__DefaultConnection environment variable.");
// Optional override for a different local server, e.g. "8.0.44-mysql" in user-secrets
// (Database:ServerVersion) — Pomelo otherwise emits MariaDB-only SQL (INSERT … RETURNING) that
// MySQL rejects. Unset everywhere else, so the MariaDB 10.11 default above still applies.
var serverVersionOverride = builder.Configuration["Database:ServerVersion"];
ServerVersion serverVersion = string.IsNullOrWhiteSpace(serverVersionOverride)
? new MariaDbServerVersion(new Version(10, 11, 15))
: ServerVersion.Parse(serverVersionOverride);
builder.Services.AddDbContext<ErpDbContext>(o =>
{
o.UseMySql(connectionString, new MariaDbServerVersion(new Version(10, 11, 15)));
o.UseMySql(connectionString, serverVersion);
});
// ProblemDetails (RFC 7807) + domain-exception mapping
@@ -126,6 +134,16 @@ builder.Services.AddScoped<ISalesConfigService, SalesConfigService>();
builder.Services.AddScoped<IGrnConfigService, GrnConfigService>();
builder.Services.AddScoped<IProcurementConfigService, ProcurementConfigService>();
builder.Services.AddScoped<IAccessConfigService, AccessConfigService>();
// Day-end owner report (docs/DAY_END_OWNER_REPORT_PLAN.md). Messages go through AuthHex, which
// holds the SMTP / SMS credentials; Messaging:Provider = "Log" writes them to the log instead.
builder.Services.AddScoped<ERPCore.Services.OwnerReport.OwnerReportContentBuilder>();
builder.Services.AddScoped<ERPCore.Services.OwnerReport.IOwnerReportService, ERPCore.Services.OwnerReport.OwnerReportService>();
if (string.Equals(builder.Configuration["Messaging:Provider"], "Log", StringComparison.OrdinalIgnoreCase))
builder.Services.AddScoped<ERPCore.Infra.Messaging.IMessageSender, ERPCore.Infra.Messaging.LogOnlyMessageSender>();
else
builder.Services.AddScoped<ERPCore.Infra.Messaging.IMessageSender, ERPCore.Infra.Messaging.AuthHexMessageSender>();
builder.Services.AddHostedService<ERPCore.Services.OwnerReport.OwnerReportJob>();
builder.Services.AddScoped<IOpeningBalanceService, OpeningBalanceService>();
builder.Services.AddScoped<IOpeningStockService, OpeningStockService>();
builder.Services.AddScoped<IGlAccountConfigService, GlAccountConfigService>();