<?php
// smart_cleanup_leagues.php
// يقوم بتنظيف البيانات القديمة جداً (الانتقالات + الأسابيع القديمة) للحفاظ على مساحة القاعدة

require __DIR__ . '/config.php';

// إعدادات الفترة الزمنية (يمكنك تعديلها)
$days_to_keep_transfers = 30; // الاحتفاظ بالانتقالات لمدة 30 يوم
$days_to_keep_weeks = 60;     // الاحتفاظ بأسابيع المباريات التي لم تحدث منذ 60 يوم

// حساب التواريخ
$delete_transfers_before = date('Y-m-d', strtotime("-{$days_to_keep_transfers} days"));
$delete_weeks_before = date('Y-m-d H:i:s', strtotime("-{$days_to_keep_weeks} days"));

$log_file = __DIR__ . '/cleanup_log.txt';

try {
    $db = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PASS);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    // 1. تنظيف جدول الانتقالات (يعتمد على column: transfer_date)
    // نحذف الانتقالات التي تاريخها أقدم من 30 يوم
    $stmt = $db->prepare("DELETE FROM " . DB_PREFIX . "transfers WHERE transfer_date < :date_limit");
    $stmt->bindParam(':date_limit', $delete_transfers_before, PDO::PARAM_STR);
    $stmt->execute();
    $deleted_transfers = $stmt->rowCount();
    
    // 2. تنظيف جدول أسابيع المباريات (يعتمد على column: last_scraped)
    // نحذف الأسابيع التي لم يتم تحديثها (Sraped) منذ 60 يوم (دليل على أنها انتهت تماماً والموسم ربما انتهى)
    // ملاحظة: هذا آمن لأن السكريبت يقوم بتحديث last_scraped في كل مرة يجلب فيها البيانات
    $stmt = $db->prepare("DELETE FROM " . DB_PREFIX . "league_fixture_weeks WHERE last_scraped < :date_limit");
    $stmt->bindParam(':date_limit', $delete_weeks_before, PDO::PARAM_STR);
    $stmt->execute();
    $deleted_weeks = $stmt->rowCount();
    
    // تسجيل العملية
    $log_msg = date('Y-m-d H:i:s') . " - [Smart Cleanup] Deleted {$deleted_transfers} transfers older than {$days_to_keep_transfers} days, and {$deleted_weeks} inactive fixture weeks.\n";
    file_put_contents($log_file, $log_msg, FILE_APPEND);

    echo "تمت العملية بنجاح:<br>";
    echo "- تم حذف {$deleted_transfers} انتقال قديم.<br>";
    echo "- تم حذف {$deleted_weeks} أسبوع مباريات غير نشط.<br>";
    echo "تم الحفاظ على جداول الترتيب والهدافين لأنها تحدث تلقائياً.";

} catch (PDOException $e) {
    $error_msg = date('Y-m-d H:i:s') . " - [Smart Cleanup Error] " . $e->getMessage() . "\n";
    file_put_contents($log_file, $error_msg, FILE_APPEND);
    echo "حدث خطأ: " . $e->getMessage();
}
?>