Compare commits

..

No commits in common. "feat/test-usage-billing-service" and "dev" have entirely different histories.

View file

@ -52,12 +52,10 @@ Route::prefix('webhooks')->group(function () {
// }); // });
// ───────────────────────────────────────────────────────────────────────────── // ─────────────────────────────────────────────────────────────────────────────
// Commerce Billing API (authenticated + verified) // Commerce Billing API (authenticated)
// ───────────────────────────────────────────────────────────────────────────── // ─────────────────────────────────────────────────────────────────────────────
Route::middleware(['auth', 'verified'])->prefix('commerce')->group(function () { Route::middleware('auth')->prefix('commerce')->group(function () {
// ── Read-only endpoints ──────────────────────────────────────────────
// Billing overview // Billing overview
Route::get('/billing', [CommerceController::class, 'billing']) Route::get('/billing', [CommerceController::class, 'billing'])
->name('api.commerce.billing'); ->name('api.commerce.billing');
@ -76,27 +74,21 @@ Route::middleware(['auth', 'verified'])->prefix('commerce')->group(function () {
Route::get('/invoices/{invoice}/download', [CommerceController::class, 'downloadInvoice']) Route::get('/invoices/{invoice}/download', [CommerceController::class, 'downloadInvoice'])
->name('api.commerce.invoices.download'); ->name('api.commerce.invoices.download');
// Subscription (read) // Subscription
Route::get('/subscription', [CommerceController::class, 'subscription']) Route::get('/subscription', [CommerceController::class, 'subscription'])
->name('api.commerce.subscription'); ->name('api.commerce.subscription');
Route::post('/cancel', [CommerceController::class, 'cancelSubscription'])
->name('api.commerce.cancel');
Route::post('/resume', [CommerceController::class, 'resumeSubscription'])
->name('api.commerce.resume');
// Usage // Usage
Route::get('/usage', [CommerceController::class, 'usage']) Route::get('/usage', [CommerceController::class, 'usage'])
->name('api.commerce.usage'); ->name('api.commerce.usage');
// ── State-changing endpoints (rate-limited) ────────────────────────── // Plan changes
Route::post('/upgrade/preview', [CommerceController::class, 'previewUpgrade'])
Route::middleware('throttle:6,1')->group(function () { ->name('api.commerce.upgrade.preview');
// Subscription management Route::post('/upgrade', [CommerceController::class, 'executeUpgrade'])
Route::post('/cancel', [CommerceController::class, 'cancelSubscription']) ->name('api.commerce.upgrade');
->name('api.commerce.cancel');
Route::post('/resume', [CommerceController::class, 'resumeSubscription'])
->name('api.commerce.resume');
// Plan changes
Route::post('/upgrade/preview', [CommerceController::class, 'previewUpgrade'])
->name('api.commerce.upgrade.preview');
Route::post('/upgrade', [CommerceController::class, 'executeUpgrade'])
->name('api.commerce.upgrade');
});
}); });