package es.uv.saic.service;

import java.util.List;
import java.util.Optional;

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

import es.uv.saic.domain.Categoria;
import es.uv.saic.domain.CategoriaRepository;

@Service
public class CategoriaService {
	
	@Autowired
	private CategoriaRepository cr;

	
	public List<Categoria> getAll() {
		return this.cr.findAll();
	}
	
	public Categoria findById(Integer id) {
		Optional<Categoria> c = this.cr.findById(id);
		if(!c.isEmpty()) {
			return c.get();
		}
		return null;
	}
	
	public List<Categoria> findFirstLevel(String ambit){
		return this.cr.findFirstLevel(ambit);
	}

	public List<Categoria> findFirstLevelAndU(String ambit){
		return this.cr.findFirstLevelAndU(ambit);
	}
	
	public List<Categoria> findByTipusTambit(String tipus, String tambit){
		return this.cr.findByTipusTambit(tipus, tambit);
	}

	public List<Categoria> findByTipusTambitAndU(String tipus, String tambit){
		return this.cr.findByTipusTambitAndU(tipus, tambit);
	}
	
	public List<Categoria> findByPareTambit(Integer pare, String tambit){
		return this.cr.findByPareTambit(pare, tambit);
	}

	public List<Categoria> findByPareTambitAndU(Integer pare, String tambit){
		return this.cr.findByPareTambitAndU(pare, tambit);
	}
	
	public Categoria save(Categoria d) {
		return this.cr.saveAndFlush(d);
	}
	
	public void delete(Categoria d) {
		this.cr.delete(d);
	}
}
