Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
user()->isAdmin() || $caseRecord->user_id === $request->user()->id, 403);
$data = $request->validate(['question' => ['nullable', 'string', 'max:2000']]);
$subscription = $request->user()->activeSubscription()->with('plan')->first();
$plan = $subscription?->plan ?? \App\Models\Plan::where('slug', 'starter')->first();
if (! $request->user()->isAdmin() && $plan?->ai_request_limit) {
$query = \App\Models\AiSuggestion::where('user_id', $request->user()->id);
if ($plan->interval === 'month') {
$query->where('created_at', '>=', now()->startOfMonth());
} elseif ($subscription?->starts_at) {
$query->where('created_at', '>=', $subscription->starts_at);
}
if ($query->count() >= $plan->ai_request_limit) {
return back()->withErrors(['ai' => "Your {$plan->name} AI suggestion limit has been reached."]);
}
}
try {
$result = $service->generate($caseRecord, $data['question'] ?? null);
$caseRecord->suggestions()->create([
'user_id' => $request->user()->id,
'question' => $data['question'] ?? null,
...$result,
]);
} catch (RuntimeException $exception) {
return back()->withErrors(['ai' => $exception->getMessage()]);
}
return back()->with('success', 'AI suggestions are ready.');
}
}