package kr.re.etri.autoflow.service; import kr.re.etri.autoflow.payload.response.UserProjectResponse; import kr.re.etri.autoflow.payload.response.UserInfoResponse; import kr.re.etri.autoflow.repository.UserProjectMapRepository; import kr.re.etri.autoflow.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @Service @RequiredArgsConstructor public class UserService { private final UserRepository userRepository; private final UserProjectMapRepository userProjectMapRepository; /** * 사용자 ID로 조회 */ public Optional getUserById(Long id) { return userRepository.findById(id) .map(user -> new UserInfoResponse( user.getId(), user.getUsername(), user.getEmail(), user.getRoles().stream() .map(role -> role.getName().name()) .toList() )); } /** * 전체 사용자 조회 */ public List getAllUsers() { return userRepository.findAll().stream() .map(user -> new UserInfoResponse( user.getId(), user.getUsername(), user.getEmail(), user.getRoles().stream() .map(role -> role.getName().name()) .toList() )) .toList(); } public List getUserProjects(Long userId) { return userProjectMapRepository.findAllByUserId(userId).stream() .map(mapping -> new UserProjectResponse( mapping.getProject().getId(), mapping.getProject().getPrjNm(), mapping.getPermissions() )) .collect(Collectors.toList()); } }