ThreadCount Community edition
Release / release (push) Has been skipped

Uniform stock management for healthcare linen rooms: the coordinator app, the phone counter and the staff app, for your own server. Built from 794bab5 on 2026-09-16. Licensed under the Functional Source License (FSL-1.1-ALv2).
This commit is contained in:
ThreadCount
2026-09-17 05:49:16 +10:00
commit f72f0626b0
481 changed files with 59411 additions and 0 deletions
@@ -0,0 +1,35 @@
-- Notifications for the staff app: the phones that asked to be told, and what each person wants to
-- be told about. Neither table is history — a device is worthless the moment its owner loses access,
-- and a preference belongs to nobody once the person is gone — so both cascade, and neither is
-- counted by the staff.delete guard in lib/ops.ts.
CREATE TABLE "StaffDevice" (
"id" TEXT NOT NULL,
"facilityId" TEXT NOT NULL,
"staffId" TEXT NOT NULL,
"accountId" TEXT NOT NULL,
"token" TEXT NOT NULL,
"platform" TEXT NOT NULL DEFAULT 'android',
"lastSeenAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "StaffDevice_pkey" PRIMARY KEY ("id")
);
-- One token, one staff account: a phone handed on to somebody else re-points rather than doubling,
-- so the person who left stops being told about the person who arrived.
CREATE UNIQUE INDEX "StaffDevice_token_key" ON "StaffDevice"("token");
CREATE INDEX "StaffDevice_staffId_idx" ON "StaffDevice"("staffId");
CREATE INDEX "StaffDevice_facilityId_idx" ON "StaffDevice"("facilityId");
ALTER TABLE "StaffDevice" ADD CONSTRAINT "StaffDevice_facilityId_fkey" FOREIGN KEY ("facilityId") REFERENCES "Facility"("id") ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "StaffDevice" ADD CONSTRAINT "StaffDevice_staffId_fkey" FOREIGN KEY ("staffId") REFERENCES "Staff"("id") ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "StaffDevice" ADD CONSTRAINT "StaffDevice_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "StaffAccount"("id") ON DELETE CASCADE ON UPDATE CASCADE;
CREATE TABLE "StaffNotifyPref" (
"staffId" TEXT NOT NULL,
"approved" BOOLEAN NOT NULL DEFAULT true,
"ready" BOOLEAN NOT NULL DEFAULT true,
"round" BOOLEAN NOT NULL DEFAULT true,
"kitcheck" BOOLEAN NOT NULL DEFAULT true,
"waiting" BOOLEAN NOT NULL DEFAULT true,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "StaffNotifyPref_pkey" PRIMARY KEY ("staffId")
);
ALTER TABLE "StaffNotifyPref" ADD CONSTRAINT "StaffNotifyPref_staffId_fkey" FOREIGN KEY ("staffId") REFERENCES "Staff"("id") ON DELETE CASCADE ON UPDATE CASCADE;