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

import io.gmss.fiscad.entities.rfu.parametre.Campagne;
import io.gmss.fiscad.enums.TypeCampagne;
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 CampagneService {

    Campagne createCampagne(Campagne campagne) throws BadRequestException;

    Campagne updateCampagne(Long id, Campagne campagne) throws NotFoundException;

    void deleteCampagne(Long id) throws NotFoundException;

    Page<Campagne> getCampagneList(Pageable pageable);

    List<Campagne> getCampagneList();

    List<Campagne> getCampagnesByType(TypeCampagne typeCampagne);

    Optional<Campagne> getCampagneById(Long id);
}

