package io.gmss.fiscad.interfaces.infocad.parametre;

import io.gmss.fiscad.entities.infocad.parametre.Bloc;
import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

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

public interface BlocService {

    Bloc createBloc(Bloc bloc) throws BadRequestException;

    Bloc updateBloc(Long id, Bloc bloc) throws NotFoundException;

    void deleteBloc(Long id) throws NotFoundException;

    Page<Bloc> getBlocList(Pageable pageable);

    List<Bloc> getBlocsByArrondissement(Long idArrondissement);

    List<Bloc> getBlocsByStructure(Long idStructure);

    List<Bloc> getBlocsBySecteur(Long idSecteur);

    List<Bloc> getBlocList();

    Optional<Bloc> getBlocById(Long id);

    int countAllBlocByArrondissement(Long idArrondissement);

}
