diff --git a/app/Http/Controllers/MediaController.php b/app/Http/Controllers/MediaController.php index e23136a..856e64e 100644 --- a/app/Http/Controllers/MediaController.php +++ b/app/Http/Controllers/MediaController.php @@ -22,7 +22,7 @@ public function store(Request $request) 'category_name' => 'nullable|string|max:255', 'image_id' => 'nullable|exists:images,id', 'duration' => 'nullable|integer', - + 'is_premium' => 'nullable|boolean', 'file' => 'nullable|mimes:mp3,wav,mp4,mov|max:512000', 'external_url' => 'nullable|string', 'visibility' => 'nullable|in:public,private', @@ -55,6 +55,7 @@ public function store(Request $request) 'category_id' => $categoryId, 'duration' => $data['duration'] ?? null, 'visibility' => $data['visibility'] ?? 'public', + 'is_premium'=> $data['is_premium'] ?? false ]); if (!empty($data['tags'])) { $tagIds = []; @@ -139,6 +140,7 @@ public function show($id) 'tags' => $media->tags, 'myNote' => $media->myNote, '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 'category_id' => 'nullable|exists:categories,id', 'category_name' => 'nullable|string|max:255', - + 'is_premium' => 'nullable|boolean', 'image_id' => 'nullable|exists:images,id', 'duration' => 'nullable|integer', 'file' => 'nullable|mimes:mp3,wav,mp4,mov|max:512000', @@ -189,6 +191,7 @@ public function update(Request $request, $id) 'caption' => $data['caption'] ?? $media->caption, 'type' => $data['type'] ?? $media->type, 'category_id' => $categoryId, + 'is_premium' => $data['is_premium'] ?? $media->is_premium, 'duration' => $data['duration'] ?? $media->duration, 'external_url' => $data['external_url'] ?? $media->external_url, 'visibility' => $data['visibility'] ?? $media->visibility, diff --git a/app/Models/Media.php b/app/Models/Media.php index 2c7c4a7..3c023cd 100644 --- a/app/Models/Media.php +++ b/app/Models/Media.php @@ -17,6 +17,7 @@ class Media extends Model 'external_url', 'duration', 'visibility', + 'is_premium' ]; public function image() diff --git a/database/migrations/2025_11_30_103759_add_is_premium_to_media.php b/database/migrations/2025_11_30_103759_add_is_premium_to_media.php new file mode 100644 index 0000000..5f7c481 --- /dev/null +++ b/database/migrations/2025_11_30_103759_add_is_premium_to_media.php @@ -0,0 +1,28 @@ +boolean('is_premium')->default(false); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('media', function (Blueprint $table) { + $table->dropColumn('is_premium'); + }); + } +};