Save workspace changes

This commit is contained in:
2026-04-18 17:02:56 +02:00
parent f02ea9a711
commit 87d60af5a9
4220 changed files with 1388603 additions and 1554 deletions

View File

@@ -0,0 +1,145 @@
<?php
declare(strict_types=1);
namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use App\Models\Collection;
use App\Services\CollectionAiCurationService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class CollectionAiController extends Controller
{
public function __construct(
private readonly CollectionAiCurationService $ai,
) {
}
public function suggestTitle(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->suggestTitle($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
public function suggestSummary(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->suggestSummary($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
public function suggestCover(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->suggestCover($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
public function suggestGrouping(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->suggestGrouping($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
public function suggestRelatedArtworks(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->suggestRelatedArtworks($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
public function suggestTags(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->suggestTags($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
public function suggestSeoDescription(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->suggestSeoDescription($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
public function explainSmartRules(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->explainSmartRules($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
public function suggestSplitThemes(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->suggestSplitThemes($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
public function suggestMergeIdea(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->suggestMergeIdea($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
public function detectWeakMetadata(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->detectWeakMetadata($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
public function suggestStaleRefresh(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->suggestStaleRefresh($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
public function suggestCampaignFit(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->suggestCampaignFit($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
public function suggestRelatedCollectionsToLink(Request $request, Collection $collection): JsonResponse
{
$this->authorize('update', $collection);
return response()->json([
'suggestion' => $this->ai->suggestRelatedCollectionsToLink($collection->loadMissing('user'), (array) $request->input('draft', [])),
]);
}
}