using PnvPanel.Api.Common; using PnvPanel.Application.Admin.Pricing; using PnvPanel.Application.Common.Interfaces; using PnvPanel.Application.Common.Messaging; using PnvPanel.Infrastructure.Identity; namespace PnvPanel.Api.Endpoints; public static class AdminPricingEndpoints { public static IEndpointRouteBuilder MapAdminPricingEndpoints(this IEndpointRouteBuilder app) { var admin = app.MapGroup("/api/admin/pricing") .WithTags("Admin.Pricing") .RequireAuthorization(policy => policy.RequireRole(RoleNames.Admin)); admin.MapGet("", GetPricing).Produces(); admin.MapPut("", UpdatePricing).Produces(); return app; } private static async Task GetPricing(ISender sender, CancellationToken cancellationToken) { var result = await sender.Send(new GetPricingSettingsQuery(), cancellationToken); return result.ToHttpResult(); } private static async Task UpdatePricing( UpdatePricingSettingsCommand command, ISender sender, CancellationToken cancellationToken ) { var result = await sender.Send(command, cancellationToken); return result.ToHttpResult(); } }