package com.dacrt.SBIABackend.service;

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

import com.dacrt.SBIABackend.dto.requestDto.UnidadAdscripcionRequestDto;
import com.dacrt.SBIABackend.dto.requestDto.UnidadRequestDto;
/*import com.dacrt.SBIABackend.dto.responseDto.DetalleUnidadAdscripcionResponseDto;
import com.dacrt.SBIABackend.dto.responseDto.DetalleUnidadResponseDto;
import com.dacrt.SBIABackend.dto.responseDto.ProcesoResponseDto;*/
import com.dacrt.SBIABackend.dto.responseDto.UnidadAdscripcionResponseDto;
import com.dacrt.SBIABackend.dto.responseDto.UnidadResponseDto;
/*import com.dacrt.SBIABackend.entity.Componentesdeti;
import com.dacrt.SBIABackend.entity.Maestroevaluacion;
import com.dacrt.SBIABackend.entity.Cargos;*/
import com.dacrt.SBIABackend.entity.Unidad;
import com.dacrt.SBIABackend.entity.UnidadAdscripcion;


public interface UnidadService {
	/*Métodos de Unidades Normales*/
	//public UnidadResponseDto addUnidad(UnidadRequestDto unidadRequestDto);
    //public List<DetalleUnidadResponseDto> getUnidades();
    //public DetalleUnidadResponseDto getUnidadById(Integer idUnidad);
   // public Unidad getUnidad(Integer idUnidad);
    //public List<ProcesoResponseDto> getProcesos(Integer idUnidad);
    //public List<ProcesoResponseDto> getProcesosActivos(Integer idUnidad);
    boolean existsByNombre(UnidadRequestDto unidadRequestDto);
    boolean existsByNombre(String nombre);
    boolean existsByCdUnidad(String cdUnidad);
    //public Unidad convertirDTOAEntidad(UnidadRequestDto unidadRequestDto);
    public boolean existsById(Integer idUnidad);
    public Optional<Unidad> getByNombre(String nombre);
    public Optional<Unidad> getByCdUnidad(String cdUnidad);
    Optional<Unidad> findById(Integer idUnidad);
    //public UnidadResponseDto editUnidad(UnidadRequestDto unidadRequestDto);
    public Optional<Unidad> getOne(Integer idUnidad);
    public void  save(Unidad unidad);
    public long countProcesosPorUnidad(Integer idUnidad);
    public List<Unidad> getByUnidadActivo();
    //public List<Cargos> buscarCargosporUnidad(Integer idUnidad);
    /*public List<VistaUnidadesAll> buscarUnidadesAll();
    public List<Vistatotalunidadesconevaluaciones> buscarTotalUnidadesxCampana(Long idCampana);
    public List<VistaResumenPorUnidad> buscarResumenunidadxCampana(Long idCampana);
    public List<VistaPersonalxDiadeContingencia> buscarpersContingxUnidad(Long idCampana);
    public List<VistaPersoxDiadeContingenciaTotales> buscarpersContingxUnidadTotales(Long idCampana);
    public List<VistaRecursosxDiadeConting> buscarRecursostotales();
    public List<VistaCondiPersonasClaves> buscarPerClaves();
    public List<VistaCondiRecursosClaves> buscarRecursosClaves();*/
    
}
