<?php

namespace App\Shared\Logging;

use App\Config\Repository\SiteConfigRepository;

/**
 * حذف لاگ‌های قدیمی‌تر از مدت نگهداری تنظیم‌شده (`log_retention_days`).
 * مقدار ۰ یا نامعتبر یعنی نگهداری نامحدود — چیزی حذف نمی‌شود.
 */
class LogPruneService
{
    public function __construct(
        private readonly AppLogRepository     $logRepo,
        private readonly SiteConfigRepository $configRepo,
    ) {}

    /** تعداد لاگ‌های حذف‌شده را برمی‌گرداند. */
    public function pruneByRetention(): int
    {
        $days = (int) ($this->configRepo->get('log_retention_days') ?? 0);
        if ($days <= 0) {
            return 0;
        }

        $cutoff = time() - ($days * 86400);

        return $this->logRepo->deleteOlderThan($cutoff);
    }
}
