diff --git a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/mapper/UserMapper.java b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/mapper/UserMapper.java index 3dca147..cf1a4e6 100644 --- a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/mapper/UserMapper.java +++ b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/mapper/UserMapper.java @@ -2,18 +2,27 @@ package net.shyshkin.study.fullstack.supportportal.backend.mapper; import net.shyshkin.study.fullstack.supportportal.backend.domain.User; import net.shyshkin.study.fullstack.supportportal.backend.domain.dto.UserDto; +import org.mapstruct.AfterMapping; import org.mapstruct.Mapper; import org.mapstruct.Mapping; +import org.mapstruct.MappingTarget; import java.time.LocalDateTime; - -@Mapper(componentModel = "spring", imports = {LocalDateTime.class}) +@Mapper(componentModel = "spring") public interface UserMapper { + @Mapping(target = "isNotLocked", source = "notLocked") @Mapping(target = "isActive", source = "active") - @Mapping(target = "joinDate", expression = "java(LocalDateTime.now())") + @Mapping(target = "joinDate", ignore = true) @Mapping(target = "role", source = "role", resultType = String.class) @Mapping(target = "authorities", source = "role.authorities") User toEntity(UserDto userDto); -} + + @AfterMapping + default void setJoinDate(@MappingTarget User user) { + if (user.getJoinDate() == null) { + user.setJoinDate(LocalDateTime.now()); + } + } +} \ No newline at end of file