group(function () { Route::get('/', [PageController::class, 'showAkademi']); }); // Debug Route - Veritabanı kontrolü Route::redirect('/index', '/', 301); Route::redirect('/index.php', '/', 301); Route::redirect('/index.html', '/', 301); // Debug Route - Veritabanı kontrolü (Sadece super_admin) Route::get('/debug-homepage', function () { $page = Page::with(['headerTemplate', 'footerTemplate']) ->where('is_homepage', true) ->where('status', 'published') ->latest('updated_at') ->first(); if (!$page) { return response()->json([ 'error' => 'Homepage bulunamadı!', 'all_pages' => Page::select('id', 'title', 'slug', 'is_homepage', 'status')->get(), ]); } return response()->json([ 'page' => [ 'id' => $page->id, 'title' => $page->title, 'slug' => $page->slug, 'is_homepage' => $page->is_homepage, 'status' => $page->status, ], 'header_template' => [ 'id' => $page->header_template_id, 'exists' => $page->headerTemplate ? true : false, 'title' => $page->headerTemplate?->title, 'data_filled' => !empty($page->header_data), 'data' => $page->header_data, ], 'footer_template' => [ 'id' => $page->footer_template_id, 'exists' => $page->footerTemplate ? true : false, 'title' => $page->footerTemplate?->title, 'data_filled' => !empty($page->footer_data), 'data' => $page->footer_data, ], 'sections' => [ 'count' => is_array($page->sections) ? count($page->sections) : 0, 'data' => $page->sections, ], 'sections_data' => [ 'count' => is_array($page->sections_data) ? count($page->sections_data) : 0, 'data' => $page->sections_data, ], ]); })->middleware(['auth', \App\Http\Middleware\SuperAdminMiddleware::class]); // Language Switch Route::get('/lang/{locale}', function ($locale) { if (function_exists('switch_language')) { switch_language($locale); } else { $language = \App\Models\Language::findByCode($locale); if ($language && $language->is_active) { app()->setLocale($locale); session(['locale' => $locale]); } } return redirect()->back(); })->name('language.switch'); // Homepage -> admin panelinde "is_homepage" olarak işaretli sayfa dinamik olarak gösterilir Route::get('/', [PageController::class, 'index'])->name('homepage'); // Blog Route::get('/blog', [BlogController::class, 'index'])->name('blog.index'); Route::get('/blog/{slug}', [BlogController::class, 'show'])->name('blog.show'); Route::post('/blog/{slug}/comment', [BlogController::class, 'storeComment'])->name('blog.comment.store'); // Template Preview (admin panel için) Route::any('/admin/template-preview', [TemplatePreviewController::class, 'preview']) ->middleware(['auth']) ->name('template.preview'); // Site Translations API (DevExtreme DataGrid için) Route::prefix('admin/api')->middleware(['auth', \App\Http\Middleware\SuperAdminMiddleware::class])->group(function () { Route::get('/site-translations', [SiteTranslationController::class, 'index'])->name('api.site-translations.index'); Route::post('/site-translations', [SiteTranslationController::class, 'store'])->name('api.site-translations.store'); Route::put('/site-translations/{id}', [SiteTranslationController::class, 'update'])->name('api.site-translations.update'); Route::delete('/site-translations/{id}', [SiteTranslationController::class, 'destroy'])->name('api.site-translations.destroy'); Route::post('/site-translations/batch-update', [SiteTranslationController::class, 'batchUpdate'])->name('api.site-translations.batch-update'); Route::post('/site-translations/batch-destroy', [SiteTranslationController::class, 'batchDestroy'])->name('api.site-translations.batch-destroy'); }); // Products & Services Route::redirect('/urun-hizmet/Yazılım Danışmanlık', '/urun-hizmet/yazilim-danismanlik', 301); Route::get('/urun-hizmet/{slug}', [\App\Http\Controllers\ProductController::class, 'show'])->name('products.show'); // Music Productions Route::get('/muzik-produksiyonlari', [\App\Http\Controllers\MusicProductionController::class, 'index'])->name('music-productions.index'); Route::get('/muzik-produksiyonlari/{slug}', [\App\Http\Controllers\MusicProductionController::class, 'show'])->name('music-productions.show'); // Career Route::get('/kariyer', [\App\Http\Controllers\CareerController::class, 'index'])->name('career.index'); Route::get('/staj-basvurusu', [\App\Http\Controllers\CareerController::class, 'internship'])->name('career.internship'); Route::post('/kariyer', [\App\Http\Controllers\CareerController::class, 'store'])->name('career.store'); // Intern Portal Route::get('/stajyer/giris', [\App\Http\Controllers\CareerController::class, 'internLoginForm'])->name('intern.login'); Route::post('/stajyer/giris', [\App\Http\Controllers\CareerController::class, 'internLogin'])->name('intern.login.submit'); Route::get('/stajyer/panel', [\App\Http\Controllers\CareerController::class, 'internDashboard'])->name('intern.dashboard'); Route::post('/stajyer/form-yukle', [\App\Http\Controllers\CareerController::class, 'uploadInternshipForm'])->name('intern.upload-form'); Route::post('/stajyer/github-kaydet', [\App\Http\Controllers\CareerController::class, 'saveGithubRepo'])->name('intern.save-github'); Route::get('/stajyer/gunluk-indir', [\App\Http\Controllers\CareerController::class, 'downloadMarkdown'])->name('intern.download-journal'); Route::get('/staj-dogrulama/{code}', [\App\Http\Controllers\CareerController::class, 'verifyCertificate'])->name('internship.verify'); Route::post('/stajyer/cikis', [\App\Http\Controllers\CareerController::class, 'internLogout'])->name('intern.logout'); // Payment Process Route::post('/payment/process', [\App\Http\Controllers\PaymentController::class, 'process'])->name('payment.process'); Route::any('/payment/success', [\App\Http\Controllers\PaymentController::class, 'success'])->name('payment.success'); Route::any('/payment/fail', [\App\Http\Controllers\PaymentController::class, 'fail'])->name('payment.fail'); // Logo Preview Route::get('/logo-preview', function (Illuminate\Http\Request $request) { $path = $request->query('path'); $bg = $request->query('bg', 'ffffff'); if (!$path) abort(404); return " Logo Preview "; })->name('logo.preview'); // Sitemap Route::get('/sitemap.xml', [\App\Http\Controllers\SitemapController::class, 'index'])->name('sitemap'); // Proposals Public Interface Route::get('/teklif/{slug}', [\App\Http\Controllers\ProposalController::class, 'show'])->name('proposals.show'); Route::post('/teklif/{slug}/action', [\App\Http\Controllers\ProposalController::class, 'action'])->name('proposals.action'); // Privacy Policy Alternatives Route::get('/privacy-policy', function () { return app(PageController::class)->show('privacy'); }); Route::get('/gizlilik-politikasi', function () { return app(PageController::class)->show('privacy'); }); // Nested Pages (Parent/Child) Route::get('/{parentSlug}/{slug}', [PageController::class, 'showNested'])->name('page.show_nested'); // Pages (en sonda olmalı - catch-all) Route::get('/{slug}', [PageController::class, 'show'])->name('page.show');