package com.platform2easy.genesis.domain.service; import com.platform2easy.genesis.domain.model.AppUser; import com.platform2easy.genesis.domain.repository.AppUserRepository; import lombok.AllArgsConstructor; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; import java.util.List; import java.util.Collections; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.User; @Service @AllArgsConstructor public class UserService implements UserDetailsService { private final AppUserRepository appUserRepository; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { AppUser appUser = appUserRepository.findByUserEmail(username) .orElseThrow(() -> new UsernameNotFoundException("User not found: " + username)); return new User(appUser.getUserEmail(), appUser.getUserPassword(), Collections.singletonList(new SimpleGrantedAuthority("ROLE_USER"))); } @Transactional public AppUser salvar(AppUser user) { appUserRepository.save(user); return user; } public AppUser buscarPorEmpresa(Integer companyId) { return appUserRepository.findByCompanyId(companyId).orElseThrow(); } public List listAll(){ return appUserRepository.findAll(); } public void deletarPorId(Long id) { appUserRepository.deleteById(id); } }