validate([ 'id_turma' => 'required|exists:turmas,id', 'tipo_envio' => 'required|in:texto,imagem', 'mensagem' => 'nullable|string', 'imagem' => 'required_if:tipo_envio,imagem|image|mimes:jpeg,png,webp|max:2048', ]); $turma = turmas::findOrFail($request->id_turma); // Corrigir formatação para WhatsApp $mensagem = $request->mensagem ?? ''; $mensagem = str_replace(['**', '__', '~~'], ['*', '_', '~'], $mensagem); $payload = [ 'chatId' => $turma->id_whatsapp, 'mensagem' => $mensagem, ]; // ✅ Se for envio com imagem if ($request->tipo_envio === 'imagem' && $request->hasFile('imagem')) { $file = $request->file('imagem'); $base64 = base64_encode( file_get_contents($file->getRealPath()) ); $mime = $file->getMimeType(); // image/png, image/jpeg, etc // 🔥 AQUI está o prefixo obrigatório $base64Completo = "data:$mime;base64,$base64"; $payload['imagem'] = $base64Completo; } // ✅ Enviar para API $response = Http::withHeaders([ 'X-API-KEY' => 'UoCkSF4ApgADhpvDkkE5XO1fD761yOZX', 'Content-Type' => 'application/json', ])->post('https://n8n.cae.app.br/webhook/envioWpp', $payload); // ✅ Retorno amigável if ($response->successful()) { return back()->with('success', 'Mensagem enviada com sucesso!'); } return back()->with('error', 'Erro ao enviar: ' . $response->body()); } }