package eu.dnetlib.repo.manager.service;

import eu.dnetlib.domain.data.PiwikInfo;
import eu.dnetlib.domain.data.Repository;
import eu.dnetlib.domain.functionality.validator.JobForValidation;
import org.springframework.security.core.Authentication;

public interface EmailUtils {


    void reportException(Exception exception);

    void sendAdministratorRequestToEnableMetrics(PiwikInfo piwikInfo) throws Exception;

    void sendUserRequestToEnableMetrics(PiwikInfo piwikInfo) throws Exception;

    void sendAdministratorMetricsEnabled(PiwikInfo piwikInfo) throws Exception;

    void sendUserMetricsEnabled(PiwikInfo piwikInfo) throws Exception;

    void sendAdminRegistrationEmail(Repository repository, Authentication authentication) throws Exception;

    void sendUserRegistrationEmail(Repository repository, Authentication authentication) throws Exception;

    void sendAdminUpdateRepositoryEmail(Repository repository, Authentication authentication) throws Exception;

    void sendUserUpdateRepositoryEmail(Repository repository, Authentication authentication) throws Exception;

    void sendSubmitJobForValidationEmail(Authentication authentication, JobForValidation jobForValidation) throws Exception;
}
