File: /mnt/data/ghayatcom/ghayatcom-api/app/HealthProfileVaccinations.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\SoftDeletes;
use Spatie\Activitylog\Traits\LogsActivity;
use Spatie\Activitylog\Traits\CausesActivity;
use Spatie\Activitylog\Models\Activity;
use Storage;
class HealthProfileVaccinations extends Model
{
use SoftDeletes, LogsActivity, CausesActivity;
protected $appends = ['vaccination_name', 'upload_url'];
protected $fillable = ['id', 'user_id', 'vaccination_id', 'upload', 'created_at', 'created_by', 'updated_by', 'deleted_by'];
/* Spatie activity log */
protected static $logAttributes = ['vaccinationGet.name'];
protected static $recordEvents = ['created', 'updated'];
protected static $logOnlyDirty = true;
protected static $submitEmptyLogs = false;
protected static $logName = 'vaccination';
public function getDescriptionForEvent(string $eventName): string
{
return "Health profile vaccination has been {$eventName}";
}
public function tapActivity(Activity $activity)
{
/** @var object $activity */
$activity->causer_type = 'App\User';
$activity->causer_id = auth()->user()->id;
}
/* Spatie activity log */
protected $hidden = ['created_by','updated_by','deleted_by','deleted_at','updated_at'];
public function vaccinationGet(): HasOne {
return $this->hasOne(Vaccination::class, 'id', 'vaccination_id');
}
public function getVaccinationNameAttribute()
{
return $this->vaccinationGet->name;
}
public function getuploadUrlAttribute()
{
$S3Library = new \App\Library\S3Library;
$digimedFile = ($S3Library->s3Url($this->upload, $this->user_id, 'digimed/images/health-profile'));
return $digimedFile;
}
}