TransactionHistoryQueryMapperImpl.java

package com.github.jenkaby.bikerental.finance.web.query.mapper;

import com.github.jenkaby.bikerental.finance.application.usecase.GetTransactionHistoryUseCase;
import com.github.jenkaby.bikerental.finance.web.query.dto.TransactionResponse;
import java.math.BigDecimal;
import java.time.Instant;
import java.util.UUID;
import javax.annotation.processing.Generated;
import org.springframework.stereotype.Component;

@Generated(
    value = "org.mapstruct.ap.MappingProcessor",
    comments = "version: 1.6.3, compiler: IncrementalProcessingEnvironment from gradle-language-java-9.4.1.jar, environment: Java 21.0.10 (Amazon.com Inc.)"
)
@Component
public class TransactionHistoryQueryMapperImpl implements TransactionHistoryQueryMapper {

    @Override
    public TransactionResponse toResponse(GetTransactionHistoryUseCase.TransactionDto dto) {
        if ( dto == null ) {
            return null;
        }

        UUID customerId = null;
        BigDecimal amount = null;
        String type = null;
        Instant recordedAt = null;
        String paymentMethod = null;
        String reason = null;
        String sourceType = null;
        String sourceId = null;

        customerId = dto.customerId();
        amount = dto.amount();
        if ( dto.type() != null ) {
            type = dto.type().name();
        }
        recordedAt = dto.recordedAt();
        if ( dto.paymentMethod() != null ) {
            paymentMethod = dto.paymentMethod().name();
        }
        reason = dto.reason();
        if ( dto.sourceType() != null ) {
            sourceType = dto.sourceType().name();
        }
        sourceId = dto.sourceId();

        TransactionResponse transactionResponse = new TransactionResponse( customerId, amount, type, recordedAt, paymentMethod, reason, sourceType, sourceId );

        return transactionResponse;
    }
}