package io.gmss.fiscad.interfaces.user;

import io.gmss.fiscad.entities.infocad.parametre.Structure;
import io.gmss.fiscad.entities.user.DemandeReinitialisationMP;
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 DemandeReinitialisationMPService {

    DemandeReinitialisationMP createDemandeReinitialisationMP(String usernameOrEmail) throws BadRequestException;

    DemandeReinitialisationMP updateDemandeReinitialisationMP(Long id, DemandeReinitialisationMP demandeReinitialisationMP) throws NotFoundException;

    void deleteDemandeReinitialisationMP(Long id) throws NotFoundException;

    Page<DemandeReinitialisationMP> getDemandeReinitialisationMPList(Pageable pageable);

    List<DemandeReinitialisationMP> getDemandeReinitialisationMPList();

    List<DemandeReinitialisationMP> getDemandeReinitialisationMPNonTraiteList(Structure structure);

    Optional<DemandeReinitialisationMP> getDemandeReinitialisationMPById(Long id);

    DemandeReinitialisationMP traiterDemandeReinitialisation(Long id, String password);
}
