Files
back-meditation/app/Models/Scene.php
T

39 lines
1022 B
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Scene extends Model
{
protected $fillable = ['name', 'image_path', 'video_path', 'sound_path', 'order', 'is_active'];
protected $casts = [
'is_active' => 'boolean',
'order' => 'integer',
];
protected $appends = ['image_url', 'video_url', 'sound_url', 'has_video'];
public function getImageUrlAttribute(): ?string
{
return $this->image_path ? asset('storage/' . $this->image_path) : null;
}
public function getVideoUrlAttribute(): ?string
{
return $this->video_path ? asset('storage/' . $this->video_path) : null;
}
public function getSoundUrlAttribute(): ?string
{
return $this->sound_path ? asset('storage/' . $this->sound_path) : null;
}
// Whether this scene can be shown as a video (the "تبدیل صحنه به ویدیو" toggle).
public function getHasVideoAttribute(): bool
{
return !empty($this->video_path);
}
}