JBear2/src/main/kotlin/at/eisibaer/jbear2/service/mapper/BoardMapper.kt

29 lines
1.1 KiB
Kotlin
Raw Normal View History

2026-03-15 17:38:23 +01:00
package at.eisibaer.jbear2.service.mapper
import at.eisibaer.jbear2.dto.board.BoardDto
import at.eisibaer.jbear2.model.Board
import at.eisibaer.jbear2.model.User
import at.eisibaer.jbear2.repository.FileRepository
import at.eisibaer.jbear2.repository.UserRepository
import org.mapstruct.*
@Mapper(uses = [UserMapper::class,QuestionMapper::class,AnswerMapper::class,BoardEntryMapper::class,CategoryMapper::class])
abstract class BoardMapper {
abstract fun toDto(e: Board): BoardDto;
abstract fun toDto(e: List<Board>): List<BoardDto>;
@Mapping(target = "owner", source = "owner")
@Mapping(target = "id", source = "d.id")
abstract fun toEntity(d: BoardDto, owner: User, @Context userRepository: UserRepository, @Context fileRepository: FileRepository): Board;
abstract fun toEntity(d: List<BoardDto>, @Context owner: User, @Context userRepository: UserRepository, @Context fileRepository: FileRepository): List<Board>;
@AfterMapping
fun addBoardToCategory(source: BoardDto, @MappingTarget target: Board ): Board{
for( category in target.categories ){
category.board = target
}
return target
}
}