Interface ShelterEntityService

All Known Implementing Classes:
ShelterEntityServiceImpl

public interface ShelterEntityService
Interface para a criação de um novo abrigo no sistema.

Esta interface fornece um contrato para a implementação de um serviço responsável por criar abrigos no sistema.

Since:
1.0.0
Author:
diegoneves
  • Method Details

    • createShelter

      Este método é responsável por criar um novo abrigo no sistema. Ele recebe um objeto ShelterCreationRequest, que contém as informações necessárias para criar o abrigo, como o nome do abrigo, o endereço e o e-mail do usuário responsável por criar o abrigo.
      Parameters:
      request - um objeto ShelterCreationRequest contendo as informações necessárias para criar um novo abrigo.
      Returns:
      um objeto ShelterCreatedResponse contendo as informações do abrigo criado.
      Throws:
      ShelterEntityFailuresException - se ocorrer algum erro durante a criação do abrigo. Isso pode acontecer se o usuário responsável não for encontrado, se houver um erro na criação do endereço ou se houver um erro na criação do abrigo em si.
    • receiveDonation

      Método para lidar com o recebimento de doações para um abrigo.

      Este método aceita um objeto ReceiveDonationRequest, que contém o e-mail do responsável pela doação e uma lista de doações no formato DTO. O método processa estas doações, associa-as ao abrigo correspondente com base no e-mail fornecido e retorna uma resposta detalhando a doação recebida.

      O método busca o abrigo responsável pela doação usando o e-mail fornecido. Se o abrigo não for encontrado, o método retornará null para indicar que a doação não foi recebida.

      Depois de encontrar o abrigo, o método procede à conversão dos DonationDTO em DonationEntity que são então adicionados à lista de doações do abrigo. Finalmente, o abrigo atualizado é salvo no repositório.

      O método retorna um ShelterInformationResponse que contém informações detalhadas sobre as doações recebidas, incluindo o nome do abrigo, o nome e e-mail do responsável e a lista de doações recebidas.

      Parameters:
      request - um objeto ReceiveDonationRequest que contém as informações da doação.
      Returns:
      um objeto ShelterInformationResponse que contém informações das doações recebidas, ou null se o abrigo correspondente ao e-mail fornecido não for encontrado.
    • findShelterByUserResponsibleEmail

      ShelterInformationResponse findShelterByUserResponsibleEmail(String userResponsibleEmail)
      Método para encontrar um abrigo pelo email do responsável.

      Este método aceita um objeto String, que contém o e-mail do responsável pelo abrigo, com base no e-mail fornecido, e retorna uma resposta detalhando as informações deste abrigo.

      O método retorna um ShelterInformationResponse que contém informações detalhadas sobre o abrigo e as doações recebidas, incluindo o nome do abrigo, o nome e e-mail do responsável, e a lista de doações recebidas.

      Returns:
      um objeto ShelterInformationResponse que contém informações das doações recebidas.
      Throws:
      ShelterEntityFailuresException - se o usuário informado não for do tipo beneficiário ou não estiver cadastrado na base de dados. A mensagem de erro será incluída na exceção.
    • findAll

      org.springframework.data.domain.Page<ShelterInformationResponse> findAll(org.springframework.data.domain.Pageable pageable)
      Método utilizado para encontrar todos os abrigos com paginação. Recupera uma página de informações de abrigos do sistema com base nas informações de paginação fornecidas. Este método é responsável por retornar uma lista paginada de ShelterInformationResponse, que contém detalhes sobre os abrigos registrados no sistema.
      Parameters:
      pageable - um objeto Pageable que define as informações de paginação, como número da página e tamanho da página, para controlar o retorno das informações de abrigos.
      Returns:
      uma página de objetos ShelterInformationResponse contendo as informações dos abrigos.