clrghouz/app/Models/Job.php

70 lines
1.5 KiB
PHP
Raw Permalink Normal View History

2023-07-26 09:44:07 +00:00
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Config;
class Job extends Model
{
public $timestamps = false;
protected $casts = [
'payload' => 'array',
'reserved_at' => 'datetime',
'available_at' => 'datetime',
'created_at' => 'datetime',
];
public function __construct(array $attributes = [])
{
parent::__construct($attributes);
$this->table = Config::get('queue.connections.' . (Config::get('queue.default', 'database')) . '.table', 'jobs');
}
public function getDisplayNameAttribute()
{
return $this->payload['displayName'];
}
public function getMaxTriesAttribute()
{
return $this->payload['maxTries'];
}
public function getDelayAttribute()
{
return $this->payload['delay'];
}
public function getUUIDAttribute()
{
return $this->payload['uuid'];
}
public function getTimeoutAttribute()
{
return $this->payload['timeout'];
}
public function getRetryUntilAttribute()
{
return !is_null($this->payload['retryUntil']) ? new \Carbon\Carbon($this->payload['retryUntil']) : null;
}
public function getTimeoutAtAttribute()
{
return !is_null($this->payload['timeout_at']) ? new \Carbon\Carbon($this->payload['timeout_at']) : null;
}
public function getCommandNameAttribute()
{
return $this->payload['data']['commandName'];
}
public function getCommandAttribute()
{
return unserialize($this->payload['data']['command']);
}
}