<?php
/**
 * API: تسجيل الدخول
 * POST /api/login.php
 * 
 * الخطوات:
 * 1. التحقق من صيغة الرقم
 * 2. استدعاء /api/check_number على wifi2fm.com للتأكد أن الرقم مسجل في واتساب
 * 3. إنشاء الجلسة فقط إذا كان الرقم صالح
 * 
 * الطلب: { "phone": "970599123456" }
 * الاستجابة: { "success": true, "phone": "970599123456", "verified": true }
 */

session_start();
header('Content-Type: application/json');

require_once __DIR__ . '/../includes/config.php';
require_once __DIR__ . '/../includes/functions.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    jsonResponse(['error' => 'Method not allowed'], 405);
}

$input = json_decode(file_get_contents('php://input'), true);
$phone = preg_replace('/[^0-9]/', '', $input['phone'] ?? '');

// ── الخطوة 1: التحقق من صيغة الرقم ─────────────────────
if (!isValidPhone($phone)) {
    jsonResponse([
        'success' => false,
        'error'   => 'رقم هاتف غير صالح. استخدم 10-15 رقم مع رمز الدولة.',
        'step'    => 'format_validation',
    ], 400);
}

// ── الخطوة 2: التحقق من واتساب عبر API ──────────────────
logEvent('check_number_start', ['phone' => $phone]);

$checkResult = checkWhatsAppNumber($phone);

if (!$checkResult['valid']) {
    logEvent('check_number_failed', [
        'phone' => $phone,
        'error' => $checkResult['error'],
    ]);
    
    jsonResponse([
        'success'  => false,
        'error'    => $checkResult['error'],
        'step'     => 'whatsapp_verification',
        'verified' => false,
    ], 400);
}

// ── الخطوة 3: الرقم صالح - إنشاء الجلسة ─────────────────
logEvent('check_number_success', ['phone' => $phone]);

$_SESSION['whatsapp_number']   = $phone;
$_SESSION['session_start']     = time();
$_SESSION['whatsapp_verified'] = true;

ensureStorageDirs();

// إضافة رسالة ترحيب إذا كانت محادثة جديدة
$messages = loadMessages($phone);
if (empty($messages)) {
    $welcome = createMessage(
        'incoming',
        "مرحباً بك! 👋\nأنت متصل عبر بوابة واتساب.\nأرسل رسالة وسأرد عليك هنا.",
        $phone
    );
    saveMessage($phone, $welcome);
}

logEvent('session_start', ['phone' => $phone, 'verified' => true]);

jsonResponse([
    'success'  => true,
    'phone'    => $phone,
    'verified' => true,
]);
