Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/job-board.corals.io/Corals/modules/Announcement/Models/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/job-board.corals.io/Corals/modules/Announcement/Models/Announcement.php
<?php

namespace Corals\Modules\Announcement\Models;

use Carbon\Carbon;
use Corals\Foundation\Models\BaseModel;
use Corals\Foundation\Traits\ModelPropertiesTrait;
use Corals\Foundation\Transformers\PresentableTrait;
use Corals\User\Models\User;
use Spatie\Activitylog\Traits\LogsActivity;
use Spatie\MediaLibrary\InteractsWithMedia;
use Spatie\MediaLibrary\HasMedia;
use Spatie\Permission\Traits\HasRoles;

class Announcement extends BaseModel implements HasMedia
{
    use PresentableTrait, LogsActivity, ModelPropertiesTrait, HasRoles, InteractsWithMedia ;

    public $guard_name = 'web';

    public $mediaCollectionName = 'announcement-media-collection';

    protected $casts = [
        'roles' => 'json',
        'properties' => 'json',
        'starts_at' => 'date',
        'ends_at' => 'date',
        'show_immediately' => 'boolean',
        'is_public' => 'boolean'
    ];

    /**
     *  Model configuration.
     * @var string
     */
    public $config = 'announcement.models.announcement';


    protected $guarded = ['id'];

    /**
     * @return null|string
     * @throws \Spatie\MediaLibrary\Exceptions\InvalidConversion
     */
    public function getImageAttribute()
    {
        $media = $this->getFirstMedia($this->mediaCollectionName);

        if ($media) {
            return $media->getFullUrl();
        }

        return null;
    }

    public function tracking()
    {
        return $this->hasMany(AnnouncementTracking::class);
    }

    public function markAsRead(User $user = null)
    {
        if (is_null($user)) {
            $user = user();
        }

        $this->tracking()->create([
            'user_id' => $user->id,
            'read_at' => Carbon::now()
        ]);
    }

    /**
     * @param User|null $user
     * @param bool $boolean
     * @return bool|\Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Relations\HasMany|null|object
     */
    public function isRead(User $user = null)
    {
        if (is_null($user)) {
            $user = user();
        }

        $announcementTracking = $this->tracking()->where('user_id', $user->id)->first();

        return $announcementTracking;
    }
}

Spamworldpro Mini