Files
2026-09-09 16:56:22 +07:00

42 lines
1.3 KiB
PHP

<?php
namespace App\Integrations\Whmcs\Writers;
use App\Integrations\Whmcs\DTOs\ServiceData;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
class ServiceWriter
{
/**
* Skips services whose WHMCS client couldn't be resolved to a local customer —
* services.customer_id is NOT NULL.
*/
public function write(ServiceData $data): bool
{
if ($data->customerId === null) {
return false;
}
DB::table('services')->updateOrInsert(
['legacy_id' => $data->legacyId],
[
'uuid' => DB::table('services')->where('legacy_id', $data->legacyId)->value('uuid') ?? (string) Str::uuid(),
'customer_id' => $data->customerId,
'product_id' => $data->productId,
'legacy_product_id' => $data->legacyProductId,
'order_item_id' => $data->orderItemId,
'server_name' => $data->serverName,
'status' => $data->status,
'auto_renew' => $data->autoRenew,
'started_at' => $data->startedAt,
'expires_at' => $data->expiresAt,
'cancelled_at' => $data->cancelledAt,
'note' => $data->note,
]
);
return true;
}
}