7d650e4c10
Uniform stock management for healthcare linen rooms: the coordinator app, the phone counter and the staff app, for your own server. Built from d947f89 on 2026-09-15. Licensed under the Functional Source License (FSL-1.1-ALv2).
23 lines
1.2 KiB
SQL
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 $$;
|