File manager - Edit - /var/www/payraty/helpdesk/app/Models/Activity.php
Back
<?php namespace App\Models; use Auth; use Carbon\Carbon; use Carbon\CarbonInterface; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\MorphTo; class Activity extends Model { protected $table = 'activity_log'; const UPDATED_AT = null; const MODEL_TYPE = 'activity'; protected $guarded = ['id']; protected $casts = [ 'id' => 'integer', 'properties' => 'array', ]; public static function getModelTypeAttribute(): string { return self::MODEL_TYPE; } public function subject(): MorphTo { return $this->morphTo(); } static function articleViewed( int $articleId, int $causerId, Carbon $createdAt, ): ?Activity { return static::log( Article::MODEL_TYPE, $articleId, 'viewed', $causerId, [], $createdAt, ); } static function ticketCreated(Ticket $ticket): ?Activity { return static::log( Ticket::MODEL_TYPE, $ticket->id, 'created', $ticket->user_id, [], $ticket->created_at, ); } static function articlesSuggested( Ticket $ticket, string $query, array $articleIds, ?CarbonInterface $createdAt, ): ?Activity { return static::log( Ticket::MODEL_TYPE, $ticket->id, 'articlesSuggested', $ticket->user_id, [ 'articleIds' => $articleIds, 'query' => $query, ], $createdAt, ); } static function replyCreated(Reply $reply, string $source): ?Activity { return static::log( Ticket::MODEL_TYPE, $reply->ticket_id, 'replied', $reply->user_Id, [ 'replyId' => $reply->id, 'source' => $source, ], ); } static function helpCenterSearched( int $searchTermId, ?int $causerId, ): ?Activity { return static::log( SearchTerm::MODEL_TYPE, $searchTermId, 'searched', $causerId, ); } private static function log( string $subjectType, int $subjectId, string $event, ?int $causerId, array $properties = null, ?CarbonInterface $createdAt = null, ): ?Activity { if (!settings('tickets.log_activity')) { return null; } $activity = (new static())->fill([ 'causer_id' => $causerId ?? Auth::id(), 'subject_type' => $subjectType, 'subject_id' => $subjectId, 'event' => $event, 'properties' => $properties, 'created_at' => $createdAt ?? now(), ]); $activity->save(); return $activity; } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0.61 |
proxy
|
phpinfo
|
Settings