<?php namespace Lightscale\LaralightAccessLog\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Prunable; use Illuminate\Database\Eloquent\Builder; class AccessLog extends Model { use Prunable; const UPDATED_AT = null; protected $guarded = [ 'user_id' ]; public function __construct(array $attributes = []) { $this->setTable(config('access_log.table_name')); parent::__construct($attributes); } protected function casts(): array { return [ 'properties' => 'collection', ]; } public function user(): BelongsTo { return $this->belongsTo(config('access_log.user_model')); } public function prunable(): Builder { $days = config('access_log.max_age_days'); if ($days === null) { return static::whereRaw('1 = 0'); } else return static::where(static::CREATED_AT, '<=', now()->subDays($days)); } }