%PDF- %PDF-
Direktori : /var/www/html/workeasy-api/app/Models/ |
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; } }