wip: article AI polish, category SEO fields, cover generator, membership plan seeder
This commit is contained in:
@@ -6,6 +6,7 @@ namespace App\Models;
|
||||
|
||||
use App\Domain\Blog\ContentFormat;
|
||||
use App\Domain\Blog\ContentRenderer;
|
||||
use App\Domain\Media\ArticleCoverService;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
@@ -33,6 +34,7 @@ class Article extends Model
|
||||
'read_password',
|
||||
'ai_summary',
|
||||
'ai_suggestions',
|
||||
'ai_polished_content',
|
||||
'legacy_attachments',
|
||||
'cover_disk',
|
||||
'cover_path',
|
||||
@@ -61,6 +63,11 @@ class Article extends Model
|
||||
return $this->cover_status === 'ready' && filled($this->cover_path);
|
||||
}
|
||||
|
||||
public function coverUrl(): ?string
|
||||
{
|
||||
return app(ArticleCoverService::class)->publicUrl($this);
|
||||
}
|
||||
|
||||
protected function contentFormat(): Attribute
|
||||
{
|
||||
return Attribute::make(
|
||||
|
||||
Reference in New Issue
Block a user