package com.dacrt.SBIABackend.service;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;

import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
import java.util.Optional;

import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.persistence.Column;
import javax.transaction.Transactional;
import javax.validation.constraints.NotNull;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.dao.DataAccessException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.lang.NonNull;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

import com.dacrt.SBIABackend.dto.Mensaje;
import com.dacrt.SBIABackend.entity.Userunits;
import com.dacrt.SBIABackend.entity.Workers;
import com.dacrt.SBIABackend.repository.WorkersRepository;
import com.dacrt.SBIABackend.security.dto.AuditRequestDto;
import com.dacrt.SBIABackend.security.entity.Roles;
import com.dacrt.SBIABackend.security.entity.Users;
import com.dacrt.SBIABackend.security.entity.Audit;
import com.dacrt.SBIABackend.security.entity.Params;
import com.dacrt.SBIABackend.security.repository.UsersRepository;
import com.dacrt.SBIABackend.security.repository.AuditRepository;
import com.dacrt.SBIABackend.security.repository.RolesRepository;

@Service
@Transactional
public class UserunitsService {
	Logger logger = LoggerFactory.getLogger(UserunitsService.class);

	@Autowired
	UsersRepository usersRepository;
	
	@Autowired
	AuditRepository auditRepository;
	
	@Autowired
	RolesRepository rolesRepository;
	
	@Autowired
	WorkersRepository workersRepository;
	
	/*@Autowired
	private UsuarioSesionRepository usuarioSesionRepository;*/
	
	@Autowired
	PasswordEncoder passworEncoder;
	
	//@Autowired
 	//private JavaMailSender javaMailSender;
	
//	public Userunits getUserunitsByid(Integer id) {
	//	Userunits tipoUserunits = workersRepository.findById(id).orElseThrow(() ->
  //        		new IllegalArgumentException("No se encontro el parametro con id: " + id));
 		// return tipoUserunits;
 	//}

}
