HEX
Server: nginx/1.24.0
System: Linux DGT-WORDPRESS-VM-SERVER 6.14.0-1014-azure #14~24.04.1-Ubuntu SMP Fri Oct 3 20:52:11 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.4.12
Disabled: NONE
Upload Files
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;
    }
}