Files
2026-02-22 20:02:34 +02:00

98 lines
5.4 KiB
PHP

<?php
use App\Http\Controllers\HomeController;
use App\Http\Controllers\ProfileController;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\GameController;
use App\Http\Controllers\ReviewController;
use App\Http\Controllers\GameListController;
use App\Http\Controllers\ForumCategoryController;
use App\Http\Controllers\ForumThreadController;
use App\Http\Controllers\ForumTopicController;
use App\Http\Controllers\ForumPostController;
//Route::get('/', function () {
// return view('landing');
//});
Route::get('/', [HomeController::class, 'index']);
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');
Route::middleware('auth')->group(function () {
// Authenticated profile routes
Route::get('/profile', [ProfileController::class, 'show'])->name('profile');
Route::get('/profile/edit', [ProfileController::class, 'edit'])->name('profile.edit');
Route::put('/profile', [ProfileController::class, 'update'])->name('profile.update');
Route::get('/profile/reviews', [ProfileController::class, 'reviews'])->name('profile.reviews');
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
// Review routes
Route::post('/games/{game:slug}/reviews/store', [ReviewController::class, 'store'])->name('games.reviews.store');
Route::get('/games/{game:slug}/reviews/create', [ReviewController::class, 'create'])->name('games.reviews.create');
Route::get('/reviews/{review}', [ReviewController::class, 'show'])->name('reviews.show');
Route::get('/reviews/{review}/edit', [ReviewController::class, 'edit'])->name('reviews.edit');
Route::put('/reviews/{review}', [ReviewController::class, 'update'])->name('reviews.update');
Route::delete('/reviews/{review}', [ReviewController::class, 'destroy'])->name('reviews.destroy');
});
// Public profile routes
Route::get('/profile/{user:slug}', [ProfileController::class, 'show'])->name('profile.show');
Route::get('/games', [App\Http\Controllers\GameController::class, 'index'])->name('games.index');
Route::get('/games/{game:slug}', [App\Http\Controllers\GameController::class, 'show'])->name('games.show');
// Public review routes
Route::get('/games/{game:slug}/reviews', [App\Http\Controllers\ReviewController::class, 'index'])->name('games.reviews.index');
// Game Lists
Route::middleware('auth')->group(function () {
Route::resource('lists', GameListController::class);
Route::post('lists/{list}/games', [GameListController::class, 'addGame'])->name('lists.addGame');
Route::delete('lists/{list}/games/{game}', [GameListController::class, 'removeGame'])->name('lists.removeGame');
});
// Forum Routes
Route::prefix('forum')->name('forum.')->group(function () {
// Public forum routes
Route::get('/', [ForumCategoryController::class, 'index'])->name('index');
Route::get('/categories/{category}', [ForumCategoryController::class, 'show'])->name('categories.show');
Route::get('/threads/{thread}', [ForumThreadController::class, 'show'])->name('threads.show');
Route::get('/topics/{topic}', [ForumTopicController::class, 'show'])->name('topics.show');
// Authenticated forum routes
Route::middleware('auth')->group(function () {
// Categories (admin only in a real app)
Route::get('/categories/create', [ForumCategoryController::class, 'create'])->name('categories.create');
Route::post('/categories', [ForumCategoryController::class, 'store'])->name('categories.store');
Route::get('/categories/{category}/edit', [ForumCategoryController::class, 'edit'])->name('categories.edit');
Route::put('/categories/{category}', [ForumCategoryController::class, 'update'])->name('categories.update');
Route::delete('/categories/{category}', [ForumCategoryController::class, 'destroy'])->name('categories.destroy');
// Threads
Route::get('/threads/create', [ForumThreadController::class, 'create'])->name('threads.create');
Route::post('/threads', [ForumThreadController::class, 'store'])->name('threads.store');
Route::get('/threads/{thread}/edit', [ForumThreadController::class, 'edit'])->name('threads.edit');
Route::put('/threads/{thread}', [ForumThreadController::class, 'update'])->name('threads.update');
Route::delete('/threads/{thread}', [ForumThreadController::class, 'destroy'])->name('threads.destroy');
// Topics
Route::get('/topics/create', [ForumTopicController::class, 'create'])->name('topics.create');
Route::post('/topics', [ForumTopicController::class, 'store'])->name('topics.store');
Route::get('/topics/{topic}/edit', [ForumTopicController::class, 'edit'])->name('topics.edit');
Route::put('/topics/{topic}', [ForumTopicController::class, 'update'])->name('topics.update');
Route::delete('/topics/{topic}', [ForumTopicController::class, 'destroy'])->name('topics.destroy');
// Posts
Route::get('/posts/create', [ForumPostController::class, 'create'])->name('posts.create');
Route::post('/posts', [ForumPostController::class, 'store'])->name('posts.store');
Route::get('/posts/{post}/edit', [ForumPostController::class, 'edit'])->name('posts.edit');
Route::put('/posts/{post}', [ForumPostController::class, 'update'])->name('posts.update');
Route::delete('/posts/{post}', [ForumPostController::class, 'destroy'])->name('posts.destroy');
});
});
require __DIR__.'/auth.php';