update deploy

This commit is contained in:
bulut
2026-03-27 10:41:54 +03:00
parent 69d19c0176
commit 6f6448aa06
422 changed files with 37956 additions and 0 deletions

180
routes/api.php Normal file
View File

@@ -0,0 +1,180 @@
<?php
use App\Http\Controllers\Api\Admin\AnnouncementController as AdminAnnouncementController;
use App\Http\Controllers\Api\Admin\AuthController;
use App\Http\Controllers\Api\Admin\BlockController as AdminBlockController;
use App\Http\Controllers\Api\Admin\CategoryController as AdminCategoryController;
use App\Http\Controllers\Api\Admin\CommentController as AdminCommentController;
use App\Http\Controllers\Api\Admin\CourseBlockController as AdminCourseBlockController;
use App\Http\Controllers\Api\Admin\CourseController as AdminCourseController;
use App\Http\Controllers\Api\Admin\FaqController as AdminFaqController;
use App\Http\Controllers\Api\Admin\GuideCardController as AdminGuideCardController;
use App\Http\Controllers\Api\Admin\HeroSlideController as AdminHeroSlideController;
use App\Http\Controllers\Api\Admin\LeadController as AdminLeadController;
use App\Http\Controllers\Api\Admin\MenuController as AdminMenuController;
use App\Http\Controllers\Api\Admin\PageController as AdminPageController;
use App\Http\Controllers\Api\Admin\PreviewController as AdminPreviewController;
use App\Http\Controllers\Api\Admin\RoleController;
use App\Http\Controllers\Api\Admin\ScheduleController as AdminScheduleController;
use App\Http\Controllers\Api\Admin\SettingController as AdminSettingController;
use App\Http\Controllers\Api\Admin\StoryController as AdminStoryController;
use App\Http\Controllers\Api\Admin\UploadController;
use App\Http\Controllers\Api\Admin\UserController;
use App\Http\Controllers\Api\V1\AnnouncementController;
use App\Http\Controllers\Api\V1\CategoryController;
use App\Http\Controllers\Api\V1\CommentController;
use App\Http\Controllers\Api\V1\CourseController;
use App\Http\Controllers\Api\V1\FaqController;
use App\Http\Controllers\Api\V1\GuideCardController;
use App\Http\Controllers\Api\V1\HeroSlideController;
use App\Http\Controllers\Api\V1\LeadController;
use App\Http\Controllers\Api\V1\MenuController;
use App\Http\Controllers\Api\V1\PageController;
use App\Http\Controllers\Api\V1\PreviewController;
use App\Http\Controllers\Api\V1\ScheduleController;
use App\Http\Controllers\Api\V1\SettingController;
use App\Http\Controllers\Api\V1\SitemapController;
use App\Http\Controllers\Api\V1\StoryController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Public API Routes (v1)
|--------------------------------------------------------------------------
*/
Route::prefix('v1')->group(function () {
// Categories
Route::get('categories', [CategoryController::class, 'index']);
Route::get('categories/{slug}', [CategoryController::class, 'show']);
// Courses
Route::get('courses', [CourseController::class, 'index']);
Route::get('courses/{slug}', [CourseController::class, 'show']);
// Schedules
Route::get('schedules', [ScheduleController::class, 'index']);
Route::get('schedules/upcoming', [ScheduleController::class, 'upcoming']);
Route::get('schedules/{id}', [ScheduleController::class, 'show']);
// Announcements
Route::get('announcements', [AnnouncementController::class, 'index']);
Route::get('announcements/{slug}', [AnnouncementController::class, 'show']);
// Hero Slides
Route::get('hero-slides', [HeroSlideController::class, 'index']);
// Leads (public form submission)
Route::post('leads', [LeadController::class, 'store'])->middleware('throttle:leads');
// Comments (public submission)
Route::get('comments/{type}/{id}', [CommentController::class, 'index']);
Route::post('comments', [CommentController::class, 'store'])->middleware('throttle:comments');
// Menus
Route::get('menus/{location}', [MenuController::class, 'index']);
// FAQs
Route::get('faqs', [FaqController::class, 'index']);
Route::get('faqs/{category}', [FaqController::class, 'index']);
// Guide Cards
Route::get('guide-cards', [GuideCardController::class, 'index']);
// Settings
Route::get('settings', [SettingController::class, 'index']);
Route::get('settings/{group}', [SettingController::class, 'show']);
// Stories
Route::get('stories', [StoryController::class, 'index']);
// Pages
Route::get('pages/{slug}', [PageController::class, 'show']);
// Preview (public — Next.js server-side fetch)
Route::get('preview/{token}', [PreviewController::class, 'show']);
// Sitemap
Route::get('sitemap-data', [SitemapController::class, 'index']);
});
/*
|--------------------------------------------------------------------------
| Admin API Routes (Sanctum Auth)
|--------------------------------------------------------------------------
*/
Route::prefix('admin')->group(function () {
// Auth (public)
Route::post('login', [AuthController::class, 'login']);
// Protected routes
Route::middleware('auth:sanctum')->group(function () {
// Auth
Route::get('me', [AuthController::class, 'me']);
Route::post('logout', [AuthController::class, 'logout']);
// Upload
Route::post('uploads', [UploadController::class, 'store']);
// Categories
Route::apiResource('categories', AdminCategoryController::class);
// Courses
Route::apiResource('courses', AdminCourseController::class);
// Course Blocks
Route::post('courses/{course}/blocks/reorder', [AdminCourseBlockController::class, 'reorder']);
Route::apiResource('courses.blocks', AdminCourseBlockController::class);
// Schedules
Route::apiResource('schedules', AdminScheduleController::class);
// Announcements
Route::apiResource('announcements', AdminAnnouncementController::class);
// Hero Slides
Route::apiResource('hero-slides', AdminHeroSlideController::class);
// Leads
Route::apiResource('leads', AdminLeadController::class)->except(['store']);
// Menus
Route::post('menus/reorder', [AdminMenuController::class, 'reorder']);
Route::apiResource('menus', AdminMenuController::class);
// Comments
Route::apiResource('comments', AdminCommentController::class)->except(['store']);
// FAQs
Route::apiResource('faqs', AdminFaqController::class);
// Guide Cards
Route::apiResource('guide-cards', AdminGuideCardController::class);
// Settings
Route::get('settings', [AdminSettingController::class, 'index']);
Route::get('settings/group/{group}', [AdminSettingController::class, 'group']);
Route::put('settings', [AdminSettingController::class, 'update']);
Route::post('settings/clear-cache', [AdminSettingController::class, 'clearCache']);
// Pages
Route::apiResource('pages', AdminPageController::class);
// Page Blocks
Route::post('pages/{page}/blocks/reorder', [AdminBlockController::class, 'reorder']);
Route::apiResource('pages.blocks', AdminBlockController::class);
// Stories
Route::apiResource('stories', AdminStoryController::class);
// Preview
Route::post('preview', [AdminPreviewController::class, 'store']);
Route::delete('preview/{token}', [AdminPreviewController::class, 'destroy']);
// Users
Route::apiResource('users', UserController::class);
// Roles & Permissions
Route::get('permissions', [RoleController::class, 'permissions']);
Route::apiResource('roles', RoleController::class);
});
});

8
routes/console.php Normal file
View File

@@ -0,0 +1,8 @@
<?php
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote');

14
routes/web.php Normal file
View File

@@ -0,0 +1,14 @@
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return response()->json([
'success' => true,
'message' => 'Boğaziçi Denizcilik API çalışıyor.',
'data' => [
'version' => 'v1',
'documentation' => url('/api/documentation'),
],
]);
});