Files
preregister/routes/web.php

60 lines
3.1 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\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/{publicPage:slug}', [PublicPageController::class, 'show'])->name('public.page');
Route::post('/r/{publicPage: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) — export before index so the path is unambiguous
Route::get('pages/{page}/subscribers/export', [SubscriberController::class, 'export'])->name('pages.subscribers.export');
Route::post('pages/{page}/subscribers/queue-mailwizz-sync', [SubscriberController::class, 'queueMailwizzSync'])->name('pages.subscribers.queue-mailwizz-sync');
Route::get('pages/{page}/subscribers', [SubscriberController::class, 'index'])->name('pages.subscribers.index');
// 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';