Implement catalog CRUD overhaul, snapshot fallback activation, and billing/UX hardening

This commit is contained in:
Dwindi Ramadhana
2026-02-17 00:03:35 +07:00
parent e6aef31dd1
commit 2726b6c312
37 changed files with 2936 additions and 204 deletions

View File

@@ -8,7 +8,6 @@ use App\Http\Controllers\Api\V1\AdminSettingsController;
use App\Http\Controllers\Api\V1\AdminSubscriptionController;
use App\Http\Controllers\Api\V1\AdminAnalyticsController;
use App\Http\Controllers\Api\V1\AdminWebhookController;
use App\Http\Controllers\Api\V1\PaypalWebhookController;
use App\Http\Controllers\Api\V1\ExtensionController;
use App\Http\Controllers\Api\V1\UserController;
use App\Http\Controllers\Api\V1\UserKeywordController;
@@ -55,6 +54,7 @@ Route::prefix('v1')->group(function () {
Route::get('/keywords', [UserKeywordController::class, 'index']);
Route::post('/keywords', [UserKeywordController::class, 'store']);
Route::put('/keywords/{id}', [UserKeywordController::class, 'update']);
Route::put('/keywords/{id}/active', [UserKeywordController::class, 'toggleActive']);
Route::delete('/keywords/{id}', [UserKeywordController::class, 'destroy']);
Route::post('/keywords/import', [UserKeywordController::class, 'import']);
Route::get('/keywords/export', [UserKeywordController::class, 'export']);
@@ -76,7 +76,8 @@ Route::prefix('v1')->group(function () {
Route::get('/admin/webhooks/{id}', [AdminWebhookController::class, 'show']);
Route::post('/admin/webhooks/{id}/replay', [AdminWebhookController::class, 'replay']);
Route::post('/paypal/webhook', [PaypalWebhookController::class, 'handle']);
// Keep /v1 alias for backward compatibility, but use the same canonical webhook handler.
Route::post('/paypal/webhook', [PayPalController::class, 'webhook']);
Route::get('/health', [SystemController::class, 'health']);
Route::get('/metrics-lite', [SystemController::class, 'metricsLite']);