<?php

namespace App\Http\Controllers;

use App\Models\turmas;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;

class EnvioWhatsap extends Controller
{
    public function envio(Request $request)
    {
        $request->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());
    }
}
