feat: add scene settings feature

This commit is contained in:
2026-06-02 23:31:40 +03:30
parent b575b449cb
commit 82164f691f
6 changed files with 305 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
<?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);
}
}