using Bit.Api.Models.Response; using Bit.Core.Billing.Pricing; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Bit.Api.Billing.Controllers; [Route("plans")] [Authorize("Application")] public class PlansController( IPricingClient pricingClient) : Controller { [HttpGet("")] [AllowAnonymous] public async Task> Get() { var plans = await pricingClient.ListPlans(); var responses = plans.Select(plan => new PlanResponseModel(plan)); return new ListResponseModel(responses); } [HttpGet("premium")] public async Task GetPremiumPlanAsync() { var premiumPlan = await pricingClient.GetAvailablePremiumPlan(); return TypedResults.Ok(premiumPlan); } }