'array', 'is_active' => 'boolean', 'last_fetched_at' => 'datetime' ]; public function getTypeDisplayAttribute(): string { return match ($this->type) { 'website' => 'Website', 'rss' => 'RSS Feed', default => 'Unknown' }; } public function getStatusAttribute(): string { if (!$this->is_active) { return 'Inactive'; } if (!$this->last_fetched_at) { return 'Never fetched'; } $hoursAgo = $this->last_fetched_at->diffInHours(now()); if ($hoursAgo < 2) { return 'Recently fetched'; } elseif ($hoursAgo < 24) { return "Fetched {$hoursAgo}h ago"; } else { return "Fetched " . $this->last_fetched_at->diffForHumans(); } } }