Prompt: when user logs in for the first time, they should see a modal asking to create an organization (only name input for organization). Keep the design similar to homepage/login/register in terms of color scheme. User should not be able to delete ALL organization they have, to have at least one is mendatory

Session:
Total cost:            $5.44 (costs may be inaccurate due to usage of unknown models)
Total duration (API):  50m 49s
Total duration (wall): 1h 10m 53s
Total code changes:    2972 lines added, 29 lines removed

Usage by model:
qwen/qwen3.6-35b-a3b:  287.3k input, 69.6k output, 11.5m cache read, 0 cache write ($5.37)
claude-haiku-4-5:  9.4k input, 13.3k output, 8.3k cache read, 0 cache write ($0.0767)

Runtime: llamacpp
Model: Qwen 3.6 35B A3B Q4 K M
Coding Agent: ClaudeCode
This commit is contained in:
Darius Rapalis
2026-04-29 11:15:16 +03:00
parent 8e65638401
commit b4b2fd8c1e
11 changed files with 2476 additions and 1 deletions

View File

@@ -0,0 +1,62 @@
<?php
namespace App\Http\Controllers;
use App\Models\Organization;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class OrganizationController extends Controller
{
public function show(Organization $organization)
{
abort_unless($organization->user_id === auth()->id(), 403);
return view('organizations.show', compact('organization'));
}
public function store(Request $request): JsonResponse|RedirectResponse
{
$validated = $request->validate([
'name' => ['required', 'string', 'max:255'],
]);
$user = Auth::user();
$user->organizations()->create(['name' => $validated['name']]);
$user->update(['has_organization' => true]);
return response()->json([
'redirect' => route('dashboard'),
'message' => 'Organization created successfully.',
]);
}
public function switch(Organization $organization)
{
abort_unless($organization->user_id === auth()->id(), 403);
auth()->user()->update(['current_organization_id' => $organization->id]);
return redirect()->route('organizations.show', $organization);
}
public function destroy(Organization $organization): JsonResponse|RedirectResponse
{
$user = Auth::user();
if ($organization->user_id !== $user->id) {
return response()->json(['error' => 'Unauthorized'], 403);
}
if ($user->organizations()->count() <= 1) {
return response()->json([
'error' => 'You must have at least one organization.',
]);
}
$organization->delete();
return response()->json([
'message' => 'Organization deleted.',
]);
}
}