67 lines
3.9 KiB
C#
67 lines
3.9 KiB
C#
using FrontOffice.BFF.Application.ClubMembershipCQ.Queries.GetMyClubMembership;
|
|
using FrontOffice.BFF.Application.ClubMembershipCQ.Commands.ActivateMyClubMembership;
|
|
using FrontOffice.BFF.Application.ClubMembershipCQ.Commands.RequestClubContractOtp;
|
|
using FrontOffice.BFF.Application.ClubMembershipCQ.Commands.AcceptClubMembershipContract;
|
|
using Google.Protobuf.WellKnownTypes;
|
|
using ProtoDto = FrontOffice.BFF.ClubMembership.Protobuf.Protos.ClubMembership;
|
|
|
|
namespace FrontOffice.BFF.WebApi.Common.Mappings;
|
|
|
|
public class ClubMembershipProfile : IRegister
|
|
{
|
|
void IRegister.Register(TypeAdapterConfig config)
|
|
{
|
|
// Request -> Command mappings
|
|
config.NewConfig<ProtoDto.ActivateMyClubMembershipRequest, ActivateMyClubMembershipCommand>()
|
|
.Map(dest => dest.PackageId, src => src.PackageId)
|
|
.Map(dest => dest.ActivationCode, src => src.ActivationCode)
|
|
.Map(dest => dest.DurationMonths, src => src.DurationMonths > 0 ? src.DurationMonths : 12);
|
|
|
|
// Response mappings
|
|
config.NewConfig<GetMyClubMembershipResponseDto, ProtoDto.GetMyClubMembershipResponse>()
|
|
.Map(dest => dest.UserId, src => src.UserId)
|
|
.Map(dest => dest.PackageId, src => src.PackageId)
|
|
.Map(dest => dest.PackageName, src => src.PackageName)
|
|
.Map(dest => dest.ActivationCode, src => src.ActivationCode)
|
|
.Map(dest => dest.IsActive, src => src.IsActive)
|
|
.Map(dest => dest.ActivationDate, src => src.ActivationDate.HasValue
|
|
? Timestamp.FromDateTime(DateTime.SpecifyKind(src.ActivationDate.Value, DateTimeKind.Utc))
|
|
: null)
|
|
.Map(dest => dest.ExpirationDate, src => src.ExpirationDate.HasValue
|
|
? Timestamp.FromDateTime(DateTime.SpecifyKind(src.ExpirationDate.Value, DateTimeKind.Utc))
|
|
: null)
|
|
.Map(dest => dest.Status, src => src.Status)
|
|
.Map(dest => dest.DaysRemaining, src => src.DaysRemaining)
|
|
.Map(dest => dest.IsTrialPeriod, src => src.IsTrialPeriod);
|
|
|
|
config.NewConfig<ActivateMyClubMembershipResponseDto, ProtoDto.ActivateMyClubMembershipResponse>()
|
|
.Map(dest => dest.Success, src => src.Success)
|
|
.Map(dest => dest.Message, src => src.Message)
|
|
.Map(dest => dest.ActivationDate, src => Timestamp.FromDateTime(DateTime.SpecifyKind(src.ActivationDate, DateTimeKind.Utc)))
|
|
.Map(dest => dest.ExpirationDate, src => Timestamp.FromDateTime(DateTime.SpecifyKind(src.ExpirationDate, DateTimeKind.Utc)))
|
|
.Map(dest => dest.AmountPaid, src => src.AmountPaid);
|
|
|
|
// RequestClubContractOtp mappings
|
|
config.NewConfig<ProtoDto.RequestClubContractOtpRequest, RequestClubContractOtpCommand>()
|
|
.Map(dest => dest.SignGuid, src => src.SignGuid);
|
|
|
|
config.NewConfig<RequestClubContractOtpResponseDto, ProtoDto.RequestClubContractOtpResponse>()
|
|
.Map(dest => dest.Success, src => src.Success)
|
|
.Map(dest => dest.Message, src => src.Message)
|
|
.Map(dest => dest.RemainingAttempts, src => src.RemainingAttempts)
|
|
.Map(dest => dest.RemainingSeconds, src => src.RemainingSeconds);
|
|
|
|
// AcceptClubMembershipContract mappings
|
|
config.NewConfig<ProtoDto.AcceptClubMembershipContractRequest, AcceptClubMembershipContractCommand>()
|
|
.Map(dest => dest.OtpCode, src => src.OtpCode)
|
|
.Map(dest => dest.SignGuid, src => src.SignGuid)
|
|
.Map(dest => dest.ContractHtml, src => src.ContractHtml);
|
|
|
|
config.NewConfig<AcceptClubMembershipContractResponseDto, ProtoDto.AcceptClubMembershipContractResponse>()
|
|
.Map(dest => dest.Success, src => src.Success)
|
|
.Map(dest => dest.Message, src => src.Message)
|
|
.Map(dest => dest.ContractId, src => src.ContractId)
|
|
.Map(dest => dest.Token, src => src.Token ?? "");
|
|
}
|
|
}
|