package com.bizofficer.website.signup;



import java.util.Iterator;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.TypedQuery;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.crossstore.ChangeSetPersister.NotFoundException;
import org.springframework.stereotype.Service;

import com.bizofficer.hibernate.entity.PgprepStudentDetails;
import com.bizofficer.hibernate.repository.PgprepStudentDetailsRepository;
import com.bizofficer.hibernate.repository.SubscriptionOtpRepository;


@Service
public class CheckExistsMobileWebService{
	
	private static final Logger logger = Logger.getLogger(CheckExistsMobileWebService.class);
	
    @Autowired
	EntityManagerFactory entityManagerFactory;
    
    @Autowired
	PgprepStudentDetailsRepository stRepoObj;
    
    @Autowired
    SubscriptionOtpRepository subsRepo;
    
	public Object execute(Object obj) throws NotFoundException{
		BeanWeb objBean = (BeanWeb) obj; 	
		ResponseWebBean responseBeanObj = new ResponseWebBean();
		
		try {
			responseBeanObj.setResponseTxt("failed");

			logger.info("Mobile: "+objBean.getMobile() );
			
			if(objBean.getMobile()==null) {
				return responseBeanObj;
			}
			
			EntityManager entityManager = entityManagerFactory.createEntityManager();
			entityManager.getTransaction().begin();
			
	           TypedQuery<PgprepStudentDetails> query = (TypedQuery<PgprepStudentDetails>) entityManager.createQuery("from "+PgprepStudentDetails.class.getName()+" where phoneNo=:phoneNo ", PgprepStudentDetails.class);
	           query.setParameter("phoneNo", objBean.getMobile() );
	           query.setFirstResult(0);
	           query.setMaxResults(1);
	           List<?> resultListCat = query.getResultList();
	           Iterator<?> iteratorCat=resultListCat.iterator();
	           if(iteratorCat.hasNext()){            			

	        	   responseBeanObj.setResponseTxt("MobileExists");
	           
	           }else {

	   			   responseBeanObj.setResponseTxt("success");
	   			   
	           }

            entityManager.getTransaction().commit();
			entityManager.close();
			
		}catch(Exception e) {
			e.getStackTrace();			
		}
		
		
		return responseBeanObj;
	}
	
	
	
	
}
