<?php

namespace App\Shared\Logging;

use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;

class AppLogRepository extends ServiceEntityRepository
{
    public function __construct(ManagerRegistry $registry) { parent::__construct($registry, AppLog::class); }

    /** حذف همه‌ی لاگ‌ها؛ تعداد ردیف‌های حذف‌شده را برمی‌گرداند. */
    public function deleteAll(): int
    {
        return (int) $this->createQueryBuilder('l')
            ->delete()
            ->getQuery()
            ->execute();
    }

    /** حذف لاگ‌های قدیمی‌تر از timestamp داده‌شده؛ تعداد حذف‌شده را برمی‌گرداند. */
    public function deleteOlderThan(int $timestamp): int
    {
        return (int) $this->createQueryBuilder('l')
            ->delete()
            ->where('l.createdAt < :ts')
            ->setParameter('ts', $timestamp)
            ->getQuery()
            ->execute();
    }
}
