Expose Care service-token APIs to create queues and counters.
Deploy Ladill Queue / deploy (push) Successful in 1m0s

Specialty module activation needs idempotent queue/counter upserts
(by external_key or name+branch) plus soft deactivate, without
opening Queue admin for each Care specialty.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-17 16:03:16 +00:00
co-authored by Cursor
parent 01792b38e7
commit 9edf573d39
5 changed files with 484 additions and 33 deletions
+10
View File
@@ -31,6 +31,8 @@ Route::prefix('v1/public')->group(function () {
Route::middleware(['auth:sanctum', 'qms.setup'])->prefix('v1')->group(function () {
Route::get('/queues', [ServiceQueueController::class, 'index'])->name('api.queues.index');
Route::post('/queues', [ServiceQueueController::class, 'store'])->name('api.queues.store');
Route::patch('/queues/{serviceQueue}', [ServiceQueueController::class, 'update'])->name('api.queues.update');
Route::get('/queues/{serviceQueue}/waiting', [ServiceQueueController::class, 'waiting'])->name('api.queues.waiting');
Route::post('/queues/{serviceQueue}/pause', [ServiceQueueController::class, 'pause'])->name('api.queues.pause');
Route::post('/queues/{serviceQueue}/resume', [ServiceQueueController::class, 'resume'])->name('api.queues.resume');
@@ -43,6 +45,7 @@ Route::middleware(['auth:sanctum', 'qms.setup'])->prefix('v1')->group(function (
Route::get('/counters', [CounterController::class, 'index'])->name('api.counters.index');
Route::post('/counters', [CounterController::class, 'store'])->name('api.counters.store');
Route::patch('/counters/{counter}', [CounterController::class, 'update'])->name('api.counters.update');
Route::get('/appointments', [AppointmentController::class, 'index'])->name('api.appointments.index');
Route::post('/appointments', [AppointmentController::class, 'store'])->name('api.appointments.store');
@@ -68,7 +71,12 @@ Route::middleware(['auth.service:qms'])->prefix('v1')->group(function () {
});
Route::middleware(['auth.service:qms', 'qms.integration'])->prefix('v1')->group(function () {
Route::get('/branches', [BranchController::class, 'index'])->name('api.service.branches.index');
Route::post('/branches', [BranchController::class, 'store'])->name('api.service.branches.store');
Route::get('/queues', [ServiceQueueController::class, 'index'])->name('api.service.queues.index');
Route::post('/queues', [ServiceQueueController::class, 'store'])->name('api.service.queues.store');
Route::patch('/queues/{serviceQueue}', [ServiceQueueController::class, 'update'])->name('api.service.queues.update');
Route::get('/queues/{serviceQueue}/waiting', [ServiceQueueController::class, 'waiting'])->name('api.service.queues.waiting');
Route::post('/queues/{serviceQueue}/call-next', [TicketController::class, 'callNext'])->name('api.service.queues.call-next');
@@ -76,6 +84,8 @@ Route::middleware(['auth.service:qms', 'qms.integration'])->prefix('v1')->group(
Route::post('/tickets/{ticket}/action', [TicketController::class, 'action'])->name('api.service.tickets.action');
Route::get('/counters', [CounterController::class, 'index'])->name('api.service.counters.index');
Route::post('/counters', [CounterController::class, 'store'])->name('api.service.counters.store');
Route::patch('/counters/{counter}', [CounterController::class, 'update'])->name('api.service.counters.update');
Route::get('/counters/{counter}/console', [ConsoleApiController::class, 'show'])->name('api.service.counters.console');
Route::post('/counters/{counter}/console', [ConsoleApiController::class, 'action'])->name('api.service.counters.console.action');
});