Interface DonorDepositService

All Known Implementing Classes:
DonorDepositServiceImpl

public interface DonorDepositService
Interface para o serviço de depósitos de doadores.

Esta interface fornece o contrato para o registro de doações feitas por doadores. Implementações desta interface deverão definir a lógica específica de como registrar essas doações e retornar a resposta adequada.

Since:
1.3.0
Author:
diegoneves
  • Method Details

    • registerDonation

      Registra uma nova doação com base nas informações fornecidas no DepositDonationRequest.

      Este método é responsável por processar uma solicitação de doação de depósito, validar os dados da solicitação e registrar a doação no sistema. Ele retorna um RegisteredDepositResponse contendo as informações da doação registrada, como confirmação de que a doação foi processada com sucesso.

      Parameters:
      request - O objeto DepositDonationRequest contendo os detalhes da doação a ser registrada. Deve incluir o email do responsável pela doação e uma lista de detalhes dos depósitos (DepositDTO).
      Returns:
      Um objeto RegisteredDepositResponse contendo os detalhes da doação registrada, incluindo o nome do usuário, email e a lista de depósitos associados.
      Throws:
      DepositProcessingException - Se a solicitação fornecida for inválida ou faltarem dados obrigatórios, ou, se ocorrer um erro durante o processamento do depósito.
    • linkDepositToDonor

      void linkDepositToDonor(UserEntity user)
      Vincula depósitos a um doador baseado nas informações do usuário fornecidas.

      Este método valida o usuário dado e, se o perfil do usuário for do tipo "DONOR", cria um novo registro de depósito doador e salva no repositório apropriado.

      Parameters:
      user - Um objeto UserEntity que representa o usuário cujos depósitos serão vinculados. O usuário deve ter um perfil do tipo "DONOR" para prosseguir com o vinculo.
      Throws:
      DepositProcessingException - Se o objeto de usuário fornecido for nulo, estiver vazio, ou se ocorrer algum erro durante o processamento da validação.