CREATE TABLE `admin_room_closures` ( `operation_id` text PRIMARY KEY NOT NULL, `actor_admin_id` text NOT NULL, `room_code` text NOT NULL, `request_hash` text NOT NULL, `expected_version` integer NOT NULL, `expected_revision` integer NOT NULL, `applied_version` integer NOT NULL, `applied_revision` integer NOT NULL, `closed` integer NOT NULL, `reason` text NOT NULL, `before_metadata` text NOT NULL, `after_metadata` text NOT NULL, `created_at` integer NOT NULL ); --> statement-breakpoint CREATE INDEX `admin_room_closures_room` ON `admin_room_closures` (`room_code`,`created_at`);--> statement-breakpoint CREATE TABLE `room_closures` ( `room_code` text PRIMARY KEY NOT NULL, `closed` integer DEFAULT 0 NOT NULL, `revision` integer DEFAULT 0 NOT NULL, `closed_at` integer, `updated_at` integer NOT NULL, FOREIGN KEY (`room_code`) REFERENCES `rooms`(`code`) ON UPDATE no action ON DELETE cascade, CONSTRAINT "room_closures_closed" CHECK("room_closures"."closed" IN (0, 1)), CONSTRAINT "room_closures_revision" CHECK("room_closures"."revision" >= 0), CONSTRAINT "room_closures_time" CHECK(("room_closures"."closed" = 1 AND "room_closures"."closed_at" IS NOT NULL) OR ("room_closures"."closed" = 0 AND "room_closures"."closed_at" IS NULL)) );