Files
ai-web/routes/web.php

100 lines
6.7 KiB
PHP
Raw Normal View History

2026-02-11 17:28:36 +08:00
<?php
declare(strict_types=1);
use App\Http\Controllers\Admin\AiModelController as AdminAiModelController;
use App\Http\Controllers\Admin\ArticleController as AdminArticleController;
use App\Http\Controllers\Admin\AuthController as AdminAuthController;
use App\Http\Controllers\Admin\DashboardController;
use App\Http\Controllers\Admin\GuideController as AdminGuideController;
use App\Http\Controllers\Admin\CategoryController as AdminCategoryController;
use App\Http\Controllers\Admin\UploadController as AdminUploadController;
use App\Http\Controllers\Admin\SourceController as AdminSourceController;
use App\Http\Controllers\Admin\ToolController as AdminToolController;
use App\Http\Controllers\Site\GuideController;
use App\Http\Controllers\Site\HomeController;
use App\Http\Controllers\Site\ModelController;
use App\Http\Controllers\Site\NewsController;
use App\Http\Controllers\Site\SeoController;
use App\Http\Controllers\Site\ToolController;
use Illuminate\Support\Facades\Route;
Route::get('/', HomeController::class)->name('home');
Route::get('/tools', [ToolController::class, 'index'])->name('tools.index');
Route::get('/tools/category/{slug}', [ToolController::class, 'byCategory'])->name('tools.by-category');
Route::get('/tools/{slug}', [ToolController::class, 'show'])->name('tools.show');
Route::get('/models', [ModelController::class, 'index'])->name('models.index');
Route::get('/models/use-case/{slug}', [ModelController::class, 'byUseCase'])->name('models.by-use-case');
Route::get('/models/{slug}', [ModelController::class, 'show'])->name('models.show');
Route::get('/news', [NewsController::class, 'index'])->name('news.index');
Route::get('/news/{slug}', [NewsController::class, 'show'])->name('news.show');
Route::get('/guides', [GuideController::class, 'index'])->name('guides.index');
Route::get('/guides/topic/{slug}', [GuideController::class, 'byTopic'])->name('guides.by-topic');
Route::get('/guides/{slug}', [GuideController::class, 'show'])->name('guides.show');
Route::get('/robots.txt', [SeoController::class, 'robots'])->name('seo.robots');
Route::get('/sitemap.xml', [SeoController::class, 'sitemap'])->name('seo.sitemap');
Route::prefix('admin')->name('admin.')->group(function (): void {
Route::middleware('admin.guest')->group(function (): void {
Route::get('/login', [AdminAuthController::class, 'showLogin'])->name('login');
Route::post('/login', [AdminAuthController::class, 'login'])->name('login.submit');
});
Route::get('/captcha', [AdminAuthController::class, 'captcha'])->name('captcha');
Route::middleware('admin.auth')->group(function (): void {
Route::post('/logout', [AdminAuthController::class, 'logout'])->name('logout');
Route::post('/uploads/markdown-image', [AdminUploadController::class, 'markdownImage'])->name('uploads.markdown-image');
Route::get('/', DashboardController::class)->name('dashboard');
Route::get('/tools', [AdminToolController::class, 'index'])->name('tools.index');
Route::get('/tools/create', [AdminToolController::class, 'create'])->name('tools.create');
Route::post('/tools', [AdminToolController::class, 'store'])->name('tools.store');
Route::get('/tools/{tool}/edit', [AdminToolController::class, 'edit'])->name('tools.edit');
Route::put('/tools/{tool}', [AdminToolController::class, 'update'])->name('tools.update');
Route::post('/tools/{tool}/publish', [AdminToolController::class, 'publish'])->name('tools.publish');
Route::post('/tools/{tool}/mark-stale', [AdminToolController::class, 'markStale'])->name('tools.mark-stale');
Route::get('/models', [AdminAiModelController::class, 'index'])->name('models.index');
Route::get('/models/create', [AdminAiModelController::class, 'create'])->name('models.create');
Route::post('/models', [AdminAiModelController::class, 'store'])->name('models.store');
Route::get('/models/{model}/edit', [AdminAiModelController::class, 'edit'])->name('models.edit');
Route::put('/models/{model}', [AdminAiModelController::class, 'update'])->name('models.update');
Route::post('/models/{model}/publish', [AdminAiModelController::class, 'publish'])->name('models.publish');
Route::post('/models/{model}/mark-stale', [AdminAiModelController::class, 'markStale'])->name('models.mark-stale');
Route::get('/articles', [AdminArticleController::class, 'index'])->name('articles.index');
Route::get('/articles/create', [AdminArticleController::class, 'create'])->name('articles.create');
Route::post('/articles', [AdminArticleController::class, 'store'])->name('articles.store');
Route::get('/articles/{article}/edit', [AdminArticleController::class, 'edit'])->name('articles.edit');
Route::put('/articles/{article}', [AdminArticleController::class, 'update'])->name('articles.update');
Route::post('/articles/{article}/publish', [AdminArticleController::class, 'publish'])->name('articles.publish');
Route::post('/articles/{article}/mark-stale', [AdminArticleController::class, 'markStale'])->name('articles.mark-stale');
Route::get('/guides', [AdminGuideController::class, 'index'])->name('guides.index');
Route::get('/guides/create', [AdminGuideController::class, 'create'])->name('guides.create');
Route::post('/guides', [AdminGuideController::class, 'store'])->name('guides.store');
Route::get('/guides/{guide}/edit', [AdminGuideController::class, 'edit'])->name('guides.edit');
Route::put('/guides/{guide}', [AdminGuideController::class, 'update'])->name('guides.update');
Route::post('/guides/{guide}/publish', [AdminGuideController::class, 'publish'])->name('guides.publish');
Route::get('/categories', [AdminCategoryController::class, 'index'])->name('categories.index');
Route::get('/categories/create', [AdminCategoryController::class, 'create'])->name('categories.create');
Route::post('/categories', [AdminCategoryController::class, 'store'])->name('categories.store');
Route::get('/categories/{category}/edit', [AdminCategoryController::class, 'edit'])->name('categories.edit');
Route::put('/categories/{category}', [AdminCategoryController::class, 'update'])->name('categories.update');
Route::get('/sources', [AdminSourceController::class, 'index'])->name('sources.index');
Route::get('/sources/create', [AdminSourceController::class, 'create'])->name('sources.create');
Route::post('/sources', [AdminSourceController::class, 'store'])->name('sources.store');
Route::get('/sources/{source}/edit', [AdminSourceController::class, 'edit'])->name('sources.edit');
Route::put('/sources/{source}', [AdminSourceController::class, 'update'])->name('sources.update');
});
});