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.Facilities;
import com.dacrt.SBIABackend.entity.Suppliers;
import com.dacrt.SBIABackend.entity.Workers;
import com.dacrt.SBIABackend.repository.SuppliersRepository;
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 SuppliersService {
	Logger logger = LoggerFactory.getLogger(SuppliersService.class);

	@Autowired
	UsersRepository usersRepository;
	
	@Autowired
	AuditRepository auditRepository;
	
	@Autowired
	RolesRepository rolesRepository;
	
	@Autowired
	SuppliersRepository suppliersRepository;
	
	/*@Autowired
	private UsuarioSesionRepository usuarioSesionRepository;*/
	
	@Autowired
	PasswordEncoder passworEncoder;
	
	//@Autowired
 	//private JavaMailSender javaMailSender;
	
	public Suppliers getSuppliersByid(Integer id) {
		Suppliers tipoSuppliers = suppliersRepository.findById(id).orElseThrow(() ->
          		new IllegalArgumentException("No se encontro el parametro con id: " + id));
 		 return tipoSuppliers;
 	}
	
	
	public Suppliers addIdSuppliers(Suppliers tipoSupli) {
		return suppliersRepository.save(tipoSupli);
		
	}


}