60 lines
2.9 KiB
PHP
60 lines
2.9 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Http\Controllers\Admin\DashboardController;
|
|
use App\Http\Controllers\Admin\MailwizzApiController;
|
|
use App\Http\Controllers\Admin\MailwizzController;
|
|
use App\Http\Controllers\Admin\PageController;
|
|
use App\Http\Controllers\Admin\SubscriberController;
|
|
use App\Http\Controllers\Admin\UserController;
|
|
use App\Http\Controllers\Auth\AuthenticatedSessionController;
|
|
use App\Http\Controllers\ProfileController;
|
|
use App\Http\Controllers\PublicPageController;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
// ─── Root redirect ───────────────────────────────────────
|
|
Route::get('/', function () {
|
|
return redirect()->route('admin.dashboard');
|
|
});
|
|
|
|
// ─── Public (no auth) ────────────────────────────────────
|
|
Route::middleware('throttle:10,1')->group(function () {
|
|
Route::get('/r/{slug}', [PublicPageController::class, 'show'])->name('public.page');
|
|
Route::post('/r/{slug}/subscribe', [PublicPageController::class, 'subscribe'])->name('public.subscribe');
|
|
});
|
|
|
|
// ─── Backend (auth required) ─────────────────────────────
|
|
Route::middleware(['auth', 'verified'])->prefix('admin')->name('admin.')->group(function () {
|
|
|
|
Route::get('/dashboard', DashboardController::class)->name('dashboard');
|
|
|
|
// Pre-registration pages (CRUD)
|
|
Route::resource('pages', PageController::class);
|
|
|
|
// Subscribers (nested under pages)
|
|
Route::get('pages/{page}/subscribers', [SubscriberController::class, 'index'])->name('pages.subscribers.index');
|
|
Route::get('pages/{page}/subscribers/export', [SubscriberController::class, 'export'])->name('pages.subscribers.export');
|
|
|
|
// Mailwizz configuration (nested under pages)
|
|
Route::get('pages/{page}/mailwizz', [MailwizzController::class, 'edit'])->name('pages.mailwizz.edit');
|
|
Route::put('pages/{page}/mailwizz', [MailwizzController::class, 'update'])->name('pages.mailwizz.update');
|
|
Route::delete('pages/{page}/mailwizz', [MailwizzController::class, 'destroy'])->name('pages.mailwizz.destroy');
|
|
|
|
// Mailwizz AJAX endpoints
|
|
Route::post('mailwizz/lists', [MailwizzApiController::class, 'lists'])->name('mailwizz.lists');
|
|
Route::post('mailwizz/fields', [MailwizzApiController::class, 'fields'])->name('mailwizz.fields');
|
|
|
|
// User management (superadmin only)
|
|
Route::middleware('role:superadmin')->group(function () {
|
|
Route::resource('users', UserController::class)->except(['show']);
|
|
});
|
|
|
|
// Profile (Breeze)
|
|
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
|
|
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
|
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
|
|
});
|
|
|
|
require __DIR__.'/auth.php';
|