<?php 

function getDirectorySize($dir) {
    $size = 0;

    if (is_dir($dir)) {
        foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS)) as $file) {
            $size += $file->getSize();
        }
    }
    return $size;
}

// Функция для подсчета количества файлов в директории
function getFileCount($dir) {
    $count = 0;

    if (is_dir($dir)) {
        foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS)) as $file) {
            if ($file->isFile()) {
                $count++;
            }
        }
    }
    return $count;
}

// Определяем абсолютные пути к директориям кэша для расчета статистики
$cache_images_dir = __DIR__ . '/cache/images/';
$cache_meta_dir = __DIR__ . '/cache/meta/';

// Расчет размера кэша (только изображения)
$cache_size_bytes = getDirectorySize($cache_images_dir);
$cache_size_mb = round($cache_size_bytes / (1024 * 1024), 2);

// Подсчет количества изображений в кэше
$image_count = getFileCount($cache_images_dir);

// Fetch statistics
$stats = [];

// Total number of entries
$query = "SELECT COUNT(*) AS total_entries FROM anime_list";
$stats['total_entries'] = $conn->query($query)->fetch(PDO::FETCH_ASSOC)['total_entries'];

// Total number of completed anime
$query = "SELECT COUNT(*) AS completed_anime FROM anime_list WHERE is_completed = 1";
$stats['completed_anime'] = $conn->query($query)->fetch(PDO::FETCH_ASSOC)['completed_anime'];

// Count by type
$query = "SELECT type, COUNT(*) AS count FROM anime_list GROUP BY type";
$stats['by_type'] = $conn->query($query)->fetchAll(PDO::FETCH_ASSOC);

// Most recent completion date
$query = "SELECT MAX(date_completed) AS most_recent_completion FROM anime_list WHERE date_completed IS NOT NULL";
$stats['most_recent_completion'] = $conn->query($query)->fetch(PDO::FETCH_ASSOC)['most_recent_completion'];

// DB size
$query = "SELECT SUM(data_length + index_length) AS size FROM information_schema.TABLES WHERE table_schema = :dbname";
$stmt = $conn->prepare($query);
$stmt->execute(['dbname' => $dbname]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$size_in_bytes = $row['size'];
$size_in_kilobytes = $size_in_bytes / 1024;

?>