diff --git a/app/Http/Resources/Api/Client/Service/ServiceClientResource.php b/app/Http/Resources/Api/Client/Service/ServiceClientResource.php
index f9d2a43..a082e31 100644
--- a/app/Http/Resources/Api/Client/Service/ServiceClientResource.php
+++ b/app/Http/Resources/Api/Client/Service/ServiceClientResource.php
@@ -18,13 +18,26 @@ class ServiceClientResource extends JsonResource
return [];
}
+ $orderItem = $this->orderItem;
+ $product = $orderItem?->product;
+
return [
- 'uuid' => $this->uuid,
+ 'uuid' => $this->uuid,
'server_name' => $this->server_name,
- 'status' => $this->status,
- 'auto_renew' => $this->auto_renew,
- 'started_at' => $this->started_at?->toISOString(),
- 'expires_at' => $this->expires_at?->toISOString(),
+ 'status' => $this->status,
+ 'auto_renew' => $this->auto_renew,
+ 'started_at' => $this->started_at?->toISOString(),
+ 'expires_at' => $this->expires_at?->toISOString(),
+ 'os' => [
+ 'version' => $orderItem?->os?->version,
+ 'group' => $orderItem?->os?->osGroup?->name,
+ ],
+ 'specs' => $product ? [
+ 'cpu' => (int) ($product->cpu ?? 0),
+ 'ram' => (int) ($product->ram ?? 0),
+ 'disk' => (int) ($product->disk ?? 0),
+ 'bandwidth' => (int) ($product->bandwidth ?? 0),
+ ] : null,
];
}
}
diff --git a/app/Repositories/Api/Invoice/InvoiceRepository.php b/app/Repositories/Api/Invoice/InvoiceRepository.php
index d8cca1b..f5a9615 100644
--- a/app/Repositories/Api/Invoice/InvoiceRepository.php
+++ b/app/Repositories/Api/Invoice/InvoiceRepository.php
@@ -35,6 +35,8 @@ class InvoiceRepository extends BaseApiRepository implements InvoiceRepositoryIn
public function createFromOrder(Order $order): Invoice
{
+ $maxMonths = $order->orderItems->max(fn($item) => $this->cycleToMonths($item->billing_cycle)) ?? 1;
+
$invoice = $this->model->create([
'invoice_number' => OrderHelper::generateOrderNumber('INV'),
'customer_id' => $order->customer_id,
@@ -45,7 +47,7 @@ class InvoiceRepository extends BaseApiRepository implements InvoiceRepositoryIn
'tax' => 0,
'total' => $order->total,
'status' => InvoiceStatus::UNPAID->value,
- 'due_date' => now()->addDays(3)->toDateString(),
+ 'due_date' => now()->addMonths($maxMonths)->toDateString(),
]);
// Create one invoice_item per order_item line
diff --git a/app/Repositories/Api/ServiceClient/ServiceClientRepository.php b/app/Repositories/Api/ServiceClient/ServiceClientRepository.php
index 73bc0ed..e28c1cc 100644
--- a/app/Repositories/Api/ServiceClient/ServiceClientRepository.php
+++ b/app/Repositories/Api/ServiceClient/ServiceClientRepository.php
@@ -18,7 +18,7 @@ class ServiceClientRepository extends BaseApiRepository implements ServiceClient
public function getActiveServices(int $limit = 10)
{
return $this->model
- ->with(['orderItem' => fn($q) => $q->with('product')])
+ ->with(['orderItem' => fn($q) => $q->with(['product', 'os.osGroup'])])
->orderByRaw("FIELD(status, 'active', 'pending', 'suspended', 'expired', 'cancelled', 'terminated')")
->orderBy('started_at', 'desc')
->paginate($limit);
diff --git a/public/uploads/images/icon-centos.svg b/public/uploads/images/icon-centos.svg
deleted file mode 100644
index c1897d8..0000000
--- a/public/uploads/images/icon-centos.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
diff --git a/public/uploads/images/icon-ubuntu.svg b/public/uploads/images/icon-ubuntu.svg
deleted file mode 100644
index 02e8546..0000000
--- a/public/uploads/images/icon-ubuntu.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
\ No newline at end of file
diff --git a/public/uploads/images/icon-windows.svg b/public/uploads/images/icon-windows.svg
deleted file mode 100644
index fb53a50..0000000
--- a/public/uploads/images/icon-windows.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-