Hard-delete Care remote Queue adapter (Phase 5).
Deploy Ladill Care / deploy (push) Failing after 1m13s
Deploy Ladill Care / deploy (push) Failing after 1m13s
Care Queue Engine is the only path; remove QueueClient, driver config, and remote HTTP tests. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -3,18 +3,18 @@
|
||||
namespace App\Services\Care;
|
||||
|
||||
use App\Models\Branch;
|
||||
use App\Models\CareServiceQueue;
|
||||
use App\Models\Department;
|
||||
use App\Models\Member;
|
||||
use App\Models\Organization;
|
||||
use App\Models\Practitioner;
|
||||
use App\Services\Queue\QueueClient;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
/**
|
||||
* Activate/deactivate specialty practice modules (dentistry, eye care, …).
|
||||
*
|
||||
* Persistence: organization.settings.specialty_modules[key] = bool
|
||||
* Provisioning: departments per branch + Care-side queue stubs (and best-effort Queue API sync).
|
||||
* Provisioning: departments per branch + Care Queue Engine stubs/points.
|
||||
* Deactivate hides UI and marks queues inactive; does not destroy clinical history.
|
||||
*
|
||||
* Plan gate: Pro/Enterprise via PlanService feature specialty_modules (same tier as queue_integration).
|
||||
@@ -23,7 +23,6 @@ class SpecialtyModuleService
|
||||
{
|
||||
public function __construct(
|
||||
protected PlanService $plans,
|
||||
protected QueueClient $queue,
|
||||
) {}
|
||||
|
||||
/**
|
||||
@@ -332,38 +331,18 @@ class SpecialtyModuleService
|
||||
|
||||
$fresh = $organization->fresh();
|
||||
if (data_get($fresh?->settings, 'queue_integration_enabled')) {
|
||||
if (config('care.queue.driver', 'native') === 'native') {
|
||||
$provisioner = app(CareQueueProvisioner::class);
|
||||
$branches = Branch::owned($ownerRef)
|
||||
->where('organization_id', $organization->id)
|
||||
->where('is_active', true)
|
||||
->pluck('id');
|
||||
foreach ($branches as $branchId) {
|
||||
try {
|
||||
$provisioner->ensure($fresh, $key, (int) $branchId);
|
||||
} catch (\Throwable $e) {
|
||||
Log::warning('specialty_module.native_queue_provision_failed', [
|
||||
'key' => $key,
|
||||
'branch_id' => $branchId,
|
||||
'message' => $e->getMessage(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
} elseif ($this->queue->configured()) {
|
||||
$provisioner = app(CareQueueProvisioner::class);
|
||||
$branches = Branch::owned($ownerRef)
|
||||
->where('organization_id', $organization->id)
|
||||
->where('is_active', true)
|
||||
->pluck('id');
|
||||
foreach ($branches as $branchId) {
|
||||
try {
|
||||
$synced = $this->queue->syncSpecialtyQueueStubs($ownerRef, $queueStubs);
|
||||
$settings = $fresh->settings ?? [];
|
||||
$provisioning = is_array($settings['specialty_module_provisioning'] ?? null)
|
||||
? $settings['specialty_module_provisioning']
|
||||
: [];
|
||||
$provisioning[$key] = array_merge($provisioning[$key] ?? [], [
|
||||
'queues' => $synced,
|
||||
]);
|
||||
$settings['specialty_module_provisioning'] = $provisioning;
|
||||
$organization->update(['settings' => $settings]);
|
||||
$provisioner->ensure($fresh, $key, (int) $branchId);
|
||||
} catch (\Throwable $e) {
|
||||
Log::warning('specialty_module.queue_sync_failed', [
|
||||
Log::warning('specialty_module.native_queue_provision_failed', [
|
||||
'key' => $key,
|
||||
'branch_id' => $branchId,
|
||||
'message' => $e->getMessage(),
|
||||
]);
|
||||
}
|
||||
@@ -399,27 +378,21 @@ class SpecialtyModuleService
|
||||
}
|
||||
|
||||
$queues = is_array($record['queues'] ?? null) ? $record['queues'] : [];
|
||||
foreach ($queues as $i => $queue) {
|
||||
$queues[$i]['active'] = false;
|
||||
}
|
||||
|
||||
if (
|
||||
data_get($settings, 'queue_integration_enabled')
|
||||
&& config('care.queue.driver', 'native') !== 'native'
|
||||
&& $this->queue->configured()
|
||||
&& $queues !== []
|
||||
) {
|
||||
if (data_get($settings, 'queue_integration_enabled') && $queues !== []) {
|
||||
try {
|
||||
$queues = $this->queue->deactivateSpecialtyQueueStubs($ownerRef, $queues);
|
||||
CareServiceQueue::query()
|
||||
->where('organization_id', $organization->id)
|
||||
->where('context', $key)
|
||||
->update(['is_active' => false]);
|
||||
} catch (\Throwable $e) {
|
||||
Log::warning('specialty_module.queue_deactivate_failed', [
|
||||
'key' => $key,
|
||||
'message' => $e->getMessage(),
|
||||
]);
|
||||
foreach ($queues as $i => $queue) {
|
||||
$queues[$i]['active'] = false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
foreach ($queues as $i => $queue) {
|
||||
$queues[$i]['active'] = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user