<?php
try {
    // Preparando a consulta no banco de dados
    $sql = "SELECT user, senha, evo FROM sms WHERE cadUser = :cadUser AND bloqueado = 'N'";
    $stmt = $painel_geral->prepare($sql);
    $stmt->bindParam(':cadUser', $cadUser, PDO::PARAM_STR);

    
    // Executando a consulta
    $stmt->execute();
    
    // Verificando se os dados foram encontrados
    if ($stmt->rowCount() > 0) {
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        
        // Atribuindo os valores do banco às variáveis
        $token = $result['user'];       // O valor de 'user' no banco será o $token
        $linkWhatsApp = $result['senha']; 
        $nomeInstancia = $result['evo']; 

    } else {
        echo "Usuário não encontrado no banco de dados.";
    }
} catch (PDOException $e) {
    // Tratando possíveis erros de conexão ou consulta
    echo 'Erro ao consultar o banco de dados: ' . $e->getMessage();
}




// Recebe e processa os dados do formulário de cadastro anterior
$numero = preg_replace('/\D/', '', $_POST['telefone']); // Remove tudo que não é número
$nome = $_POST['nome'];
$data_premio = time() + (2 * 24 * 60 * 60); // Exemplo: 48 horas a partir de agora
$dataFormatada = date("d/m/Y H:i:s", $data_premio);



// Conteúdo da mensagem com HTML simplificado

try {
    $query_sms = "SELECT DadosDeAcessoTeste FROM sms_preferencias WHERE CadUser = :CadUser";
    $stmt_sms = $painel_geral->prepare($query_sms);
    $stmt_sms->bindParam(':CadUser', $cadUser, PDO::PARAM_STR);
    $stmt_sms->execute();
    $sms_preferencia1 = $stmt_sms->fetch(PDO::FETCH_ASSOC);

    // Verificando se o valor de DadosDeAcessoTeste é válido
    if (!$sms_preferencia1 || !isset($sms_preferencia1['DadosDeAcessoTeste']) || $sms_preferencia1['DadosDeAcessoTeste'] <= 0) {
        echo "ID de vencimento inválido para o usuário " . $cadUser . ".<br>";
        return; // Retorna caso o valor de DadosDeAcessoTeste seja inválido
    }
    // Preparando a consulta no banco de dados
    $sql = "SELECT mensagem FROM sms_modelo WHERE id = :id";
    $stmt = $painel_geral->prepare($sql);
    $stmt->bindParam(':id', $sms_preferencia1['DadosDeAcessoTeste'], PDO::PARAM_STR);
    
    // Executando a consulta
    $stmt->execute();
    
    // Verificando se os dados foram encontrados
    if ($stmt->rowCount() > 0) {
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        
        // Atribuindo os valores do banco às variáveis
        $mensagem = $result['mensagem'];  // A mensagem que foi recuperada do banco
    } else {
        echo "Mensagem não encontrada no banco de dados.";
    }
} catch (PDOException $e) {
    // Tratando possíveis erros de conexão ou consulta
    echo 'Erro ao consultar o banco de dados: ' . $e->getMessage();
}



// Substituindo os placeholders na mensagem com str_replace()
$mensagem = str_replace(
    ['[nome]', '[url]', '[porta]', '[login]', '[senha]', '[perfil]', '[vencimento]'],
    [$nome, $url, $porta, $usuario, $senha, $nomeprofile, $dataFormatada],
    $mensagem
);



// Função para enviar a mensagem
function enviarMensagem($numero, $mensagem, $token, $linkWhatsApp, $nomeInstancia) {
    // Remove o primeiro "0" (caso exista) para garantir que o número comece corretamente com "55"


    
    $numero = substr($numero, 0);  // Mantém o DDD intacto (não precisa de alteração)

    if ($numero[2] !== '9') {
        // Se o número após o DDD não começa com '9', adiciona o '9'
        $numero = substr($numero, 0, 2) . '9' . substr($numero, 2);
    }
    
    // Verifica se o número tem 9 dígitos (incluindo o DDD)
    $telefone = "55" . $numero;
    
    // Verifique o tamanho do número
    $totalNumeros = strlen($telefone);

    if ($totalNumeros == 13 || $totalNumeros == 12) {
        // Dados para a solicitação POST
        $curl = curl_init();

        curl_setopt_array($curl, [
            CURLOPT_URL => $linkWhatsApp . '/message/sendText/' . $nomeInstancia,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_POSTFIELDS => json_encode([
                'number' => $telefone, // Número de telefone
                'text'   => $mensagem
            ]),
            CURLOPT_HTTPHEADER => [
                "Content-Type: application/json",  // Content-Type adequado para JSON
                "apikey: $token"  // Usando a variável $token para a chave de API
            ],
        ]);

        // Executar a solicitação
        $response = curl_exec($curl);
        curl_close($curl);


        return $response; // Retorne a resposta para análise posterior
    }

    return [$resposta1, $resposta2]; // Retorna as respostas das duas tentativas
}








// Tenta enviar a mensagem via WhatsApp
$resposta = enviarMensagem($numero, $mensagem, $token, $linkWhatsApp, $nomeInstancia);
if ($resposta && isset($resposta['status']) && $resposta['status'] == "success") {
    echo "Mensagem enviada com sucesso!";
} else {
    echo " ";
}
?>
