<?php
/**
 * User tutorials API - service aware
 */
require_once 'config.php';

$device = strtoupper($_GET['device'] ?? '');
$serviceType = strtolower(trim($_GET['service_type'] ?? $_GET['service'] ?? 'openvpn_l2tp'));
$serviceType = in_array($serviceType, ['windscribe','expressvpn','v2ray','openvpn_l2tp'], true) ? $serviceType : 'openvpn_l2tp';


$userId = (int)($_GET['user_id'] ?? $_POST['user_id'] ?? 0);
function tutorial_user_has_service(PDO $pdo, int $userId, string $serviceType): bool {
    if ($userId <= 0) return false;
    $st = $pdo->prepare("SELECT COUNT(*) FROM deliveries d JOIN orders o ON o.id=d.order_id WHERE d.user_id=? AND d.status='delivered' AND o.status='DELIVERED' AND LOWER(COALESCE(d.service_type,o.service_type,'openvpn_l2tp'))=?");
    $st->execute([$userId, $serviceType]);
    return (int)$st->fetchColumn() > 0;
}
if ($serviceType === 'openvpn_l2tp' && !tutorial_user_has_service($pdo, $userId, 'openvpn_l2tp')) {
    echo json_encode(['ok'=>false,'error'=>'آموزش و کانفیگ OpenVPN فقط برای خریداران نمایش داده می‌شود.'], JSON_UNESCAPED_UNICODE);
    exit;
}

function tutorial_default_v2ray_text(string $device): string {
    $device = strtoupper(trim($device));
    $deviceLabel = ['ANDROID'=>'اندروید','IPHONE'=>'آیفون','WINDOWS'=>'ویندوز'][$device] ?? $device;
    $downloadUrl = 'https://github.com/Happ-proxy/Happ/releases/latest';
    return "اپ پیشنهادی برای استفاده از کانفیگ V2Ray: HAPP

📱 دستگاه انتخابی شما: {$deviceLabel}
🔗 لینک دانلود پیش‌فرض HAPP:
{$downloadUrl}

مراحل اتصال:
1) لینک بالا را باز کنید و نسخه مناسب دستگاه خود را نصب کنید.
2) برنامه HAPP را اجرا کنید.
3) اگر QR Code دارید، گزینه اسکن/Import by QR را بزنید و QR را اسکن کنید.
4) اگر لینک یا متن کانفیگ دارید، گزینه Import from Clipboard / Import from Link را بزنید و لینک کانفیگ را وارد کنید.
5) بعد از اضافه شدن کانفیگ، روی Connect بزنید تا اتصال برقرار شود.

💡 اگر برنامه اجازه Camera یا Clipboard خواست، آن را تأیید کنید.";
}

$devices = [
    'ANDROID' => ['label' => 'اندروید', 'icon' => '🤖', 'has_content' => false],
    'IPHONE'  => ['label' => 'آیفون', 'icon' => '🍎', 'has_content' => false],
    'WINDOWS' => ['label' => 'ویندوز', 'icon' => '💻', 'has_content' => false],
];

if (!$device) {
    $stmt = $pdo->prepare("SELECT device, (text_content IS NOT NULL OR video_file_id IS NOT NULL) as has_content FROM tutorials WHERE service_type = ?");
    $stmt->execute([$serviceType]);
    foreach ($stmt->fetchAll() as $t) {
        if (isset($devices[$t['device']])) $devices[$t['device']]['has_content'] = (bool)$t['has_content'];
    }
    if ($serviceType === 'v2ray') { foreach ($devices as &$meta) { $meta['has_content'] = true; } unset($meta); }
    echo json_encode(['ok'=>true,'data'=>['service_type'=>$serviceType,'devices'=>$devices]], JSON_UNESCAPED_UNICODE);
    exit;
}

if (!isset($devices[$device])) {
    echo json_encode(['ok'=>false,'error'=>'device نامعتبر است'], JSON_UNESCAPED_UNICODE);
    exit;
}

$stmt = $pdo->prepare("SELECT * FROM tutorials WHERE service_type = ? AND device = ? LIMIT 1");
$stmt->execute([$serviceType, $device]);
$tutorial = $stmt->fetch();

if (!$tutorial) {
    $fallbackText = $serviceType === 'v2ray' ? tutorial_default_v2ray_text($device) : 'آموزش این دستگاه هنوز آماده نشده است.';
    echo json_encode(['ok'=>true,'data'=>['service_type'=>$serviceType,'device'=>$device,'text_content'=>$fallbackText,'video_file_id'=>null]], JSON_UNESCAPED_UNICODE);
    exit;
}

echo json_encode(['ok'=>true,'data'=>['service_type'=>$serviceType,'device'=>$tutorial['device'],'text_content'=>$tutorial['text_content'] ?: '', 'video_file_id'=>$tutorial['video_file_id']]], JSON_UNESCAPED_UNICODE);
