$filters 필터 (provider_id/purpose/status/user_id/date_from/date_to 등) * @param int $perPage 페이지 크기 * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator */ public function search(array $filters, int $perPage = 20) { return $this->logRepository->search($filters, $perPage); } /** * 보관주기 경과 로그를 파기합니다. * * @param int $days 보관 일수 (기본 180) * @return int 삭제된 행 수 */ public function purge(int $days = 180): int { return $this->logRepository->purgeOlderThan(max(1, $days)); } /** * 만료 상태로 전환할 pending challenge 를 일괄 expire 처리합니다. * * @return int 처리된 행 수 */ public function expirePastDue(): int { return $this->logRepository->expirePastDue(); } }