using CMSMicroservice.Protobuf.Protos.City; using FrontOffice.BFF.Application.CityCQ.Queries.GetAllCitiesByFilter; using Mapster; using CmsProtos = CMSMicroservice.Protobuf.Protos; namespace FrontOffice.BFF.Application.Common.Mappings; public class CityProfile : IRegister { void IRegister.Register(TypeAdapterConfig config) { // Request: BFF → CMS config.NewConfig() .Map(dest => dest.PaginationState, src => src.PaginationState) .Map(dest => dest.SortBy, src => src.SortBy) .Map(dest => dest.Filter, src => src.Filter); // PaginationState is in CMSMicroservice.Protobuf.Protos namespace (from public_messages.proto) config.NewConfig() .Map(dest => dest.PageNumber, src => src.PageNumber) .Map(dest => dest.PageSize, src => src.PageSize); config.NewConfig() .Map(dest => dest.Id, src => src.Id) .Map(dest => dest.Name, src => src.Name) .Map(dest => dest.Native, src => src.Native) .Map(dest => dest.StateId, src => src.StateId); // Response: CMS → BFF config.NewConfig() .Map(dest => dest.MetaData, src => src.MetaData) .Map(dest => dest.Models, src => src.Models); // MetaData is in CMSMicroservice.Protobuf.Protos namespace (from public_messages.proto) config.NewConfig() .Map(dest => dest.CurrentPage, src => src.CurrentPage) .Map(dest => dest.TotalPage, src => src.TotalPage) .Map(dest => dest.PageSize, src => src.PageSize) .Map(dest => dest.TotalCount, src => src.TotalCount) .Map(dest => dest.HasPrevious, src => src.HasPrevious) .Map(dest => dest.HasNext, src => src.HasNext); config.NewConfig() .Map(dest => dest.Id, src => src.Id) .Map(dest => dest.ExternalId, src => src.ExternalId) .Map(dest => dest.Name, src => src.Name) .Map(dest => dest.Native, src => src.Native) .Map(dest => dest.Latitude, src => src.Latitude) .Map(dest => dest.Longitude, src => src.Longitude) .Map(dest => dest.StateId, src => src.StateId) .Map(dest => dest.StateName, src => src.StateName) .Map(dest => dest.StateNative, src => src.StateNative); } }