<?php
require_once "config/init.php";

if(isset($_POST['submit'])){
$id_cliente = (int)$_POST['id_cliente'];
$mensagem = $_POST['mensagem'];

$sql = $database->query("SELECT cell1 FROM clientes WHERE id_cliente = '$id_cliente'");
$result = $database->fetch_assoc($sql);

  // TRATAMENTO DO NÚMERO
        $contacto_bruto = trim($result['cell1']);
        if (substr($contacto_bruto, 0, 4) !== '+258') {
            if (substr($contacto_bruto, 0, 3) === '258') {
                $contacto = '+' . $contacto_bruto;
            } else {
                $contacto = '+258' . $contacto_bruto;
            }
        } else {
            $contacto = $contacto_bruto;
        }

            $message = "SMS enviada com sucesso";
            $url = "creditos_alerta.php";

            //1. Tenta obter das variáveis de ambiente globais
            $apiKey = isset($_ENV['SMS_API_KEY']) ? $_ENV['SMS_API_KEY'] : getenv('SMS_API_KEY');

            //2. SEGURANÇA MÁXIMA: Se falhar, lê direto do .env na raiz (baseado no creditos.php)
            if (!$apiKey) {
                $backupEnvPath = __DIR__ . '/.env'; // Se a classe estiver no mesmo nível da raiz
                if (!file_exists($backupEnvPath)) {
                    // Se a classe estiver dentro de uma pasta (ex: classes/), sobe um nível
                    $backupEnvPath = dirname(__DIR__) . '/.env'; 
                }

                if (file_exists($backupEnvPath)) {
                    $linhasBackup = file($backupEnvPath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
                    foreach ($linhasBackup as $linhaB) {
                        if (strpos(trim($linhaB), '#') === 0) continue;
                        if (strpos($linhaB, '=') !== false) {
                            list($nomeB, $valorB) = explode('=', $linhaB, 2);
                            if (trim($nomeB) === 'SMS_API_KEY') {
                                $apiKey = trim(trim($valorB), "\"'");
                                break;
                            }
                        }
                    }
                }
            }

            //Se mesmo com o backup falhar, regista no log
            if (!$apiKey) {
                file_put_contents(
                    'sms_log.txt',
                    date('Y-m-d H:i:s') . " - ERRO CRÍTICO: Não foi possível localizar o ficheiro .env ou a chave SMS_API_KEY." . PHP_EOL . "--------------------------------" . PHP_EOL,
                    FILE_APPEND
                );
            }

            $baseUrl = 'https://iiywyqfapgqkggvxyvfd.supabase.co/functions/v1/api';


//Correção de acentuação: Garante que a string está em UTF-8 puro antes do JSON
$mensagem_cliente = mb_convert_encoding($mensagem, 'UTF-8', mb_detect_encoding($mensagem, 'UTF-8, ISO-8859-1, ASCII', true));
            $payload = json_encode([
                "to"     => [$contacto],
                "body"   => $mensagem_cliente,
                "sender" => "FLEUSAMOLA",
            ]);

            $ch = curl_init("$baseUrl/sms/send");
            curl_setopt_array($ch, [
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_POST           => true,
                CURLOPT_POSTFIELDS     => $payload,
                CURLOPT_HTTPHEADER     => [
                    "X-API-Key: " . $apiKey,
                    "Content-Type: application/json",
                ],
            ]);

            $response = curl_exec($ch);

            if (curl_errno($ch)) {
                $erro = curl_error($ch);
                file_put_contents(
                    'sms_log.txt',
                    date('Y-m-d H:i:s') . " - Erro cURL: $erro" . PHP_EOL,
                    FILE_APPEND
                );
            } else {
                $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
                file_put_contents(
                    'sms_log.txt',
                    date('Y-m-d H:i:s') . PHP_EOL .
                    "Status: $status" . PHP_EOL .
                    "Payload: $payload" . PHP_EOL . 
                    "Resposta: $response" . PHP_EOL .
                    "--------------------------------" . PHP_EOL,
                    FILE_APPEND
                );
            }

            curl_close($ch);
      $database->query("INSERT INTO sms_log(id_cliente,mensagem)VALUES('$id_cliente','$mensagem_cliente')");
            //Alerta original mantido
            echo "<script>window.open('alertas/alertas_good.php?url=$url&&message=$message','_self')</script>";

}