diff --git a/src/BackOffice.BFF.Application/NetworkMembershipCQ/Queries/GetUserNetworkInfo/GetUserNetworkInfoResponseDto.cs b/src/BackOffice.BFF.Application/NetworkMembershipCQ/Queries/GetUserNetworkInfo/GetUserNetworkInfoResponseDto.cs index 2fded29..ce16363 100644 --- a/src/BackOffice.BFF.Application/NetworkMembershipCQ/Queries/GetUserNetworkInfo/GetUserNetworkInfoResponseDto.cs +++ b/src/BackOffice.BFF.Application/NetworkMembershipCQ/Queries/GetUserNetworkInfo/GetUserNetworkInfoResponseDto.cs @@ -2,73 +2,66 @@ namespace BackOffice.BFF.Application.NetworkMembershipCQ.Queries.GetUserNetworkI public class GetUserNetworkInfoResponseDto { - /// - /// شناسه عضویت شبکه - /// + // اطلاعات اصلی کاربر public long Id { get; set; } - - /// - /// شناسه کاربر - /// public long UserId { get; set; } - - /// - /// نام کاربر - /// public string UserName { get; set; } = string.Empty; - - /// - /// شناسه والد در شبکه - /// - public long? ParentId { get; set; } - - /// - /// نام والد - /// - public string ParentName { get; set; } = string.Empty; - - /// - /// موقعیت در شبکه (0=Left, 1=Right) - /// - public int NetworkLeg { get; set; } - - /// - /// شناسه فرزند چپ - /// - public long? LeftChildId { get; set; } - - /// - /// نام فرزند چپ - /// - public string LeftChildName { get; set; } = string.Empty; - - /// - /// شناسه فرزند راست - /// - public long? RightChildId { get; set; } - - /// - /// نام فرزند راست - /// - public string RightChildName { get; set; } = string.Empty; - - /// - /// سطح در شبکه - /// - public int NetworkLevel { get; set; } - - /// - /// کد معرف - /// + public string Mobile { get; set; } = string.Empty; + public string Email { get; set; } = string.Empty; + public string NationalCode { get; set; } = string.Empty; public string ReferralCode { get; set; } = string.Empty; - - /// - /// تاریخ عضویت در شبکه - /// + public bool IsMobileVerified { get; set; } + public DateTime? BirthDate { get; set; } public DateTime JoinedAt { get; set; } - - /// - /// تاریخ ایجاد - /// + + // اطلاعات والد + public long? ParentId { get; set; } + public string ParentName { get; set; } = string.Empty; + public string ParentMobile { get; set; } = string.Empty; + + // موقعیت در شبکه + public int NetworkLeg { get; set; } + public int NetworkLevel { get; set; } + public bool IsInNetwork { get; set; } + + // اطلاعات فرزند چپ + public long? LeftChildId { get; set; } + public string LeftChildName { get; set; } = string.Empty; + public string LeftChildMobile { get; set; } = string.Empty; + public DateTime? LeftChildJoinedAt { get; set; } + + // اطلاعات فرزند راست + public long? RightChildId { get; set; } + public string RightChildName { get; set; } = string.Empty; + public string RightChildMobile { get; set; } = string.Empty; + public DateTime? RightChildJoinedAt { get; set; } + + // آمار فرزندان مستقیم + public int TotalChildren { get; set; } + public int LeftChildCount { get; set; } + public int RightChildCount { get; set; } + + // آمار کل شبکه + public int TotalLeftLegMembers { get; set; } + public int TotalRightLegMembers { get; set; } + public int TotalNetworkSize { get; set; } + public int MaxNetworkDepth { get; set; } + + // اطلاعات پکیج و دایا + public bool HasReceivedDayaCredit { get; set; } + public DateTime? DayaCreditReceivedAt { get; set; } + public int PackagePurchaseMethod { get; set; } + public bool HasPurchasedGoldenPackage { get; set; } + + // آمار مالی + public double TotalEarnedCommission { get; set; } + public double TotalPaidCommission { get; set; } + public double PendingCommission { get; set; } + public int TotalBalancesEarned { get; set; } + + // آمار فعالیت + public int ActiveMembersInNetwork { get; set; } + public int InactiveMembersInNetwork { get; set; } + public DateTime CreatedAt { get; set; } } diff --git a/src/BackOffice.BFF.Domain/BackOffice.BFF.Domain.csproj b/src/BackOffice.BFF.Domain/BackOffice.BFF.Domain.csproj index 92b9b02..b516b23 100644 --- a/src/BackOffice.BFF.Domain/BackOffice.BFF.Domain.csproj +++ b/src/BackOffice.BFF.Domain/BackOffice.BFF.Domain.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/BackOffice.BFF.WebApi/Common/Mappings/NetworkMembershipProfile.cs b/src/BackOffice.BFF.WebApi/Common/Mappings/NetworkMembershipProfile.cs index 78b1f4d..b3dd8a8 100644 --- a/src/BackOffice.BFF.WebApi/Common/Mappings/NetworkMembershipProfile.cs +++ b/src/BackOffice.BFF.WebApi/Common/Mappings/NetworkMembershipProfile.cs @@ -49,16 +49,52 @@ public class NetworkMembershipProfile : IRegister Id = src.Id, UserId = src.UserId, UserName = src.UserName, + Mobile = src.Mobile, + Email = src.Email, + NationalCode = src.NationalCode, + ReferralCode = src.ReferralCode, + IsMobileVerified = src.IsMobileVerified, + BirthDate = src.BirthDate.HasValue + ? Timestamp.FromDateTime(DateTime.SpecifyKind(src.BirthDate.Value, DateTimeKind.Utc)) + : null, + JoinedAt = Timestamp.FromDateTime(DateTime.SpecifyKind(src.JoinedAt, DateTimeKind.Utc)), ParentId = src.ParentId, ParentName = src.ParentName, + ParentMobile = src.ParentMobile, NetworkLeg = src.NetworkLeg, + NetworkLevel = src.NetworkLevel, + IsInNetwork = src.IsInNetwork, LeftChildId = src.LeftChildId, LeftChildName = src.LeftChildName, + LeftChildMobile = src.LeftChildMobile, + LeftChildJoinedAt = src.LeftChildJoinedAt.HasValue + ? Timestamp.FromDateTime(DateTime.SpecifyKind(src.LeftChildJoinedAt.Value, DateTimeKind.Utc)) + : null, RightChildId = src.RightChildId, RightChildName = src.RightChildName, - NetworkLevel = src.NetworkLevel, - ReferralCode = src.ReferralCode, - JoinedAt = Timestamp.FromDateTime(DateTime.SpecifyKind(src.JoinedAt, DateTimeKind.Utc)), + RightChildMobile = src.RightChildMobile, + RightChildJoinedAt = src.RightChildJoinedAt.HasValue + ? Timestamp.FromDateTime(DateTime.SpecifyKind(src.RightChildJoinedAt.Value, DateTimeKind.Utc)) + : null, + TotalChildren = src.TotalChildren, + LeftChildCount = src.LeftChildCount, + RightChildCount = src.RightChildCount, + TotalLeftLegMembers = src.TotalLeftLegMembers, + TotalRightLegMembers = src.TotalRightLegMembers, + TotalNetworkSize = src.TotalNetworkSize, + MaxNetworkDepth = src.MaxNetworkDepth, + HasReceivedDayaCredit = src.HasReceivedDayaCredit, + DayaCreditReceivedAt = src.DayaCreditReceivedAt.HasValue + ? Timestamp.FromDateTime(DateTime.SpecifyKind(src.DayaCreditReceivedAt.Value, DateTimeKind.Utc)) + : null, + PackagePurchaseMethod = src.PackagePurchaseMethod, + HasPurchasedGoldenPackage = src.HasPurchasedGoldenPackage, + TotalEarnedCommission = src.TotalEarnedCommission, + TotalPaidCommission = src.TotalPaidCommission, + PendingCommission = src.PendingCommission, + TotalBalancesEarned = src.TotalBalancesEarned, + ActiveMembersInNetwork = src.ActiveMembersInNetwork, + InactiveMembersInNetwork = src.InactiveMembersInNetwork, Created = Timestamp.FromDateTime(DateTime.SpecifyKind(src.CreatedAt, DateTimeKind.Utc)) }); diff --git a/src/BackOffice.BFF.WebApi/appsettings.json b/src/BackOffice.BFF.WebApi/appsettings.json index c821b3d..32337f1 100644 --- a/src/BackOffice.BFF.WebApi/appsettings.json +++ b/src/BackOffice.BFF.WebApi/appsettings.json @@ -11,8 +11,8 @@ }, "GrpcChannelOptions": { "FMSMSAddress": "https://dl.afrino.co", -// "CMSMSAddress": "http://cms-svc:80" - "CMSMSAddress": "https://cms.foursat.afrino.co" + "CMSMSAddress": "http://cms-svc:80" +// "CMSMSAddress": "https://cms.foursat.afrino.co" // "CMSMSAddress": "https://localhost:32846" }, "Authentication": { diff --git a/src/Protobufs/BackOffice.BFF.NetworkMembership.Protobuf/BackOffice.BFF.NetworkMembership.Protobuf.csproj b/src/Protobufs/BackOffice.BFF.NetworkMembership.Protobuf/BackOffice.BFF.NetworkMembership.Protobuf.csproj index 1953978..ab1ae87 100644 --- a/src/Protobufs/BackOffice.BFF.NetworkMembership.Protobuf/BackOffice.BFF.NetworkMembership.Protobuf.csproj +++ b/src/Protobufs/BackOffice.BFF.NetworkMembership.Protobuf/BackOffice.BFF.NetworkMembership.Protobuf.csproj @@ -6,7 +6,7 @@ enable true Foursat.BackOffice.BFF.NetworkMembership.Protobuf - 0.0.6 + 0.0.7 FourSat FourSat Foursat.BackOffice.BFF.NetworkMembership.Protobuf diff --git a/src/Protobufs/BackOffice.BFF.NetworkMembership.Protobuf/Protos/networkmembership.proto b/src/Protobufs/BackOffice.BFF.NetworkMembership.Protobuf/Protos/networkmembership.proto index 39ccec3..83fa05c 100644 --- a/src/Protobufs/BackOffice.BFF.NetworkMembership.Protobuf/Protos/networkmembership.proto +++ b/src/Protobufs/BackOffice.BFF.NetworkMembership.Protobuf/Protos/networkmembership.proto @@ -85,20 +85,68 @@ message GetUserNetworkRequest message GetUserNetworkResponse { + // اطلاعات اصلی کاربر int64 id = 1; int64 user_id = 2; string user_name = 3; - google.protobuf.Int64Value parent_id = 4; - string parent_name = 5; - int32 network_leg = 6; // NetworkLeg enum - google.protobuf.Int64Value left_child_id = 7; - string left_child_name = 8; - google.protobuf.Int64Value right_child_id = 9; - string right_child_name = 10; - int32 network_level = 11; - string referral_code = 12; - google.protobuf.Timestamp joined_at = 13; - google.protobuf.Timestamp created = 14; + string mobile = 4; + string email = 5; + string national_code = 6; + string referral_code = 7; + bool is_mobile_verified = 8; + google.protobuf.Timestamp birth_date = 9; + google.protobuf.Timestamp joined_at = 10; + + // اطلاعات والد + google.protobuf.Int64Value parent_id = 11; + string parent_name = 12; + string parent_mobile = 13; + + // موقعیت در شبکه + int32 network_leg = 14; // NetworkLeg enum + int32 network_level = 15; + bool is_in_network = 16; + + // اطلاعات فرزند چپ + google.protobuf.Int64Value left_child_id = 17; + string left_child_name = 18; + string left_child_mobile = 19; + google.protobuf.Timestamp left_child_joined_at = 20; + + // اطلاعات فرزند راست + google.protobuf.Int64Value right_child_id = 21; + string right_child_name = 22; + string right_child_mobile = 23; + google.protobuf.Timestamp right_child_joined_at = 24; + + // آمار فرزندان مستقیم + int32 total_children = 25; + int32 left_child_count = 26; + int32 right_child_count = 27; + + // آمار کل شبکه + int32 total_left_leg_members = 28; + int32 total_right_leg_members = 29; + int32 total_network_size = 30; + int32 max_network_depth = 31; + + // اطلاعات پکیج و دایا + bool has_received_daya_credit = 32; + google.protobuf.Timestamp daya_credit_received_at = 33; + int32 package_purchase_method = 34; + bool has_purchased_golden_package = 35; + + // آمار مالی + double total_earned_commission = 36; + double total_paid_commission = 37; + double pending_commission = 38; + int32 total_balances_earned = 39; + + // آمار فعالیت + int32 active_members_in_network = 40; + int32 inactive_members_in_network = 41; + + google.protobuf.Timestamp created = 42; } // GetNetworkTree Query