HEX
Server: LiteSpeed
System: Linux srv1.dhviews.com 5.14.0-570.23.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jun 24 11:27:16 EDT 2025 x86_64
User: bdedition (1723)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/bdedition/www/core/app/Models/News.php
<?php

namespace App\Models;

use App\Constants\Status;
use App\Traits\GlobalStatus;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Casts\Attribute;

class News extends Model
{
    use GlobalStatus;

    public $casts = ['tags' => 'array'];

    public function user()
    {
        return $this->belongsTo(User::class)->withDefault();
    }

    public function category()
    {
        return $this->belongsTo(Category::class);
    }

    public function statusAdminCheck(): Attribute
    {
        return Attribute::make(
            get: fn () => $this->admin_check == Status::NEWS_APPROVED
                ? '<span class="badge badge--success">' . trans('Approved') . '</span>'
                : ($this->admin_check == Status::NEWS_PENDING ? '<span class="badge badge--warning">' . trans('Pending') . '</span>' : '<span class="badge badge--danger">' . trans('Rejected') . '</span>')
        );
    }

    //Scopes
    public function scopePending($query)
    {
        return $query->where('admin_check', Status::NEWS_PENDING);
    }

    public function scopeApproved($query)
    {
        return $query->where('admin_check', Status::NEWS_APPROVED);
    }

    public function scopeRejected($query)
    {
        return $query->where('admin_check', Status::NEWS_REJECTED);
    }

    public function scopeTrending($query)
    {
        return $query->where('trending', Status::YES);
    }

    public function scopeMustRead($query)
    {
        return $query->where('must_read', Status::YES);
    }

    public function scopeVideo($query)
    {
        return $query->where('have_video', Status::YES);
    }
}