feat: add Mapster profiles and enable DiscountOrder handlers
Build and Deploy / build (push) Successful in 2m14s

This commit is contained in:
masoodafar-web
2025-12-08 21:10:21 +03:30
parent dedc0b809f
commit ce3b5db822
57 changed files with 2125 additions and 374 deletions
@@ -0,0 +1,172 @@
using BackOffice.BFF.Application.CommissionCQ.Queries.GetWeeklyPool;
using BackOffice.BFF.Application.CommissionCQ.Queries.GetUserPayouts;
using BackOffice.BFF.Application.CommissionCQ.Queries.GetAllWeeklyPools;
using BackOffice.BFF.Application.CommissionCQ.Queries.GetUserWeeklyBalances;
using BackOffice.BFF.Application.CommissionCQ.Queries.GetWithdrawalRequests;
using BackOffice.BFF.Application.CommissionCQ.Queries.GetWithdrawalReports;
using Foursat.BackOffice.BFF.Commission.Protos;
using Google.Protobuf.WellKnownTypes;
using BackOffice.BFF.Protobuf.Common;
namespace BackOffice.BFF.WebApi.Common.Mappings;
public class CommissionProfile : IRegister
{
void IRegister.Register(TypeAdapterConfig config)
{
// GetWeeklyPoolResponseDto -> GetWeeklyCommissionPoolResponse
config.NewConfig<GetWeeklyPoolResponseDto, GetWeeklyCommissionPoolResponse>()
.MapWith(src => new GetWeeklyCommissionPoolResponse
{
Id = src.Id,
WeekNumber = src.WeekNumber ?? string.Empty,
// TotalPoolValue = src.TotalPoolValue,
// TotalContributions = src.TotalContributions,
// TotalPayouts = src.TotalPayouts,
// LeftBalance = src.LeftBalance,
// ActiveMembersCount = src.ActiveMembersCount,
IsCalculated = src.IsCalculated,
CalculatedAt = src.CalculatedAt.HasValue
? Timestamp.FromDateTime(DateTime.SpecifyKind(src.CalculatedAt.Value, DateTimeKind.Utc))
: null,
Created = Timestamp.FromDateTime(DateTime.SpecifyKind(src.CreatedAt, DateTimeKind.Utc))
});
// GetUserPayoutsResponseDto -> GetUserCommissionPayoutsResponse
// config.NewConfig<GetUserPayoutsResponseDto, GetUserCommissionPayoutsResponse>()
// .MapWith(src => new GetUserCommissionPayoutsResponse
// {
// MetaData = new BackOffice.BFF.Protobuf.Common.MetaData
// {
// CurrentPage = src.PageNumber,
// PageSize = src.PageSize,
// TotalCount = src.TotalCount,
// TotalPage = src.TotalPages
// },
// Models = { src.Payouts.Select(m => new UserCommissionPayoutModel
// {
// Id = m.Id,
// UserId = m.UserId,
// UserName = m.UserName ?? string.Empty,
// WeekNumber = m.WeekNumber ?? string.Empty,
// BalanceCount = m.BalanceCount,
// PayoutAmount = m.PayoutAmount,
// Status = m.Status,
// StatusDisplay = m.StatusDisplay ?? string.Empty,
// PayoutDate = m.PayoutDate.HasValue
// ? Timestamp.FromDateTime(DateTime.SpecifyKind(m.PayoutDate.Value, DateTimeKind.Utc))
// : null,
// Created = Timestamp.FromDateTime(DateTime.SpecifyKind(m.Created, DateTimeKind.Utc))
// }) }
// });
// GetAllWeeklyPoolsResponseDto -> GetAllWeeklyPoolsResponse
config.NewConfig<GetAllWeeklyPoolsResponseDto, GetAllWeeklyPoolsResponse>()
.MapWith(src => new GetAllWeeklyPoolsResponse
{
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 WeeklyCommissionPoolModel
{
Id = m.Id,
WeekNumber = m.WeekNumber ?? string.Empty,
TotalPoolAmount = m.TotalPoolAmount,
TotalBalances = m.TotalBalances,
ValuePerBalance = m.ValuePerBalance,
IsCalculated = m.IsCalculated,
CalculatedAt = m.CalculatedAt.HasValue
? Timestamp.FromDateTime(DateTime.SpecifyKind(m.CalculatedAt.Value, DateTimeKind.Utc))
: null,
Created = Timestamp.FromDateTime(DateTime.SpecifyKind(m.Created, DateTimeKind.Utc))
}) }
});
// GetUserWeeklyBalancesResponseDto -> GetUserWeeklyBalancesResponse
config.NewConfig<GetUserWeeklyBalancesResponseDto, GetUserWeeklyBalancesResponse>()
.MapWith(src => new GetUserWeeklyBalancesResponse
{
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 UserWeeklyBalanceModel
{
Id = m.Id,
UserId = m.UserId,
WeekNumber = m.WeekNumber ?? string.Empty,
LeftLegBalances = m.LeftLegBalances,
RightLegBalances = m.RightLegBalances,
TotalBalances = m.TotalBalances,
WeeklyPoolContribution = m.WeeklyPoolContribution,
CalculatedAt = m.CalculatedAt.HasValue
? Timestamp.FromDateTime(DateTime.SpecifyKind(m.CalculatedAt.Value, DateTimeKind.Utc))
: null,
IsExpired = m.IsExpired,
Created = Timestamp.FromDateTime(DateTime.SpecifyKind(m.Created, DateTimeKind.Utc))
}) }
});
// GetWithdrawalRequestsResponseDto -> GetWithdrawalRequestsResponse
// config.NewConfig<GetWithdrawalRequestsResponseDto, GetWithdrawalRequestsResponse>()
// .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
// }) }
// });
// GetWithdrawalReportsResponseDto -> GetWithdrawalReportsResponse
// config.NewConfig<GetWithdrawalReportsResponseDto, GetWithdrawalReportsResponse>()
// .MapWith(src => new GetWithdrawalReportsResponse
// {
// TotalRequests = src.TotalRequests,
// PendingCount = src.PendingCount,
// ApprovedCount = src.ApprovedCount,
// RejectedCount = src.RejectedCount,
// ProcessedCount = src.ProcessedCount,
// TotalAmount = src.TotalAmount,
// PendingAmount = src.PendingAmount,
// ApprovedAmount = src.ApprovedAmount,
// ProcessedAmount = src.ProcessedAmount,
// Reports = { src.Reports.Select(r => new WithdrawalReportModel
// {
// UserId = r.UserId,
// UserName = r.UserName ?? string.Empty,
// TotalRequests = r.TotalRequests,
// TotalAmount = r.TotalAmount,
// ApprovedAmount = r.ApprovedAmount,
// LastRequestDate = r.LastRequestDate.HasValue
// ? Timestamp.FromDateTime(DateTime.SpecifyKind(r.LastRequestDate.Value, DateTimeKind.Utc))
// : null
// }) }
// });
}
}