feat: add Configuration gRPC service and queries for club settings and features

This commit is contained in:
masoodafar-web
2025-12-19 00:30:58 +03:30
parent 9db854ba0e
commit 0cca79ebfe
17 changed files with 765 additions and 19 deletions
@@ -0,0 +1,38 @@
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<GetClubConfigurationResponseDto, ProtoDto.GetClubConfigurationResponse>()
.Map(dest => dest.ActivationFee, src => src.ActivationFee)
.Map(dest => dest.MembershipGiftValue, src => src.MembershipGiftValue);
// GetClubFeatures mappings
config.NewConfig<GetClubFeaturesResponseDto, ProtoDto.GetClubFeaturesResponse>()
.MapWith(src => new ProtoDto.GetClubFeaturesResponse
{
Features = { src.Features.Select(f => f.Adapt<ProtoDto.ClubFeatureModel>()) }
});
config.NewConfig<ClubFeatureItemDto, ProtoDto.ClubFeatureModel>()
.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 ?? "");
}
}