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() .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() .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() .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() .Map(dest => dest.SignGuid, src => src.SignGuid); config.NewConfig() .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() .Map(dest => dest.OtpCode, src => src.OtpCode) .Map(dest => dest.SignGuid, src => src.SignGuid) .Map(dest => dest.ContractHtml, src => src.ContractHtml); config.NewConfig() .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 ?? ""); } }