This commit is contained in:
Wowieee4
2026-05-02 02:43:47 +07:00
parent f8ca77eeb9
commit c8d9eefa74
14 changed files with 1207 additions and 209 deletions
@@ -1,48 +1,48 @@
package com.walkguide.config;
import org.springframework.boot.CommandLineRunner;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
import com.walkguide.entity.User;
import com.walkguide.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.CommandLineRunner;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class DataSeeder implements CommandLineRunner {
private final UserRepository userRepository;
private final PasswordEncoder passwordEncoder;
@Override
public void run(String... args) throws Exception {
// Mesin enkripsi password
PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
// Ngecek kalau tabel users kosong, baru diisi
if (userRepository.count() == 0) {
// 1. Bikin akun Guardian (Pendamping)
// 1. Buat Guardian (tanpa connected_to dulu)
User guardian = User.builder()
.email("guardian@walkguide.com")
.password(passwordEncoder.encode("guardian123")) // Password barunya
.role("ROLE_GUARDIAN") // Role udah diganti
.password(passwordEncoder.encode("guardian123"))
.role("ROLE_GUARDIAN")
.build();
guardian = userRepository.save(guardian);
// 2. Bikin akun User (Tunanetra)
// 2. Buat User Tunanetra, langsung sambungkan ke Guardian
User user = User.builder()
.email("user@walkguide.com")
.password(passwordEncoder.encode("user123"))
.role("ROLE_USER")
.connectedTo(guardian)
.build();
user = userRepository.save(user);
// Simpan ke database
// 3. Update Guardian -> sambungkan balik ke User yang dijaganya
guardian.setConnectedTo(user);
userRepository.save(guardian);
userRepository.save(user);
System.out.println("✅ Data Seeder berhasil: Akun Guardian dan User telah masuk ke Database!");
System.out.println("DataSeeder: Guardian (" + guardian.getId()
+ ") <-> User (" + user.getId() + ") berhasil dihubungkan!");
} else {
System.out.println("DataSeeder: Database sudah ada data, skip seeding.");
}
}
}
}