package io.gmss.fiscad.interfaces.rfu.metier;

import io.gmss.fiscad.entities.rfu.metier.DonneesImpositionTfu;
import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu;
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 DonneesImpositionTfuService {


    DonneesImpositionTfu createDonneesImpositionTfu(DonneesImpositionTfu donneesImpositionTfu) throws BadRequestException;

    DonneesImpositionTfu updateDonneesImpositionTfu(Long id, DonneesImpositionTfu donneesImpositionTfu) throws NotFoundException;

    void deleteDonneesImpositionTfu(Long id) throws NotFoundException;

    Page<DonneesImpositionTfu> getDonneesImpositionTfuList(Pageable pageable);

    List<DonneesImpositionTfu> getDonneesImpositionTfuList();

    Optional<DonneesImpositionTfu> getDonneesImpositionTfuById(Long id);

    Long genererDonneesFiscales(ImpositionsTfu impositionsTfu);
    List<DonneesImpositionTfu> getDonneesFiscalesByImposition(Long  impositionsId);
    List<DonneesImpositionTfu> getDonneesFiscalesByImpositionArrondissement(Long  impositionsId,Long arrondissementId);
}
