refactor(mappings): streamline mapping configurations for user package purchases and payment transactions
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 23m14s
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 23m14s
- Updated mapping configurations in UserPackagePurchaseProfile and PaymentTransactionProfile to utilize new Protobuf definitions for improved clarity and consistency. - Simplified filter mappings and removed redundant mapping methods to enhance maintainability. - Ensured alignment of all relevant profiles with the latest filter structures and DTOs.
This commit is contained in:
@@ -1,10 +1,9 @@
|
||||
using CMSMicroservice.Application.ClubMembershipCycleCQ.Queries.GetAllClubMembershipCycleByFilter;
|
||||
using CMSMicroservice.Application.ClubMembershipCycleCQ.Queries.GetClubMembershipCycleSummary;
|
||||
using CMSMicroservice.Protobuf.Protos.ClubMembershipCycle;
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using CMSMicroservice.Domain.Enums;
|
||||
using Mapster;
|
||||
using AppFilter = CMSMicroservice.Application.ClubMembershipCycleCQ.Queries.GetAllClubMembershipCycleByFilter.GetAllClubMembershipCycleByFilterFilter;
|
||||
using ProtoFilter = CMSMicroservice.Protobuf.Protos.ClubMembershipCycle.GetAllClubMembershipCycleByFilterFilter;
|
||||
using AppCycle = CMSMicroservice.Application.ClubMembershipCycleCQ.Queries.GetAllClubMembershipCycleByFilter;
|
||||
using AppCycleSummary = CMSMicroservice.Application.ClubMembershipCycleCQ.Queries.GetClubMembershipCycleSummary;
|
||||
using ProtoCycle = CMSMicroservice.Protobuf.Protos.ClubMembershipCycle;
|
||||
|
||||
namespace CMSMicroservice.WebApi.Common.Mappings;
|
||||
|
||||
@@ -12,83 +11,47 @@ public class ClubMembershipCycleProfile : IRegister
|
||||
{
|
||||
public void Register(TypeAdapterConfig config)
|
||||
{
|
||||
config.NewConfig<GetAllClubMembershipCycleByFilterRequest, GetAllClubMembershipCycleByFilterQuery>()
|
||||
.MapWith(src => new GetAllClubMembershipCycleByFilterQuery
|
||||
{
|
||||
PaginationState = MapPagination(src.PaginationState),
|
||||
SortBy = src.HasSortBy ? src.SortBy : null,
|
||||
Filter = MapFilter(src.Filter)
|
||||
});
|
||||
config.NewConfig<ProtoCycle.GetAllClubMembershipCycleByFilterRequest, AppCycle.GetAllClubMembershipCycleByFilterQuery>()
|
||||
.Map(dest => dest.PaginationState, src => src.PaginationState)
|
||||
.Map(dest => dest.SortBy, src => src.SortBy)
|
||||
.Map(dest => dest.Filter, src => src.Filter);
|
||||
|
||||
config.NewConfig<GetAllClubMembershipCycleByFilterResponseDto, GetAllClubMembershipCycleByFilterResponse>()
|
||||
.MapWith(src => new GetAllClubMembershipCycleByFilterResponse
|
||||
{
|
||||
MetaData = MapMeta(src.MetaData),
|
||||
Models = { src.Models?.Select(MapModel) ?? [] }
|
||||
});
|
||||
config.NewConfig<ProtoCycle.GetAllClubMembershipCycleByFilterFilter, AppCycle.GetAllClubMembershipCycleByFilterFilter>()
|
||||
.Map(dest => dest.UserId, src => src.UserId)
|
||||
.Map(dest => dest.IsCurrentCycle, src => src.IsCurrentCycle)
|
||||
.Map(dest => dest.PackageId, src => src.PackageId)
|
||||
.Map(dest => dest.CycleNumber, src => src.CycleNumber)
|
||||
.Map(dest => dest.PurchaseMethod, src => src.PurchaseMethod == null ? null : (PackagePurchaseMethod?)src.PurchaseMethod)
|
||||
.Map(dest => dest.MagicState, src => src.MagicState)
|
||||
.Map(dest => dest.PackagePurchasedFrom, src => src.PackagePurchasedFrom != null ? src.PackagePurchasedFrom.ToDateTime() : (DateTime?)null)
|
||||
.Map(dest => dest.PackagePurchasedTo, src => src.PackagePurchasedTo != null ? src.PackagePurchasedTo.ToDateTime() : (DateTime?)null);
|
||||
|
||||
config.NewConfig<GetClubMembershipCycleSummaryRequest, GetClubMembershipCycleSummaryQuery>()
|
||||
.MapWith(src => new GetClubMembershipCycleSummaryQuery { Filter = MapFilter(src.Filter) });
|
||||
config.NewConfig<AppCycle.GetAllClubMembershipCycleByFilterResponseDto, ProtoCycle.GetAllClubMembershipCycleByFilterResponse>()
|
||||
.Map(dest => dest.MetaData, src => src.MetaData)
|
||||
.Map(dest => dest.Models, src => src.Models);
|
||||
|
||||
config.NewConfig<GetClubMembershipCycleSummaryResponseDto, GetClubMembershipCycleSummaryResponse>()
|
||||
.MapWith(src => new GetClubMembershipCycleSummaryResponse
|
||||
{
|
||||
TotalCount = src.TotalCount,
|
||||
CurrentCycleCount = src.CurrentCycleCount,
|
||||
MagicActiveCount = src.MagicActiveCount
|
||||
});
|
||||
config.NewConfig<AppCycle.GetAllClubMembershipCycleByFilterResponseModel, ProtoCycle.ClubMembershipCycleModel>()
|
||||
.Map(dest => dest.Id, src => src.Id)
|
||||
.Map(dest => dest.UserId, src => src.UserId)
|
||||
.Map(dest => dest.UserName, src => src.UserName)
|
||||
.Map(dest => dest.ClubMembershipId, src => src.ClubMembershipId)
|
||||
.Map(dest => dest.CycleNumber, src => src.CycleNumber)
|
||||
.Map(dest => dest.PackageId, src => src.PackageId)
|
||||
.Map(dest => dest.PackageName, src => src.PackageName)
|
||||
.Map(dest => dest.PackageAmount, src => src.PackageAmount)
|
||||
.Map(dest => dest.PurchaseMethod, src => (int)src.PurchaseMethod)
|
||||
.Map(dest => dest.PackagePurchasedAt, src => Timestamp.FromDateTime(DateTime.SpecifyKind(src.PackagePurchasedAt, DateTimeKind.Utc)))
|
||||
.Map(dest => dest.MagicStartedAt, src => src.MagicStartedAt)
|
||||
.Map(dest => dest.MagicCompletedAt, src => src.MagicCompletedAt)
|
||||
.Map(dest => dest.IsCurrentCycle, src => src.IsCurrentCycle)
|
||||
.Map(dest => dest.CreatedAt, src => Timestamp.FromDateTimeOffset(src.Created));
|
||||
|
||||
config.NewConfig<ProtoCycle.GetClubMembershipCycleSummaryRequest, AppCycleSummary.GetClubMembershipCycleSummaryQuery>()
|
||||
.Map(dest => dest.Filter, src => src.Filter);
|
||||
|
||||
config.NewConfig<AppCycleSummary.GetClubMembershipCycleSummaryResponseDto, ProtoCycle.GetClubMembershipCycleSummaryResponse>()
|
||||
.Map(dest => dest.TotalCount, src => src.TotalCount)
|
||||
.Map(dest => dest.CurrentCycleCount, src => src.CurrentCycleCount)
|
||||
.Map(dest => dest.MagicActiveCount, src => src.MagicActiveCount);
|
||||
}
|
||||
|
||||
private static AppFilter? MapFilter(ProtoFilter? src)
|
||||
{
|
||||
if (src == null) return null;
|
||||
return new AppFilter
|
||||
{
|
||||
UserId = src.HasUserId ? src.UserId : null,
|
||||
IsCurrentCycle = src.HasIsCurrentCycle ? src.IsCurrentCycle : null,
|
||||
PackageId = src.HasPackageId ? src.PackageId : null,
|
||||
CycleNumber = src.HasCycleNumber ? src.CycleNumber : null,
|
||||
PurchaseMethod = src.HasPurchaseMethod ? (Domain.Enums.PackagePurchaseMethod)src.PurchaseMethod : null,
|
||||
MagicState = src.HasMagicState ? src.MagicState : null,
|
||||
PackagePurchasedFrom = src.PackagePurchasedFrom?.ToDateTime(),
|
||||
PackagePurchasedTo = src.PackagePurchasedTo?.ToDateTime()
|
||||
};
|
||||
}
|
||||
|
||||
private static ClubMembershipCycleModel MapModel(GetAllClubMembershipCycleByFilterResponseModel m) =>
|
||||
new()
|
||||
{
|
||||
Id = m.Id,
|
||||
UserId = m.UserId,
|
||||
UserName = m.UserName,
|
||||
ClubMembershipId = m.ClubMembershipId,
|
||||
CycleNumber = m.CycleNumber,
|
||||
PackageId = m.PackageId,
|
||||
PackageName = m.PackageName,
|
||||
PackageAmount = m.PackageAmount,
|
||||
PurchaseMethod = (int)m.PurchaseMethod,
|
||||
PackagePurchasedAt = Timestamp.FromDateTime(DateTime.SpecifyKind(m.PackagePurchasedAt, DateTimeKind.Utc)),
|
||||
MagicStartedAt = m.MagicStartedAt.HasValue
|
||||
? Timestamp.FromDateTime(DateTime.SpecifyKind(m.MagicStartedAt.Value, DateTimeKind.Utc)) : null,
|
||||
MagicCompletedAt = m.MagicCompletedAt.HasValue
|
||||
? Timestamp.FromDateTime(DateTime.SpecifyKind(m.MagicCompletedAt.Value, DateTimeKind.Utc)) : null,
|
||||
IsCurrentCycle = m.IsCurrentCycle,
|
||||
CreatedAt = Timestamp.FromDateTimeOffset(m.Created)
|
||||
};
|
||||
|
||||
private static Application.Common.Models.PaginationState? MapPagination(CMSMicroservice.Protobuf.Protos.PaginationState? ps) =>
|
||||
ps == null ? null : new Application.Common.Models.PaginationState
|
||||
{
|
||||
PageNumber = ps.PageNumber > 0 ? ps.PageNumber : 1,
|
||||
PageSize = ps.PageSize > 0 ? ps.PageSize : 20
|
||||
};
|
||||
|
||||
private static CMSMicroservice.Protobuf.Protos.MetaData MapMeta(Application.Common.Models.MetaData meta) =>
|
||||
new()
|
||||
{
|
||||
CurrentPage = meta.CurrentPage,
|
||||
PageSize = meta.PageSize,
|
||||
TotalCount = meta.TotalCount,
|
||||
TotalPage = meta.TotalPage
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user