forked from DallasMuseumArt/OctoberFriends
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathActivityLog.php
77 lines (65 loc) · 1.66 KB
/
ActivityLog.php
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php namespace DMA\Friends\Models;
use Smirik\PHPDateTimeAgo\DateTimeAgo as TimeAgo;
use Model;
/**
* ActivityLog Model
*/
class ActivityLog extends Model
{
use \October\Rain\Database\Traits\Validation;
/**
* @var string The database table used by the model.
*/
public $table = 'dma_friends_activity_logs';
public $timestamps = false;
protected $dates = ['timestamp'];
/**
* @var array Guarded fields
*/
protected $guarded = ['*'];
/**
* @var array Fillable fields
*/
protected $fillable = [];
protected $rules = [
'message' => 'min:10',
'user_id' => 'required|numeric',
'action' => 'required|in:activity,artwork,checkin,points,reward,unlocked',
'points_earned' => 'numeric',
'total_points' => 'numeric',
'timestamp' => 'required',
];
/**
* The list of acceptable action types
*/
public $actionTypes = [
'activity',
'artwork',
'checkin',
'points',
'reward',
'unlocked',
];
/**
* @var array Relations
*/
public $belongsTo = [
'user' => ['\RainLab\User\Models\User']
];
public $morphTo = [
'object' => ['id' => 'object_id'],
];
public function scopeByUser($query, $user_id)
{
return $query->where('user_id', $user_id);
}
/**
* Mutator function to return the pivot timestamp as time ago
* @return string The time since the badge was earned
*/
public function getTimeAgoAttribute($value)
{
$timeAgo = new TimeAgo;
return $timeAgo->get($this->timestamp);
}
}