cbf533d90b
Uniform stock management for healthcare linen rooms: the coordinator app, the phone counter and the staff app, for your own server. Built from 440e645 on 2026-09-13. Licensed under the Functional Source License (FSL-1.1-ALv2).
33 lines
1.8 KiB
SQL
33 lines
1.8 KiB
SQL
-- Where a garment lives. A tree of rooms, shelves and bays, plus laundry / external.
|
|
CREATE TABLE "Location" (
|
|
"id" TEXT NOT NULL,
|
|
"facilityId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"kind" TEXT NOT NULL DEFAULT 'Shelf',
|
|
"parentId" TEXT,
|
|
"sort" INTEGER NOT NULL DEFAULT 0,
|
|
"archived" BOOLEAN NOT NULL DEFAULT false,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT "Location_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE UNIQUE INDEX "Location_facilityId_name_key" ON "Location"("facilityId", "name");
|
|
CREATE INDEX "Location_facilityId_idx" ON "Location"("facilityId");
|
|
CREATE INDEX "Location_parentId_idx" ON "Location"("parentId");
|
|
|
|
ALTER TABLE "Location" ADD CONSTRAINT "Location_facilityId_fkey" FOREIGN KEY ("facilityId") REFERENCES "Facility"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
ALTER TABLE "Location" ADD CONSTRAINT "Location_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "Location"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- A variant's home location.
|
|
ALTER TABLE "StockLevel" ADD COLUMN "locationId" TEXT;
|
|
CREATE INDEX "StockLevel_locationId_idx" ON "StockLevel"("locationId");
|
|
ALTER TABLE "StockLevel" ADD CONSTRAINT "StockLevel_locationId_fkey" FOREIGN KEY ("locationId") REFERENCES "Location"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- The location a stocktake was scoped to; NULL means the whole linen room.
|
|
ALTER TABLE "Stocktake" ADD COLUMN "locationId" TEXT;
|
|
ALTER TABLE "Stocktake" ADD CONSTRAINT "Stocktake_locationId_fkey" FOREIGN KEY ("locationId") REFERENCES "Location"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- Why a counted line didn't match, and the gap at which a reason becomes compulsory.
|
|
ALTER TABLE "StocktakeLine" ADD COLUMN "reason" TEXT NOT NULL DEFAULT '';
|
|
ALTER TABLE "Facility" ADD COLUMN "varianceReason" INTEGER NOT NULL DEFAULT 5;
|