package com.rjconsultores.ventaboletos.service.impl;

import java.util.List;

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

import com.rjconsultores.ventaboletos.dao.MensagemRecusaDAO;
import com.rjconsultores.ventaboletos.entidad.MensagemRecusa;
import com.rjconsultores.ventaboletos.exception.BusinessException;
import com.rjconsultores.ventaboletos.service.MensagemRecusaService;

@Service("mensagemRecusaService")
public class MensagemRecusaServiceImpl implements MensagemRecusaService {

	@Autowired
	private MensagemRecusaDAO mensagemRecusaDAO;

	@Override
	public List<MensagemRecusa> obtenerTodos() {
		return mensagemRecusaDAO.obtenerTodos();
	}

	@Override
	public MensagemRecusa obtenerID(Integer id) {
		return mensagemRecusaDAO.obtenerID(id);
	}

	@Override
	@Transactional(rollbackFor = BusinessException.class)
	public void borrar(MensagemRecusa entidad) {
		entidad.setActivo(Boolean.FALSE);
		mensagemRecusaDAO.actualizacion(entidad);
	}

	@Override
	@Transactional(rollbackFor = BusinessException.class)
	public MensagemRecusa suscribirActualizar(MensagemRecusa entidad) throws BusinessException {
		if (entidad.getMensagemRecusaId() == null) {
			return mensagemRecusaDAO.suscribir(entidad);
		} else {
			return mensagemRecusaDAO.actualizacion(entidad);
		}
	}

	@Override
	public Boolean existeCategoriaPadraoAPI(Integer categoriaId) {
		
		if(categoriaId == null) {
			return false;
		}
		
		List<MensagemRecusa> list = mensagemRecusaDAO.buscarPorCategoriaPadraoAPI(categoriaId);
		
		return !list.isEmpty();
	}
}
