<?php
header('Content-Type: application/json');

// !! تأكد أن هذا المفتاح يطابق المفتاح في تطبيق الأندرويد !!
//define('SECRET_KEY', 'YOUR_SUPER_SECRET_KEY_123__');
$secretKey = trim(file_get_contents('/home/siroapp/.secret_key'));

// --- 1. التحقق من صحة الطلب ---
$authHeader = $_SERVER['HTTP_AUTHORIZATION'] ?? '';
if ($authHeader !== 'Bearer ' . $secretKey) {
    http_response_code(403);
    echo json_encode(['status' => 'error', 'message' => 'Unauthorized Access']);
    exit();
}

// --- 2. قراءة البيانات المرسلة ---
$json_data = file_get_contents('php://input');
$data = json_decode($json_data, true);

if ($data === null || !isset($data['sender']) || !isset($data['message'])) {
    http_response_code(400);
    echo json_encode(['status' => 'error', 'message' => 'Invalid data received']);
    exit();
}

// --- 3. استخراج البيانات والتحضير للمعالجة ---
$sender = $data['sender'];
$message_body = $data['message'];
$received_at = date('Y-m-d H:i:s');
$log_entry = "[$received_at] From: $sender | Message: $message_body";

// --- 4. تحليل الرسالة (يركز على Orange Money فقط حالياً) ---

// تعريف المتغيرات التي سنستخرجها
$amount = 0;
$payer_phone = null;
$currency = null;

// النمط الوحيد الفعّال حالياً: لرسائل Orange Money الأردنية
$pattern_orangemoney_jo = '/تم استقبال حوالة مالية من (\d+)\s+من مزود الخدمة:\s+Orange Money إلى محفظتك بمبلغ ([\d,.]+)\s+دينار/';

/*
// أنماط أخرى يمكن تفعيلها لاحقاً
// $pattern_chambank = '/حوالة واردة خارجية بمبلغ\s+([\d,.]+)\s+ليرة سورية/';
// $pattern_wallet_syr = '/تم استلام مبلغ ([\d,.]+) ل\.س من الرقم (09\d{8})/';
*/

if (preg_match($pattern_orangemoney_jo, $message_body, $matches)) {
    // --- تطابق نمط Orange Money الأردني ---
    $payer_phone = $matches[1];
    $amount_str = $matches[2];
    $amount = (float) str_replace(',', '', $amount_str);
    $currency = 'JOD'; // دينار أردني

    $log_entry .= " | MATCH: Orange Money JO | SUCCESS: Parsed Amount = $amount, Payer Phone = $payer_phone, Currency = $currency" . PHP_EOL;

    // TODO: اكتب منطق قاعدة البيانات هنا
    /*
        - ابحث عن معاملة "pending" تطابق المبلغ $amount ورقم الهاتف $payer_phone.
        - $sql = "UPDATE transactions SET status = 'completed' WHERE amount = ? AND phone_number = ? AND currency = 'JOD' AND status = 'pending' LIMIT 1";
    */

} else {
    // إذا لم تتطابق الرسالة مع نمط Orange Money
    $log_entry .= " | INFO: Message did not match the Orange Money pattern. Ignored." . PHP_EOL;
}

// كتابة كل شيء في ملف السجل
file_put_contents('sms_log.txt', $log_entry, FILE_APPEND);


// --- 5. إرسال رد إلى تطبيق الأندرويد ---
http_response_code(200);
echo json_encode(['status' => 'success', 'message' => 'Data received and processed.']);
?>

