Files
threadcount-community/prisma/migrations/20260913120000_plans/migration.sql
T
ThreadCount 96d5c10537 ThreadCount Community edition
Uniform stock management for healthcare linen rooms: the coordinator app, the phone counter and the staff app, for your own server. Built from 49da3a4 on 2026-09-13. Licensed under the Functional Source License (FSL-1.1-ALv2).
2026-09-13 11:38:24 +10:00

23 lines
1.2 KiB
SQL

-- Plans, phase 1: the columns lib/plan.ts reads, and the promise kept before anything reads them.
ALTER TABLE "Facility" ADD COLUMN "planStatus" TEXT NOT NULL DEFAULT 'free',
ADD COLUMN "trialEndsAt" TIMESTAMP(3),
ADD COLUMN "paidUntil" TIMESTAMP(3),
ADD COLUMN "billingEmail" TEXT NOT NULL DEFAULT '',
ADD COLUMN "grandfathered" BOOLEAN NOT NULL DEFAULT false;
-- Every facility that exists when this runs was created while the pricing page said "free, and the
-- rooms using it will hear before the website does". They keep everything, for good. The demo is
-- not a customer and is left out so it never shows a plan.
UPDATE "Facility" SET "grandfathered" = true, "planStatus" = 'free' WHERE "isDemo" = false;
ALTER TABLE "PlatformSwitch" ADD COLUMN "plansLive" BOOLEAN NOT NULL DEFAULT false;
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'ops_ro') THEN
RAISE NOTICE 'ops_ro does not exist — plan grants skipped';
RETURN;
END IF;
GRANT SELECT ("planStatus", "trialEndsAt", "paidUntil", "grandfathered") ON "Facility" TO ops_ro;
END $$;