Current File : /home/getxxhzo/app.genicards.com/app/Models/Blog.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;


class Blog extends Model implements HasMedia
{
    use HasFactory, InteractsWithMedia;

    protected $table = 'blogs';

    protected $fillable = [
        'title',
        'slug',
        'description',
        'status',
        'seo_title',
        'seo_keyword',
        'seo_description',
    ];

    public static $rules = [
        'title' => 'required',
        'slug' => 'required',
        'blog_image' => 'required',
        'description' => 'required',
    ];

    const BLOGIMAGE = 'blog_img';

    const IS_ACTIVE = 1;
    const DEACTIVATE = 0;
    const SELECT_STATUS = 2;

    const STATUS_ARR = [
        self::SELECT_STATUS => 'Select Status',
        self::IS_ACTIVE => 'Active',
        self::DEACTIVATE => 'Deactivate',
    ];

    protected $appends = ['blog_image',];

    public function getBlogImageAttribute(): string
    {
        /** @var Media $media */
        $media = $this->getMedia(self::BLOGIMAGE)->first();
        if (! empty($media)) {
            return $media->getFullUrl();
        }

        return asset('web/media/avatars/user.png');
    }

}