TradeTransactionMapper.java

package com.tdmconsult.ete.transactions;

import static com.tdmconsult.ete.transactions.PortfolioTransactionService.ONE_HUNDRET;

import java.util.Optional;
import lombok.experimental.UtilityClass;

@UtilityClass
public class TradeTransactionMapper {

    public TradeTransactionDto toDto(final TradeTransaction t) {

        return TradeTransactionDto.builder()
                .type(t.getType().name())
                .assetName(t.getSecurity().getName())
                .assetIsin(t.getSecurity().getIsin())
                .quantity(t.getQuantity())
                .principleAmountCents(Optional.ofNullable(t.getPrincipleAmount())
                        .map(x -> x.multiply(ONE_HUNDRET).longValue()).orElse(null))
                .tradingDate(t.getTradingDate())
                .totalCostCents(t.getTotalCost().multiply(ONE_HUNDRET).longValue())
                .build();
    }
}