feat: scene update

This commit is contained in:
2026-06-16 17:15:08 +03:30
parent 191e5597c0
commit 81ac4a896f
3 changed files with 34 additions and 5 deletions
+10 -4
View File
@@ -77,9 +77,10 @@ public function store(Request $request)
'theme_id' => 'nullable|exists:themes,id',
'order' => 'nullable|integer',
'is_active' => 'nullable|boolean',
'is_premium' => 'nullable|boolean',
'image' => 'nullable|file|extensions:jpg,jpeg,png,gif,webp,bmp,svg|max:8192',
'video' => 'nullable|mimes:mp4,mov,webm|max:512000',
'sound' => 'nullable|mimes:mp3,wav,ogg,flac|max:51200',
'video' => 'nullable|file|extensions:mp4,mov,webm,mkv,avi,m4v,3gp|max:512000',
'sound' => 'nullable|file|extensions:mp3,wav,ogg,flac,aac,m4a,opus,mpga,wma|max:51200',
]);
$scene = Scene::create([
@@ -87,6 +88,7 @@ public function store(Request $request)
'theme_id' => $data['theme_id'] ?? null,
'order' => $data['order'] ?? 0,
'is_active' => $data['is_active'] ?? true,
'is_premium' => $data['is_premium'] ?? false,
'image_path' => $request->hasFile('image') ? $request->file('image')->store('scenes/images', 'public') : null,
'video_path' => $request->hasFile('video') ? $request->file('video')->store('scenes/videos', 'public') : null,
'sound_path' => $request->hasFile('sound') ? $request->file('sound')->store('scenes/sounds', 'public') : null,
@@ -108,9 +110,10 @@ public function update(Request $request, $id)
'theme_id' => 'nullable|exists:themes,id',
'order' => 'nullable|integer',
'is_active' => 'nullable|boolean',
'is_premium' => 'nullable|boolean',
'image' => 'nullable|file|extensions:jpg,jpeg,png,gif,webp,bmp,svg|max:8192',
'video' => 'nullable|mimes:mp4,mov,webm|max:512000',
'sound' => 'nullable|mimes:mp3,wav,ogg,flac|max:51200',
'video' => 'nullable|file|extensions:mp4,mov,webm,mkv,avi,m4v,3gp|max:512000',
'sound' => 'nullable|file|extensions:mp3,wav,ogg,flac,aac,m4a,opus,mpga,wma|max:51200',
]);
if (array_key_exists('name', $data)) {
@@ -125,6 +128,9 @@ public function update(Request $request, $id)
if (array_key_exists('is_active', $data)) {
$scene->is_active = $data['is_active'];
}
if (array_key_exists('is_premium', $data)) {
$scene->is_premium = $data['is_premium'];
}
foreach (['image' => 'scenes/images', 'video' => 'scenes/videos', 'sound' => 'scenes/sounds'] as $field => $folder) {
if ($request->hasFile($field)) {
+2 -1
View File
@@ -7,10 +7,11 @@
class Scene extends Model
{
protected $fillable = ['theme_id', 'name', 'image_path', 'video_path', 'sound_path', 'order', 'is_active'];
protected $fillable = ['theme_id', 'name', 'image_path', 'video_path', 'sound_path', 'order', 'is_active', 'is_premium'];
protected $casts = [
'is_active' => 'boolean',
'is_premium' => 'boolean',
'order' => 'integer',
];
@@ -0,0 +1,22 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::table('scenes', function (Blueprint $table) {
$table->boolean('is_premium')->default(false)->after('is_active');
});
}
public function down(): void
{
Schema::table('scenes', function (Blueprint $table) {
$table->dropColumn('is_premium');
});
}
};