<?php
/**
 * sms_api.php - SMS Gateway API for Kodular Integration
 * Version: 2.1.0 - Optimized for Mobile Gateway
 */

// 1. إعدادات الخصوصية والأداء
header('Content-Type: application/json; charset=utf-8');
header('Cache-Control: no-store, no-cache, must-revalidate');
error_reporting(0); // إخفاء التنبيهات لضمان وصول JSON نظيف للتطبيق
ini_set('display_errors', 0);

// 2. تضمين ملف الإعدادات (تأكد من وجوده)
require_once __DIR__ . '/config.php';

// 3. استلام الأوامر (الجوكر - يقبل الرابط والطلب المخفي)
$action = $_REQUEST['action'] ?? '';
$api_key_sent = $_REQUEST['api_key'] ?? '';

// 4. مفتاح الأمان (يجب أن يطابق كوديولار)
$valid_key = 'MAX_ADMIN_2026';

// التحقق من الأمان
if ($api_key_sent !== $valid_key) {
    http_response_code(401);
    echo json_encode(['success' => false, 'message' => '❌ مفتاح API غير صالح']);
    exit;
}

// 5. معالجة العمليات (Switch)
switch ($action) {

    // --- جلب الرسائل المنتظرة (لتطبيق كوديولار) ---
    case 'get_pending':
        try {
            // جلب الرسائل التي حالتها pending فقط
            $stmt = $conn->prepare("SELECT id, phone_number as phone, otp_code FROM sms_logs WHERE status = 'pending' LIMIT 10");
            $stmt->execute();
            $result = $stmt->get_result();
            
            $pending_sms = [];
            while ($row = $result->fetch_assoc()) {
                $pending_sms[] = $row;
            }
            $stmt->close();
            
            // إرسال البيانات (هذا ما سيقرأه بلوك JsonTextDecode)
            echo json_encode($pending_sms);
        } catch (Exception $e) {
            echo json_encode([]);
        }
        exit;
        break;

    // --- تحديث الحالة بعد الإرسال (لتطبيق كوديولار) ---
    case 'update_status':
        $phone = $_REQUEST['phone'] ?? '';
        $status = $_REQUEST['status'] ?? 'sent';
        
        if (!empty($phone)) {
            $stmt = $conn->prepare("UPDATE sms_logs SET status = ?, updated_at = NOW() WHERE phone_number = ? AND status = 'pending' LIMIT 1");
            $stmt->bind_param("ss", $status, $phone);
            $stmt->execute();
            $stmt->close();
            echo json_encode(['success' => true, 'message' => '✅ تم تحديث الحالة']);
        } else {
            echo json_encode(['success' => false, 'message' => '❌ رقم الهاتف مفقود']);
        }
        exit;
        break;

    // --- اختبار الاتصال ---
    case 'test':
        echo json_encode([
            'success' => true,
            'message' => '✅ Gateway is Online',
            'time' => date('Y-m-d H:i:s')
        ]);
        exit;
        break;

    // --- إجراءات أخرى (مثل طلب OTP من المتصفح أو التطبيق) ---
    case 'send_otp':
        // هنا يمكنك إضافة كود إدراج رسالة جديدة في جدول sms_logs بحالة pending
        // لكي يسحبها تطبيق كوديولار في الدورة القادمة
        echo json_encode(['success' => true, 'message' => '✅ تم إضافة الطلب لقائمة الانتظار']);
        exit;
        break;

    default:
        echo json_encode(['success' => false, 'message' => '❌ إجراء غير معروف']);
        exit;
        break;
}
?>