package com.dacrt.SBIABackend.security.service;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Optional;

import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.dacrt.SBIABackend.security.entity.Params;
import com.dacrt.SBIABackend.security.repository.ParamsRepository;
import com.dacrt.SBIABackend.security.repository.UsersRepository;

@Service
@Transactional
public class SecurityService {
	
	@Autowired
	ParamsRepository paramsRepository;
	
	@Autowired
	UsersRepository usersRepository;
	
	//@Autowired
	//UsersRepository usersRepository;
	
	public String consultarSessionActiva(Date fechaRegistrada,Date fechaNueva,int id) {
		 String resp="dddd";
		 Optional<Params> deSessDuration=paramsRepository.findByParamname("SESSION_DURATION");
		 String SessionDuration=deSessDuration.get().getValue();
		 int duracionSession = Integer.parseInt(SessionDuration);
		 
		// Date fecha2 = new Date();
		 Calendar calendar = Calendar.getInstance();
         calendar.setTime(fechaNueva); //tuFechaBase es un Date; 
         //calendar.add(Calendar.MINUTE,duracionSession); //horasASumar es int.
         
         long startTime = fechaNueva.getTime();
         long endTime = fechaRegistrada.getTime();
         long minutosstart = startTime / (1000 * 60);
         long minutosend = endTime / (1000 * 60);
         
         if (minutosend>minutosstart) {
        	 
        	 // resp = "esta validtrhu ok";
        	 calendar.add(Calendar.MINUTE,duracionSession); //horasASumar es int.
        	  Date ValidThrufechaSalida = calendar.getTime(); //Y ya tienes la fecha sumada.
              SimpleDateFormat salida = new SimpleDateFormat("yyyy-MM-dd HH:mm"); //2024-12-23 23:00
               resp = salida.format(ValidThrufechaSalida);
               usersRepository.asociarcambioValidthru(id, ValidThrufechaSalida);
              
              return resp;
        	 
         } else {
            	// resp = "esta validtrhu Nook";
        	     resp="";
        	 return resp;
         }
         
       /*  long val1 = startTime;
         long val2 = endTime;
         long val13 =minutosstart ;
         long val4 = minutosend;*/
         
		// int resp1 = usersRepository.consultarSesionEstatus(id);
	
		
	    //return resp;
		
	}

}
