CREATE TABLE `admin_room_archives` ( `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, `archived` 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_archives_room` ON `admin_room_archives` (`room_code`,`created_at`);--> statement-breakpoint CREATE TABLE `room_archives` ( `room_code` text PRIMARY KEY NOT NULL, `archived` integer DEFAULT 0 NOT NULL, `revision` integer DEFAULT 0 NOT NULL, `archived_at` integer, `updated_at` integer NOT NULL, FOREIGN KEY (`room_code`) REFERENCES `rooms`(`code`) ON UPDATE no action ON DELETE cascade, CONSTRAINT "room_archives_archived" CHECK("room_archives"."archived" IN (0, 1)), CONSTRAINT "room_archives_revision" CHECK("room_archives"."revision" >= 0), CONSTRAINT "room_archives_time" CHECK(("room_archives"."archived" = 1 AND "room_archives"."archived_at" IS NOT NULL) OR ("room_archives"."archived" = 0 AND "room_archives"."archived_at" IS NULL)) );