| Server IP : 35.80.110.71 / Your IP : 216.73.216.221 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64 User : ubuntu ( 1000) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/switchyard/current/app/Models/ |
Upload File : |
<?php
namespace App\Models;
use App\Models\Concerns\BelongsToWorkspace;
use Illuminate\Database\Eloquent\Concerns\HasUlids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Str;
class PublicStatusToken extends Model
{
use BelongsToWorkspace;
use HasFactory;
use HasUlids;
protected $fillable = [
'workspace_id',
'client_project_id',
'token',
'label',
'expires_at',
'revoked_at',
'last_viewed_at',
'view_count',
];
protected $hidden = [
'token',
];
protected function casts(): array
{
return [
'expires_at' => 'datetime',
'revoked_at' => 'datetime',
'last_viewed_at' => 'datetime',
];
}
public function clientProject(): BelongsTo
{
return $this->belongsTo(ClientProject::class);
}
public static function generate(): string
{
return 'sty_'.Str::lower(Str::random(48));
}
public function isUsable(): bool
{
if ($this->revoked_at !== null) {
return false;
}
if ($this->expires_at !== null && $this->expires_at->isPast()) {
return false;
}
return true;
}
}