TransactionRecordMapper.java
package com.github.jenkaby.bikerental.finance.infrastructure.persistence.mapper;
import com.github.jenkaby.bikerental.finance.domain.model.SubLedgerRef;
import com.github.jenkaby.bikerental.finance.domain.model.TransactionRecord;
import com.github.jenkaby.bikerental.finance.infrastructure.persistence.entity.TransactionRecordJpaEntity;
import com.github.jenkaby.bikerental.shared.mapper.MoneyMapper;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import java.util.UUID;
@Mapper(uses = {MoneyMapper.class})
public interface TransactionRecordMapper {
@Mapping(target = "subLedgerRef", source = "subLedgerId")
TransactionRecord toDomain(TransactionRecordJpaEntity entity);
@Mapping(target = "transaction", ignore = true)
@Mapping(target = "subLedgerId", source = "subLedgerRef.id")
TransactionRecordJpaEntity toEntity(TransactionRecord domain);
default SubLedgerRef toRef(UUID id) {
return new SubLedgerRef(id);
}
}