group(function () { Route::post('/register', [AuthController::class, 'register'])->name('auth.register'); Route::post('/login', [AuthController::class, 'login'])->name('auth.login'); Route::post('/forgot-password', [PasswordResetController::class, 'forgotPassword'])->name('auth.forgotPassword'); Route::post('/reset-password', [PasswordResetController::class, 'resetPassword'])->name('auth.resetPassword'); Route::post('/verify-reset-token', [PasswordResetController::class, 'verifyResetToken'])->name('auth.verifyResetToken'); }); /** * Event API Routes (public) * * Base URL: /api/events */ Route::middleware('api')->prefix('events')->group(function () { // Hilfsmethoden (vor dem Model Binding) Route::get('categories/list', [EventController::class, 'categories'])->name('events.categories'); Route::get('locations/list', [EventController::class, 'locations'])->name('events.locations'); // Listen Sie Events mit Filtern Route::get('/', [EventController::class, 'index'])->name('events.index'); // Einzelnes Event anzeigen (Model Binding) Route::get('/{event}', [EventController::class, 'show'])->name('events.show'); }); /** * Protected Routes (Authentifizierung erforderlich) */ Route::middleware('auth:sanctum')->group(function () { // Auth Routes Route::prefix('auth')->group(function () { Route::post('/logout', [AuthController::class, 'logout'])->name('auth.logout'); Route::get('/me', [AuthController::class, 'me'])->name('auth.me'); Route::put('/profile', [AuthController::class, 'updateProfile'])->name('auth.updateProfile'); Route::post('/change-password', [AuthController::class, 'changePassword'])->name('auth.changePassword'); }); // User API Routes Route::prefix('user')->group(function () { Route::get('/profile', [UserController::class, 'profile'])->name('user.profile'); Route::get('/events', [UserController::class, 'myEvents'])->name('user.myEvents'); Route::get('/favorites', [UserController::class, 'favorites'])->name('user.favorites'); Route::post('/favorites/{event}/toggle', [UserController::class, 'toggleFavorite'])->name('user.toggleFavorite'); Route::get('/stats', [UserController::class, 'stats'])->name('user.stats'); }); // Event Management Routes Route::prefix('events')->group(function () { Route::get('/my-events', [EventManagementController::class, 'myEvents'])->name('events.myEvents'); Route::post('/', [EventManagementController::class, 'create'])->name('events.create'); Route::put('/{event}', [EventManagementController::class, 'update'])->name('events.update'); Route::delete('/{event}', [EventManagementController::class, 'delete'])->name('events.delete'); // Favoriten Route::post('/{event}/toggle-favorite', [EventManagementController::class, 'toggleFavorite'])->name('events.toggleFavorite'); Route::get('/favorites', [EventManagementController::class, 'favorites'])->name('events.favorites'); }); });