Add industry packages that provision workflow stages on onboarding.
Deploy Ladill Queue / deploy (push) Successful in 1m39s

Queue Core stays generic; selecting Healthcare, Banking, Restaurant, and other industries installs departments, stages (queues), service points, workflows, terminology, and announcement profiles without code changes per vertical. Care-linked orgs skip stage materialization so Care remains the clinical provisioner.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-17 18:00:31 +00:00
co-authored by Cursor
parent 0854b431bc
commit a4d8775a82
15 changed files with 2302 additions and 65 deletions
+23 -4
View File
@@ -1,7 +1,9 @@
<x-app-layout title="Set up Queue">
<div class="mx-auto max-w-xl">
<h1 class="text-2xl font-semibold text-slate-900 dark:text-white">Welcome to Ladill Queue</h1>
<p class="mt-2 text-sm text-slate-600 dark:text-slate-400">Configure your organization to start managing customer flow.</p>
<p class="mt-2 text-sm text-slate-600 dark:text-slate-400">
Choose your industry and we will provision departments, workflow stages, service points, announcements, and dashboards for you.
</p>
<form method="POST" action="{{ route('qms.onboarding.store') }}" enctype="multipart/form-data" class="mt-8 space-y-5 rounded-2xl border border-slate-200 bg-white p-6 dark:border-slate-700 dark:bg-slate-900">
@csrf
@@ -14,11 +16,14 @@
<div>
<label class="block text-sm font-medium text-slate-700 dark:text-slate-300">Industry</label>
<select name="industry" class="mt-1 w-full rounded-lg border-slate-300 text-sm dark:border-slate-600 dark:bg-slate-800">
@foreach ($industries as $value => $label)
<option value="{{ $value }}" @selected(old('industry', 'custom') === $value)>{{ $label }}</option>
<select name="industry" id="industry" class="mt-1 w-full rounded-lg border-slate-300 text-sm dark:border-slate-600 dark:bg-slate-800">
@foreach ($industries as $value => $meta)
<option value="{{ $value }}"
data-description="{{ $meta['description'] }}"
@selected(old('industry', 'custom') === $value)>{{ $meta['label'] }}</option>
@endforeach
</select>
<p id="industry-description" class="mt-2 text-xs text-slate-500 dark:text-slate-400"></p>
</div>
<div>
@@ -68,4 +73,18 @@
</button>
</form>
</div>
<script>
(function () {
const select = document.getElementById('industry');
const desc = document.getElementById('industry-description');
if (!select || !desc) return;
const sync = () => {
const option = select.options[select.selectedIndex];
desc.textContent = option?.dataset?.description || '';
};
select.addEventListener('change', sync);
sync();
})();
</script>
</x-app-layout>