package fr.eni.enchere.bll;

import fr.eni.enchere.bo.UserProfil;
import fr.eni.enchere.dal.UserRepository;
import org.springframework.stereotype.Service;

import java.util.List;

@Service("UtilisateurService")
public class UserServiceImpl implements UserService {

    public UserRepository userRepository;

    public UserServiceImpl(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    @Override
    public List<UserProfil> listeUtilisateurs() {
        return userRepository.findAll();
    }

    @Override
    public UserProfil utilisateurById(int id) {
        return userRepository.findById(id);
    }

    @Override
    public UserProfil utilisateurByName(String username) {
        return userRepository.findByUsername(username);
    }

    @Override
    public UserProfil utilisateurByEmail(String email) {
        return userRepository.findUserByEmail(email);
    }

    @Override
    public List<String> listPseudo() {
        return userRepository.findAllUsernames();
    }

    @Override
    public List<String> listEmail() {
        return userRepository.findAllEmail();
    }

    @Override
    public String getUserByMail(String mail) {
        return userRepository.findByEmail(mail);
    }

    @Override
    public void setUtilisateur(UserProfil utilisateur) {
        userRepository.save(utilisateur);
    }

    @Override
    public void setCredit(float credit, int id) {
        userRepository.updateCredit(credit, id);
    }

    @Override
    public void deleteUtilisateur(int id) {
        userRepository.delete(id);
    }

    @Override
    public void disableUtilisateur(int id) {
        userRepository.disable(id);
    }

    @Override
    public void enableUtilisateur(int id) {
        userRepository.enable(id);
    }

    @Override
    public void onAdminUtilisateur(int id) {
        userRepository.onAdmin(id);
    }

    @Override
    public void offAdminUtilisateur(int id) {
        userRepository.offAdmin(id);
    }
}
