feat: bật/tắt yêu cầu hoàn tất hồ sơ, xoá dịch vụ kèm đơn/hoá đơn, sync tên VM đã gán

- setting.require_complete_profile (mặc định bật), trả qua GET v1/setting
- bulkDeleteServices xoá mềm invoice nâng cấp + order mồ côi (ServiceOrderRecorder::discardOrder)
- createService trỏ dịch vụ sang order mới thì bỏ order cũ
- SyncVirtualMachine cập nhật name + gắn virtual_machine_id cho module_vmware

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
baodev0
2026-10-15 08:04:02 +07:00
co-authored by Claude Opus 5.5
parent bf78f3b810
commit 0bd15f6018
9 changed files with 198 additions and 9 deletions
@@ -143,6 +143,21 @@ class ServiceOrderRecorder
$invoice->order?->update(['status' => OrderStatus::CANCELLED->value]);
}
public function discardOrder(?int $orderItemId): void
{
$order = $orderItemId ? OrderItem::find($orderItemId)?->order : null;
if (! $order) {
return;
}
if (Service::whereIn('order_item_id', $order->orderItems()->pluck('id'))->exists()) {
return;
}
$order->invoices()->delete();
$order->delete();
}
public function listPrice(?Product $product, string $billingCycle, ?string $serverName): ?int
{
if ($product?->product_type === 'domain') {