feat: enhance network membership response with detailed stats and hierarchy
All checks were successful
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 2m14s

This commit is contained in:
masoodafar-web
2025-12-12 06:07:23 +03:30
parent f27418cff4
commit 3c7ac68eeb
5 changed files with 333 additions and 33 deletions

View File

@@ -1,4 +1,5 @@
using CMSMicroservice.Application.NetworkMembershipCQ.Queries.GetNetworkTree;
using CMSMicroservice.Application.NetworkMembershipCQ.Queries.GetUserNetworkPosition;
using CMSMicroservice.Protobuf.Protos.NetworkMembership;
using CMSMicroservice.Domain.Enums;
@@ -15,7 +16,46 @@ public class NetworkMembershipProfile : IRegister
// Response mapping: تبدیل درخت به لیست مسطح
config.NewConfig<NetworkTreeDto, GetNetworkTreeResponse>()
.MapWith(src => ConvertTreeToResponse(src));
.MapWith(src => ConvertTreeToResponse(src));
config.NewConfig<UserNetworkPositionDto, GetUserNetworkResponse>()
.Map(dest => dest.Id, src => src.UserId)
.Map(dest => dest.UserId, src => src.UserId)
.Map(dest => dest.UserName, src => (src.FirstName + " " + src.LastName).Trim())
.Map(dest => dest.Mobile, src => src.Mobile ?? "")
.Map(dest => dest.Email, src => src.Email ?? "")
.Map(dest => dest.NationalCode, src => src.NationalCode ?? "")
.Map(dest => dest.ReferralCode, src => src.ReferralCode)
.Map(dest => dest.IsMobileVerified, src => src.IsMobileVerified)
.Map(dest => dest.ParentId, src => src.NetworkParentId)
.Map(dest => dest.ParentName, src => src.ParentFullName ?? "")
.Map(dest => dest.ParentMobile, src => src.ParentMobile ?? "")
.Map(dest => dest.NetworkLeg, src => (int)(src.LegPosition ?? NetworkLeg.Left))
.Map(dest => dest.NetworkLevel, src => 0) // Deprecated field
.Map(dest => dest.IsInNetwork, src => src.IsInNetwork)
.Map(dest => dest.LeftChildId, src => src.LeftChildId)
.Map(dest => dest.LeftChildName, src => src.LeftChildFullName ?? "")
.Map(dest => dest.LeftChildMobile, src => src.LeftChildMobile ?? "")
.Map(dest => dest.RightChildId, src => src.RightChildId)
.Map(dest => dest.RightChildName, src => src.RightChildFullName ?? "")
.Map(dest => dest.RightChildMobile, src => src.RightChildMobile ?? "")
.Map(dest => dest.TotalChildren, src => src.TotalChildren)
.Map(dest => dest.LeftChildCount, src => src.LeftChildCount)
.Map(dest => dest.RightChildCount, src => src.RightChildCount)
.Map(dest => dest.TotalLeftLegMembers, src => src.TotalLeftLegMembers)
.Map(dest => dest.TotalRightLegMembers, src => src.TotalRightLegMembers)
.Map(dest => dest.TotalNetworkSize, src => src.TotalNetworkSize)
.Map(dest => dest.MaxNetworkDepth, src => src.MaxNetworkDepth)
.Map(dest => dest.HasReceivedDayaCredit, src => src.HasReceivedDayaCredit)
.Map(dest => dest.PackagePurchaseMethod, src => (int)src.PackagePurchaseMethod)
.Map(dest => dest.HasPurchasedGoldenPackage, src => src.HasPurchasedGoldenPackage)
.Map(dest => dest.TotalEarnedCommission, src => (double)src.TotalEarnedCommission)
.Map(dest => dest.TotalPaidCommission, src => (double)src.TotalPaidCommission)
.Map(dest => dest.PendingCommission, src => (double)src.PendingCommission)
.Map(dest => dest.TotalBalancesEarned, src => src.TotalBalancesEarned)
.Map(dest => dest.ActiveMembersInNetwork, src => src.ActiveMembersInNetwork)
.Map(dest => dest.InactiveMembersInNetwork, src => src.InactiveMembersInNetwork);
}
private static GetNetworkTreeResponse ConvertTreeToResponse(NetworkTreeDto? treeDto)