package com.rjconsultores.ventaboletos.rest.service;

import java.util.ArrayList;
import java.util.List;

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

import com.rjconsultores.routing.ReadOnlyConnection;
import com.rjconsultores.ventaboletos.entidad.EmbarcadaDispOperador;
import com.rjconsultores.ventaboletos.rest.bean.ParamsDadosOperador;
import com.rjconsultores.ventaboletos.service.EmbarcadaDispOperadorService;
import com.rjconsultores.ventaboletos.service.UsuarioService;
import com.rjconsultores.ventaboletos.vo.embarcada.UsuarioEmbarcadaVO;

@Service("sincronizarOperadoresService")
public class SincronizarOperadoresService {
	@Autowired
	EmbarcadaDispOperadorService embarcadaDispOperadorService;

	@Autowired
	UsuarioService usuarioService;

	@ReadOnlyConnection
	public List<UsuarioEmbarcadaVO> buscarDadosOperador(ParamsDadosOperador params) {
		List<EmbarcadaDispOperador> embDispOperadorList = null;
		if(params.getDispositivoEmbarcadaId() !=null) {
			embDispOperadorList= embarcadaDispOperadorService.buscarEmbarcadaDispOperadorPorDispositivo(params.getDispositivoEmbarcadaId());
		}
		if (embDispOperadorList != null && !embDispOperadorList.isEmpty()) {
			List<Long> usuariosIds = new ArrayList<Long>();
			for (EmbarcadaDispOperador embarcadaDispOperador : embDispOperadorList) {
				usuariosIds.add(embarcadaDispOperador.getUsuarioId());
			}
			return usuarioService.buscarUsuarioEmbarcadaPorUsuariosIds(usuariosIds);
		} else {
			return usuarioService.buscaUsuariosDoPuntoVenta(params.getPuntoVentaId());
		}
	}

}
