namespace BackOffice.BFF.WebApi.Common.Mappings; using BackOffice.BFF.UserOrder.Protobuf.Protos.UserOrder; using BackOffice.BFF.Application.UserOrderCQ.Commands.UpdateOrderStatus; using BackOffice.BFF.Application.UserOrderCQ.Commands.ApplyDiscountToOrder; using BackOffice.BFF.Application.UserOrderCQ.Commands.CancelOrder; using BackOffice.BFF.Application.UserOrderCQ.Queries.GetOrdersByDateRange; using BackOffice.BFF.Application.UserOrderCQ.Queries.CalculateOrderPV; using Google.Protobuf.WellKnownTypes; public class UserOrderProfile : IRegister { void IRegister.Register(TypeAdapterConfig config) { // UpdateOrderStatus mappings config.NewConfig() .Map(dest => dest.OrderId, src => src.OrderId) .Map(dest => dest.NewStatus, src => src.NewStatus); config.NewConfig() .Map(dest => dest.Success, src => src.Success) .Map(dest => dest.Message, src => src.Message) .Map(dest => dest.OldStatus, src => src.OldStatus) .Map(dest => dest.NewStatus, src => src.NewStatus); // GetOrdersByDateRange mappings config.NewConfig() .Map(dest => dest.StartDate, src => src.StartDate.ToDateTime()) .Map(dest => dest.EndDate, src => src.EndDate.ToDateTime()) .Map(dest => dest.Status, src => src.Status != null ? (int?)src.Status.Value : null) .Map(dest => dest.UserId, src => src.UserId != null ? (long?)src.UserId.Value : null) .Map(dest => dest.PageNumber, src => src.PageNumber) .Map(dest => dest.PageSize, src => src.PageSize); config.NewConfig() .Map(dest => dest.MetaData, src => src.MetaData) .Map(dest => dest.Orders, src => src.Orders); config.NewConfig() .Map(dest => dest.OrderId, src => src.OrderId) .Map(dest => dest.OrderNumber, src => src.OrderNumber) .Map(dest => dest.UserId, src => src.UserId) .Map(dest => dest.UserFullName, src => src.UserFullName) .Map(dest => dest.TotalAmount, src => src.TotalAmount) .Map(dest => dest.Status, src => src.Status) .Map(dest => dest.StatusName, src => src.StatusName) .Map(dest => dest.ItemsCount, src => src.ItemsCount) .Map(dest => dest.CreatedAt, src => Timestamp.FromDateTime(src.CreatedAt.ToUniversalTime())); // ApplyDiscountToOrder mappings config.NewConfig() .Map(dest => dest.OrderId, src => src.OrderId) .Map(dest => dest.DiscountAmount, src => src.DiscountAmount) .Map(dest => dest.Reason, src => src.Reason); config.NewConfig() .Map(dest => dest.Success, src => src.Success) .Map(dest => dest.Message, src => src.Message) .Map(dest => dest.OriginalAmount, src => src.OriginalAmount) .Map(dest => dest.DiscountAmount, src => src.DiscountAmount) .Map(dest => dest.FinalAmount, src => src.FinalAmount); // CalculateOrderPV mappings config.NewConfig() .Map(dest => dest.OrderId, src => src.OrderId); config.NewConfig() .Map(dest => dest.OrderId, src => src.OrderId) .Map(dest => dest.TotalPv, src => src.TotalPV) .Map(dest => dest.Products, src => src.Products); config.NewConfig() .Map(dest => dest.ProductId, src => src.ProductId) .Map(dest => dest.ProductTitle, src => src.ProductTitle) .Map(dest => dest.Quantity, src => src.Quantity) .Map(dest => dest.UnitPv, src => src.UnitPV) .Map(dest => dest.TotalPv, src => src.TotalPV); // CancelOrder mappings config.NewConfig() .Map(dest => dest.OrderId, src => src.OrderId) .Map(dest => dest.CancelReason, src => src.CancelReason) .Map(dest => dest.RefundPayment, src => src.RefundPayment); } }