%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/workeasy-api/app/Models/
Upload File :
Create Path :
Current File : /var/www/html/workeasy-api/app/Models/Offer.php

<?php

namespace Workeasy\Models;


use Carbon\Carbon;
use Spatie\MediaLibrary\HasMedia\HasMediaTrait;
use Spatie\MediaLibrary\HasMedia\Interfaces\HasMedia;
use Workeasy\Traits\AddImageTrait;

class Offer extends BaseModel implements HasMedia
{
    use  HasMediaTrait, AddImageTrait;
    const MEDIA_COLLECTION = 'offers';
    const MEDIA_DISK = 'offers';
    protected $fillable = [
        'name',
        'start_date',
        'end_date',
        'description',
    ];
    protected $guarded  = [
        'job_id',
        'contract_id',
        'company_id',
    ];

    protected $dates = [
        'start_date',
        'end_date',
        'created_at',
        'updated_at',
    ];

    public function contractType()
    {
        return $this->belongsTo(ContractType::class, 'contract_id');
    }

    public function jobPosition()
    {
        return $this->belongsTo(JobPosition::class, 'job_id');
    }

    public function interviews()
    {
        return $this->hasMany(Interview::class);
    }

    public function candidates()
    {
        return $this->belongsToMany(Candidate::class, 'interviews');
    }

    public function company()
    {
        return $this->belongsTo(Company::class);
    }

    public function setStartDateAttribute($value)
    {
        $this->attributes['start_date'] = Carbon::parse($value);
    }

    public function setEndDateAttribute($value)
    {
        $this->attributes['end_date'] = Carbon::parse($value);
    }

    public function updateOfferImage($base64)
    {
        $name = md5($this->id);
        if ($this->check_base64_image($base64)) {
            if ($media = $this->media()->first()) {
                $this->deleteMedia($media->id);
            }
            return $this->addMediaFromBase64($base64)->usingName($name)->usingFileName($name . '.jpg')->toMediaCollection(self::MEDIA_COLLECTION, self::MEDIA_DISK);
        }
        return null;
    }
}

Zerion Mini Shell 1.0