From c210e6e3f26779f4058172072086200ab5b2d376 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Wed, 6 Aug 2025 12:41:32 +0530 Subject: [PATCH] Added the Tenant Profile API --- .../Tenant/SubscriptionPlanDetailsVM.cs | 19 ++++++++++--------- .../ViewModels/Tenant/TenantDetailsVM.cs | 1 + .../Controllers/TenantController.cs | 5 ++++- .../MappingProfiles/MappingProfile.cs | 17 +++++++++++++++++ 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/Marco.Pms.Model/ViewModels/Tenant/SubscriptionPlanDetailsVM.cs b/Marco.Pms.Model/ViewModels/Tenant/SubscriptionPlanDetailsVM.cs index f30f99e..71012c8 100644 --- a/Marco.Pms.Model/ViewModels/Tenant/SubscriptionPlanDetailsVM.cs +++ b/Marco.Pms.Model/ViewModels/Tenant/SubscriptionPlanDetailsVM.cs @@ -1,5 +1,6 @@ using Marco.Pms.Model.Master; -using Marco.Pms.Model.TenantModels.MongoDBModel; +using Marco.Pms.Model.TenantModels; +using Marco.Pms.Model.ViewModels.Activities; namespace Marco.Pms.Model.ViewModels.Tenant { @@ -8,14 +9,14 @@ namespace Marco.Pms.Model.ViewModels.Tenant 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 double Price { get; set; } + public PLAN_FREQUENCY Frequency { get; set; } + public DateTime StartDate { get; set; } + public DateTime EndDate { get; set; } + public DateTime CreatedAt { get; set; } + public DateTime? UpdatedAt { get; set; } + public BasicEmployeeVM? CreatedBy { get; set; } + public BasicEmployeeVM? updatedBy { get; set; } public CurrencyMaster? Currency { get; set; } } } diff --git a/Marco.Pms.Model/ViewModels/Tenant/TenantDetailsVM.cs b/Marco.Pms.Model/ViewModels/Tenant/TenantDetailsVM.cs index b174a3a..7edbb45 100644 --- a/Marco.Pms.Model/ViewModels/Tenant/TenantDetailsVM.cs +++ b/Marco.Pms.Model/ViewModels/Tenant/TenantDetailsVM.cs @@ -33,5 +33,6 @@ namespace Marco.Pms.Model.ViewModels.Tenant public DateTime? ExpiryDate { get; set; } public DateTime? NextBillingDate { get; set; } public BasicEmployeeVM? CreatedBy { get; set; } + public List? SubscriptionHistery { get; set; } } } diff --git a/Marco.Pms.Services/Controllers/TenantController.cs b/Marco.Pms.Services/Controllers/TenantController.cs index d5b94b2..fa48dce 100644 --- a/Marco.Pms.Services/Controllers/TenantController.cs +++ b/Marco.Pms.Services/Controllers/TenantController.cs @@ -277,6 +277,9 @@ namespace Marco.Pms.Services.Controllers { await using var _dbContext = await _dbContextFactory.CreateDbContextAsync(); return await _dbContext.TenantSubscriptions + .Include(sp => sp!.CreatedBy) + .Include(sp => sp!.UpdatedBy) + .Include(sp => sp!.Currency) .Include(ts => ts.Plan).ThenInclude(sp => sp!.Plan) .AsNoTracking() .Where(ts => ts.TenantId == tenant.Id && ts.Plan != null) @@ -317,7 +320,7 @@ namespace Marco.Pms.Services.Controllers response.ExpiryDate = expiryDate; response.NextBillingDate = nextBillingDate; response.CreatedBy = createdBy; - + response.SubscriptionHistery = _mapper.Map>(plans); return Ok(ApiResponse.SuccessResponse(response, "Tenant profile fetched successfully", 200)); } diff --git a/Marco.Pms.Services/MappingProfiles/MappingProfile.cs b/Marco.Pms.Services/MappingProfiles/MappingProfile.cs index adc7214..47552a4 100644 --- a/Marco.Pms.Services/MappingProfiles/MappingProfile.cs +++ b/Marco.Pms.Services/MappingProfiles/MappingProfile.cs @@ -43,6 +43,23 @@ namespace Marco.Pms.Services.MappingProfiles dest => dest.Description, opt => opt.MapFrom(src => src.Plan != null ? src.Plan.Description : "") ); + CreateMap() + .ForMember( + dest => dest.PlanName, + opt => opt.MapFrom(src => src.Plan!.Plan != null ? src.Plan.Plan.PlanName : "") + ) + .ForMember( + dest => dest.Description, + opt => opt.MapFrom(src => src.Plan!.Plan != null ? src.Plan.Plan.Description : "") + ) + .ForMember( + dest => dest.Price, + opt => opt.MapFrom(src => src.Plan != null ? src.Plan.Price : 0) + ) + .ForMember( + dest => dest.Frequency, + opt => opt.MapFrom(src => src.Plan != null ? src.Plan.Frequency : PLAN_FREQUENCY.MONTHLY) + ); CreateMap(); CreateMap();