15 - Redirect root to single scenario and hide CRUD routes

This commit is contained in:
myrmidex 2026-03-20 14:46:08 +01:00
parent fab5a5f4be
commit 873484db74
2 changed files with 28 additions and 16 deletions

View file

@ -2,8 +2,9 @@
namespace Database\Seeders;
use App\Actions\CreateScenarioAction;
use App\Models\Scenario;
use App\Models\User;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
@ -13,8 +14,6 @@ class DatabaseSeeder extends Seeder
*/
public function run(): void
{
// User::factory(10)->create();
User::firstOrCreate(
['email' => 'test@example.com'],
[
@ -23,5 +22,11 @@ public function run(): void
'email_verified_at' => now(),
]
);
if (Scenario::count() === 0) {
app(CreateScenarioAction::class)->execute([
'name' => 'My Budget',
]);
}
}
}

View file

@ -4,17 +4,23 @@
use App\Http\Controllers\ProjectionController;
use App\Http\Controllers\ScenarioController;
use App\Http\Controllers\StreamController;
use App\Models\Scenario;
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
// Scenario routes (no auth required for MVP)
Route::get('/', [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');
// 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');
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');
// 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');
@ -33,10 +39,11 @@
// Projection routes (no auth required for MVP)
Route::post('/scenarios/{scenario}/projections/calculate', [ProjectionController::class, 'calculate'])->name('projections.calculate');
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('dashboard', function () {
return Inertia::render('dashboard');
})->name('dashboard');
});
// 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';