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/clinic.corals.io/app/Models/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/clinic.corals.io/app/Models/Service.php
<?php

namespace App\Models;

use Database\Factories\ServicesFactory;
use Eloquent as Model;

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Support\Carbon;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;

/**
 * Class Services
 *
 * @package App\Models
 * @version August 2, 2021, 12:09 pm UTC
 * @property string $category
 * @property string $name
 * @property string $charges
 * @property string $doctors
 * @property sting $status
 * @property int $id
 * @property Carbon|null $created_at
 * @property Carbon|null $updated_at
 * @method static ServicesFactory factory(...$parameters)
 * @method static Builder|Service newModelQuery()
 * @method static Builder|Service newQuery()
 * @method static Builder|Service query()
 * @method static Builder|Service whereCategory($value)
 * @method static Builder|Service whereCharges($value)
 * @method static Builder|Service whereCreatedAt($value)
 * @method static Builder|Service whereDoctors($value)
 * @method static Builder|Service whereId($value)
 * @method static Builder|Service whereName($value)
 * @method static Builder|Service whereStatus($value)
 * @method static Builder|Service whereUpdatedAt($value)
 * @mixin Model
 * @property string $category_id
 * @property-read \App\Models\ServiceCategory $serviceCategory
 * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Doctor[] $serviceDoctors
 * @property-read int|null $service_doctors_count
 * @method static Builder|Service whereCategoryId($value)
 */
class Service extends Model implements HasMedia
{
    use HasFactory, InteractsWithMedia;

    protected $table = 'services';

    public $fillable = [
        'category_id',
        'name',
        'charges',
        'status',
        'short_description',
    ];
    const ALL = 2;
    const ACTIVE = 1;
    const DEACTIVE = 0;
    const STATUS = [
        self::ALL      => 'All',
        self::ACTIVE   => 'Active',
        self::DEACTIVE => 'Deactive',
    ];
    const ICON = 'icon';
    
    protected $appends = ['icon'];
    /**
     * The attributes that should be casted to native types.
     *
     * @var array
     */
    protected $casts = [
        'category_id' => 'string',
        'name'        => 'string',
        'charges'     => 'string',
    ];

    /**
     * Validation rules
     *
     * @var array
     */
    public static $rules = [
        'name'              => 'required|unique:services,name',
        'category_id'       => 'required',
        'charges'           => 'required',
        'doctors'           => 'required',
        'short_description' => 'required|max:60',
        'icon'              => 'required|mimes:svg,jpeg,png,jpg',
    ];

    /**
     * @return BelongsToMany
     */
    public function serviceDoctors()
    {
        return $this->belongsToMany(Doctor::class, 'service_doctor', 'service_id', 'doctor_id');
    }

    /**
     * @return BelongsTo
     */
    public function serviceCategory(): BelongsTo
    {
        return $this->belongsTo(ServiceCategory::class, 'category_id');
    }

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

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

Spamworldpro Mini