@PostMapping("{id}/bloqueio")
    public ResponseEntity<?> bloquear(HttpServletRequest request, @PathVariable String id){
        String ip = request.getRemoteAddr();
        String userAgent = request.getHeader(HttpHeaders.USER_AGENT);
        Optional<Proposta> possivelProposta = propostaRepository.findByNumeroCartao(id);
        if(possivelProposta.isEmpty()){
            logger.info("Tentativa de bloqueio, cartao: {} não encontrado", id);
            return ResponseEntity.notFound().build();
        }
        Proposta proposta = possivelProposta.get();
        if(proposta.estaBloqueado()){
            logger.info("Tentativa de bloqueio, cartao: {} já bloqueado", id);
            return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
        }
        if(!notificarLegado(id)){
            return ResponseEntity.status(HttpStatus.BAD_GATEWAY)
                    .body(Map.of("message", "Não foi possivel concluir a ação, tente mais tarde"));
        }
        proposta.bloquear(ip, userAgent);
        propostaRepository.save(proposta);
        logger.info("Cartão: {} bloqueado com sucesso", id);
        return ResponseEntity.ok().build();
    }
@PostMapping("{id}/bloqueio")
    public ResponseEntity<?> bloquear(HttpServletRequest request, @PathVariable String id){
        String ip = request.getRemoteAddr();
        String userAgent = request.getHeader(HttpHeaders.USER_AGENT);
        Optional<Proposta> possivelProposta = propostaRepository.findByNumeroCartao(id);
        if(possivelProposta.isEmpty()){
            logger.info("Tentativa de bloqueio, cartao: {} não encontrado", id);
            return ResponseEntity.notFound().build();
        }
        Proposta proposta = possivelProposta.get();
        if(proposta.estaBloqueado()){
            logger.info("Tentativa de bloqueio, cartao: {} já bloqueado", id);
            return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
        }
        if(!notificarLegado(id)){
            return ResponseEntity.status(HttpStatus.BAD_GATEWAY)
                    .body(Map.of("message", "Não foi possivel concluir a ação, tente mais tarde"));
        }
        proposta.bloquear(ip, userAgent);
        propostaRepository.save(proposta);
        logger.info("Cartão: {} bloqueado com sucesso", id);
        return ResponseEntity.ok().build();
    }
@postmapping("{id}/bloqueio") public responseentity<?> bloquear(httpservletrequest request, @pathvariable string id){ string ip = request.getremoteaddr(); string useragent = request.getheader(httpheaders.user_agent); optional<proposta> possivelproposta = propostarepository.findbynumerocartao(id); if(possivelproposta.isempty()){ logger.info("tentativa de bloqueio, cartao: {} não encontrado", id); return responseentity.notfound().build(); } proposta proposta = possivelproposta.get(); if(proposta.establoqueado()){ logger.info("tentativa de bloqueio, cartao: {} já bloqueado", id); return responseentity.status(httpstatus.unprocessable_entity).build(); } if(!notificarlegado(id)){ return responseentity.status(httpstatus.bad_gateway) .body(map.of("message", "não foi possivel concluir a ação, tente mais tarde")); } proposta.bloquear(ip, useragent); propostarepository.save(proposta); logger.info("cartão: {} bloqueado com sucesso", id); return responseentity.ok().build(); }