<?php
// File: public/miniapp/api/admin_config_delete.php
declare(strict_types=1);
require __DIR__.'/config.php';

header('Content-Type: application/json; charset=utf-8');

// بررسی درخواست POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    echo json_encode(['ok' => false, 'error' => 'Method not allowed'], JSON_UNESCAPED_UNICODE);
    exit;
}

// دریافت داده‌های JSON از بدنه درخواست
$input = json_decode(file_get_contents('php://input'), true);
if (!$input) {
    http_response_code(400);
    echo json_encode(['ok' => false, 'error' => 'Invalid JSON'], JSON_UNESCAPED_UNICODE);
    exit;
}

// بررسی initData
$initData = $input['initData'] ?? null;
if (!$initData) {
    http_response_code(401);
    echo json_encode(['ok' => false, 'error' => 'Missing initData'], JSON_UNESCAPED_UNICODE);
    exit;
}

// اعتبارسنجی کاربر از طریق initData
parse_str($initData, $data);
if (!isset($data['user'])) {
    http_response_code(401);
    echo json_encode(['ok' => false, 'error' => 'Invalid initData'], JSON_UNESCAPED_UNICODE);
    exit;
}

$userJson = json_decode($data['user'], true);
if (!is_array($userJson) || !isset($userJson['id'])) {
    http_response_code(401);
    echo json_encode(['ok' => false, 'error' => 'Invalid user data'], JSON_UNESCAPED_UNICODE);
    exit;
}

$user_id = (int)$userJson['id'];

// بررسی ادمین بودن
if (!isAdmin($user_id)) {
    http_response_code(403);
    echo json_encode(['ok' => false, 'error' => 'Only admin allowed'], JSON_UNESCAPED_UNICODE);
    exit;
}

// دریافت شناسه کانفیگ
$config_id = (int)($input['config_id'] ?? 0);

if ($config_id <= 0) {
    http_response_code(400);
    echo json_encode(['ok' => false, 'error' => 'شناسه کانفیگ الزامی است'], JSON_UNESCAPED_UNICODE);
    exit;
}

try {
    // گرفتن اطلاعات کانفیگ قبل از حذف
    $get_config = $pdo->prepare("SELECT * FROM configs WHERE id = :id LIMIT 1");
    $get_config->execute([':id' => $config_id]);
    $config = $get_config->fetch(PDO::FETCH_ASSOC);
    
    if (!$config) {
        http_response_code(404);
        echo json_encode(['ok' => false, 'error' => 'کانفیگ یافت نشد'], JSON_UNESCAPED_UNICODE);
        exit;
    }
    
    // بررسی اینکه کانفیگ استفاده شده یا نه
    if ((int)$config['is_used'] === 1) {
        http_response_code(400);
        echo json_encode([
            'ok' => false,
            'error' => 'این کانفیگ قبلاً استفاده شده و قابل حذف نیست'
        ], JSON_UNESCAPED_UNICODE);
        exit;
    }
    
    // حذف کانفیگ
    $delete_stmt = $pdo->prepare("DELETE FROM configs WHERE id = :id");
    $delete_stmt->execute([':id' => $config_id]);
    
    // پاسخ موفقیت‌آمیز
    echo json_encode([
        'ok' => true,
        'message' => 'کانفیگ با موفقیت حذف شد',
        'data' => [
            'deleted_config' => [
                'id' => $config['id'],
                'plan_code' => $config['plan_code'],
                'title' => $config['title']
            ]
        ]
    ], JSON_UNESCAPED_UNICODE);
    
    // ارسال پیام به ادمین در تلگرام
    try {
        $message = "🗑 کانفیگ حذف شد\n\n";
        $message .= "📦 پلن: {$config['plan_code']}\n";
        $message .= "📝 عنوان: {$config['title']}\n";
        $message .= "🆔 شناسه: #{$config['id']}\n";
        $message .= "👤 توسط: {$userJson['first_name']}";
        
        tg('sendMessage', [
            'chat_id' => $user_id,
            'text' => $message,
            'parse_mode' => 'HTML'
        ]);
    } catch (Exception $e) {
        error_log("Failed to send Telegram notification: " . $e->getMessage());
    }

} catch (PDOException $e) {
    error_log("❌ Error in admin_config_delete.php: " . $e->getMessage());
    http_response_code(500);
    echo json_encode([
        'ok' => false,
        'error' => 'خطا در حذف کانفیگ: ' . $e->getMessage()
    ], JSON_UNESCAPED_UNICODE);
}

