buckets/routes/web.php

49 lines
2.8 KiB
PHP

<?php
use App\Http\Controllers\BucketController;
use App\Http\Controllers\ProjectionController;
use App\Http\Controllers\ScenarioController;
use App\Http\Controllers\StreamController;
use App\Models\Scenario;
use Illuminate\Support\Facades\Route;
// Single-scenario MVP: redirect root to the default scenario
Route::get('/', function () {
return redirect()->route('scenarios.show', Scenario::firstOrFail());
})->name('home');
Route::get('/scenarios/{scenario}', [ScenarioController::class, 'show'])->name('scenarios.show');
// Scenario CRUD routes (hidden for single-scenario MVP, re-enable later)
// Route::get('/scenarios', [ScenarioController::class, 'index'])->name('scenarios.index');
// Route::get('/scenarios/create', [ScenarioController::class, 'create'])->name('scenarios.create');
// Route::post('/scenarios', [ScenarioController::class, 'store'])->name('scenarios.store');
// Route::get('/scenarios/{scenario}/edit', [ScenarioController::class, 'edit'])->name('scenarios.edit');
// Route::patch('/scenarios/{scenario}', [ScenarioController::class, 'update'])->name('scenarios.update');
// Route::delete('/scenarios/{scenario}', [ScenarioController::class, 'destroy'])->name('scenarios.destroy');
// Bucket routes (no auth required for MVP)
Route::get('/scenarios/{scenario}/buckets', [BucketController::class, 'index'])->name('buckets.index');
Route::post('/scenarios/{scenario}/buckets', [BucketController::class, 'store'])->name('buckets.store');
Route::patch('/buckets/{bucket}', [BucketController::class, 'update'])->name('buckets.update');
Route::delete('/buckets/{bucket}', [BucketController::class, 'destroy'])->name('buckets.destroy');
Route::patch('/scenarios/{scenario}/buckets/priorities', [BucketController::class, 'updatePriorities'])->name('buckets.update-priorities');
// Stream routes (no auth required for MVP)
Route::get('/scenarios/{scenario}/streams', [StreamController::class, 'index'])->name('streams.index');
Route::post('/scenarios/{scenario}/streams', [StreamController::class, 'store'])->name('streams.store');
Route::patch('/streams/{stream}', [StreamController::class, 'update'])->name('streams.update');
Route::delete('/streams/{stream}', [StreamController::class, 'destroy'])->name('streams.destroy');
Route::patch('/streams/{stream}/toggle', [StreamController::class, 'toggle'])->name('streams.toggle');
// Projection routes (no auth required for MVP)
Route::post('/scenarios/{scenario}/projections/calculate', [ProjectionController::class, 'calculate'])->name('projections.calculate');
// Auth dashboard (hidden for single-scenario MVP, re-enable later)
// Route::middleware(['auth', 'verified'])->group(function () {
// Route::get('dashboard', function () {
// return Inertia::render('dashboard');
// })->name('dashboard');
// });
require __DIR__.'/settings.php';