package com.example.fercoganbackend.service; import com.example.fercoganbackend.entity.Rol; import com.example.fercoganbackend.entity.Usuario; import com.example.fercoganbackend.repository.UsuarioRepository; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import java.util.List; import java.util.Set; @Service public class UsuarioService { private final UsuarioRepository repo; private final PasswordEncoder encoder; public UsuarioService(UsuarioRepository repo, PasswordEncoder encoder) { this.repo = repo; this.encoder = encoder; } public Usuario registrarUsuario(String username, String password, Set roles) { Usuario u = new Usuario(); u.setUsername(username); u.setPassword(encoder.encode(password)); u.setRoles(roles); u.setAprobado(false); // no aprobado hasta aceptación return repo.save(u); } public List listarPendientes() { return repo.findAll().stream().filter(u -> !u.isAprobado()).toList(); } public Usuario aceptarUsuario(Long id) { Usuario u = repo.findById(id).orElseThrow(); u.setAprobado(true); return repo.save(u); } public boolean estaAprobado(String username) { return repo.findByUsername(username).map(Usuario::isAprobado).orElse(false); } }