feat: Add DNS management resources and importer

- Implemented DomainCollection, DomainDetailResource, DomainNSCollection, DomainNSResource, and DomainResource for handling DNS domain and record data.
- Created VpsServiceCollection and VpsServiceResource for VPS service management.
- Added DnsManagerNS and DnsManagerUser models to represent DNS records and user associations.
- Developed AdminZoneDnsSqlImporter for importing DNS data from SQL dumps, including customer and DNS domain records.
- Added migration scripts to update the customers table with new fields and sync foreign key references for DNS tables.
- Created a migration preview document outlining the mapping and schema changes for the admin zone DNS import.
This commit is contained in:
baodev0
2026-05-26 13:54:33 +07:00
parent 520f21cb11
commit fccb0c353a
30 changed files with 4030 additions and 105 deletions
+10
View File
@@ -19,6 +19,7 @@ use App\Http\Controllers\Api\Admin\VPS\VPSController;
use App\Http\Controllers\Api\Admin\VCenter\VCenterController;
use App\Http\Controllers\Api\Admin\DnsManager\ServerController as DnsServerController;
use App\Http\Controllers\Api\Admin\DnsManager\DomainController as DnsDomainController;
use App\Http\Controllers\Api\Admin\DnsManager\RecordController as DnsRecordController;
use App\Http\Controllers\Api\Admin\OsManager\OsGroupController;
use App\Http\Controllers\Api\Admin\OsManager\OsController;
use App\Http\Controllers\Api\Admin\IpPool\IpPoolController;
@@ -344,10 +345,19 @@ Route::prefix('v1')
Route::get('/', 'index')->middleware('perm:domain.manager');
Route::post('/', 'store')->middleware('perm:domain.manager');
Route::get('{id}', 'show')->middleware('perm:domain.manager');
Route::post('{id}/check-connection', 'checkConnection')->middleware('perm:domain.manager');
Route::put('{id}', 'update')->middleware('perm:domain.manager');
Route::delete('{id}', 'destroy')->middleware('perm:domain.manager');
});
Route::prefix('dns-records')
->controller(DnsRecordController::class)
->group(function () {
Route::get('/', 'index')->middleware('perm:domain.manager');
Route::get('{id}', 'show')->middleware('perm:domain.manager');
Route::put('{id}', 'update')->middleware('perm:domain.manager');
});
// InfraManagement (jumphost, vcenter config)
Route::prefix('infra-management')
->controller(InfraManagementController::class)