feat(billing): renewals, coupons, VAT numbering, billing cycles and invoice payment tracking
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
ea9a53f742
commit
25f23d541e
@@ -6,6 +6,7 @@ use App\Http\Controllers\Api\Client\Domain\DomainOrderController as ClientDomain
|
||||
use App\Http\Controllers\Api\Client\Domain\DomainPricingController;
|
||||
use App\Http\Controllers\Api\Client\Service\DomainController as ClientDomainController;
|
||||
use App\Http\Controllers\Api\Client\Service\ServiceController as ClientServiceController;
|
||||
use App\Http\Controllers\Api\Service\CouponPreviewController;
|
||||
use App\Http\Controllers\Api\Service\OrderControllerRefactor;
|
||||
use App\Http\Controllers\Api\Service\ProductCategoryController;
|
||||
use App\Http\Controllers\Api\Service\ServiceController;
|
||||
@@ -14,6 +15,8 @@ use App\Http\Controllers\Api\Service\VmController;
|
||||
use App\Http\Controllers\Api\Service\VmRebuildController;
|
||||
use App\Http\Controllers\Api\Admin\Domain\InetDomainController;
|
||||
use App\Http\Controllers\Api\Client\AdministrativeDivisionController;
|
||||
use App\Http\Controllers\Api\Client\BillingProfileController;
|
||||
use App\Http\Controllers\Api\Client\InvoiceLookupController;
|
||||
use App\Http\Controllers\Api\Client\BankController as ClientBankController;
|
||||
use App\Http\Controllers\Api\Client\Docs\PostCategoryController as ClientPostCategoryController;
|
||||
use App\Http\Controllers\Api\Client\Docs\PostController as ClientPostController;
|
||||
@@ -50,6 +53,8 @@ Route::prefix('v1')
|
||||
Route::put('update', 'update')->name('update');
|
||||
Route::get('login-history', 'loginHistory')->name('login-history');
|
||||
Route::put('preferences', 'updatePreferences')->name('preferences.update');
|
||||
Route::get('billing-profile', [BillingProfileController::class, 'show'])->name('billing-profile.show');
|
||||
Route::put('billing-profile', [BillingProfileController::class, 'update'])->name('billing-profile.update');
|
||||
Route::post('update-cccd', 'updateCccd')->name('update-cccd');
|
||||
Route::put('change-password', 'changePassword')->name('change-password');
|
||||
Route::get('two-factor', 'twoFactorStatus')->name('two-factor.status');
|
||||
@@ -80,6 +85,9 @@ Route::prefix('v1')
|
||||
Route::get('invoices/order/{orderNum}/pdf', 'downloadInvoicePdfByOrderNum')->name(
|
||||
'invoices.pdfByOrderNum',
|
||||
);
|
||||
Route::get('orders/{orderNum}/contracts/{attachmentId}', 'downloadOrderContract')->name(
|
||||
'orders.contract',
|
||||
);
|
||||
Route::get('invoices/{id}', 'getClientInvoiceDetail')->name('invoices.detail');
|
||||
Route::get('dich-vu', 'getClientServices')->name('services.list');
|
||||
Route::patch('dich-vu/{id}/auto-renew', 'updateClientServiceAutoRenew')->name(
|
||||
@@ -192,6 +200,7 @@ Route::prefix('v1')
|
||||
Route::get('/', 'getList')->name('list');
|
||||
Route::get('check-server-name', 'checkServerName')->name('check-server-name');
|
||||
Route::post('/', 'storeOrder')->name('store');
|
||||
Route::post('coupon-preview', CouponPreviewController::class)->middleware('throttle:20,1')->name('coupon-preview');
|
||||
Route::post('{orderNum}/pay', 'payOrder')->name('pay');
|
||||
});
|
||||
});
|
||||
@@ -290,6 +299,15 @@ Route::prefix('v1')
|
||||
});
|
||||
});
|
||||
|
||||
Route::prefix('v1/invoice-lookup')
|
||||
->middleware(['client.access-token', 'throttle:invoice-lookup', 'turnstile'])
|
||||
->controller(InvoiceLookupController::class)
|
||||
->as('api.invoice-lookup.')
|
||||
->group(function () {
|
||||
Route::post('/', 'show')->name('show');
|
||||
Route::post('pdf', 'pdf')->name('pdf');
|
||||
});
|
||||
|
||||
Route::get('v1/payment/vnpay/return', [TransactionController::class, 'returnCallback']);
|
||||
|
||||
Route::prefix('v1/system')
|
||||
|
||||
Reference in New Issue
Block a user