feat: add is_premium

This commit is contained in:
2025-11-30 14:26:30 +03:30
parent 23cd9c7b38
commit be69e5cfda
3 changed files with 34 additions and 2 deletions
+5 -2
View File
@@ -22,7 +22,7 @@ public function store(Request $request)
'category_name' => 'nullable|string|max:255', 'category_name' => 'nullable|string|max:255',
'image_id' => 'nullable|exists:images,id', 'image_id' => 'nullable|exists:images,id',
'duration' => 'nullable|integer', 'duration' => 'nullable|integer',
'is_premium' => 'nullable|boolean',
'file' => 'nullable|mimes:mp3,wav,mp4,mov|max:512000', 'file' => 'nullable|mimes:mp3,wav,mp4,mov|max:512000',
'external_url' => 'nullable|string', 'external_url' => 'nullable|string',
'visibility' => 'nullable|in:public,private', 'visibility' => 'nullable|in:public,private',
@@ -55,6 +55,7 @@ public function store(Request $request)
'category_id' => $categoryId, 'category_id' => $categoryId,
'duration' => $data['duration'] ?? null, 'duration' => $data['duration'] ?? null,
'visibility' => $data['visibility'] ?? 'public', 'visibility' => $data['visibility'] ?? 'public',
'is_premium'=> $data['is_premium'] ?? false
]); ]);
if (!empty($data['tags'])) { if (!empty($data['tags'])) {
$tagIds = []; $tagIds = [];
@@ -139,6 +140,7 @@ public function show($id)
'tags' => $media->tags, 'tags' => $media->tags,
'myNote' => $media->myNote, 'myNote' => $media->myNote,
'is_saved' => $media->is_saved, 'is_saved' => $media->is_saved,
'is_premium' => $media->is_premium,
]); ]);
} }
@@ -157,7 +159,7 @@ public function update(Request $request, $id)
// support both: category_id or category_name // support both: category_id or category_name
'category_id' => 'nullable|exists:categories,id', 'category_id' => 'nullable|exists:categories,id',
'category_name' => 'nullable|string|max:255', 'category_name' => 'nullable|string|max:255',
'is_premium' => 'nullable|boolean',
'image_id' => 'nullable|exists:images,id', 'image_id' => 'nullable|exists:images,id',
'duration' => 'nullable|integer', 'duration' => 'nullable|integer',
'file' => 'nullable|mimes:mp3,wav,mp4,mov|max:512000', 'file' => 'nullable|mimes:mp3,wav,mp4,mov|max:512000',
@@ -189,6 +191,7 @@ public function update(Request $request, $id)
'caption' => $data['caption'] ?? $media->caption, 'caption' => $data['caption'] ?? $media->caption,
'type' => $data['type'] ?? $media->type, 'type' => $data['type'] ?? $media->type,
'category_id' => $categoryId, 'category_id' => $categoryId,
'is_premium' => $data['is_premium'] ?? $media->is_premium,
'duration' => $data['duration'] ?? $media->duration, 'duration' => $data['duration'] ?? $media->duration,
'external_url' => $data['external_url'] ?? $media->external_url, 'external_url' => $data['external_url'] ?? $media->external_url,
'visibility' => $data['visibility'] ?? $media->visibility, 'visibility' => $data['visibility'] ?? $media->visibility,
+1
View File
@@ -17,6 +17,7 @@ class Media extends Model
'external_url', 'external_url',
'duration', 'duration',
'visibility', 'visibility',
'is_premium'
]; ];
public function image() public function image()
@@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('media', function (Blueprint $table) {
$table->boolean('is_premium')->default(false);
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('media', function (Blueprint $table) {
$table->dropColumn('is_premium');
});
}
};