// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors
// SPDX-License-Identifier: Apache-2.0
/*
* Generated by @medplum/generator
* Do not edit manually.
*/
import type { PoolClient } from 'pg';
export async function run(client: PoolClient): Promise<void> {
await client.query(`CREATE TABLE IF NOT EXISTS "DomainConfiguration" (
"id" UUID NOT NULL PRIMARY KEY,
"content" TEXT NOT NULL,
"lastUpdated" TIMESTAMP WITH TIME ZONE NOT NULL,
"deleted" BOOLEAN NOT NULL DEFAULT FALSE,
"compartments" UUID[] NOT NULL,
"domain" TEXT
)`);
await client.query(`CREATE TABLE IF NOT EXISTS "DomainConfiguration_History" (
"versionId" UUID NOT NULL PRIMARY KEY,
"id" UUID NOT NULL,
"content" TEXT NOT NULL,
"lastUpdated" TIMESTAMP WITH TIME ZONE NOT NULL
)`);
await client.query(`CREATE TABLE IF NOT EXISTS "DomainConfiguration_Token" (
"resourceId" UUID NOT NULL,
"index" INTEGER NOT NULL,
"code" TEXT NOT NULL,
"system" TEXT,
"value" TEXT
)`);
await client.query('CREATE INDEX ON "DomainConfiguration" ("lastUpdated")');
await client.query('CREATE INDEX ON "DomainConfiguration" USING GIN("compartments")');
await client.query('CREATE INDEX ON "DomainConfiguration_History" ("id")');
await client.query('CREATE INDEX ON "DomainConfiguration_History" ("lastUpdated")');
await client.query('CREATE UNIQUE INDEX ON "DomainConfiguration" ("domain")');
await client.query('CREATE INDEX ON "DomainConfiguration_Token" ("resourceId")');
await client.query('CREATE INDEX ON "DomainConfiguration_Token" ("code")');
await client.query('CREATE INDEX ON "DomainConfiguration_Token" ("system")');
await client.query('CREATE INDEX ON "DomainConfiguration_Token" ("value")');
}