<?php
// miniapp/api/admin_broadcast.php
// ارسال پیام همگانی به کاربران - دقیقا مثل بات
header('Content-Type: application/json; charset=utf-8');

require __DIR__ . '/config.php';

$input = json_decode(file_get_contents('php://input'), true);
$userId = isset($input['user_id']) ? (int)$input['user_id'] : 0;
$message = isset($input['message']) ? trim($input['message']) : '';
$messageType = isset($input['message_type']) ? $input['message_type'] : 'text';

if ($userId <= 0) {
    echo json_encode(['ok' => false, 'error' => 'شناسه کاربر نامعتبر است'], JSON_UNESCAPED_UNICODE);
    exit;
}

if (!isAdmin($userId)) {
    echo json_encode(['ok' => false, 'error' => 'فقط ادمین مجاز است'], JSON_UNESCAPED_UNICODE);
    exit;
}

if (empty($message)) {
    echo json_encode(['ok' => false, 'error' => 'متن پیام خالی است'], JSON_UNESCAPED_UNICODE);
    exit;
}

try {
    // استفاده از تابع advanced_broadcast_message از config.php
    $result = advanced_broadcast_message($userId, $message, $messageType);

    if ($result['success']) {
        // ارسال گزارش به ادمین
        $report = create_advanced_broadcast_report($result, $userId);
        
        tg('sendMessage', [
            'chat_id' => $userId,
            'text' => $report,
            'parse_mode' => 'Markdown'
        ]);

        echo json_encode([
            'ok' => true,
            'message' => 'پیام همگانی با موفقیت ارسال شد',
            'data' => [
                'total_users' => $result['total_users'],
                'success_count' => $result['success_count'],
                'failed_count' => $result['failed_count'],
                'success_rate' => $result['success_rate']
            ]
        ], JSON_UNESCAPED_UNICODE);
    } else {
        echo json_encode([
            'ok' => false,
            'error' => $result['error'] ?? 'خطا در ارسال پیام'
        ], JSON_UNESCAPED_UNICODE);
    }

} catch (Exception $e) {
    error_log("admin_broadcast error: " . $e->getMessage());
    echo json_encode(['ok' => false, 'error' => $e->getMessage()], JSON_UNESCAPED_UNICODE);
}
