DummyUserFactory.java
package qwerty.chaekit.global.init;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import qwerty.chaekit.domain.ebook.credit.wallet.CreditWallet;
import qwerty.chaekit.domain.ebook.credit.wallet.CreditWalletRepository;
import qwerty.chaekit.domain.member.Member;
import qwerty.chaekit.domain.member.MemberRepository;
import qwerty.chaekit.domain.member.enums.Role;
import qwerty.chaekit.domain.member.user.UserProfile;
import qwerty.chaekit.domain.member.user.UserProfileRepository;
import qwerty.chaekit.global.init.dummy.DummyUser;
import qwerty.chaekit.service.member.MemberJoinHelper;
@Slf4j
@Component
@RequiredArgsConstructor
public class DummyUserFactory {
private final MemberRepository memberRepository;
private final UserProfileRepository userProfileRepository;
private final MemberJoinHelper memberJoinHelper;
private final CreditWalletRepository creditWalletRepository;
public void saveDummyUsers() {
saveDummyUser(DummyUser.LEADER);
saveDummyUser(DummyUser.USER1);
saveDummyUser(DummyUser.USER2);
saveDummyUser(DummyUser.USER3);
}
public void saveDummyUser(DummyUser dummyUser) {
String email = dummyUser.getEmail();
String nickname = dummyUser.getNickname();
String profileImageKey = dummyUser.getProfileImageKey();
String defaultPassword = "0000";
if (memberRepository.existsByEmail(email)) {
return;
}
Member userMember = memberJoinHelper.saveMember(email, defaultPassword, Role.ROLE_USER);
UserProfile savedUser = userProfileRepository.save(
UserProfile.builder()
.member(userMember)
.nickname(nickname)
.profileImageKey(profileImageKey)
.build()
);
creditWalletRepository.save(
CreditWallet.builder()
.user(savedUser)
.build()
);
log.info("유저 \"{}\"가 생성되었습니다.", nickname);
}
}