feat: Implement DiscountCategoryProfile for mapping GetDiscountCategories response to protobuf
Build and Deploy / build (push) Successful in 2m16s

This commit is contained in:
masoodafar-web
2026-01-04 22:38:39 +03:30
parent d2521a7615
commit 3aabf10a51
@@ -0,0 +1,43 @@
using BackOffice.BFF.Application.DiscountCategoryCQ.Queries.GetDiscountCategories;
using BackOffice.BFF.DiscountCategory.Protobuf.Protos.DiscountCategory;
using Google.Protobuf.WellKnownTypes;
using Mapster;
namespace BackOffice.BFF.WebApi.Common.Mappings;
public class DiscountCategoryProfile : IRegister
{
void IRegister.Register(TypeAdapterConfig config)
{
// Map GetDiscountCategories response DTO to protobuf response
config.NewConfig<GetDiscountCategoriesResponseDto, GetDiscountCategoriesResponse>()
.MapWith(src => new GetDiscountCategoriesResponse
{
Categories = { src.Categories.Select(MapCategoryTree) }
});
}
private static DiscountCategoryDto MapCategoryTree(DiscountCategoryTreeDto src)
{
var dto = new DiscountCategoryDto
{
Id = src.Id,
Name = src.Name ?? string.Empty,
Title = src.Title ?? string.Empty,
Description = !string.IsNullOrWhiteSpace(src.Description) ? src.Description : null,
ImagePath = !string.IsNullOrWhiteSpace(src.ImagePath) ? src.ImagePath : null,
ParentCategoryId = src.ParentCategoryId,
SortOrder = src.SortOrder,
IsActive = src.IsActive,
ProductCount = src.ProductCount
};
// Recursively map children
if (src.ChildCategories != null && src.ChildCategories.Any())
{
dto.Children.AddRange(src.ChildCategories.Select(MapCategoryTree));
}
return dto;
}
}