diff --git a/src/BackOffice.BFF.Application/CommissionCQ/Queries/GetWithdrawalRequests/GetWithdrawalRequestsQueryHandler.cs b/src/BackOffice.BFF.Application/CommissionCQ/Queries/GetWithdrawalRequests/GetWithdrawalRequestsQueryHandler.cs index ce808fb..fa77363 100644 --- a/src/BackOffice.BFF.Application/CommissionCQ/Queries/GetWithdrawalRequests/GetWithdrawalRequestsQueryHandler.cs +++ b/src/BackOffice.BFF.Application/CommissionCQ/Queries/GetWithdrawalRequests/GetWithdrawalRequestsQueryHandler.cs @@ -37,6 +37,35 @@ public class GetWithdrawalRequestsQueryHandler : IRequestHandler(); + + return new GetWithdrawalRequestsResponseDto + { + MetaData = new MetaDataDto + { + TotalCount = (int)(response.MetaData?.TotalCount ?? 0), + PageSize = (int)(response.MetaData?.PageSize ?? request.PageSize), + CurrentPage = (int)(response.MetaData?.CurrentPage ?? request.PageIndex), + TotalPages = (int)(response.MetaData?.TotalPage ?? 0) + }, + Models = response.Models.Select(m => new WithdrawalRequestDto + { + Id = m.Id, + UserId = m.UserId, + UserName = m.UserName, + WeekDefinitionId = m.WeekDefinitionId, + Amount = m.Amount, + Status = m.Status, + WithdrawalMethod = m.WithdrawalMethod, + IbanNumber = m.IbanNumber, + RequestedAt = m.RequestedAt?.ToDateTime() ?? DateTime.MinValue, + ProcessedAt = m.ProcessedAt?.ToDateTime(), + ProcessedBy = m.ProcessedBy, + Reason = m.Reason, + Created = m.Created?.ToDateTime() ?? DateTime.MinValue, + BankReferenceId = m.BankReferenceId, + BankTrackingCode = m.BankTrackingCode, + PaymentFailureReason = m.PaymentFailureReason + }).ToList() + }; } } diff --git a/src/BackOffice.BFF.Application/CommissionCQ/Queries/GetWithdrawalRequests/GetWithdrawalRequestsResponseDto.cs b/src/BackOffice.BFF.Application/CommissionCQ/Queries/GetWithdrawalRequests/GetWithdrawalRequestsResponseDto.cs index d81fcc1..ae38c0e 100644 --- a/src/BackOffice.BFF.Application/CommissionCQ/Queries/GetWithdrawalRequests/GetWithdrawalRequestsResponseDto.cs +++ b/src/BackOffice.BFF.Application/CommissionCQ/Queries/GetWithdrawalRequests/GetWithdrawalRequestsResponseDto.cs @@ -11,18 +11,19 @@ public record WithdrawalRequestDto public long Id { get; init; } public long UserId { get; init; } public string UserName { get; init; } = string.Empty; - public string PhoneNumber { get; init; } = string.Empty; + public long WeekDefinitionId { get; init; } public long Amount { get; init; } public int Status { get; init; } - public string Method { get; init; } = "Bank"; - public string? BankAccount { get; init; } - public string? BankName { get; init; } + public int WithdrawalMethod { get; init; } + public string? IbanNumber { get; init; } + public DateTime RequestedAt { get; init; } + public DateTime? ProcessedAt { get; init; } + public string? ProcessedBy { get; init; } + public string? Reason { get; init; } + public DateTime Created { get; init; } public string? BankReferenceId { get; init; } public string? BankTrackingCode { get; init; } public string? PaymentFailureReason { get; init; } - public DateTime RequestDate { get; init; } - public DateTime? ProcessedDate { get; init; } - public string? AdminNote { get; init; } } public record MetaDataDto diff --git a/src/BackOffice.BFF.Domain/BackOffice.BFF.Domain.csproj b/src/BackOffice.BFF.Domain/BackOffice.BFF.Domain.csproj index 12e977f..35db127 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/CommissionProfile.cs b/src/BackOffice.BFF.WebApi/Common/Mappings/CommissionProfile.cs index 6788fb1..d261d8b 100644 --- a/src/BackOffice.BFF.WebApi/Common/Mappings/CommissionProfile.cs +++ b/src/BackOffice.BFF.WebApi/Common/Mappings/CommissionProfile.cs @@ -3,6 +3,7 @@ using BackOffice.BFF.Application.CommissionCQ.Queries.GetAllWeeklyPools; using BackOffice.BFF.Application.CommissionCQ.Queries.GetUserWeeklyBalances; using BackOffice.BFF.Application.CommissionCQ.Queries.GetAvailableWeeks; using BackOffice.BFF.Application.CommissionCQ.Queries.GetUserPayouts; +using BackOffice.BFF.Application.CommissionCQ.Queries.GetWithdrawalRequests; using BackOffice.BFF.Application.CommissionCQ.Commands.ProcessWithdrawal; using Foursat.BackOffice.BFF.Commission.Protos; using System.Collections.Generic; @@ -135,33 +136,38 @@ public class CommissionProfile : IRegister }); // GetWithdrawalRequestsResponseDto -> GetWithdrawalRequestsResponse - // config.NewConfig() - // .MapWith(src => new GetWithdrawalRequestsResponse - // { - // MetaData = new BackOffice.BFF.Protobuf.Common.MetaData - // { - // CurrentPage = src.MetaData.CurrentPage, - // PageSize = src.MetaData.PageSize, - // TotalCount = src.MetaData.TotalCount, - // TotalPage = src.MetaData.TotalPages - // }, - // Models = { src.Models.Select(m => new WithdrawalRequestModel - // { - // Id = m.Id, - // UserId = m.UserId, - // UserName = m.UserName ?? string.Empty, - // Amount = m.Amount, - // Status = m.Status, - // StatusDisplay = m.StatusDisplay ?? string.Empty, - // RequestedAt = Timestamp.FromDateTime(DateTime.SpecifyKind(m.RequestedAt, DateTimeKind.Utc)), - // ProcessedAt = m.ProcessedAt.HasValue - // ? Timestamp.FromDateTime(DateTime.SpecifyKind(m.ProcessedAt.Value, DateTimeKind.Utc)) - // : null, - // ProcessedBy = m.ProcessedBy, - // ProcessedByName = m.ProcessedByName ?? string.Empty, - // RejectionReason = m.RejectionReason ?? string.Empty - // }) } - // }); + config.NewConfig() + .MapWith(src => new GetWithdrawalRequestsResponse + { + MetaData = new BackOffice.BFF.Protobuf.Common.MetaData + { + CurrentPage = src.MetaData.CurrentPage, + PageSize = src.MetaData.PageSize, + TotalCount = src.MetaData.TotalCount, + TotalPage = src.MetaData.TotalPages + }, + Models = { src.Models.Select(m => new WithdrawalRequestModel + { + Id = m.Id, + UserId = m.UserId, + UserName = m.UserName ?? string.Empty, + WeekDefinitionId = m.WeekDefinitionId, + Amount = m.Amount, + Status = m.Status, + WithdrawalMethod = m.WithdrawalMethod, + IbanNumber = m.IbanNumber ?? string.Empty, + RequestedAt = Timestamp.FromDateTime(DateTime.SpecifyKind(m.RequestedAt, DateTimeKind.Utc)), + ProcessedAt = m.ProcessedAt.HasValue + ? Timestamp.FromDateTime(DateTime.SpecifyKind(m.ProcessedAt.Value, DateTimeKind.Utc)) + : null, + ProcessedBy = m.ProcessedBy ?? string.Empty, + Reason = m.Reason ?? string.Empty, + Created = Timestamp.FromDateTime(DateTime.SpecifyKind(m.Created, DateTimeKind.Utc)), + BankReferenceId = m.BankReferenceId ?? string.Empty, + BankTrackingCode = m.BankTrackingCode ?? string.Empty, + PaymentFailureReason = m.PaymentFailureReason ?? string.Empty + }) } + }); // GetWithdrawalReportsResponseDto -> GetWithdrawalReportsResponse // config.NewConfig() diff --git a/src/Protobufs/BackOffice.BFF.Commission.Protobuf/BackOffice.BFF.Commission.Protobuf.csproj b/src/Protobufs/BackOffice.BFF.Commission.Protobuf/BackOffice.BFF.Commission.Protobuf.csproj index 1847db5..79c3495 100644 --- a/src/Protobufs/BackOffice.BFF.Commission.Protobuf/BackOffice.BFF.Commission.Protobuf.csproj +++ b/src/Protobufs/BackOffice.BFF.Commission.Protobuf/BackOffice.BFF.Commission.Protobuf.csproj @@ -6,7 +6,7 @@ enable true Foursat.BackOffice.BFF.Commission.Protobuf - 0.0.13 + 0.0.14 FourSat FourSat BackOffice.BFF.Commission.Protobuf diff --git a/src/Protobufs/BackOffice.BFF.Commission.Protobuf/Protos/commission.proto b/src/Protobufs/BackOffice.BFF.Commission.Protobuf/Protos/commission.proto index 1f324fc..d75e3cf 100644 --- a/src/Protobufs/BackOffice.BFF.Commission.Protobuf/Protos/commission.proto +++ b/src/Protobufs/BackOffice.BFF.Commission.Protobuf/Protos/commission.proto @@ -279,15 +279,20 @@ message UserWeeklyBalanceModel { int64 id = 1; int64 user_id = 2; - int64 week_definition_id = 3; - string week_display_name = 4; - int32 left_leg_balances = 5; - int32 right_leg_balances = 6; - int32 total_balances = 7; - int64 weekly_pool_contribution = 8; - google.protobuf.Timestamp calculated_at = 9; - bool is_expired = 10; - google.protobuf.Timestamp created = 11; + string user_full_name = 3; // نام کامل کاربر + int64 week_definition_id = 4; + string week_display_name = 5; + int32 left_leg_new_members = 6; // اعضای جدید چپ این هفته + int32 left_leg_carryover = 7; // باقیمانده چپ از هفته قبل + int32 left_leg_total = 8; // مجموع چپ (NewMembers + Carryover) + int32 right_leg_new_members = 9; // اعضای جدید راست این هفته + int32 right_leg_carryover = 10; // باقیمانده راست از هفته قبل + int32 right_leg_total = 11; // مجموع راست (NewMembers + Carryover) + int32 total_balances = 12; // تعداد تعادل = MIN(چپ, راست) + int64 weekly_pool_contribution = 13; + google.protobuf.Timestamp calculated_at = 14; + bool is_expired = 15; + google.protobuf.Timestamp created = 16; } // GetAllWeeklyPools Query