diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index fc5c034..5364952 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -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', + ]); + } } } diff --git a/routes/web.php b/routes/web.php index 3b37146..f6d296d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -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';