diff --git a/src/main/java/de/ph87/tools/tools/numbers/Numbers.java b/src/main/java/de/ph87/tools/tools/numbers/Numbers.java index f6339b7..14233ac 100644 --- a/src/main/java/de/ph87/tools/tools/numbers/Numbers.java +++ b/src/main/java/de/ph87/tools/tools/numbers/Numbers.java @@ -4,7 +4,6 @@ import de.ph87.tools.group.Group; import de.ph87.tools.tools.numbers.uuid.NumbersAbstract; import de.ph87.tools.tools.numbers.uuid.NumbersUuid; import de.ph87.tools.user.User; -import de.ph87.tools.user.reference.UserReference; import jakarta.annotation.Nullable; import jakarta.persistence.*; import lombok.*; @@ -50,11 +49,11 @@ public class Numbers extends NumbersAbstract { private ZonedDateTime read = null; @NonNull + @ManyToMany @OrderColumn - @OneToMany(orphanRemoval = true) - private List users; + private List users; - public Numbers(@NonNull final Group group, @NonNull final List users) { + public Numbers(@NonNull final Group group, @NonNull final List users) { this.group = group; this.users = users; } @@ -68,17 +67,17 @@ public class Numbers extends NumbersAbstract { @Nullable public Integer getNumberForUser(@NonNull final User user) { - for (int userReferenceIndex = 0; userReferenceIndex < users.size(); userReferenceIndex++) { - final UserReference userReference = users.get(userReferenceIndex); - if (userReference.getUser() != null && userReference.getUser().equals(user)) { - return userReferenceIndex + 1; + for (int index = 0; index < users.size(); index++) { + final User userAtIndex = users.get(index); + if (user.equals(userAtIndex)) { + return index + 1; } } return null; } public boolean containsUser(@NonNull final User user) { - return users.stream().anyMatch(u -> user.equals(u.getUser())); + return users.stream().anyMatch(user::equals); } } diff --git a/src/main/java/de/ph87/tools/tools/numbers/NumbersService.java b/src/main/java/de/ph87/tools/tools/numbers/NumbersService.java index 5a19444..0ade3cc 100644 --- a/src/main/java/de/ph87/tools/tools/numbers/NumbersService.java +++ b/src/main/java/de/ph87/tools/tools/numbers/NumbersService.java @@ -9,8 +9,6 @@ import de.ph87.tools.tools.numbers.uuid.NumbersUuid; import de.ph87.tools.user.User; import de.ph87.tools.user.UserAccessService; import de.ph87.tools.user.push.UserPushService; -import de.ph87.tools.user.reference.UserReference; -import de.ph87.tools.user.reference.UserReferenceService; import de.ph87.tools.user.uuid.UserPrivateUuid; import lombok.NonNull; import lombok.RequiredArgsConstructor; @@ -24,10 +22,10 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.server.ResponseStatusException; import java.time.ZonedDateTime; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; @Slf4j @Service @@ -39,8 +37,6 @@ public class NumbersService { private final GroupAccessService groupAccessService; - private final UserReferenceService userReferenceService; - private final UserPushService userPushService; private final UserAccessService userAccessService; @@ -49,7 +45,7 @@ public class NumbersService { public void create(@NonNull final UserPrivateUuid userPrivateUuid, @NonNull final GroupUuid groupUuid) { final GroupAccess access = groupAccessService.ownerAccess(userPrivateUuid, groupUuid); - final List users = access.getGroup().getUsers().stream().map(userReferenceService::create).collect(Collectors.toList()); + final List users = new ArrayList<>(access.getGroup().getUsers()); Collections.shuffle(users); final Numbers numbers = numbersRepository.save(new Numbers(access.getGroup(), users)); publish(numbers); @@ -58,7 +54,6 @@ public class NumbersService { private void publish(@NonNull final Numbers numbers) { numbers.getUsers() .stream() - .map(UserReference::getUser) .filter(Objects::nonNull) .forEach(user -> publish(numbers, user)); } diff --git a/src/main/java/de/ph87/tools/user/reference/UserReference.java b/src/main/java/de/ph87/tools/user/reference/UserReference.java deleted file mode 100644 index 40d9fb5..0000000 --- a/src/main/java/de/ph87/tools/user/reference/UserReference.java +++ /dev/null @@ -1,35 +0,0 @@ -package de.ph87.tools.user.reference; - -import de.ph87.tools.user.User; -import jakarta.annotation.Nullable; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.NonNull; -import lombok.ToString; - -@Entity -@Getter -@ToString -@NoArgsConstructor -@Table(name = "`user_reference`") -public class UserReference { - - @Id - @GeneratedValue - private long id; - - @Nullable - @ManyToOne - private User user; - - @NonNull - @Column(nullable = false) - private String name; - - public UserReference(@NonNull final User user) { - this.user = user; - this.name = user.getName(); - } - -} diff --git a/src/main/java/de/ph87/tools/user/reference/UserReferenceRepository.java b/src/main/java/de/ph87/tools/user/reference/UserReferenceRepository.java deleted file mode 100644 index afefac8..0000000 --- a/src/main/java/de/ph87/tools/user/reference/UserReferenceRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package de.ph87.tools.user.reference; - -import org.springframework.data.repository.ListCrudRepository; - -public interface UserReferenceRepository extends ListCrudRepository { - -} diff --git a/src/main/java/de/ph87/tools/user/reference/UserReferenceService.java b/src/main/java/de/ph87/tools/user/reference/UserReferenceService.java deleted file mode 100644 index bcb5b98..0000000 --- a/src/main/java/de/ph87/tools/user/reference/UserReferenceService.java +++ /dev/null @@ -1,23 +0,0 @@ -package de.ph87.tools.user.reference; - -import de.ph87.tools.user.User; -import lombok.NonNull; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Slf4j -@Service -@Transactional -@RequiredArgsConstructor -public class UserReferenceService { - - private final UserReferenceRepository userReferenceRepository; - - @NonNull - public UserReference create(@NonNull final User user) { - return userReferenceRepository.save(new UserReference(user)); - } - -}