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

import io.gmss.fiscad.entities.infocad.parametre.Structure;
import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException;
import io.gmss.fiscad.paylaods.response.StructureResponse;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

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

public interface StructureService {

    Structure createStructure(Structure structure) throws BadRequestException;

    Structure updateStructure(Long id, Structure structure) throws NotFoundException;

    void deleteStructure(Long id) throws NotFoundException;

    Page<Structure> getStructureList(Pageable pageable);

    List<Structure> getStructureList();

    List<StructureResponse> getStructuresByArrondissement(Long arrondissementID);

    Optional<Structure> getStructureById(Long id);
}
