Freeze invoice totals and parties, record offline receipts and verify completed PayPal transactions. Protect idempotence and concurrent balance updates; add migration, API client, documentation and tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
17 lines
722 B
C#
17 lines
722 B
C#
using Yavsc.Services;
|
|
|
|
namespace Yavsc.Api.Services;
|
|
|
|
public static class InvoicingServiceCollectionExtensions
|
|
{
|
|
public static IServiceCollection AddInvoicing(this IServiceCollection services, IConfiguration configuration)
|
|
{
|
|
services.AddScoped<IInvoicingService, InvoicingService>();
|
|
services.Configure<PayPalSettings>(configuration.GetSection("Authentication:PayPal"));
|
|
services.AddHttpClient<IPayPalTransactionVerifier, PayPalTransactionVerifier>(client =>
|
|
client.Timeout = TimeSpan.FromSeconds(30));
|
|
services.AddOpenApi("invoicing", options =>
|
|
options.ShouldInclude = description => description.GroupName == "invoicing");
|
|
return services;
|
|
}
|
|
}
|