HEX
Server: nginx/1.24.0
System: Linux rtfmfm 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64
User: neo (1001)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
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';