name('welcome'); Route::get('/dashboard', [DashboardController::class, 'index']) ->middleware(['auth', 'verified', 'user.approved']) ->name('dashboard'); Route::get('/profile', [ProfileController::class, 'index']) ->middleware(['auth', 'verified', 'user.approved']) ->name('profile.index'); Route::get('/profile/edit', [ProfileController::class, 'edit']) ->middleware(['auth', 'verified', 'user.approved']) ->name('profile.edit'); Route::put('/profile', [ProfileController::class, 'update']) ->middleware(['auth', 'verified', 'user.approved']) ->name('profile.update'); Route::get('/tutorial', [TutorialController::class, 'index']) ->middleware(['auth', 'user.approved']) ->name('tutorial.index'); Route::get('/tutorial/lesson/{id}', [TutorialController::class, 'lesson']) ->middleware(['auth', 'user.approved']) ->name('tutorial.lesson'); Route::get('/tutorial/quiz', [TutorialController::class, 'quiz']) ->middleware(['auth', 'user.approved']) ->name('tutorial.quiz'); Route::post('/tutorial/quiz/submit', [TutorialController::class, 'submitQuiz']) ->middleware(['auth', 'user.approved']) ->name('tutorial.quiz.submit'); Route::get('/tutorial/certificate', [TutorialController::class, 'certificate']) ->middleware(['auth', 'user.approved']) ->name('tutorial.certificate'); Route::get('/captcha', [CaptchaController::class, 'generate'])->name('captcha.generate'); Route::middleware(['auth', 'verified', 'user.approved', 'documents.accepted'])->group(function () { Route::resource('prompt-projects', PromptProjectController::class); Route::post('prompt-projects/{promptProject}/generate', [PromptProjectController::class, 'generate']) ->name('prompt-projects.generate'); Route::get('prompt-projects/{promptProject}/prompt', [PromptProjectController::class, 'getPrompt']) ->name('prompt-projects.prompt'); Route::get('prompt-projects/{promptProject}/standard-files', [PromptProjectController::class, 'getStandardFiles']) ->name('prompt-projects.standard-files'); Route::get('prompt-projects/{promptProject}/standard-files/{filename}/download', [PromptProjectController::class, 'downloadFile']) ->name('prompt-projects.download-file'); Route::resource('prompt-generations', PromptGenerationController::class)->only(['index']); Route::delete('prompt-generations/{generation}', [PromptGenerationController::class, 'destroy']) ->name('prompt-generations.destroy'); Route::resource('ai-providers', AiProviderController::class); Route::resource('users', UserController::class)->only(['index', 'edit', 'update', 'destroy']); Route::get('prompt-templates/api', [PromptTemplateController::class, 'api']) ->name('prompt-templates.api'); Route::resource('prompt-templates', PromptTemplateController::class); Route::delete('users/{user}', [UserController::class, 'destroy'])->name('users.destroy'); Route::get('ai-agent', [AiAgentController::class, 'index']) ->name('ai-agent.index'); Route::post('ai-agent/execute', [AiAgentController::class, 'execute']) ->name('ai-agent.execute'); Route::get('ai-agent/models', [AiAgentController::class, 'getModels']) ->name('ai-agent.models'); Route::get('chat', [ChatController::class, 'index']) ->name('chat.index'); Route::post('chat/send', [ChatController::class, 'send']) ->name('chat.send'); Route::post('chat/reset', [ChatController::class, 'reset']) ->name('chat.reset'); Route::get('chat/models', [ChatController::class, 'getModels']) ->name('chat.models'); }); Route::middleware(['auth', 'verified', 'user.approved', 'documents.accepted'])->prefix('legal')->name('legal.')->group(function () { Route::get('documents', [App\Http\Controllers\Legal\LegalDocumentController::class, 'index'])->name('documents.index'); Route::get('documents/{type}/edit', [App\Http\Controllers\Legal\LegalDocumentController::class, 'edit'])->name('document.edit'); Route::put('documents/{type}', [App\Http\Controllers\Legal\LegalDocumentController::class, 'update'])->name('document.update'); }); Route::get('legal/documents/{type}', [App\Http\Controllers\Legal\LegalDocumentController::class, 'show']) ->where('type', 'terms-of-service|privacy-policy') ->name('legal.document.show'); Route::post('legal/documents/{type}/accept', [App\Http\Controllers\Legal\LegalDocumentController::class, 'accept']) ->where('type', 'terms-of-service|privacy-policy') ->middleware(['auth']) ->name('legal.document.accept'); Route::get('terms-of-service', function () { return redirect()->route('legal.document.show', 'terms-of-service'); }); Route::get('privacy-policy', function () { return redirect()->route('legal.document.show', 'privacy-policy'); }); Route::post('/cookie-consent', [App\Http\Controllers\Legal\CookieConsentController::class, 'store']) ->middleware(['web']) ->name('cookie.consent.store'); Route::get('ebook/download', function () { $path = public_path('ebooks/GPrompt-Ebook-Desenvolvedores-v1.pdf'); if (!file_exists($path)) { abort(404, 'Ebook não encontrado'); } return response()->file($path, ['Content-Type' => 'application/pdf']); })->name('ebook.download'); require __DIR__.'/auth.php';