name('home'); Route::get('/dashboard', [\App\Http\Controllers\DashboardController::class, 'index']) ->middleware(['auth', 'verified'])->name('dashboard'); // Admin routes Route::prefix('admin')->middleware(['auth','admin'])->group(function(){ Route::get('/', [\App\Http\Controllers\AdminDashboardController::class, 'index'])->name('admin.dashboard'); // Admin Exercises CRUD Route::resource('exercises', \App\Http\Controllers\Admin\ExerciseController::class)->except(['show'])->names('admin.exercises'); }); Route::middleware('auth')->group(function () { 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'); // Favorites Route::post('/exercises/{exercise}/favorite', [\App\Http\Controllers\FavoriteController::class, 'toggleExercise'])->name('exercises.favorite'); Route::post('/workouts/{workout}/favorite', [\App\Http\Controllers\FavoriteController::class, 'toggleWorkout'])->name('workouts.favorite'); // Exercise alias (per-user rename) Route::post('/exercises/{exercise}/alias', [\App\Http\Controllers\ExerciseAliasController::class, 'store'])->name('exercises.alias'); }); Route::prefix('/exercises')->group(function () { Route::get('/', [\App\Http\Controllers\ExerciseController::class, 'index'])->name('exercises.index'); Route::get('/{exercise:slug}', [\App\Http\Controllers\ExerciseController::class, 'show'])->name('exercises.show'); }); Route::middleware('auth')->prefix('/workouts')->group(function () { Route::get('/', [\App\Http\Controllers\WorkoutController::class, 'index'])->name('workouts.index'); Route::get('/builder', [\App\Http\Controllers\WorkoutController::class, 'builder'])->name('workouts.builder'); Route::get('/create', [\App\Http\Controllers\WorkoutController::class, 'create'])->name('workouts.create'); Route::post('/', [\App\Http\Controllers\WorkoutController::class, 'store'])->name('workouts.store'); Route::get('/{workout}', [\App\Http\Controllers\WorkoutController::class, 'show'])->name('workouts.show'); Route::delete('/{workout}', [\App\Http\Controllers\WorkoutController::class, 'destroy'])->name('workouts.destroy'); // Manage exercises within a workout Route::post('/{workout}/exercises', [\App\Http\Controllers\WorkoutController::class, 'addExercise'])->name('workouts.exercises.add'); Route::patch('/{workout}/exercises/{item}', [\App\Http\Controllers\WorkoutController::class, 'updateExercise'])->name('workouts.exercises.update'); Route::delete('/{workout}/exercises/{item}', [\App\Http\Controllers\WorkoutController::class, 'removeExercise'])->name('workouts.exercises.remove'); // Sessions Route::post('/{workout}/sessions', [\App\Http\Controllers\WorkoutSessionController::class, 'store'])->name('sessions.store'); }); Route::middleware('auth')->group(function () { Route::get('/sessions/{session}', [\App\Http\Controllers\WorkoutSessionController::class, 'show'])->name('sessions.show'); Route::patch('/sessions/{session}/items/{item}', [\App\Http\Controllers\WorkoutSessionController::class, 'toggleItem'])->name('sessions.items.toggle'); Route::post('/sessions/{session}/complete', [\App\Http\Controllers\WorkoutSessionController::class, 'complete'])->name('sessions.complete'); }); Route::prefix('/blog')->group(function () { Route::get('/', [\App\Http\Controllers\BlogController::class, 'index'])->name('blog.index'); }); // Yoga poses Route::prefix('/yoga')->group(function () { Route::get('/', [\App\Http\Controllers\YogaPoseController::class, 'index'])->name('yoga.index'); Route::get('/{pose:slug}', [\App\Http\Controllers\YogaPoseController::class, 'show'])->name('yoga.show'); }); require __DIR__.'/auth.php';