'datetime', 'installed_at' => 'datetime', ]; public function user(): BelongsTo { return $this->belongsTo(User::class); } public function plugin(): BelongsTo { return $this->belongsTo(PrintPlugin::class, 'plugin_id'); } /** * 检查心跳是否超时(超过5分钟视为离线) */ public function isOnline(): bool { if (!$this->last_heartbeat) { return false; } return $this->last_heartbeat->diffInMinutes(now()) < 5; } /** * 记录心跳 */ public function recordHeartbeat(): void { $this->update(['last_heartbeat' => now()]); } }