feat: add manual deposit system, implement Bank model, remove Docker configs, and initialize comprehensive Laravel best practice documentation for AI agents.

This commit is contained in:
pbao9
2026-05-14 16:33:35 +07:00
parent ae3b681aaa
commit 41de3744a8
73 changed files with 5397 additions and 218 deletions
+32
View File
@@ -21,6 +21,8 @@ use App\Http\Controllers\Api\Admin\DnsManager\DomainController as DnsDomainContr
use App\Http\Controllers\Api\Admin\OsManager\OsGroupController;
use App\Http\Controllers\Api\Admin\OsManager\OsController;
use App\Http\Controllers\Api\Admin\IpPool\IpPoolController;
use App\Http\Controllers\Api\Admin\Bank\BankController;
use App\Http\Controllers\Api\Admin\Transaction\AdminTransactionController;
use App\Http\Controllers\Api\System\CompressionTestController;
use App\Http\Services\Media;
use App\Http\Services\vCenter as ServiceVCenter;
@@ -294,6 +296,15 @@ Route::prefix('v1')
Route::put('/', 'update');
});
// Dashboard Stats
Route::prefix('dashboard')
->controller(\App\Http\Controllers\Api\Admin\Dashboard\DashboardController::class)
->group(function () {
Route::get('stats', 'stats');
Route::get('monthly-stats', 'monthlyStats');
Route::get('latest-customers', 'latestCustomers');
});
// Staff Online
Route::prefix('staff-online')
->controller(StaffOnlineController::class)
@@ -312,6 +323,27 @@ Route::prefix('v1')
Route::get('jobs/metrics', 'metrics');
});
// Banks — deposit bank accounts (module: settings)
Route::prefix('banks')
->controller(BankController::class)
->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::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');
});
// IP Pool (module: module-vcenter)
Route::prefix('ip-pool')
->controller(IpPoolController::class)