public IActionResult Patch(int id, FuncionarioModel editedModel)
        {
            try
            {
                Funcionario currentModel = _funcionarioBusiness.Get(id);

                if (currentModel == null)
                {
                    return(NotFound());
                }

                if (!editedModel.ValidPassword())
                {
                    return(BadRequest("A senha informada não é válida.\nDeve conter 6 ou mais caracteres."));
                }

                if (editedModel.SenhasIguais(currentModel.Senha))
                {
                    return(BadRequest("A senha informada não é válida.\nTente outra senha."));
                }

                _funcionarioBusiness.TrocarSenha(currentModel, editedModel.Senha);

                return(Ok(FuncionarioModel.ToModel(currentModel).ToBody()));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
        public IActionResult Get(int id)
        {
            try
            {
                FuncionarioModel currentModel = FuncionarioModel.ToModel(_funcionarioBusiness.Get(id));

                if (currentModel == null)
                {
                    return(NotFound());
                }

                return(Ok(currentModel.ToBody()));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
        public IActionResult Post([FromBody] LoginModel loginModel)
        {
            try
            {
                FuncionarioModel currentModel = FuncionarioModel.ToModel(_funcionarioBusiness.Get(loginModel.Login, loginModel.Senha));

                if (currentModel == null)
                {
                    return(NotFound("Login ou senha incorreto"));
                }

                return(Ok(currentModel.ToBody()));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
        public IActionResult Delete(int id)
        {
            try
            {
                FuncionarioModel currentModel = FuncionarioModel.ToModel(_funcionarioBusiness.Get(id));

                if (currentModel == null)
                {
                    return(NotFound());
                }

                if (!_funcionarioBusiness.JaRealizouAluguel(currentModel.ToDomain()))
                {
                    _funcionarioBusiness.Desactive(currentModel.ToDomain());
                    return(Ok(currentModel.ToBody()));
                }

                return(BadRequest("Não foi possível desativar este funcionário, pois ele já efetuou um ou mais aluguéis."));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }