group(function () { // Public authentication routes Route::post('/auth/login', [AuthController::class, 'login'])->name('api.auth.login'); Route::post('/auth/register', [AuthController::class, 'register'])->name('api.auth.register'); // Protected authentication routes Route::middleware('auth:sanctum')->group(function () { Route::post('/auth/logout', [AuthController::class, 'logout'])->name('api.auth.logout'); Route::get('/auth/me', [AuthController::class, 'me'])->name('api.auth.me'); }); // Onboarding Route::get('/onboarding/status', [OnboardingController::class, 'status'])->name('api.onboarding.status'); Route::get('/onboarding/options', [OnboardingController::class, 'options'])->name('api.onboarding.options'); Route::post('/onboarding/platform', [OnboardingController::class, 'createPlatform'])->name('api.onboarding.platform'); Route::post('/onboarding/feed', [OnboardingController::class, 'createFeed'])->name('api.onboarding.feed'); Route::post('/onboarding/channel', [OnboardingController::class, 'createChannel'])->name('api.onboarding.channel'); Route::post('/onboarding/route', [OnboardingController::class, 'createRoute'])->name('api.onboarding.route'); Route::post('/onboarding/complete', [OnboardingController::class, 'complete'])->name('api.onboarding.complete'); Route::post('/onboarding/skip', [OnboardingController::class, 'skip'])->name('api.onboarding.skip'); Route::post('/onboarding/reset-skip', [OnboardingController::class, 'resetSkip'])->name('api.onboarding.reset-skip'); // Dashboard stats Route::get('/dashboard/stats', [DashboardController::class, 'stats'])->name('api.dashboard.stats'); // Articles Route::get('/articles', [ArticlesController::class, 'index'])->name('api.articles.index'); Route::post('/articles/{article}/approve', [ArticlesController::class, 'approve'])->name('api.articles.approve'); Route::post('/articles/{article}/reject', [ArticlesController::class, 'reject'])->name('api.articles.reject'); Route::post('/articles/refresh', [ArticlesController::class, 'refresh'])->name('api.articles.refresh'); // Platform Accounts Route::apiResource('platform-accounts', PlatformAccountsController::class)->names([ 'index' => 'api.platform-accounts.index', 'store' => 'api.platform-accounts.store', 'show' => 'api.platform-accounts.show', 'update' => 'api.platform-accounts.update', 'destroy' => 'api.platform-accounts.destroy', ]); Route::post('/platform-accounts/{platformAccount}/set-active', [PlatformAccountsController::class, 'setActive']) ->name('api.platform-accounts.set-active'); // Platform Channels Route::apiResource('platform-channels', PlatformChannelsController::class)->names([ 'index' => 'api.platform-channels.index', 'store' => 'api.platform-channels.store', 'show' => 'api.platform-channels.show', 'update' => 'api.platform-channels.update', 'destroy' => 'api.platform-channels.destroy', ]); Route::post('/platform-channels/{channel}/toggle', [PlatformChannelsController::class, 'toggle']) ->name('api.platform-channels.toggle'); // Feeds Route::apiResource('feeds', FeedsController::class)->names([ 'index' => 'api.feeds.index', 'store' => 'api.feeds.store', 'show' => 'api.feeds.show', 'update' => 'api.feeds.update', 'destroy' => 'api.feeds.destroy', ]); Route::post('/feeds/{feed}/toggle', [FeedsController::class, 'toggle'])->name('api.feeds.toggle'); // Routing Route::get('/routing', [RoutingController::class, 'index'])->name('api.routing.index'); Route::post('/routing', [RoutingController::class, 'store'])->name('api.routing.store'); Route::get('/routing/{feed}/{channel}', [RoutingController::class, 'show'])->name('api.routing.show'); Route::put('/routing/{feed}/{channel}', [RoutingController::class, 'update'])->name('api.routing.update'); Route::delete('/routing/{feed}/{channel}', [RoutingController::class, 'destroy'])->name('api.routing.destroy'); Route::post('/routing/{feed}/{channel}/toggle', [RoutingController::class, 'toggle'])->name('api.routing.toggle'); // Settings Route::get('/settings', [SettingsController::class, 'index'])->name('api.settings.index'); Route::put('/settings', [SettingsController::class, 'update'])->name('api.settings.update'); // Logs Route::get('/logs', [LogsController::class, 'index'])->name('api.logs.index'); });