using FrontOffice.BFF.Application.ConfigurationCQ.Queries.GetClubConfiguration; using FrontOffice.BFF.Application.ConfigurationCQ.Queries.GetClubFeatures; using Google.Protobuf.WellKnownTypes; using ProtoDto = FrontOffice.BFF.Configuration.Protobuf.Protos.Configuration; namespace FrontOffice.BFF.WebApi.Common.Mappings; public class ConfigurationProfile : IRegister { void IRegister.Register(TypeAdapterConfig config) { // GetClubConfiguration mappings config.NewConfig() .Map(dest => dest.ActivationFee, src => src.ActivationFee) .Map(dest => dest.MembershipGiftValue, src => src.MembershipGiftValue); // GetClubFeatures mappings config.NewConfig() .MapWith(src => new ProtoDto.GetClubFeaturesResponse { Features = { src.Features.Select(f => f.Adapt()) } }); config.NewConfig() .Map(dest => dest.Id, src => src.Id) .Map(dest => dest.Title, src => src.Title) .Map(dest => dest.Description, src => src.Description ?? "") .Map(dest => dest.IsEnabled, src => src.IsEnabled) .Map(dest => dest.DisplayOrder, src => src.DisplayOrder) .Map(dest => dest.GrantedAt, src => src.GrantedAt != DateTime.MinValue ? Timestamp.FromDateTime(DateTime.SpecifyKind(src.GrantedAt, DateTimeKind.Utc)) : null) .Map(dest => dest.CreatedAt, src => src.CreatedAt != DateTime.MinValue ? Timestamp.FromDateTime(DateTime.SpecifyKind(src.CreatedAt, DateTimeKind.Utc)) : null) .Map(dest => dest.Notes, src => src.Notes ?? ""); } }