/**
 * 
 */
package com.ejie.ad74a.service.impl;

import java.util.Date;
import java.util.List;

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

import com.ejie.ad74a.dao.PrecioDao;
import com.ejie.ad74a.exception.ResourceNotFoundException;
import com.ejie.ad74a.model.PrecioBeneficiario;
import com.ejie.ad74a.model.PrecioPublico;
import com.ejie.ad74a.service.PrecioService;
import com.ejie.ad74a.util.UtilDates;

/**
 * Implementacion de la interface de servicios para la gestion de precios
 * @author BICUGUAL
 *
 */
@Service
public class PrecioServiceImpl implements PrecioService {

	@Autowired
	PrecioDao precDao;

	@Override
	public PrecioPublico getPrecioPublico(Date fInicioMes, Date fFinMes) {

		return precDao.findPrecioPublicoByFInicioMes(fInicioMes, fFinMes)
				.orElseThrow(() -> new ResourceNotFoundException(
						"No se ha encontrado un precio publico vigente para la mensualidad de cargo: "
								+ UtilDates.formatDateToString(fInicioMes)));
	}

	@Override
	public List<PrecioBeneficiario> getLstPreciosBeneficiarioByIdSolicitanteAndFInicioMes(Long idSolicitante,
			Date fInicioMes, Date fFinMes) {
		
		return precDao.findPreciosBeneficiarioByIdSolicitanteAndFInicioMes(idSolicitante, fInicioMes, fFinMes);
	}

}
