package com.dacrt.SBIABackend.service;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;

import com.dacrt.SBIABackend.dto.Channelresume2Dto;
import com.dacrt.SBIABackend.dto.ChannelresumeDto;
import com.dacrt.SBIABackend.dto.ContinuitySection2Dto;
import com.dacrt.SBIABackend.dto.LabeStringlValueIntDto;
import com.dacrt.SBIABackend.dto.LabelDto;
import com.dacrt.SBIABackend.dto.LabelItemDtoReport;
import com.dacrt.SBIABackend.dto.LabelValueDtoReport;
import com.dacrt.SBIABackend.dto.LabelValueStringDto;
import com.dacrt.SBIABackend.dto.ResumenBiaContentSection1;
import com.dacrt.SBIABackend.dto.ResumenBiaContentSection2;
import com.dacrt.SBIABackend.dto.ResumenBiaContentSection5;
import com.dacrt.SBIABackend.dto.ResumenBiaSection1;
import com.dacrt.SBIABackend.dto.ResumenBiaSection2;
import com.dacrt.SBIABackend.dto.ResumenBiaSection5;
import com.dacrt.SBIABackend.dto.ResumenBiaTimeTableDto;
import com.dacrt.SBIABackend.dto.StatusDto2;
import com.dacrt.SBIABackend.security.dto.RespuestaDto;

@Service
public class BiaresumeproSection5Service {
	Logger logger = LoggerFactory.getLogger(BiaresumeproSection5Service.class);
	@PersistenceContext
	private EntityManager entityManager;
	
	
	
	public ResumenBiaSection5 getResumeBiaResources(int idcampana, int idunidad, int idprocesos) {
		ResumenBiaContentSection5 detalleResumenBiaContentSection5 = new ResumenBiaContentSection5();
		LabeStringlValueIntDto detalleLabeStringlValueIntDto = new LabeStringlValueIntDto();
		LabeStringlValueIntDto detalleLabeStringlValueIntDto2 = new LabeStringlValueIntDto();
		ResumenBiaSection5 detalleResumenBiaSection5 = new ResumenBiaSection5();
		List<LabeStringlValueIntDto> listadoLabelValueStringDto = new ArrayList();
		RespuestaDto respuesta = new RespuestaDto("", false);
		HttpStatus estatus = HttpStatus.FORBIDDEN;
		try {
			Query query;

			// StatusDto2 detalleRTO = new StatusDto2();
			String SentenciaBase = "          SELECT   " + "					         p.name AS name, "
					+ "							 eur.qtyrange5 " + "					     FROM   "
					+ "					         main.units u   " + "					     INNER JOIN   "
					+ "					         main.campaignunits cu ON u.id = cu.unitid  "
					+ "							 AND cu.unitid= " + idunidad + "					     INNER JOIN   "
					+ "					         main.evalunits eu ON cu.id = eu.campaingunitid  "
					+ "							 AND eu.resourcest = 1  " + "					     INNER JOIN   "
					+ "					         main.evalunitres eur ON eu.id = eur.evalunitid  "
					+ "					     INNER JOIN   "
					+ "					         main.resources p ON p.id = eur.resourceid and p.status=1 "
					+ "					     WHERE   " + "					         cu.campaingid = " + idcampana;

			query = entityManager.createNativeQuery(SentenciaBase);
			List<Object[]> listacompleta = query.getResultList();
			long cantidad = (long) query.getResultList().size();

			if (cantidad > 0) {
				for (Object[] reg : listacompleta) {
					detalleLabeStringlValueIntDto.setLabel((String) reg[0]);
					detalleLabeStringlValueIntDto.setValue((Integer) reg[1]);
					listadoLabelValueStringDto.add(detalleLabeStringlValueIntDto);
					detalleLabeStringlValueIntDto = new LabeStringlValueIntDto();
				}
			}

			detalleResumenBiaContentSection5.setResources(listadoLabelValueStringDto);
			detalleResumenBiaSection5.setTitle("Recursos Requerido Unidad 1 día");
			detalleResumenBiaSection5.setContent(detalleResumenBiaContentSection5);

			respuesta = new RespuestaDto("", false);
			estatus = HttpStatus.FORBIDDEN;

			return detalleResumenBiaSection5;
		} catch (Exception e) {
			// Manejo de excepciones
			respuesta = new RespuestaDto("Error interno del servidor", false);
			estatus = HttpStatus.INTERNAL_SERVER_ERROR;
			return detalleResumenBiaSection5;
		} finally {
			if (entityManager != null && entityManager.isOpen()) {
				entityManager.close();
			}
		}

	}
}
