<?php use App\Http\Controllers\Admin\AboutMeSectionController; use App\Http\Controllers\Admin\CategoryController; use App\Http\Controllers\Admin\CreationController; use App\Http\Controllers\Admin\EventController; use App\Http\Controllers\Admin\HomeController; use App\Http\Controllers\Admin\LegalMentionController; use App\Http\Controllers\Admin\PrestationController; use App\Http\Controllers\Admin\SettingsController; use App\Http\Controllers\Admin\SocialMediaLinksController; use App\Http\Controllers\Admin\TermsSectionController; use App\Http\Controllers\Public\IndexController; use App\Http\Controllers\Public\LegalMentionsController; use App\Http\Controllers\Public\PortfolioController; use App\Http\Controllers\Public\PrestationController as PublicPrestationController; use App\Http\Controllers\Public\TermsController; use App\Http\Middleware\CheckPrivateModeMiddleware; use App\Http\Middleware\RedirectIfUserExistsMiddleware; use Illuminate\Support\Facades\Route; use Laravel\Fortify\Features; use Laravel\Fortify\Http\Controllers\RegisteredUserController; Route::middleware(CheckPrivateModeMiddleware::class)->group(function () { Route::get('/', IndexController::class) ->name('index'); Route::view('/prestations', 'public.prestations')->name('prestations'); Route::view('/evenements', 'public.evenements')->name('evenements'); Route::get('/portfolio', [PortfolioController::class, 'index'])->name('portfolio'); Route::get('/portfolio/api', [PortfolioController::class, 'api'])->name('portfolio.api'); Route::get('/portfolio/{slug}', [PortfolioController::class, 'show'])->name('portfolio.show'); Route::get('/prestations/{slug}', [PublicPrestationController::class, 'index'])->name('prestations.show'); Route::get('/mentions-legales', LegalMentionsController::class)->name('legal-mentions'); Route::get('/conditions-generales-de-vente', TermsController::class)->name('terms'); Route::view('/maintenance', 'public.maintenance')->name('maintenance'); }); if (Features::enabled(Features::registration())) { Route::get('/register', [RegisteredUserController::class, 'create']) ->middleware([RedirectIfUserExistsMiddleware::class]) ->name('register'); } // Group for /admin routes Route::prefix('admin')->middleware('auth')->name('admin.')->group(function () { Route::get('/', [HomeController::class, 'index']) ->name('home'); Route::prefix('categories')->name('categories.')->group(function () { Route::get('/', [CategoryController::class, 'index']) ->name('index'); Route::get('/create', [CategoryController::class, 'createPage']) ->name('create'); Route::post('/', [CategoryController::class, 'store']) ->name('store'); Route::get('/{category}/edit', [CategoryController::class, 'editPage']) ->name('edit'); Route::put('/{category}', [CategoryController::class, 'update']) ->name('update'); Route::get('/{category}/delete', [CategoryController::class, 'delete']) ->name('delete'); }); Route::prefix('creations')->name('creations.')->group(function () { Route::get('/', [CreationController::class, 'listPage']) ->name('index'); Route::get('/create', [CreationController::class, 'createPage']) ->name('create'); Route::post('/', [CreationController::class, 'store']) ->name('store'); Route::get('/{creation}/edit', [CreationController::class, 'editPage']) ->name('edit'); Route::put('/{creation}', [CreationController::class, 'update']) ->name('update'); Route::match(['GET', 'DELETE'], '/{creation}/delete', [CreationController::class, 'delete']) ->name('delete'); Route::delete('/{creation}/remove-addtionnal-image/{image}', [CreationController::class, 'removeAdditionalImage']) ->name('remove-additionnal-image'); }); Route::prefix('social-media-links')->name('social-media-links.')->group(function () { Route::get('/', [SocialMediaLinksController::class, 'listPage']) ->name('index'); Route::get('/create', [SocialMediaLinksController::class, 'createPage']) ->name('create'); Route::post('/', [SocialMediaLinksController::class, 'store']) ->name('store'); Route::get('/{socialMediaLink}/edit', [SocialMediaLinksController::class, 'editPage']) ->name('edit'); Route::put('/{socialMediaLink}', [SocialMediaLinksController::class, 'update']) ->name('update'); Route::get('/{socialMediaLink}/delete', [SocialMediaLinksController::class, 'delete']) ->name('delete'); }); Route::prefix('about')->name('about.')->group(function () { Route::get('/', [AboutMeSectionController::class, 'index'])->name('index'); Route::get('/create', [AboutMeSectionController::class, 'createPage'])->name('create'); Route::post('/', [AboutMeSectionController::class, 'store'])->name('store'); Route::get('/{section}/edit', [AboutMeSectionController::class, 'editPage'])->name('edit'); Route::put('/{section}', [AboutMeSectionController::class, 'update'])->name('update'); Route::get('/{section}/delete', [AboutMeSectionController::class, 'delete'])->name('delete'); }); Route::prefix('settings')->name('settings.')->group(function () { Route::get('/users', [SettingsController::class, 'userListPage'])->name('users'); Route::post('/users', [SettingsController::class, 'createUser'])->name('create-user'); Route::match(['GET', 'DELETE'], '/users/{id}/delete', [SettingsController::class, 'deleteUser'])->name('delete-user'); Route::get('/general', [SettingsController::class, 'generalPage'])->name('general'); Route::put('/general', [SettingsController::class, 'updateUserInfos'])->name('update-user-infos'); }); Route::prefix('prestations')->name('prestations.')->group(function () { Route::get('/', [PrestationController::class, 'index'])->name('index'); Route::get('/create', [PrestationController::class, 'createPage'])->name('create'); Route::post('/', [PrestationController::class, 'store'])->name('store'); Route::get('/{prestation}/edit', [PrestationController::class, 'editPage'])->name('edit'); Route::put('/{prestation}', [PrestationController::class, 'update'])->name('update'); Route::match(['GET', 'DELETE'], '/{prestation}/delete', [PrestationController::class, 'delete'])->name('delete'); }); Route::prefix('events')->name('events.')->group(function () { Route::get('/', [EventController::class, 'index'])->name('index'); Route::get('/create', [EventController::class, 'createPage'])->name('create'); Route::post('/', [EventController::class, 'store'])->name('store'); Route::get('/{event}/edit', [EventController::class, 'editPage'])->name('edit'); Route::put('/{event}', [EventController::class, 'update'])->name('update'); Route::get('/{event}/delete', [EventController::class, 'delete'])->name('delete'); }); Route::prefix('terms')->name('terms.')->group(function () { Route::get('/', [TermsSectionController::class, 'index'])->name('index'); Route::get('/create', [TermsSectionController::class, 'createPage'])->name('create'); Route::post('/', [TermsSectionController::class, 'store'])->name('store'); Route::get('/{section}/edit', [TermsSectionController::class, 'editPage'])->name('edit'); Route::put('/{section}', [TermsSectionController::class, 'update'])->name('update'); Route::get('/{section}/delete', [TermsSectionController::class, 'delete'])->name('delete'); }); Route::prefix('legal-mentions')->name('legal_mentions.')->group(function () { Route::get('/', [LegalMentionController::class, 'index'])->name('index'); Route::get('/create', [LegalMentionController::class, 'createPage'])->name('create'); Route::post('/', [LegalMentionController::class, 'store'])->name('store'); Route::get('/{id}/edit', [LegalMentionController::class, 'editPage'])->name('edit'); Route::put('/{id}', [LegalMentionController::class, 'update'])->name('update'); Route::get('/{id}/delete', [LegalMentionController::class, 'delete'])->name('delete'); }); }); Route::get('/logout', function () { auth()->logout(); return redirect()->route('index'); })->name('logout');