implemented event package addons with filament resource, event-admin purchase path and notifications, showing up in purchase history

This commit is contained in:
Codex Agent
2025-11-21 11:25:45 +01:00
parent 07fe049b8a
commit 7a8d22a238
58 changed files with 3339 additions and 60 deletions

View File

@@ -7,6 +7,8 @@ use App\Http\Controllers\Api\Marketing\CouponPreviewController;
use App\Http\Controllers\Api\PackageController;
use App\Http\Controllers\Api\Tenant\DashboardController;
use App\Http\Controllers\Api\Tenant\EmotionController;
use App\Http\Controllers\Api\Tenant\EventAddonCatalogController;
use App\Http\Controllers\Api\Tenant\EventAddonController;
use App\Http\Controllers\Api\Tenant\EventController;
use App\Http\Controllers\Api\Tenant\EventGuestNotificationController;
use App\Http\Controllers\Api\Tenant\EventJoinTokenController;
@@ -148,6 +150,8 @@ Route::prefix('v1')->name('api.v1.')->group(function () {
Route::get('toolkit', [EventController::class, 'toolkit'])->name('tenant.events.toolkit');
Route::get('guest-notifications', [EventGuestNotificationController::class, 'index'])->name('tenant.events.guest-notifications.index');
Route::post('guest-notifications', [EventGuestNotificationController::class, 'store'])->name('tenant.events.guest-notifications.store');
Route::post('addons/apply', [EventAddonController::class, 'apply'])->name('tenant.events.addons.apply');
Route::post('addons/checkout', [EventAddonController::class, 'checkout'])->name('tenant.events.addons.checkout');
});
Route::prefix('join-tokens')->group(function () {
@@ -266,13 +270,25 @@ Route::prefix('v1')->name('api.v1.')->group(function () {
Route::post('/paddle-checkout', [PackageController::class, 'createPaddleCheckout'])->name('packages.paddle-checkout');
});
Route::get('addons/catalog', [EventAddonCatalogController::class, 'index'])
->middleware('tenant.admin')
->name('tenant.addons.catalog');
Route::prefix('tenant/packages')->middleware('tenant.admin')->group(function () {
Route::get('/', [TenantPackageController::class, 'index'])->name('tenant.packages.index');
});
Route::get('tenant/billing/transactions', [TenantBillingController::class, 'transactions'])
->middleware('tenant.admin')
->name('tenant.billing.transactions');
Route::prefix('billing')->middleware('tenant.admin')->group(function () {
Route::get('transactions', [TenantBillingController::class, 'transactions'])
->name('tenant.billing.transactions');
Route::get('addons', [TenantBillingController::class, 'addons'])
->name('tenant.billing.addons');
});
Route::prefix('tenant/billing')->middleware('tenant.admin')->group(function () {
Route::get('transactions', [TenantBillingController::class, 'transactions']);
Route::get('addons', [TenantBillingController::class, 'addons']);
});
Route::post('feedback', [TenantFeedbackController::class, 'store'])
->name('tenant.feedback.store');