using VoidCat.Database; using VoidCat.Services.Abstractions; namespace VoidCat.Services.Payment; public class PaymentFactory : IPaymentFactory { private readonly IServiceProvider _services; public PaymentFactory(IServiceProvider services) { _services = services; } public ValueTask CreateProvider(PaywallService svc) { return ValueTask.FromResult(svc switch { PaywallService.Strike => _services.GetRequiredService(), _ => throw new ArgumentException("Must have a payment config", nameof(svc)) }); } }