package eu.eudat.service.user; import com.fasterxml.jackson.core.JsonProcessingException; import eu.eudat.model.User; import eu.eudat.model.persist.UserRequestPersist; import eu.eudat.model.persist.UserPersist; import eu.eudat.model.persist.UserRolePatchPersist; import gr.cite.tools.exception.MyApplicationException; import gr.cite.tools.exception.MyForbiddenException; import gr.cite.tools.exception.MyNotFoundException; import gr.cite.tools.exception.MyValidationException; import gr.cite.tools.fieldset.FieldSet; import jakarta.xml.bind.JAXBException; import javax.management.InvalidApplicationException; import java.io.IOException; import java.util.UUID; public interface UserService { User persist(UserPersist model, FieldSet fields) throws MyForbiddenException, MyValidationException, MyApplicationException, MyNotFoundException, InvalidApplicationException, JsonProcessingException; void updateLanguageMine(String language) throws InvalidApplicationException, JsonProcessingException; void updateTimezoneMine(String timezone) throws JsonProcessingException; void updateCultureMine(String culture) throws JsonProcessingException; void deleteAndSave(UUID id) throws MyForbiddenException, InvalidApplicationException; byte[] exportCsv() throws IOException; User patchRoles(UserRolePatchPersist model, FieldSet fields) throws InvalidApplicationException; void sendMergeAccountConfirmation(UserRequestPersist model) throws InvalidApplicationException, JAXBException; void sendRemoveCredentialConfirmation(UserRequestPersist model) throws InvalidApplicationException, JAXBException; void confirmMergeAccount(String token) throws InvalidApplicationException; void confirmRemoveCredential(String token) throws InvalidApplicationException; }