'array', 'faq' => 'array', 'ai_generated' => 'boolean', 'published_at' => 'datetime', ]; public function getCoverUrlAttribute(): ?string { return MediaUrl::fromStoragePath($this->cover_image); } public function anime(): BelongsTo { return $this->belongsTo(Anime::class); } public function scopePublished($q) { return $q->where('status', 'published')->whereNotNull('published_at'); } public function getReadableTimeAttribute(): string { return $this->reading_time . ' dk okuma'; } public static function generateSlug(string $title): string { $slug = Str::slug($title, '-', 'tr'); $base = $slug; $i = 1; while (static::where('slug', $slug)->exists()) { $slug = $base . '-' . $i++; } return $slug; } }