1 package com.codecool.bytebattlers.mapper; 2 3 import com.codecool.bytebattlers.controller.dto.ReviewDto; 4 import com.codecool.bytebattlers.model.Review; 5 import org.mapstruct.*; 6 7 @Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE, componentModel = MappingConstants.ComponentModel.SPRING) 8 public interface ReviewMapper { 9 10 @BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE) 11 Review partialUpdate(ReviewDto reviewDto, @MappingTarget Review review); 12 13 @Mapping(source = "appUserPublicID", target = "appUser.publicID") 14 @Mapping(source = "appUserName", target = "appUser.name") 15 @Mapping(source = "boardGamePublicID", target = "boardGame.publicID") 16 Review toEntity(ReviewDto reviewDto); 17 18 @InheritInverseConfiguration(name = "toEntity") 19 ReviewDto toDto(Review review); 20 21 @InheritConfiguration(name = "toEntity") 22 @BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE) 23 Review partialUpdate(@MappingTarget Review review, ReviewDto reviewDto); 24 }