package es.uv.saic.service;

import java.util.Date;
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.Tasca;
import es.uv.saic.domain.TascaRepository;
import es.uv.saic.dto.EvidenciaBuscadorDTO;

@Service
public class TascaService {

	@Autowired
	private TascaRepository r;
	
	
	public List<Tasca> findAll() {
		return this.r.findAll();
	}
	
	public List<Tasca> findByProces(Integer idProces) {
		return this.r.findByProces(idProces);
	}
	
	public Tasca getByID(Integer id) {
		Optional<Tasca> t = this.r.findById(id);
		if(t.isPresent()) {
			return t.get();
		}
		return null;
	}
	
	public Tasca getByProcesTascap(Integer idProces, Integer idTascap) {
		return this.r.findByProcesTascap(idProces, idTascap);
	}
	
	public List<EvidenciaBuscadorDTO> getAllEvidencies(){
		return this.r.findAllEvidencies();
	}
	
	public List<EvidenciaBuscadorDTO> getEvidenciesByCentreTitulacioCurs(List<Integer> centres, List<Integer> titulacions, List<Integer> cursos){
		return this.r.findEvidenciesByCentreTitulacioCurs(centres, titulacions, cursos);
	}
	
	public List<EvidenciaBuscadorDTO> getEvidencesByProcedure(Integer idProcedure){
		return this.r.getEvidencesByProcedure(idProcedure);
	}
	
	public List<String> getAllAvailableEvidences(){
		return this.r.getAllAvailableEvidences();
	}
	
	public Integer create(Integer idTasca, Integer idProces, Integer idTascap, String titolCas, String descripcioCas, String titolVal, 
    		String descripcioVal, Date dataLim, Integer tipus, Integer idTascaSeg, Integer idTascaSeg2, Integer idRol, String codiEvidencia) {
		return this.r.create(idTasca, idProces, idTascap, titolCas, descripcioCas, titolVal, descripcioVal, dataLim, tipus, idTascaSeg, idTascaSeg2, idRol, codiEvidencia);
	}
	
	public void save(Tasca i) {
		this.r.save(i);
		this.r.flush();
	}
	
	public void deleteById(Integer idTasca) {
		this.r.deleteById(idTasca);
	}
	
	public void delete(Tasca tasca) {
		this.r.delete(tasca);
	}
	
	
}