100 lines
4.6 KiB
PHP
100 lines
4.6 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\Api\Admin\Bank\BankController;
|
|
use App\Http\Controllers\Api\Admin\Invoice\InvoiceController;
|
|
use App\Http\Controllers\Api\Admin\Order\OrderController;
|
|
use App\Http\Controllers\Api\Admin\Payment\PaymentController;
|
|
use App\Http\Controllers\Api\Admin\Report\ExportController;
|
|
use App\Http\Controllers\Api\Admin\Transaction\AdminTransactionController;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
// Orders (module: order)
|
|
Route::prefix('orders')
|
|
->controller(OrderController::class)
|
|
->group(function () {
|
|
Route::get('/', 'index')->middleware('perm:order.view');
|
|
Route::get('export', 'export')->middleware('perm:order.view');
|
|
Route::get('/domain-pricing', 'domainPricing')->middleware('perm:order.create');
|
|
Route::post('/upload-proof', 'uploadProof')->middleware('perm:order.create');
|
|
Route::post('/', 'store')->middleware('perm:order.create');
|
|
Route::get('{id}', 'show')->middleware('perm:order.view');
|
|
Route::put('{id}', 'update')->middleware('perm:order.edit');
|
|
Route::delete('{id}', 'destroy')->middleware('perm:order.destroy');
|
|
Route::post('{id}/accept', 'accept')->middleware('perm:order.edit');
|
|
Route::post('{id}/cancel', 'cancel')->middleware('perm:order.edit');
|
|
});
|
|
|
|
// Invoices (module: invoice)
|
|
Route::prefix('invoices')
|
|
->controller(InvoiceController::class)
|
|
->group(function () {
|
|
Route::get('/', 'index')->middleware('perm:invoice.view');
|
|
Route::get('export', 'export')->middleware('perm:invoice.view');
|
|
Route::post('/', 'store')->middleware('perm:invoice.create');
|
|
Route::get('{id}', 'show')->middleware('perm:invoice.view');
|
|
Route::put('{id}', 'update')->middleware('perm:invoice.edit');
|
|
Route::delete('{id}', 'destroy')->middleware('perm:invoice.destroy');
|
|
Route::post('{id}/paid', 'markAsPaid')->middleware('perm:invoice.edit');
|
|
Route::post('{id}/cancel', 'cancel')->middleware('perm:invoice.edit');
|
|
Route::post('{id}/remind', 'remind')->middleware('perm:invoice.edit');
|
|
Route::post('{id}/refund', 'refund')->middleware('perm:invoice.edit');
|
|
// Attachments
|
|
Route::get('{id}/attachments', 'listAttachments')->middleware('perm:invoice.view');
|
|
Route::post('{id}/attachments', 'uploadAttachment')->middleware('perm:invoice.edit');
|
|
Route::delete('{id}/attachments/{attachmentId}', 'deleteAttachment')->middleware(
|
|
'perm:invoice.edit',
|
|
);
|
|
// Send mail notification
|
|
Route::post('{id}/send-mail', 'sendMail')->middleware('perm:invoice.edit');
|
|
Route::post('{id}/send-mail/preview', 'previewMail')->middleware('perm:invoice.edit');
|
|
});
|
|
|
|
// Reports / Data exports
|
|
Route::prefix('reports/export')
|
|
->controller(ExportController::class)
|
|
->middleware('perm:report.view')
|
|
->group(function () {
|
|
Route::get('history', 'history');
|
|
Route::post('preview', 'preview');
|
|
Route::post('/', 'store');
|
|
Route::get('{uuid}', 'show');
|
|
Route::get('{uuid}/download', 'download');
|
|
});
|
|
|
|
// Payments (module: payment)
|
|
Route::prefix('payments')
|
|
->controller(PaymentController::class)
|
|
->group(function () {
|
|
Route::get('for-select', 'forSelect');
|
|
Route::get('/', 'index')->middleware('perm:payment.view');
|
|
Route::post('/', 'store')->middleware('perm:payment.create');
|
|
Route::get('{id}', 'show')->middleware('perm:payment.view');
|
|
Route::put('{id}', 'update')->middleware('perm:payment.edit');
|
|
Route::delete('{id}', 'destroy')->middleware('perm:payment.destroy');
|
|
});
|
|
|
|
// Banks — deposit bank accounts (module: settings)
|
|
Route::prefix('banks')
|
|
->controller(BankController::class)
|
|
->middleware('perm:setting.manager')
|
|
->group(function () {
|
|
Route::get('/', 'index');
|
|
Route::post('/', 'store');
|
|
Route::put('{id}', 'update');
|
|
Route::delete('{id}', 'destroy');
|
|
Route::post('{id}/restore', 'restore');
|
|
});
|
|
|
|
// Transactions — manual deposit review (module: transaction)
|
|
Route::prefix('transactions')
|
|
->controller(AdminTransactionController::class)
|
|
->group(function () {
|
|
Route::get('/', 'index')->middleware('perm:customer.view');
|
|
Route::post('/', 'store')->middleware('perm:customer.edit');
|
|
Route::get('export', 'export')->middleware('perm:customer.view');
|
|
Route::get('pending-count', 'pendingCount')->middleware('perm:customer.view');
|
|
Route::post('{uuid}/approve', 'approve')->middleware('perm:customer.edit');
|
|
Route::post('{uuid}/reject', 'reject')->middleware('perm:customer.edit');
|
|
Route::delete('{uuid}', 'destroy')->middleware('perm:customer.edit');
|
|
});
|