63 lines
3.0 KiB
PHP
63 lines
3.0 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\Admin\DashboardController;
|
|
use App\Http\Controllers\ProfileController;
|
|
use App\Http\Controllers\Web\BlogController;
|
|
use App\Http\Controllers\Web\BookmarkController;
|
|
use App\Http\Controllers\Web\DashboardController as UserDashboardController;
|
|
use App\Http\Controllers\Web\HomeController;
|
|
use App\Http\Controllers\Web\JobController;
|
|
use App\Http\Controllers\Web\PageController;
|
|
use App\Http\Controllers\Web\SitemapController;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
// Homepage
|
|
Route::get('/', [HomeController::class, 'index'])->name('home');
|
|
|
|
// Static pages
|
|
Route::get('/about', [PageController::class, 'about'])->name('about');
|
|
Route::get('/contact', [PageController::class, 'contact'])->name('contact');
|
|
Route::get('/privacy', [PageController::class, 'privacy'])->name('privacy');
|
|
Route::get('/terms', [PageController::class, 'terms'])->name('terms');
|
|
|
|
// Job routes
|
|
Route::prefix('jobs')->group(function () {
|
|
Route::get('/', [JobController::class, 'index'])->name('jobs.index');
|
|
Route::get('/remote', [JobController::class, 'remote'])->name('jobs.remote');
|
|
Route::get('/category/{slug}', [JobController::class, 'category'])->name('jobs.category');
|
|
Route::get('/{job:slug}', [JobController::class, 'show'])->name('jobs.show');
|
|
});
|
|
|
|
// Blog routes
|
|
Route::prefix('blog')->name('blog.')->group(function () {
|
|
Route::get('/', [BlogController::class, 'index'])->name('index');
|
|
Route::get('/{article:slug}', [BlogController::class, 'show'])->name('show');
|
|
});
|
|
|
|
// Sitemap routes
|
|
Route::get('/sitemap.xml', [SitemapController::class, 'index'])->name('sitemap');
|
|
Route::get('/sitemap-index.xml', [SitemapController::class, 'sitemapIndex'])->name('sitemap.index');
|
|
Route::get('/sitemap-main.xml', [SitemapController::class, 'mainSitemap'])->name('sitemap.main');
|
|
Route::get('/sitemap-jobs.xml', [SitemapController::class, 'jobsSitemap'])->name('sitemap.jobs');
|
|
Route::get('/sitemap-blog.xml', [SitemapController::class, 'blogSitemap'])->name('sitemap.blog');
|
|
|
|
// Authenticated user routes
|
|
Route::middleware('auth')->group(function () {
|
|
Route::get('/dashboard', [UserDashboardController::class, 'index'])->name('dashboard');
|
|
|
|
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
|
|
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
|
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
|
|
|
|
Route::get('/bookmarks', [BookmarkController::class, 'index'])->name('bookmarks');
|
|
Route::post('/jobs/{job}/bookmark', [BookmarkController::class, 'toggle'])->name('jobs.bookmark');
|
|
});
|
|
|
|
// Admin routes
|
|
Route::prefix('admin')->name('admin.')->middleware(['auth', 'admin'])->group(function () {
|
|
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
|
|
Route::get('/logs/api', [DashboardController::class, 'apiLogs'])->name('logs.api');
|
|
Route::get('/logs/fetch', [DashboardController::class, 'fetchLogs'])->name('logs.fetch');
|
|
});
|
|
|
|
require __DIR__.'/auth.php'; |