From 254b5f1abfdec2a051988150d7c36df43f455cc1 Mon Sep 17 00:00:00 2001
From: Sam Light <samlight1994@gmail.com>
Date: Wed, 9 Apr 2025 22:42:43 +0100
Subject: Initial commit

---
 src/Models/AuthLog.php | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)
 create mode 100644 src/Models/AuthLog.php

(limited to 'src/Models/AuthLog.php')

diff --git a/src/Models/AuthLog.php b/src/Models/AuthLog.php
new file mode 100644
index 0000000..a5b1280
--- /dev/null
+++ b/src/Models/AuthLog.php
@@ -0,0 +1,47 @@
+<?php
+
+namespace Lightscale\LaralightAuthLog\Models;
+
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
+use Illuminate\Database\Eloquent\Prunable;
+use Illuminate\Database\Eloquent\Builder;
+
+class AuthLog extends Model
+{
+    use Prunable;
+
+    const UPDATED_AT = null;
+
+    protected $guarded = [
+        'user_id'
+    ];
+
+    public function __construct(array $attributes = [])
+    {
+        $this->setTable(config('auth_log.table_name'));
+
+        parent::__construct($attributes);
+    }
+
+    protected function casts(): array
+    {
+        return [
+            'properties' => 'collection',
+        ];
+    }
+
+    public function user(): BelongsTo
+    {
+        return $this->belongsTo(config('auth_log.user_model'));
+    }
+
+    public function prunable(): Builder
+    {
+        $days = config('auth_log.max_age_days');
+        if ($days === null) {
+            return static::whereRaw('1 = 0');
+        }
+        else return static::where(static::CREATED_AT, '<=', now()->subDays($days));
+    }
+}
-- 
cgit v1.2.3