|
@@ -0,0 +1,43 @@
|
|
|
|
|
+package pl.dmss.vmaneliuk.database.services;
|
|
|
|
|
+
|
|
|
|
|
+import jakarta.transaction.Transactional;
|
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
|
+import pl.dmss.vmaneliuk.database.model.Library;
|
|
|
|
|
+import pl.dmss.vmaneliuk.database.model.User;
|
|
|
|
|
+import pl.dmss.vmaneliuk.database.repository.UserRepository;
|
|
|
|
|
+
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+
|
|
|
|
|
+@Service
|
|
|
|
|
+public class UserService {
|
|
|
|
|
+ private final UserRepository userRepository;
|
|
|
|
|
+
|
|
|
|
|
+ public UserService(UserRepository userRepository) {
|
|
|
|
|
+ this.userRepository = userRepository;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public List<User> getAllUsers() {
|
|
|
|
|
+ return userRepository.findAll();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Transactional
|
|
|
|
|
+ public User registerUser(User user) {
|
|
|
|
|
+ // Set default values for a new user
|
|
|
|
|
+ user.setMemberSince(LocalDateTime.now());
|
|
|
|
|
+ user.setAccountStatus("ACTIVE");
|
|
|
|
|
+ user.setWalletBalance(BigDecimal.ZERO);
|
|
|
|
|
+ user.setTotalSpent(BigDecimal.ZERO);
|
|
|
|
|
+
|
|
|
|
|
+ // Automatically create and link an empty library
|
|
|
|
|
+ Library library = new Library();
|
|
|
|
|
+ library.setUser(user);
|
|
|
|
|
+ library.setTotalGamesCount(0);
|
|
|
|
|
+ library.setTotalPlaytimeSum(0);
|
|
|
|
|
+ library.setAvgLibraryRating(0.0F);
|
|
|
|
|
+
|
|
|
|
|
+ user.setLibrary(library);
|
|
|
|
|
+ return userRepository.save(user);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|