package com.ejie.ab79.service.expedientes;

import java.util.List;

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

import com.ejie.ab79.dao.expedientes.DatosDireccionesDao;
import com.ejie.ab79.model.REST.servicioWeb.Ubicacion;
import com.ejie.ab79.model.expedientes.DatosDirecciones;
import com.ejie.ab79.model.expedientes.DatosTerceros;
import com.ejie.ab79.model.inspecciones.Inspecciones;

/**
 * DatosDireccionesServiceImpl  
 * 
 *  
 */

@Service(value = "datosDireccionesService")
public class DatosDireccionesServiceImpl implements DatosDireccionesService {

	@Autowired
	private DatosDireccionesDao datosDireccionesDao;

	/**
	 * Inserts a single row in the DatosDirecciones table.
	 *
	 * @param datosDirecciones
	 *            DatosDirecciones
	 * @return DatosDirecciones
	 */
	@Override
	@Transactional(rollbackFor = Throwable.class)
	public DatosDirecciones add(DatosDirecciones datosDirecciones) {
		return this.datosDireccionesDao.add(datosDirecciones);
	}

	/**
	 * Updates a single row in the DatosDirecciones table.
	 *
	 * @param datosDirecciones
	 *            DatosDirecciones
	 * @return DatosDirecciones
	 */
	@Override
	@Transactional(rollbackFor = Throwable.class)
	public DatosDirecciones update(DatosDirecciones datosDirecciones) {
		return this.datosDireccionesDao.update(datosDirecciones);
	}

	/**
	 * Finds a single row in the DatosDirecciones table.
	 *
	 * @param datosDirecciones
	 *            DatosDirecciones
	 * @return DatosDirecciones
	 */
	@Override
	public DatosDirecciones find(DatosDirecciones datosDirecciones) {
		return this.datosDireccionesDao.find(datosDirecciones);
	}

	@Override
	public DatosDirecciones findIdEstablecimiento(Integer idExpediente) {
		return this.datosDireccionesDao.findIdEstablecimiento(idExpediente);
	}

	@Override
	public DatosDirecciones findIdEstablecimientoByRelEstIns(Inspecciones inspeccion) {
		return datosDireccionesDao.findIdEstablecimientoByRelEstIns(inspeccion);
	}

	@Override
	public Ubicacion findUbicacionPostalByIdTercero(Integer idTercero) {
		return this.datosDireccionesDao.findUbicacionPostalByIdTercero(idTercero);
	}

	@Override
	public DatosDirecciones findIdEstablecimientoByIdInspeccion(Integer idInspeccion) {
		return this.datosDireccionesDao.findIdEstablecimientoByIdInspeccion(idInspeccion);
	}

	@Override
	public List<Ubicacion> findUbicacionesREST(Integer idExpediente, Integer idInspeccion) {
		return this.datosDireccionesDao.findUbicacionesREST(idExpediente, idInspeccion);
	}

	@Override
	public DatosDirecciones findDomicilioUbicacion(Integer idExpediente, Long tipoDireccion) {
		return this.datosDireccionesDao.findDomicilioUbicacion(idExpediente, tipoDireccion);
	}

	@Override
	public DatosDirecciones findDomicilioUbicacionSinExpediente(Integer idInspeccion, Long tipoDireccion) {
		return this.datosDireccionesDao.findDomicilioUbicacionSinExpediente(idInspeccion, tipoDireccion);
	}

	@Override
	public DatosDirecciones buscarEstablecimiento(String numeroRegistro) {
		return this.datosDireccionesDao.buscarEstablecimiento(numeroRegistro);
	}

	@Override
	public void eliminarTercero(DatosTerceros datosTercero) {
		this.datosDireccionesDao.eliminarTercero(datosTercero);
	}

}
