diff --git a/Marco.Pms.Model/ViewModels/Tenant/SubscriptionPlanDetailsVM.cs b/Marco.Pms.Model/ViewModels/Tenant/SubscriptionPlanDetailsVM.cs new file mode 100644 index 0000000..f30f99e --- /dev/null +++ b/Marco.Pms.Model/ViewModels/Tenant/SubscriptionPlanDetailsVM.cs @@ -0,0 +1,21 @@ +using Marco.Pms.Model.Master; +using Marco.Pms.Model.TenantModels.MongoDBModel; + +namespace Marco.Pms.Model.ViewModels.Tenant +{ + public class SubscriptionPlanDetailsVM + { + public Guid Id { get; set; } + public string? PlanName { get; set; } + public string? Description { get; set; } + public double PriceQuarterly { get; set; } + public double PriceMonthly { get; set; } + public double PriceHalfYearly { get; set; } + public double PriceYearly { get; set; } + public int TrialDays { get; set; } + public double MaxUser { get; set; } + public double MaxStorage { get; set; } + public FeatureDetails? Features { get; set; } + public CurrencyMaster? Currency { get; set; } + } +} diff --git a/Marco.Pms.Services/Controllers/TenantController.cs b/Marco.Pms.Services/Controllers/TenantController.cs index d82ca12..c3793e9 100644 --- a/Marco.Pms.Services/Controllers/TenantController.cs +++ b/Marco.Pms.Services/Controllers/TenantController.cs @@ -520,11 +520,22 @@ namespace Marco.Pms.Services.Controllers #region =================================================================== Subscription Plan APIs =================================================================== [HttpGet("list/subscription-plan")] - public async Task GetSubscriptionPlanList([FromQuery] int frequency) + public async Task GetSubscriptionPlanList([FromQuery] int? frequency) { await using var _context = await _dbContextFactory.CreateDbContextAsync(); var plans = await _context.SubscriptionPlans.Include(s => s.Currency).ToListAsync(); + if (frequency == null) + { + var detailsVM = await Task.WhenAll(plans.Select(async p => + { + var response = _mapper.Map(p); + response.Features = await _featureDetailsHelper.GetFeatureDetails(p.FeaturesId); + return response; + }).ToList()); + + return Ok(ApiResponse.SuccessResponse(detailsVM, "List of plans fetched successfully", 200)); + } var vm = await Task.WhenAll(plans.Select(async p => { var response = _mapper.Map(p); diff --git a/Marco.Pms.Services/MappingProfiles/MappingProfile.cs b/Marco.Pms.Services/MappingProfiles/MappingProfile.cs index 1dd0d96..c9feb59 100644 --- a/Marco.Pms.Services/MappingProfiles/MappingProfile.cs +++ b/Marco.Pms.Services/MappingProfiles/MappingProfile.cs @@ -33,6 +33,7 @@ namespace Marco.Pms.Services.MappingProfiles ); CreateMap(); + CreateMap(); CreateMap(); CreateMap(); CreateMap();