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:
@@ -15,13 +15,21 @@ class ServiceClientRepository extends BaseApiRepository implements ServiceClient
|
||||
/**
|
||||
* Lấy toàn bộ dịch vụ của customer (mọi trạng thái)
|
||||
*/
|
||||
public function getActiveServices(int $limit = 10)
|
||||
public function getActiveServices(int $customerId, ?string $productType = null, int $limit = 10)
|
||||
{
|
||||
return $this->model
|
||||
$query = $this->model
|
||||
->with(['orderItem' => fn($q) => $q->with(['product', 'os.osGroup'])])
|
||||
->where('customer_id', $customerId)
|
||||
->orderByRaw("FIELD(status, 'active', 'pending', 'suspended', 'expired', 'cancelled', 'terminated')")
|
||||
->orderBy('started_at', 'desc')
|
||||
->paginate($limit);
|
||||
->orderBy('started_at', 'desc');
|
||||
|
||||
if ($productType) {
|
||||
$query->whereHas('orderItem.product', function ($builder) use ($productType) {
|
||||
$builder->where('product_type', $productType);
|
||||
});
|
||||
}
|
||||
|
||||
return $query->paginate($limit);
|
||||
}
|
||||
|
||||
public function findActiveBySlug(string $slug)
|
||||
@@ -44,7 +52,7 @@ class ServiceClientRepository extends BaseApiRepository implements ServiceClient
|
||||
return $pricing ? $pricing->price : null;
|
||||
}
|
||||
|
||||
public function getDetailService(string $uuid)
|
||||
public function getDetailService(string $uuid, int $customerId)
|
||||
{
|
||||
return $this->model
|
||||
->with([
|
||||
@@ -54,6 +62,7 @@ class ServiceClientRepository extends BaseApiRepository implements ServiceClient
|
||||
'vmware.ipAddress',
|
||||
])
|
||||
->where('uuid', $uuid)
|
||||
->where('customer_id', $customerId)
|
||||
->first();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user