Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Aula 3 - Mão na massa: desvendando as preferências dos hóspede (RESOLVIDO)

Desafio: Como pessoa desenvolvedora, você precisa criar uma função no MySQL que receba como parâmetro um tipo de hospedagem (por exemplo, 'Casa', 'Apartamento', 'Hotel') e retorne o total de hospedagens disponíveis desse tipo. Esta função ajudará a equipe a entender rapidamente a distribuição das acomodações na plataforma.

DELIMITER $$

CREATE FUNCTION HospedagensDisponiveis (TipoHospedagem TEXT)     ### Cria a função e determina que uma string deve ser inserido para a realizar busca.
RETURNS VARCHAR (255) DETERMINISTIC

BEGIN
    DECLARE TotalHospedagens INT;                           ### Declaração da variável que vai receber a contagem de hospedagens.
    DECLARE Resultado VARCHAR (255);                        ### Declaração da variável que vai receber a string final constando os resultados obtidos.

    SELECT COUNT(hospedagem_id) INTO TotalHospedagens       ### Faz a contagem total de todos os IDs das hospedagens onde os filtros foram aplicados.
    FROM hospedagens                                        ### TipoHospedagem recebe o valor atribuido ao chamar a função.
    WHERE tipo = TipoHospedagem and Ativo = 1;              ### Ativo = 1 indica que apenas as hospedagens ativas devem ser contadas.


    SET Resultado = CONCAT('Existem ', TotalHospedagens, ' hospedagens do tipo ', TipoHospedagem, ' disponíveis.'); ### Faz a concatenação das strings para exibir uma frase como resultado da consulta.
    RETURN Resultado;         ### Retorna a frase final.

END$$

DELIMITER ;

Minha resposta ficou um pouco diferente da resolução do instrutor... Pelo que notei, a resolução proposta conta o total geral de hospedagens cadastradas, não levando em cosideração se estão ativas ou não. No meu entender a hospedagem só estará disponível enquanto estiver ativa, por isso apliquei esse filtro... Ta correto ou eu viajei?

1 resposta
solução!

Olá, Érica, tudo bem?

A lógica que você aplicou faz bastante sentido, pois, de fato, uma hospedagem só deve ser considerada "disponível" se estiver ativa. O seu filtro Ativo = 1 é uma boa prática para garantir que a função retorne apenas as hospedagens que estão realmente disponíveis para uso.

A diferença entre a sua solução e a do instrutor pode ser uma questão de interpretação do que significa "disponível". Se o objetivo é contar todas as hospedagens cadastradas, independentemente do status, então o filtro de ativo não seria necessário. Mas, se o foco é nas hospedagens que podem ser efetivamente utilizadas, o seu filtro está correto.

Portanto, considero que a sua solução também está correta! Parabéns pelo código!

Espero ter esclarecido.

Qualquer dúvida, não hesite em compartilhar no fórum.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado