package io.gmss.fiscad.interfaces.decoupage;

import io.gmss.fiscad.entities.decoupage.Commune;
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 CommuneService {

    Commune createCommune(Commune commune) throws BadRequestException;

    Commune updateCommune(Long id, Commune commune) throws NotFoundException;

    void deleteCommune(Long id) throws NotFoundException;

    Page<Commune> getCommuneList(Pageable pageable);

    List<Commune> getCommuneList();

    List<Commune> getCommunesByDepartement(Long departementId);

    Optional<Commune> getCommuneById(Long id);
}
