package br.com.ec.domain.service.loja.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import br.com.ec.domain.dto.LojaDTO;
import br.com.ec.domain.model.Loja;
import br.com.ec.domain.service.loja.LojaService;
import br.com.ec.domain.shared.ConstantesSEC;
import br.com.ec.infrastructure.repository.LojaRepository;
import br.edu.cesmac.core.generic.AbstractService;
import br.edu.cesmac.core.generic.GenericRepository;
import br.edu.cesmac.core.validador.Validador;
@Service
public class LojaServiceImpl
extends AbstractService
<Loja
> implements LojaService
{
private LojaRepository lojaRepository
;
@Autowired
public LojaServiceImpl
(Validador validador, LojaRepository lojaRepository
) {
super(validador
);
this.
lojaRepository = lojaRepository
;
}
@
Override
protected GenericRepository
<Loja
> getRepository
() {
return lojaRepository
;
}
@
Override
protected void regrasNegocioCadastrar
(Loja loja
) {
loja.
setAtivo(true);
}
@
Override
public List<Loja
> listarLojasAtivas
() {
Loja lojaSelecionado =
new Loja
();
lojaSelecionado.
setAtivo(true);
return lojaRepository.
consultarLojas(true);
}
@
Override
public List<Loja
> listarLojasAtivasComLojaEstoque
() {
Loja lojaEstoque =
new Loja
();
lojaEstoque.
setSequencial(ConstantesSEC.
SEQUENCIAL_ESTOQUE_1);
lojaEstoque.
setDescricao(ConstantesSEC.
DESCRICAO_ESTOQUE_9);
List<Loja
> lojas = listarLojasAtivas
();
lojas.
add(0, lojaEstoque
);
return lojas
;
}
@
Override
public List<LojaDTO
> listarLojasDTOAtivasComLojaEstoque
() {
// LojaDTO lojaEstoque = new LojaDTO();
// lojaEstoque.setSequencial(ConstantesSEC.SEQUENCIAL_ESTOQUE_9);
// lojaEstoque.setDescricao(ConstantesSEC.DESCRICAO_ESTOQUE_9);
List<LojaDTO
> lojas = lojaRepository.
consultarLojasDTO(true);
// lojas.add(0, lojaEstoque);
return lojas
;
}
@
Override
public List<Loja
> listarLojasAtivasEspacoCase
() {
List<Loja
> lojasNaoEspacoCase =
new ArrayList<Loja
>();
Loja lojaFarmacia =
new Loja
(ConstantesSEC.
SEQUENCIAL_LOJA_FARMACIA_7);
Loja lojaRestaurante =
new Loja
(ConstantesSEC.
SEQUENCIAL_RESTAURANTE_16);
lojasNaoEspacoCase.
add(lojaFarmacia
);
lojasNaoEspacoCase.
add(lojaRestaurante
);
List<Loja
> lojas = listarLojasAtivas
();
lojas.
removeAll(lojasNaoEspacoCase
);
return lojas
;
}
@
Override
public List<Loja
> listarLojasAtivasEspacoCaseComLojaEstoque
() {
Loja lojaEstoque =
new Loja
();
lojaEstoque.
setSequencial(ConstantesSEC.
SEQUENCIAL_ESTOQUE_1);
lojaEstoque.
setDescricao(ConstantesSEC.
DESCRICAO_ESTOQUE_9);
List<Loja
> lojas = listarLojasAtivasEspacoCase
();
lojas.
add(0, lojaEstoque
);
return lojas
;
}
@
Override
public List<Loja
> listarLojasComDetalhe
() {
return lojaRepository.
consultarLojasComDetalhe();
}
}