File: /var/www/mealplan.rtfmfm.com/routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\DayTypeController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\MealTypeController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\DailyMenuController;
use App\Http\Controllers\HowItWorksController;
use App\Http\Controllers\UserProductController;
use App\Http\Controllers\UserSettingsController;
use App\Http\Controllers\DefaultProductsController;
use App\Http\Controllers\ProductCategoryController;
use App\Http\Controllers\LocaleController;
Route::get('/', [HomeController::class, 'index']);
// Locale switcher (public)
Route::get('/locale/{locale}', [LocaleController::class, 'set'])->name('locale.set');
Route::get('/locale/status', [LocaleController::class, 'status'])->name('locale.status');
// How it works page
Route::get('/how-it-works', [HowItWorksController::class, 'index'])->name('how-it-works');
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');
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');
// User Settings
Route::get('/settings', [UserSettingsController::class, 'edit'])->name('settings.edit');
Route::patch('/settings', [UserSettingsController::class, 'update'])->name('settings.update');
// Day Types
Route::resource('day-types', DayTypeController::class);
// Meal Types
Route::resource('meal-types', MealTypeController::class);
// User Products (new personal products system)
Route::resource('user-products', UserProductController::class);
Route::get('/user-products/by-category/{userCategory}', [UserProductController::class, 'getByCategory'])->name('user-products.by-category');
// Product Categories (compatibility wrapper for user product categories)
Route::resource('product-categories', ProductCategoryController::class);
// Default Products
Route::get('/default-products', [DefaultProductsController::class, 'index'])->name('default-products.index');
Route::post('/default-products/add-selected', [DefaultProductsController::class, 'addSelected'])->name('default-products.add-selected');
// Daily Menus
Route::resource('daily-menus', DailyMenuController::class);
Route::post('/daily-menus/{dailyMenu}/clone', [DailyMenuController::class, 'clone'])->name('daily-menus.clone');
Route::post('/daily-menus/{dailyMenu}/menu-items', [DailyMenuController::class, 'addMenuItem']);
Route::put('/daily-menus/{dailyMenu}/menu-items/{menuItem}', [DailyMenuController::class, 'updateMenuItem']);
Route::delete('/daily-menus/{dailyMenu}/menu-items/{menuItem}', [DailyMenuController::class, 'removeMenuItem']);
// API routes for user products
Route::get('/api/user-products', [UserProductController::class, 'apiIndex']);
Route::get('/api/user-products/{userProduct}', [UserProductController::class, 'apiShow']);
});
require __DIR__ . '/auth.php';