StudioPlus Module Update - Added star rating , reasonable price and exceptional toggle

This commit is contained in:
Leonard Biano
2024-09-18 00:43:29 +08:00
parent d64f362c60
commit 618fb32fff
23 changed files with 354 additions and 36 deletions
@@ -317,9 +317,22 @@ class StudioPlusVideoController extends Controller
$query->where('tags', '<>', 'null')->whereNotNull('tags')->where(function ($query) use ($tags) {
foreach ($tags as $tag) {
$query->orWhereJsonContains('tags', $tag);
}
}
});
})
->when($request->filled('starRatings'), function ($query) use ($request) {
$starRatings = $request->starRatings;
$query->whereNotNull('metadata')->where(function ($query) use ($starRatings) {
foreach ($starRatings as $rating) {
$rating = strlen($rating) == 3 ? (float)$rating : (int)$rating;
$query->orWhereJsonContains('metadata->star_ratings', $rating);
}
});
})
->when($request->filled('exceptional'), function ($query) use ($request) {
$exceptional = $request->exceptional == 'yes' ? 1 : 0;
$query->where('exceptional',$exceptional);
})
// ->when($request->filled('activeStatuses') && !in_array('all', $request->activeStatuses), function() use($request) {
// $statuses = $request->activeStatuses;
@@ -736,6 +749,19 @@ class StudioPlusVideoController extends Controller
}
});
})
->when($request->filled('starRatings'), function ($query) use ($request) {
$starRatings = $request->starRatings;
$query->whereNotNull('metadata')->where(function ($query) use ($starRatings) {
foreach ($starRatings as $rating) {
$rating = strlen($rating) == 3 ? (float)$rating : (int)$rating;
$query->orWhereJsonContains('metadata->star_ratings', $rating);
}
});
})
->when($request->filled('exceptional'), function ($query) use ($request) {
$exceptional = $request->exceptional == 'yes' ? 1 : 0;
$query->where('exceptional',$exceptional);
})
->toBase()->get();
$all = $statistics->count();
@@ -961,6 +987,8 @@ class StudioPlusVideoController extends Controller
'asin' => $request->video_type['need_job_request'] ? ['required'] : ['nullable'],
'product_name' => $request->video_type['need_job_request'] ? ['required'] : ['nullable'],
'brand' => $request->video_type['need_job_request'] ? ['required'] : ['nullable'],
'metadata.star_ratings' => ['required'],
'metadata.reasonable_price_point' => ['required']
]);
}
@@ -1334,6 +1362,27 @@ class StudioPlusVideoController extends Controller
]);
}
public function toggleExceptionalStatus(Request $request, StudioPlusVideo $video)
{
$video->exceptional = !$video->exceptional;
$video->update();
$video->load([
'thumbnail',
'thumbnails',
'videoType',
'otts.links',
'category',
'asinData',
'channel.user.staff',
'urls'
]);
return response()->json([
'message' => 'Video exceptional status has been updated',
'video' => $video,
]);
}
public function getCustomTags()
{
$tags = [];