<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Storage; use App\Traits\DateFormatTrait; class ExtraStudentData extends Model { use HasFactory, SoftDeletes, DateFormatTrait; protected $table = 'extra_user_datas'; protected $fillable = [ 'user_id', 'form_field_id', 'data', 'school_id', ]; protected $appends = ['file_url']; public function scopeOwner($query) { if (Auth::user() && Auth::user()->hasRole('Super Admin')) { return $query; } if (Auth::user() &&Auth::user()->hasRole('School Admin')) { return $query->where('school_id', Auth::user()->school_id); } if (Auth::user() && Auth::user()->hasRole('Student')) { return $query->where('school_id', Auth::user()->school_id); } return $query; } public function form_field() { return $this->belongsTo(FormField::class, 'form_field_id')->withTrashed(); } public function getFileUrlAttribute() { if ($this->relationLoaded('form_field')) { if ($this->form_field->type == "file" && !empty($this->data)) { return url(Storage::url($this->data)); } return null; } return null; } public function getCreatedAtAttribute() { return $this->formatDateValue($this->getRawOriginal('created_at')); } public function getUpdatedAtAttribute() { return $this->formatDateValue($this->getRawOriginal('updated_at')); } }