blob: 543b5801260d76b647df231bf9ec6eb53d344bac (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
<?php
namespace Lightscale\LaralightAuthLog;
use Lightscale\LaralightAuthLog\Models\AuthLog;
use Lightscale\LaralightAuthLog\Enums\Status;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\Casts\Attribute;
use DateTimeInterface;
trait HasAuthLogs
{
public function authLogs(): HasMany
{
return $this->hasMany(AuthLog::class)
->orderBy('created_at', 'desc');
}
public function successfulAuthLogs(): HasMany
{
return $this->authLogs()
->where('status', Status::LoginSuccess);
}
public function successfulAuthLog(): HasOne
{
return $this->successfulAuthLogs()->one();
}
public function lastLogin(): Attribute
{
return Attribute::get(
fn(): ?DateTimeInterface => $this->successfulAuthLog?->created_at
);
}
}
|