From fe799ee80759db36812b0ac5a80bf23a568368a9 Mon Sep 17 00:00:00 2001 From: ymc9 <104139426+ymc9@users.noreply.github.com> Date: Tue, 27 Jan 2026 16:19:54 +0800 Subject: [PATCH 1/8] feat(cli): add mysql support to proxy --- packages/cli/package.json | 3 ++- packages/cli/src/actions/proxy.ts | 31 ++++++++++++++++++++----------- pnpm-lock.yaml | 3 +++ 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 9bfcc5f95..1149b35d8 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -56,7 +56,8 @@ "pg": "catalog:", "prisma": "catalog:", "semver": "^7.7.2", - "ts-pattern": "catalog:" + "ts-pattern": "catalog:", + "mysql2": "catalog:" }, "devDependencies": { "@types/better-sqlite3": "catalog:", diff --git a/packages/cli/src/actions/proxy.ts b/packages/cli/src/actions/proxy.ts index 45375b05d..f3f27ef7e 100644 --- a/packages/cli/src/actions/proxy.ts +++ b/packages/cli/src/actions/proxy.ts @@ -1,21 +1,23 @@ -import { isDataSource } from '@zenstackhq/language/ast'; -import { getOutputPath, getSchemaFile, loadSchemaDocument } from './action-utils'; -import { CliError } from '../cli-error'; import { ZModelCodeGenerator } from '@zenstackhq/language'; +import { isDataSource } from '@zenstackhq/language/ast'; import { getStringLiteral } from '@zenstackhq/language/utils'; -import { SqliteDialect } from '@zenstackhq/orm/dialects/sqlite'; -import { PostgresDialect } from '@zenstackhq/orm/dialects/postgres'; -import SQLite from 'better-sqlite3'; -import { Pool } from 'pg'; -import path from 'node:path'; import { ZenStackClient, type ClientContract } from '@zenstackhq/orm'; +import { MysqlDialect } from '@zenstackhq/orm/dialects/mysql'; +import { PostgresDialect } from '@zenstackhq/orm/dialects/postgres'; +import { SqliteDialect } from '@zenstackhq/orm/dialects/sqlite'; import { RPCApiHandler } from '@zenstackhq/server/api'; import { ZenStackMiddleware } from '@zenstackhq/server/express'; -import express from 'express'; +import SQLite from 'better-sqlite3'; import colors from 'colors'; +import cors from 'cors'; +import express from 'express'; import { createJiti } from 'jiti'; +import { createPool as createMysqlPool } from 'mysql2'; +import path from 'node:path'; +import { Pool as PgPool } from 'pg'; +import { CliError } from '../cli-error'; import { getVersion } from '../utils/version-utils'; -import cors from 'cors'; +import { getOutputPath, getSchemaFile, loadSchemaDocument } from './action-utils'; type Options = { output?: string; @@ -125,10 +127,17 @@ function createDialect(provider: string, databaseUrl: string, outputPath: string case 'postgresql': console.log(colors.gray(`Connecting to PostgreSQL database at: ${databaseUrl}`)); return new PostgresDialect({ - pool: new Pool({ + pool: new PgPool({ connectionString: databaseUrl, }), }); + + case 'mysql': + console.log(colors.gray(`Connecting to MySQL database at: ${databaseUrl}`)); + return new MysqlDialect({ + pool: createMysqlPool(databaseUrl), + }); + default: throw new CliError(`Unsupported database provider: ${provider}`); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 02aef9843..0e4080566 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -237,6 +237,9 @@ importers: mixpanel: specifier: ^0.18.1 version: 0.18.1 + mysql2: + specifier: 'catalog:' + version: 3.16.1 ora: specifier: ^5.4.1 version: 5.4.1 From d1b7149135e69e81ff2c501fac4a852ffc65d565 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 27 Jan 2026 08:41:12 +0000 Subject: [PATCH 2/8] Initial plan From 36ee59559be321875e47dc1805a6635443326863 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 27 Jan 2026 08:43:56 +0000 Subject: [PATCH 3/8] fix: redact credentials from database URL logs Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com> --- packages/cli/src/actions/proxy.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/actions/proxy.ts b/packages/cli/src/actions/proxy.ts index f3f27ef7e..1d8f93866 100644 --- a/packages/cli/src/actions/proxy.ts +++ b/packages/cli/src/actions/proxy.ts @@ -109,6 +109,22 @@ function evaluateUrl(value: string): string { } } +function redactDatabaseUrl(url: string): string { + try { + const parsedUrl = new URL(url); + if (parsedUrl.password) { + parsedUrl.password = '***'; + } + if (parsedUrl.username) { + parsedUrl.username = '***'; + } + return parsedUrl.toString(); + } catch { + // If URL parsing fails, return the original (might be a file path for SQLite) + return url; + } +} + function createDialect(provider: string, databaseUrl: string, outputPath: string) { switch (provider) { case 'sqlite': { @@ -125,7 +141,7 @@ function createDialect(provider: string, databaseUrl: string, outputPath: string }); } case 'postgresql': - console.log(colors.gray(`Connecting to PostgreSQL database at: ${databaseUrl}`)); + console.log(colors.gray(`Connecting to PostgreSQL database at: ${redactDatabaseUrl(databaseUrl)}`)); return new PostgresDialect({ pool: new PgPool({ connectionString: databaseUrl, @@ -133,7 +149,7 @@ function createDialect(provider: string, databaseUrl: string, outputPath: string }); case 'mysql': - console.log(colors.gray(`Connecting to MySQL database at: ${databaseUrl}`)); + console.log(colors.gray(`Connecting to MySQL database at: ${redactDatabaseUrl(databaseUrl)}`)); return new MysqlDialect({ pool: createMysqlPool(databaseUrl), }); From e9537a7c4c4023a8304b777c0ad83ff699153557 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 27 Jan 2026 08:44:45 +0000 Subject: [PATCH 4/8] fix: also redact SQLite URLs for consistency Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com> --- packages/cli/src/actions/proxy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/actions/proxy.ts b/packages/cli/src/actions/proxy.ts index 1d8f93866..7a1ccea37 100644 --- a/packages/cli/src/actions/proxy.ts +++ b/packages/cli/src/actions/proxy.ts @@ -135,7 +135,7 @@ function createDialect(provider: string, databaseUrl: string, outputPath: string resolvedUrl = path.join(outputPath, filePath); } } - console.log(colors.gray(`Connecting to SQLite database at: ${resolvedUrl}`)); + console.log(colors.gray(`Connecting to SQLite database at: ${redactDatabaseUrl(resolvedUrl)}`)); return new SqliteDialect({ database: new SQLite(resolvedUrl), }); From 501ab339f274ab28963e60f6a91f2b8c1e11f633 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 30 Jan 2026 06:43:16 +0000 Subject: [PATCH 5/8] Merge dev branch and remove SQLite URL redaction Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com> --- packages/cli/package.json | 2 + packages/cli/src/actions/proxy.ts | 4 +- packages/cli/src/index.ts | 1 + packages/cli/src/utils/exec-utils.ts | 2 +- packages/language/src/utils.ts | 27 +- packages/language/src/zmodel-scope.ts | 2 +- packages/language/test/mixin.test.ts | 99 ++- .../src/client/crud/dialects/base-dialect.ts | 49 +- .../orm/src/client/crud/dialects/mysql.ts | 64 +- .../src/client/crud/dialects/postgresql.ts | 185 +++-- .../orm/src/client/crud/dialects/sqlite.ts | 57 +- .../orm/src/client/executor/name-mapper.ts | 56 +- packages/orm/src/client/functions.ts | 12 +- .../src/client/helpers/schema-db-pusher.ts | 16 +- .../policy/src/expression-transformer.ts | 64 +- packages/plugins/policy/src/policy-handler.ts | 3 +- packages/schema/src/expression-utils.ts | 56 +- packages/schema/src/expression.ts | 1 + packages/sdk/src/ts-schema-generator.ts | 4 + packages/testtools/src/client.ts | 16 +- packages/testtools/src/schema.ts | 14 + pnpm-lock.yaml | 9 +- samples/next.js/zenstack/schema.ts | 2 +- samples/nuxt/zenstack/schema.ts | 2 +- samples/orm/zenstack/schema.ts | 4 +- samples/sveltekit/src/zenstack/schema.ts | 2 +- tests/e2e/apps/rally/zenstack/schema.ts | 148 ++-- tests/e2e/github-repos/cal.com/schema.ts | 722 +++++++++--------- tests/e2e/github-repos/formbricks/schema.ts | 224 +++--- tests/e2e/github-repos/trigger.dev/schema.ts | 386 +++++----- .../client-api/timezone/pg-timezone.test.ts | 546 +++++++++++++ tests/e2e/orm/schemas/basic/schema.ts | 6 +- tests/e2e/orm/schemas/default-auth/schema.ts | 4 +- tests/e2e/orm/schemas/delegate/schema.ts | 16 +- tests/e2e/orm/schemas/name-mapping/schema.ts | 2 +- tests/e2e/orm/schemas/omit/schema.ts | 2 +- tests/e2e/orm/schemas/petstore/schema.ts | 4 +- tests/e2e/orm/schemas/todo/schema.ts | 16 +- tests/e2e/orm/schemas/typing/schema.ts | 10 +- tests/regression/test/issue-422/schema.ts | 4 +- tests/regression/test/issue-503/schema.ts | 4 +- tests/regression/test/issue-595.test.ts | 122 +++ tests/regression/test/issue-598.test.ts | 79 ++ tests/runtimes/bun/schemas/schema.ts | 2 +- tests/runtimes/edge-runtime/schemas/schema.ts | 2 +- 45 files changed, 1962 insertions(+), 1090 deletions(-) create mode 100644 tests/e2e/orm/client-api/timezone/pg-timezone.test.ts create mode 100644 tests/regression/test/issue-595.test.ts create mode 100644 tests/regression/test/issue-598.test.ts diff --git a/packages/cli/package.json b/packages/cli/package.json index 1149b35d8..27bb74b01 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -46,11 +46,13 @@ "colors": "1.4.0", "commander": "^8.3.0", "cors": "^2.8.5", + "dotenv": "^17.2.3", "execa": "^9.6.0", "express": "^5.0.0", "jiti": "^2.6.1", "langium": "catalog:", "mixpanel": "^0.18.1", + "mysql2": "catalog:", "ora": "^5.4.1", "package-manager-detector": "^1.3.0", "pg": "catalog:", diff --git a/packages/cli/src/actions/proxy.ts b/packages/cli/src/actions/proxy.ts index 7a1ccea37..ea9738c5e 100644 --- a/packages/cli/src/actions/proxy.ts +++ b/packages/cli/src/actions/proxy.ts @@ -120,7 +120,7 @@ function redactDatabaseUrl(url: string): string { } return parsedUrl.toString(); } catch { - // If URL parsing fails, return the original (might be a file path for SQLite) + // If URL parsing fails, return the original return url; } } @@ -135,7 +135,7 @@ function createDialect(provider: string, databaseUrl: string, outputPath: string resolvedUrl = path.join(outputPath, filePath); } } - console.log(colors.gray(`Connecting to SQLite database at: ${redactDatabaseUrl(resolvedUrl)}`)); + console.log(colors.gray(`Connecting to SQLite database at: ${resolvedUrl}`)); return new SqliteDialect({ database: new SQLite(resolvedUrl), }); diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 836823f06..82d0e736c 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -1,3 +1,4 @@ +import 'dotenv/config'; import { ZModelLanguageMetaData } from '@zenstackhq/language'; import colors from 'colors'; import { Command, CommanderError, Option } from 'commander'; diff --git a/packages/cli/src/utils/exec-utils.ts b/packages/cli/src/utils/exec-utils.ts index 03629f628..99ed1be09 100644 --- a/packages/cli/src/utils/exec-utils.ts +++ b/packages/cli/src/utils/exec-utils.ts @@ -57,5 +57,5 @@ export function execPrisma(args: string, options?: Omit return; } - execSync(`node ${prismaPath} ${args}`, _options); + execSync(`node "${prismaPath}" ${args}`, _options); } diff --git a/packages/language/src/utils.ts b/packages/language/src/utils.ts index a99f160cb..bdd8baa6a 100644 --- a/packages/language/src/utils.ts +++ b/packages/language/src/utils.ts @@ -104,9 +104,7 @@ export function typeAssignable(destType: ExpressionType, sourceType: ExpressionT /** * Maps a ZModel builtin type to expression type */ -export function mapBuiltinTypeToExpressionType( - type: BuiltinType | ExpressionType, -): ExpressionType { +export function mapBuiltinTypeToExpressionType(type: BuiltinType | ExpressionType): ExpressionType { switch (type) { case 'Any': case 'Boolean': @@ -170,6 +168,7 @@ export function resolved(ref: Reference): T { export function getRecursiveBases( decl: DataModel | TypeDef, includeDelegate = true, + documents?: LangiumDocuments, seen = new Set(), ): (TypeDef | DataModel)[] { const result: (TypeDef | DataModel)[] = []; @@ -179,16 +178,28 @@ export function getRecursiveBases( seen.add(decl); const bases = [...decl.mixins, ...(isDataModel(decl) && decl.baseModel ? [decl.baseModel] : [])]; bases.forEach((base) => { - // avoid using .ref since this function can be called before linking - const baseDecl = decl.$container.declarations.find( - (d): d is TypeDef | DataModel => (isTypeDef(d) || isDataModel(d)) && d.name === base.$refText, - ); + let baseDecl: TypeDef | DataModel | undefined; + + if (base.ref && (isTypeDef(base.ref) || isDataModel(base.ref))) { + // base is already resolved + baseDecl = base.ref; + } else { + // otherwise, search by name, in all imported documents if provided + const declarations = documents + ? getAllDeclarationsIncludingImports(documents, decl.$container) + : decl.$container.declarations; + + baseDecl = declarations.find( + (d): d is TypeDef | DataModel => (isTypeDef(d) || isDataModel(d)) && d.name === base.$refText, + ); + } + if (baseDecl) { if (!includeDelegate && isDelegateModel(baseDecl)) { return; } result.push(baseDecl); - result.push(...getRecursiveBases(baseDecl, includeDelegate, seen)); + result.push(...getRecursiveBases(baseDecl, includeDelegate, documents, seen)); } }); return result; diff --git a/packages/language/src/zmodel-scope.ts b/packages/language/src/zmodel-scope.ts index 30b77e293..d05a30cfb 100644 --- a/packages/language/src/zmodel-scope.ts +++ b/packages/language/src/zmodel-scope.ts @@ -80,7 +80,7 @@ export class ZModelScopeComputation extends DefaultScopeComputation { super.processNode(node, document, scopes); if (isDataModel(node) || isTypeDef(node)) { // add base fields to the scope recursively - const bases = getRecursiveBases(node); + const bases = getRecursiveBases(node, true, this.services.shared.workspace.LangiumDocuments); for (const base of bases) { for (const field of base.fields) { scopes.add(node, this.descriptions.createDescription(field, this.nameProvider.getName(field))); diff --git a/packages/language/test/mixin.test.ts b/packages/language/test/mixin.test.ts index 8fa9e9335..1c4356d8b 100644 --- a/packages/language/test/mixin.test.ts +++ b/packages/language/test/mixin.test.ts @@ -1,6 +1,12 @@ +import { invariant } from '@zenstackhq/common-helpers'; +import fs from 'node:fs'; +import path from 'node:path'; +import tmp from 'tmp'; import { describe, expect, it } from 'vitest'; -import { loadSchema, loadSchemaWithError } from './utils'; +import { loadDocument } from '../src'; import { DataModel, TypeDef } from '../src/ast'; +import { getAllFields } from '../src/utils'; +import { loadSchema, loadSchemaWithError } from './utils'; describe('Mixin Tests', () => { it('supports model mixing types to Model', async () => { @@ -136,4 +142,95 @@ describe('Mixin Tests', () => { 'Type field cannot be a relation', ); }); + + it('supports mixin fields from imported file', async () => { + const { name } = tmp.dirSync(); + + fs.writeFileSync( + path.join(name, 'base.zmodel'), + ` +type Timestamped { + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + `, + ); + + fs.writeFileSync( + path.join(name, 'main.zmodel'), + ` +import './base' + +datasource db { + provider = 'sqlite' + url = 'file:./dev.db' +} + +model Post with Timestamped { + id String @id + title String +} + `, + ); + + const model = await expectLoaded(path.join(name, 'main.zmodel')); + const post = model.declarations.find((d) => d.name === 'Post') as DataModel; + expect(post.mixins[0].ref?.name).toBe('Timestamped'); + + // Verify fields from imported mixin are accessible + const allFields = getAllFields(post); + expect(allFields.map((f) => f.name)).toContain('createdAt'); + expect(allFields.map((f) => f.name)).toContain('updatedAt'); + }); + + it('can reference imported mixin fields in policy rules', async () => { + const { name } = tmp.dirSync(); + + fs.writeFileSync( + path.join(name, 'base.zmodel'), + ` +type Owned { + ownerId String +} + `, + ); + + fs.writeFileSync( + path.join(name, 'main.zmodel'), + ` +import './base' + +datasource db { + provider = 'sqlite' + url = 'file:./dev.db' +} + +model User { + id String @id + @@auth() +} + +model Post with Owned { + id String @id + + @@allow('update', auth().id == ownerId) +} + `, + ); + + // If this loads without "Could not resolve reference" error, the fix works + const model = await expectLoaded(path.join(name, 'main.zmodel')); + expect(model).toBeDefined(); + }); + + async function expectLoaded(file: string) { + const pluginDocs = [path.resolve(__dirname, '../../plugins/policy/plugin.zmodel')]; + const result = await loadDocument(file, pluginDocs); + if (!result.success) { + console.error('Errors:', result.errors); + throw new Error(`Failed to load document from ${file}`); + } + invariant(result.success); + return result.model; + } }); diff --git a/packages/orm/src/client/crud/dialects/base-dialect.ts b/packages/orm/src/client/crud/dialects/base-dialect.ts index 515878d9e..91848d57a 100644 --- a/packages/orm/src/client/crud/dialects/base-dialect.ts +++ b/packages/orm/src/client/crud/dialects/base-dialect.ts @@ -489,26 +489,41 @@ export abstract class BaseCrudDialect { continue; } - const value = this.transformInput(_value, fieldType, !!fieldDef.array); + invariant(fieldDef.array, 'Field must be an array type to build array filter'); + const value = this.transformInput(_value, fieldType, true); + + let receiver = fieldRef; + if (isEnum(this.schema, fieldType)) { + // cast enum array to `text[]` for type compatibility + receiver = this.eb.cast(fieldRef, sql.raw('text[]')); + } + + const buildArray = (value: unknown) => { + invariant(Array.isArray(value), 'Array filter value must be an array'); + return this.buildArrayValue( + value.map((v) => this.eb.val(v)), + fieldType, + ); + }; switch (key) { case 'equals': { - clauses.push(this.buildLiteralFilter(fieldRef, fieldType, this.eb.val(value))); + clauses.push(this.eb(receiver, '=', buildArray(value))); break; } case 'has': { - clauses.push(this.eb(fieldRef, '@>', this.eb.val([value]))); + clauses.push(this.buildArrayContains(receiver, this.eb.val(value))); break; } case 'hasEvery': { - clauses.push(this.eb(fieldRef, '@>', this.eb.val(value))); + clauses.push(this.buildArrayHasEvery(receiver, buildArray(value))); break; } case 'hasSome': { - clauses.push(this.eb(fieldRef, '&&', this.eb.val(value))); + clauses.push(this.buildArrayHasSome(receiver, buildArray(value))); break; } @@ -1420,9 +1435,24 @@ export abstract class BaseCrudDialect { abstract buildArrayLength(array: Expression): AliasableExpression; /** - * Builds an array literal SQL string for the given values. + * Builds an array value expression. */ - abstract buildArrayLiteralSQL(values: unknown[]): AliasableExpression; + abstract buildArrayValue(values: Expression[], elemType: string): AliasableExpression; + + /** + * Builds an expression that checks if an array contains a single value. + */ + abstract buildArrayContains(field: Expression, value: Expression): AliasableExpression; + + /** + * Builds an expression that checks if an array contains all values from another array. + */ + abstract buildArrayHasEvery(field: Expression, values: Expression): AliasableExpression; + + /** + * Builds an expression that checks if an array overlaps with another array. + */ + abstract buildArrayHasSome(field: Expression, values: Expression): AliasableExpression; /** * Casts the given expression to an integer type. @@ -1439,11 +1469,6 @@ export abstract class BaseCrudDialect { */ abstract trimTextQuotes>(expression: T): T; - /** - * Gets the SQL column type for the given field definition. - */ - abstract getFieldSqlType(fieldDef: FieldDef): string; - /* * Gets the string casing behavior for the dialect. */ diff --git a/packages/orm/src/client/crud/dialects/mysql.ts b/packages/orm/src/client/crud/dialects/mysql.ts index e196323a3..1e0e3f52f 100644 --- a/packages/orm/src/client/crud/dialects/mysql.ts +++ b/packages/orm/src/client/crud/dialects/mysql.ts @@ -3,9 +3,10 @@ import Decimal from 'decimal.js'; import type { AliasableExpression, TableExpression } from 'kysely'; import { expressionBuilder, + ExpressionWrapper, sql, + ValueListNode, type Expression, - type ExpressionWrapper, type SelectQueryBuilder, type SqlBool, } from 'kysely'; @@ -13,7 +14,7 @@ import { match } from 'ts-pattern'; import { AnyNullClass, DbNullClass, JsonNullClass } from '../../../common-types'; import type { BuiltinType, FieldDef, SchemaDef } from '../../../schema'; import type { SortOrder } from '../../crud-types'; -import { createInternalError, createInvalidInputError, createNotSupportedError } from '../../errors'; +import { createInvalidInputError, createNotSupportedError } from '../../errors'; import type { ClientOptions } from '../../options'; import { isTypeDef } from '../../query-utils'; import { LateralJoinDialectBase } from './lateral-join-dialect-base'; @@ -223,8 +224,29 @@ export class MySqlCrudDialect extends LateralJoinDiale return this.eb.fn('JSON_LENGTH', [array]); } - override buildArrayLiteralSQL(_values: unknown[]): AliasableExpression { - throw new Error('MySQL does not support array literals'); + override buildArrayValue(values: Expression[], _elemType: string): AliasableExpression { + return new ExpressionWrapper(ValueListNode.create(values.map((v) => v.toOperationNode()))); + } + + override buildArrayContains( + _field: Expression, + _value: Expression, + ): AliasableExpression { + throw createNotSupportedError('MySQL does not support native array operations'); + } + + override buildArrayHasEvery( + _field: Expression, + _values: Expression, + ): AliasableExpression { + throw createNotSupportedError('MySQL does not support native array operations'); + } + + override buildArrayHasSome( + _field: Expression, + _values: Expression, + ): AliasableExpression { + throw createNotSupportedError('MySQL does not support native array operations'); } protected override buildJsonEqualityFilter( @@ -288,40 +310,6 @@ export class MySqlCrudDialect extends LateralJoinDiale ); } - override getFieldSqlType(fieldDef: FieldDef) { - // TODO: respect `@db.x` attributes - if (fieldDef.relation) { - throw createInternalError('Cannot get SQL type of a relation field'); - } - - let result: string; - - if (this.schema.enums?.[fieldDef.type]) { - // enums are treated as text/varchar - result = 'varchar(255)'; - } else { - result = match(fieldDef.type) - .with('String', () => 'varchar(255)') - .with('Boolean', () => 'tinyint(1)') // MySQL uses tinyint(1) for boolean - .with('Int', () => 'int') - .with('BigInt', () => 'bigint') - .with('Float', () => 'double') - .with('Decimal', () => 'decimal') - .with('DateTime', () => 'datetime') - .with('Bytes', () => 'blob') - .with('Json', () => 'json') - // fallback to text - .otherwise(() => 'text'); - } - - if (fieldDef.array) { - // MySQL stores arrays as JSON - result = 'json'; - } - - return result; - } - override getStringCasingBehavior() { // MySQL LIKE is case-insensitive by default (depends on collation), no ILIKE support return { supportsILike: false, likeCaseSensitive: false }; diff --git a/packages/orm/src/client/crud/dialects/postgresql.ts b/packages/orm/src/client/crud/dialects/postgresql.ts index 02e9435fa..9ff53c2e6 100644 --- a/packages/orm/src/client/crud/dialects/postgresql.ts +++ b/packages/orm/src/client/crud/dialects/postgresql.ts @@ -10,26 +10,55 @@ import { } from 'kysely'; import { parse as parsePostgresArray } from 'postgres-array'; import { match } from 'ts-pattern'; -import z from 'zod'; import { AnyNullClass, DbNullClass, JsonNullClass } from '../../../common-types'; import type { BuiltinType, FieldDef, SchemaDef } from '../../../schema'; import type { SortOrder } from '../../crud-types'; -import { createInternalError, createInvalidInputError } from '../../errors'; +import { createInvalidInputError } from '../../errors'; import type { ClientOptions } from '../../options'; -import { getEnum, isEnum, isTypeDef } from '../../query-utils'; +import { isEnum, isTypeDef } from '../../query-utils'; import { LateralJoinDialectBase } from './lateral-join-dialect-base'; export class PostgresCrudDialect extends LateralJoinDialectBase { - private isoDateSchema = z.iso.datetime({ local: true, offset: true }); + private static typeParserOverrideApplied = false; constructor(schema: Schema, options: ClientOptions) { super(schema, options); + this.overrideTypeParsers(); } override get provider() { return 'postgresql' as const; } + private overrideTypeParsers() { + if (this.options.fixPostgresTimezone !== false && !PostgresCrudDialect.typeParserOverrideApplied) { + PostgresCrudDialect.typeParserOverrideApplied = true; + + // override node-pg's default type parser to resolve the timezone handling issue + // with "TIMESTAMP WITHOUT TIME ZONE" fields + // https://github.com/brianc/node-postgres/issues/429 + import('pg') + .then((pg) => { + pg.types.setTypeParser(pg.types.builtins.TIMESTAMP, (value) => { + if (typeof value !== 'string') { + return value; + } + if (!this.hasTimezoneOffset(value)) { + // force UTC if no offset + value += 'Z'; + } + const result = new Date(value); + return isNaN(result.getTime()) + ? value // fallback to original value if parsing fails + : result; + }); + }) + .catch(() => { + // ignore + }); + } + } + // #region capabilities override get supportsUpdateWithLimit(): boolean { @@ -95,18 +124,7 @@ export class PostgresCrudDialect extends LateralJoinDi if (type === 'Json' && !forArrayField) { // scalar `Json` fields need their input stringified return JSON.stringify(value); - } - if (isEnum(this.schema, type)) { - // cast to enum array `CAST(ARRAY[...] AS "enum_type"[])` - return this.eb.cast( - sql`ARRAY[${sql.join( - value.map((v) => this.transformInput(v, type, false)), - sql.raw(','), - )}]`, - this.createSchemaQualifiedEnumType(type, true), - ); } else { - // `Json[]` fields need their input as array (not stringified) return value.map((v) => this.transformInput(v, type, false)); } } else { @@ -136,32 +154,6 @@ export class PostgresCrudDialect extends LateralJoinDi } } - private createSchemaQualifiedEnumType(type: string, array: boolean) { - // determines the postgres schema name for the enum type, and returns the - // qualified name - - let qualified = type; - - const enumDef = getEnum(this.schema, type); - if (enumDef) { - // check if the enum has a custom "@@schema" attribute - const schemaAttr = enumDef.attributes?.find((attr) => attr.name === '@@schema'); - if (schemaAttr) { - const mapArg = schemaAttr.args?.find((arg) => arg.name === 'map'); - if (mapArg && mapArg.value.kind === 'literal') { - const schemaName = mapArg.value.value as string; - qualified = `"${schemaName}"."${type}"`; - } - } else { - // no custom schema, use default from datasource or 'public' - const defaultSchema = this.schema.provider.defaultSchema ?? 'public'; - qualified = `"${defaultSchema}"."${type}"`; - } - } - - return array ? sql.raw(`${qualified}[]`) : sql.raw(qualified); - } - override transformOutput(value: unknown, type: BuiltinType, array: boolean) { if (value === null || value === undefined) { return value; @@ -202,27 +194,23 @@ export class PostgresCrudDialect extends LateralJoinDi private transformOutputDate(value: unknown) { if (typeof value === 'string') { - // PostgreSQL's jsonb_build_object serializes timestamp as ISO 8601 strings - // without timezone, (e.g., "2023-01-01T12:00:00.123456"). Since Date is always - // stored as UTC `timestamp` type, we add 'Z' to explicitly mark them as UTC for - // correct Date object creation. - if (this.isoDateSchema.safeParse(value).success) { - const hasOffset = value.endsWith('Z') || /[+-]\d{2}:\d{2}$/.test(value); - return new Date(hasOffset ? value : `${value}Z`); - } else { - return value; - } - } else if (value instanceof Date && this.options.fixPostgresTimezone !== false) { - // SPECIAL NOTES: - // node-pg has a terrible quirk that it returns the date value in local timezone - // as a `Date` object although for `DateTime` field the data in DB is stored in UTC - // see: https://github.com/brianc/node-postgres/issues/429 - return new Date(value.getTime() - value.getTimezoneOffset() * 60 * 1000); + // PostgreSQL's jsonb_build_object serializes timestamp as ISO 8601 strings, + // we force interpret them as UTC dates here if the value does not carry timezone + // offset (this happens with "TIMESTAMP WITHOUT TIME ZONE" field type) + const normalized = this.hasTimezoneOffset(value) ? value : `${value}Z`; + const parsed = new Date(normalized); + return Number.isNaN(parsed.getTime()) + ? value // fallback to original value if parsing fails + : parsed; } else { return value; } } + private hasTimezoneOffset(value: string) { + return value.endsWith('Z') || /[+-]\d{2}:\d{2}$/.test(value); + } + private transformOutputBytes(value: unknown) { return Buffer.isBuffer(value) ? Uint8Array.from(value) @@ -290,15 +278,25 @@ export class PostgresCrudDialect extends LateralJoinDi return this.eb.fn('array_length', [array]); } - override buildArrayLiteralSQL(values: unknown[]): AliasableExpression { - if (values.length === 0) { - return sql`{}`; - } else { - return sql`ARRAY[${sql.join( - values.map((v) => sql.val(v)), - sql.raw(','), - )}]`; - } + override buildArrayValue(values: Expression[], elemType: string): AliasableExpression { + const arr = sql`ARRAY[${sql.join(values, sql.raw(','))}]`; + const mappedType = this.getSqlType(elemType); + return this.eb.cast(arr, sql`${sql.raw(mappedType)}[]`); + } + + override buildArrayContains(field: Expression, value: Expression): AliasableExpression { + // PostgreSQL @> operator expects array on both sides, so wrap single value in array + return this.eb(field, '@>', sql`ARRAY[${value}]`); + } + + override buildArrayHasEvery(field: Expression, values: Expression): AliasableExpression { + // PostgreSQL @> operator: field contains all elements in values + return this.eb(field, '@>', values); + } + + override buildArrayHasSome(field: Expression, values: Expression): AliasableExpression { + // PostgreSQL && operator: arrays have any elements in common + return this.eb(field, '&&', values); } protected override buildJsonPathSelection(receiver: Expression, path: string | undefined) { @@ -348,37 +346,26 @@ export class PostgresCrudDialect extends LateralJoinDi ); } - override getFieldSqlType(fieldDef: FieldDef) { - // TODO: respect `@db.x` attributes - if (fieldDef.relation) { - throw createInternalError('Cannot get SQL type of a relation field'); - } - - let result: string; - - if (this.schema.enums?.[fieldDef.type]) { - // enums are treated as text - result = 'text'; + private getSqlType(zmodelType: string) { + if (isEnum(this.schema, zmodelType)) { + // reduce enum to text for type compatibility + return 'text'; } else { - result = match(fieldDef.type) - .with('String', () => 'text') - .with('Boolean', () => 'boolean') - .with('Int', () => 'integer') - .with('BigInt', () => 'bigint') - .with('Float', () => 'double precision') - .with('Decimal', () => 'decimal') - .with('DateTime', () => 'timestamp') - .with('Bytes', () => 'bytea') - .with('Json', () => 'jsonb') - // fallback to text - .otherwise(() => 'text'); - } - - if (fieldDef.array) { - result += '[]'; + return ( + match(zmodelType) + .with('String', () => 'text') + .with('Boolean', () => 'boolean') + .with('Int', () => 'integer') + .with('BigInt', () => 'bigint') + .with('Float', () => 'double precision') + .with('Decimal', () => 'decimal') + .with('DateTime', () => 'timestamp') + .with('Bytes', () => 'bytea') + .with('Json', () => 'jsonb') + // fallback to text + .otherwise(() => 'text') + ); } - - return result; } override getStringCasingBehavior() { @@ -414,9 +401,11 @@ export class PostgresCrudDialect extends LateralJoinDi )})`.as('$values'), ) .select( - fields.map((f, i) => - sql`CAST(${sql.ref(`$values.column${i + 1}`)} AS ${sql.raw(this.getFieldSqlType(f))})`.as(f.name), - ), + fields.map((f, i) => { + const mappedType = this.getSqlType(f.type); + const castType = f.array ? sql`${sql.raw(mappedType)}[]` : sql.raw(mappedType); + return this.eb.cast(sql.ref(`$values.column${i + 1}`), castType).as(f.name); + }), ); } diff --git a/packages/orm/src/client/crud/dialects/sqlite.ts b/packages/orm/src/client/crud/dialects/sqlite.ts index 4ef87a464..ee6de5da0 100644 --- a/packages/orm/src/client/crud/dialects/sqlite.ts +++ b/packages/orm/src/client/crud/dialects/sqlite.ts @@ -2,7 +2,9 @@ import { invariant } from '@zenstackhq/common-helpers'; import Decimal from 'decimal.js'; import { expressionBuilder, + ExpressionWrapper, sql, + ValueListNode, type AliasableExpression, type Expression, type ExpressionBuilder, @@ -447,8 +449,29 @@ export class SqliteCrudDialect extends BaseCrudDialect return this.eb.fn('json_array_length', [array]); } - override buildArrayLiteralSQL(_values: unknown[]): AliasableExpression { - throw new Error('SQLite does not support array literals'); + override buildArrayValue(values: Expression[], _elemType: string): AliasableExpression { + return new ExpressionWrapper(ValueListNode.create(values.map((v) => v.toOperationNode()))); + } + + override buildArrayContains( + _field: Expression, + _value: Expression, + ): AliasableExpression { + throw createNotSupportedError('SQLite does not support native array operations'); + } + + override buildArrayHasEvery( + _field: Expression, + _values: Expression, + ): AliasableExpression { + throw createNotSupportedError('SQLite does not support native array operations'); + } + + override buildArrayHasSome( + _field: Expression, + _values: Expression, + ): AliasableExpression { + throw createNotSupportedError('SQLite does not support native array operations'); } override castInt>(expression: T): T { @@ -463,36 +486,6 @@ export class SqliteCrudDialect extends BaseCrudDialect return this.eb.fn('trim', [expression, sql.lit('"')]) as unknown as T; } - override getFieldSqlType(fieldDef: FieldDef) { - // TODO: respect `@db.x` attributes - if (fieldDef.relation) { - throw createInternalError('Cannot get SQL type of a relation field'); - } - if (fieldDef.array) { - throw createInternalError('SQLite does not support scalar list type'); - } - - if (this.schema.enums?.[fieldDef.type]) { - // enums are stored as text - return 'text'; - } - - return ( - match(fieldDef.type) - .with('String', () => 'text') - .with('Boolean', () => 'integer') - .with('Int', () => 'integer') - .with('BigInt', () => 'integer') - .with('Float', () => 'real') - .with('Decimal', () => 'decimal') - .with('DateTime', () => 'numeric') - .with('Bytes', () => 'blob') - .with('Json', () => 'jsonb') - // fallback to text - .otherwise(() => 'text') - ); - } - override getStringCasingBehavior() { // SQLite `LIKE` is case-insensitive, and there is no `ILIKE` return { supportsILike: false, likeCaseSensitive: false }; diff --git a/packages/orm/src/client/executor/name-mapper.ts b/packages/orm/src/client/executor/name-mapper.ts index ad6f18326..6a7535fe0 100644 --- a/packages/orm/src/client/executor/name-mapper.ts +++ b/packages/orm/src/client/executor/name-mapper.ts @@ -14,6 +14,7 @@ import { type OperationNode, OperationNodeTransformer, PrimitiveValueListNode, + type QueryId, ReferenceNode, ReturningNode, SelectAllNode, @@ -52,6 +53,7 @@ type SelectionNodeChild = SimpleReferenceExpressionNode | AliasNode | SelectAllN export class QueryNameMapper extends OperationNodeTransformer { private readonly modelToTableMap = new Map(); private readonly fieldToColumnMap = new Map(); + private readonly enumTypeMap = new Map(); private readonly scopes: Scope[] = []; private readonly dialect: BaseCrudDialect; @@ -71,6 +73,13 @@ export class QueryNameMapper extends OperationNodeTransformer { } } } + + for (const [enumName, enumDef] of Object.entries(client.$schema.enums ?? {})) { + const mappedName = this.getMappedName(enumDef); + if (mappedName) { + this.enumTypeMap.set(enumName, mappedName); + } + } } private get schema() { @@ -79,9 +88,9 @@ export class QueryNameMapper extends OperationNodeTransformer { // #region overrides - protected override transformSelectQuery(node: SelectQueryNode) { + protected override transformSelectQuery(node: SelectQueryNode, queryId?: QueryId) { if (!node.from?.froms) { - return super.transformSelectQuery(node); + return super.transformSelectQuery(node, queryId); } // process "from" clauses @@ -109,7 +118,7 @@ export class QueryNameMapper extends OperationNodeTransformer { })) : undefined; const selections = this.processSelectQuerySelections(node); - const baseResult = super.transformSelectQuery(node); + const baseResult = super.transformSelectQuery(node, queryId); return { ...baseResult, @@ -120,16 +129,16 @@ export class QueryNameMapper extends OperationNodeTransformer { }); } - protected override transformInsertQuery(node: InsertQueryNode) { + protected override transformInsertQuery(node: InsertQueryNode, queryId?: QueryId) { if (!node.into) { - return super.transformInsertQuery(node); + return super.transformInsertQuery(node, queryId); } const model = extractModelName(node.into); invariant(model, 'InsertQueryNode must have a model name in the "into" clause'); return this.withScope({ model }, () => { - const baseResult = super.transformInsertQuery(node); + const baseResult = super.transformInsertQuery(node, queryId); let values = baseResult.values; if (node.columns && values) { // process enum values with name mapping @@ -156,9 +165,9 @@ export class QueryNameMapper extends OperationNodeTransformer { }; } - protected override transformReference(node: ReferenceNode) { + protected override transformReference(node: ReferenceNode, queryId?: QueryId) { if (!ColumnNode.is(node.column)) { - return super.transformReference(node); + return super.transformReference(node, queryId); } // resolve the reference to a field from outer scopes @@ -187,16 +196,16 @@ export class QueryNameMapper extends OperationNodeTransformer { } } - protected override transformColumn(node: ColumnNode) { + protected override transformColumn(node: ColumnNode, queryId?: QueryId) { const scope = this.resolveFieldFromScopes(node.column.name); if (!scope || scope.namesMapped || !scope.model) { - return super.transformColumn(node); + return super.transformColumn(node, queryId); } const mappedName = this.mapFieldName(scope.model, node.column.name); return ColumnNode.create(mappedName); } - protected override transformBinaryOperation(node: BinaryOperationNode) { + protected override transformBinaryOperation(node: BinaryOperationNode, queryId?: QueryId) { // transform enum name mapping for enum values used inside binary operations // 1. simple value: column = EnumValue // 2. list value: column IN [EnumValue, EnumValue2] @@ -236,19 +245,22 @@ export class QueryNameMapper extends OperationNodeTransformer { ); } - return super.transformBinaryOperation({ - ...node, - rightOperand: resultValue, - }); + return super.transformBinaryOperation( + { + ...node, + rightOperand: resultValue, + }, + queryId, + ); } } - return super.transformBinaryOperation(node); + return super.transformBinaryOperation(node, queryId); } - protected override transformUpdateQuery(node: UpdateQueryNode) { + protected override transformUpdateQuery(node: UpdateQueryNode, queryId?: QueryId) { if (!node.table) { - return super.transformUpdateQuery(node); + return super.transformUpdateQuery(node, queryId); } const { alias, node: innerTable } = stripAlias(node.table); @@ -260,7 +272,7 @@ export class QueryNameMapper extends OperationNodeTransformer { invariant(model, 'UpdateQueryNode must have a model name in the "table" clause'); return this.withScope({ model, alias }, () => { - const baseResult = super.transformUpdateQuery(node); + const baseResult = super.transformUpdateQuery(node, queryId); // process enum value mappings in update set values const updates = baseResult.updates?.map((update, i) => { @@ -285,7 +297,7 @@ export class QueryNameMapper extends OperationNodeTransformer { }); } - protected override transformDeleteQuery(node: DeleteQueryNode) { + protected override transformDeleteQuery(node: DeleteQueryNode, queryId?: QueryId) { // all "from" nodes are pushed as scopes const scopes: Scope[] = node.from.froms.map((node) => { const { alias, node: innerNode } = stripAlias(node); @@ -303,13 +315,13 @@ export class QueryNameMapper extends OperationNodeTransformer { // map table name return this.wrapAlias(this.processTableRef(innerNode), alias); } else { - return super.transformNode(from); + return super.transformNode(from, queryId); } }); return this.withScopes(scopes, () => { return { - ...super.transformDeleteQuery(node), + ...super.transformDeleteQuery(node, queryId), from: FromNode.create(froms), }; }); diff --git a/packages/orm/src/client/functions.ts b/packages/orm/src/client/functions.ts index 1f3ff6ce8..25af1e723 100644 --- a/packages/orm/src/client/functions.ts +++ b/packages/orm/src/client/functions.ts @@ -68,7 +68,7 @@ const textMatch = ( return sql`${fieldExpr} ${sql.raw(op)} ${searchExpr} escape ${sql.val('\\')}`; }; -export const has: ZModelFunction = (eb, args) => { +export const has: ZModelFunction = (_eb, args, context) => { const [field, search] = args; if (!field) { throw new Error('"field" parameter is required'); @@ -76,10 +76,10 @@ export const has: ZModelFunction = (eb, args) => { if (!search) { throw new Error('"search" parameter is required'); } - return eb(field, '@>', [search]); + return context.dialect.buildArrayContains(field, search); }; -export const hasEvery: ZModelFunction = (eb: ExpressionBuilder, args: Expression[]) => { +export const hasEvery: ZModelFunction = (_eb, args, { dialect }: ZModelFunctionContext) => { const [field, search] = args; if (!field) { throw new Error('"field" parameter is required'); @@ -87,10 +87,10 @@ export const hasEvery: ZModelFunction = (eb: ExpressionBuilder, a if (!search) { throw new Error('"search" parameter is required'); } - return eb(field, '@>', search); + return dialect.buildArrayHasEvery(field, search); }; -export const hasSome: ZModelFunction = (eb, args) => { +export const hasSome: ZModelFunction = (_eb, args, { dialect }: ZModelFunctionContext) => { const [field, search] = args; if (!field) { throw new Error('"field" parameter is required'); @@ -98,7 +98,7 @@ export const hasSome: ZModelFunction = (eb, args) => { if (!search) { throw new Error('"search" parameter is required'); } - return eb(field, '&&', search); + return dialect.buildArrayHasSome(field, search); }; export const isEmpty: ZModelFunction = (eb, args, { dialect }: ZModelFunctionContext) => { diff --git a/packages/orm/src/client/helpers/schema-db-pusher.ts b/packages/orm/src/client/helpers/schema-db-pusher.ts index 38df33cee..28701ca1b 100644 --- a/packages/orm/src/client/helpers/schema-db-pusher.ts +++ b/packages/orm/src/client/helpers/schema-db-pusher.ts @@ -6,6 +6,7 @@ import { ExpressionUtils, type BuiltinType, type CascadeAction, + type EnumDef, type FieldDef, type ModelDef, type SchemaDef, @@ -27,7 +28,7 @@ export class SchemaDbPusher { async push() { await this.kysely.transaction().execute(async (tx) => { if (this.schema.enums && this.providerSupportsNativeEnum) { - for (const [name, enumDef] of Object.entries(this.schema.enums)) { + for (const enumDef of Object.values(this.schema.enums)) { let enumValues: string[]; if (enumDef.fields) { enumValues = Object.values(enumDef.fields).map((f) => { @@ -47,7 +48,7 @@ export class SchemaDbPusher { enumValues = Object.values(enumDef.values); } - const createEnum = tx.schema.createType(name).asEnum(enumValues); + const createEnum = tx.schema.createType(this.getEnumName(enumDef)).asEnum(enumValues); await createEnum.execute(); } } @@ -148,6 +149,17 @@ export class SchemaDbPusher { return modelDef.name; } + private getEnumName(enumDef: EnumDef) { + const mapAttr = enumDef.attributes?.find((a) => a.name === '@@map'); + if (mapAttr && mapAttr.args?.[0]) { + const mappedName = ExpressionUtils.getLiteralValue(mapAttr.args[0].value); + if (mappedName) { + return mappedName as string; + } + } + return enumDef.name; + } + private getColumnName(fieldDef: FieldDef) { const mapAttr = fieldDef.attributes?.find((a) => a.name === '@map'); if (mapAttr && mapAttr.args?.[0]) { diff --git a/packages/plugins/policy/src/expression-transformer.ts b/packages/plugins/policy/src/expression-transformer.ts index f33de0ea3..3b31bd05c 100644 --- a/packages/plugins/policy/src/expression-transformer.ts +++ b/packages/plugins/policy/src/expression-transformer.ts @@ -32,6 +32,7 @@ import { BinaryOperationNode, ColumnNode, expressionBuilder, + ExpressionWrapper, FromNode, FunctionNode, IdentifierNode, @@ -43,7 +44,6 @@ import { ValueListNode, ValueNode, WhereNode, - type ExpressionBuilder, type OperandExpression, type OperationNode, } from 'kysely'; @@ -127,6 +127,7 @@ function expr(kind: Expression['kind']) { export class ExpressionTransformer { private readonly dialect: BaseCrudDialect; + private readonly eb = expressionBuilder(); constructor(private readonly client: ClientContract) { this.dialect = getCrudDialect(this.schema, this.clientOptions); @@ -156,7 +157,9 @@ export class ExpressionTransformer { if (!handler) { throw new Error(`Unsupported expression kind: ${expression.kind}`); } - return handler.value.call(this, expression, context); + const result = handler.value.call(this, expression, context); + invariant('kind' in result, `expression handler must return an OperationNode: transforming ${expression.kind}`); + return result; } @expr('literal') @@ -171,7 +174,12 @@ export class ExpressionTransformer { @expr('array') // @ts-expect-error private _array(expr: ArrayExpression, context: ExpressionTransformerContext) { - return ValueListNode.create(expr.items.map((item) => this.transform(item, context))); + return this.dialect + .buildArrayValue( + expr.items.map((item) => new ExpressionWrapper(this.transform(item, context))), + expr.type, + ) + .toOperationNode(); } @expr('field') @@ -539,15 +547,22 @@ export class ExpressionTransformer { } } - private transformValue(value: unknown, type: BuiltinType) { + private transformValue(value: unknown, type: BuiltinType): OperationNode { if (value === true) { return trueNode(this.dialect); } else if (value === false) { return falseNode(this.dialect); + } else if (Array.isArray(value)) { + return this.dialect + .buildArrayValue( + value.map((v) => new ExpressionWrapper(this.transformValue(v, type))), + type, + ) + .toOperationNode(); } else { const transformed = this.dialect.transformInput(value, type, false) ?? null; - if (!Array.isArray(transformed)) { - // simple primitives can be immediate values + if (typeof transformed !== 'string') { + // simple non-string primitives can be immediate values return ValueNode.createImmediate(transformed); } else { return ValueNode.create(transformed); @@ -582,10 +597,9 @@ export class ExpressionTransformer { if (!func) { throw createUnsupportedError(`Function not implemented: ${expr.function}`); } - const eb = expressionBuilder(); return func( - eb, - (expr.args ?? []).map((arg) => this.transformCallArg(eb, arg, context)), + this.eb, + (expr.args ?? []).map((arg) => this.transformCallArg(arg, context)), { client: this.client, dialect: this.dialect, @@ -611,33 +625,13 @@ export class ExpressionTransformer { return func; } - private transformCallArg( - eb: ExpressionBuilder, - arg: Expression, - context: ExpressionTransformerContext, - ): OperandExpression { - if (ExpressionUtils.isLiteral(arg)) { - return eb.val(arg.value); - } - + private transformCallArg(arg: Expression, context: ExpressionTransformerContext): OperandExpression { if (ExpressionUtils.isField(arg)) { - return eb.ref(arg.field); - } - - if (ExpressionUtils.isCall(arg)) { - return this.transformCall(arg, context); - } - - if (this.isAuthMember(arg)) { - const valNode = this.valueMemberAccess(this.auth, arg as MemberExpression, this.authType); - return valNode ? eb.val(valNode.value) : eb.val(null); + // field references are passed as-is, without translating to joins, etc. + return this.eb.ref(arg.field); + } else { + return new ExpressionWrapper(this.transform(arg, context)); } - - // TODO - // if (Expression.isMember(arg)) { - // } - - throw createUnsupportedError(`Unsupported argument expression: ${arg.kind}`); } @expr('member') @@ -792,7 +786,7 @@ export class ExpressionTransformer { return binding; } - private valueMemberAccess(receiver: any, expr: MemberExpression, receiverType: string) { + private valueMemberAccess(receiver: any, expr: MemberExpression, receiverType: string): OperationNode { if (!receiver) { return ValueNode.createImmediate(null); } diff --git a/packages/plugins/policy/src/policy-handler.ts b/packages/plugins/policy/src/policy-handler.ts index ec12d1a7f..25545cfc8 100644 --- a/packages/plugins/policy/src/policy-handler.ts +++ b/packages/plugins/policy/src/policy-handler.ts @@ -945,8 +945,9 @@ export class PolicyHandler extends OperationNodeTransf // handle the case for list column if (Array.isArray(value)) { + const fieldDef = QueryUtils.requireField(this.client.$schema, model, fields[i]!); result.push({ - node: this.dialect.buildArrayLiteralSQL(value).toOperationNode(), + node: this.dialect.buildArrayValue(value, fieldDef.type).toOperationNode(), raw: value, }); } else { diff --git a/packages/schema/src/expression-utils.ts b/packages/schema/src/expression-utils.ts index 07ee1c115..8045da716 100644 --- a/packages/schema/src/expression-utils.ts +++ b/packages/schema/src/expression-utils.ts @@ -19,77 +19,43 @@ import type { */ export const ExpressionUtils = { literal: (value: string | number | boolean): LiteralExpression => { - return { - kind: 'literal', - value, - }; + return { kind: 'literal', value }; }, - array: (items: Expression[]): ArrayExpression => { - return { - kind: 'array', - items, - }; + array: (type: string, items: Expression[]): ArrayExpression => { + return { kind: 'array', type, items }; }, call: (functionName: string, args?: Expression[]): CallExpression => { - return { - kind: 'call', - function: functionName, - args, - }; + return { kind: 'call', function: functionName, args }; }, binary: (left: Expression, op: BinaryOperator, right: Expression, binding?: string): BinaryExpression => { - return { - kind: 'binary', - op, - left, - right, - binding, - }; + return { kind: 'binary', op, left, right, binding }; }, unary: (op: UnaryOperator, operand: Expression): UnaryExpression => { - return { - kind: 'unary', - op, - operand, - }; + return { kind: 'unary', op, operand }; }, field: (field: string): FieldExpression => { - return { - kind: 'field', - field, - }; + return { kind: 'field', field }; }, member: (receiver: Expression, members: string[]): MemberExpression => { - return { - kind: 'member', - receiver: receiver, - members, - }; + return { kind: 'member', receiver: receiver, members }; }, binding: (name: string): BindingExpression => { - return { - kind: 'binding', - name, - }; + return { kind: 'binding', name }; }, _this: (): ThisExpression => { - return { - kind: 'this', - }; + return { kind: 'this' }; }, _null: (): NullExpression => { - return { - kind: 'null', - }; + return { kind: 'null' }; }, and: (expr: Expression, ...expressions: Expression[]) => { diff --git a/packages/schema/src/expression.ts b/packages/schema/src/expression.ts index 1828b9cc3..754328c18 100644 --- a/packages/schema/src/expression.ts +++ b/packages/schema/src/expression.ts @@ -17,6 +17,7 @@ export type LiteralExpression = { export type ArrayExpression = { kind: 'array'; + type: string; items: Expression[]; }; diff --git a/packages/sdk/src/ts-schema-generator.ts b/packages/sdk/src/ts-schema-generator.ts index 16f81bae2..b60a1b050 100644 --- a/packages/sdk/src/ts-schema-generator.ts +++ b/packages/sdk/src/ts-schema-generator.ts @@ -1281,7 +1281,11 @@ export class TsSchemaGenerator { } private createArrayExpression(expr: ArrayExpr): any { + const arrayResolved = expr.$resolvedType?.decl; + const arrayType = typeof arrayResolved === 'string' ? arrayResolved : arrayResolved?.name; + invariant(arrayType, 'Array type must be resolved to a string or declaration'); return this.createExpressionUtilsCall('array', [ + this.createLiteralNode(arrayType), ts.factory.createArrayLiteralExpression(expr.items.map((item) => this.createExpression(item))), ]); } diff --git a/packages/testtools/src/client.ts b/packages/testtools/src/client.ts index c82a6b780..89148c405 100644 --- a/packages/testtools/src/client.ts +++ b/packages/testtools/src/client.ts @@ -68,7 +68,12 @@ type ExtraTestClientOptions = { usePrismaPush?: boolean; /** - * Extra source files to create and compile. + * Extra ZModel files to be created in the working directory. + */ + extraZModelFiles?: Record; + + /** + * Extra TypeScript source files to create and compile. */ extraSourceFiles?: Record; @@ -126,7 +131,14 @@ export async function createTestClient( let model: Model | undefined; if (typeof schema === 'string') { - const generated = await generateTsSchema(schema, provider, dbUrl, options?.extraSourceFiles, undefined); + const generated = await generateTsSchema( + schema, + provider, + dbUrl, + options?.extraSourceFiles, + undefined, + options?.extraZModelFiles, + ); workDir = generated.workDir; model = generated.model; // replace schema's provider diff --git a/packages/testtools/src/schema.ts b/packages/testtools/src/schema.ts index 44f4483c9..ffd016b11 100644 --- a/packages/testtools/src/schema.ts +++ b/packages/testtools/src/schema.ts @@ -61,6 +61,7 @@ export async function generateTsSchema( dbUrl?: string, extraSourceFiles?: Record, withLiteSchema?: boolean, + extraZModelFiles?: Record, ) { const workDir = createTestProject(); @@ -71,6 +72,19 @@ export async function generateTsSchema( `${noPrelude ? '' : makePrelude(provider, dbUrl)}\n\n${replacePlaceholders(schemaText, provider, dbUrl)}`, ); + // write extra ZModel files before loading the schema + if (extraZModelFiles) { + for (const [fileName, content] of Object.entries(extraZModelFiles)) { + let name = fileName; + if (!name.endsWith('.zmodel')) { + name += '.zmodel'; + } + const filePath = path.join(workDir, name); + fs.mkdirSync(path.dirname(filePath), { recursive: true }); + fs.writeFileSync(filePath, content); + } + } + const result = await loadDocumentWithPlugins(zmodelPath); if (!result.success) { throw new Error(`Failed to load schema from ${zmodelPath}: ${result.errors}`); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0e4080566..3f519e5c3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -222,6 +222,9 @@ importers: cors: specifier: ^2.8.5 version: 2.8.5 + dotenv: + specifier: ^17.2.3 + version: 17.2.3 execa: specifier: ^9.6.0 version: 9.6.0 @@ -12977,7 +12980,7 @@ snapshots: eslint: 9.29.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.1)))(eslint@9.29.0(jiti@2.6.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.1)))(eslint@9.29.0(jiti@2.6.1)))(eslint@9.29.0(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.29.0(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.29.0(jiti@2.6.1)) eslint-plugin-react-hooks: 7.0.1(eslint@9.29.0(jiti@2.6.1)) @@ -13010,7 +13013,7 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.1)))(eslint@9.29.0(jiti@2.6.1)))(eslint@9.29.0(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.6.1)) transitivePeerDependencies: - supports-color @@ -13025,7 +13028,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.1)))(eslint@9.29.0(jiti@2.6.1)))(eslint@9.29.0(jiti@2.6.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 diff --git a/samples/next.js/zenstack/schema.ts b/samples/next.js/zenstack/schema.ts index 695ee053a..724c9659f 100644 --- a/samples/next.js/zenstack/schema.ts +++ b/samples/next.js/zenstack/schema.ts @@ -92,7 +92,7 @@ export class SchemaType implements SchemaDef { author: { name: "author", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "posts", fields: ["authorId"], references: ["id"], onUpdate: "Cascade", onDelete: "Cascade" } }, authorId: { diff --git a/samples/nuxt/zenstack/schema.ts b/samples/nuxt/zenstack/schema.ts index 695ee053a..724c9659f 100644 --- a/samples/nuxt/zenstack/schema.ts +++ b/samples/nuxt/zenstack/schema.ts @@ -92,7 +92,7 @@ export class SchemaType implements SchemaDef { author: { name: "author", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "posts", fields: ["authorId"], references: ["id"], onUpdate: "Cascade", onDelete: "Cascade" } }, authorId: { diff --git a/samples/orm/zenstack/schema.ts b/samples/orm/zenstack/schema.ts index 908df1e71..25ef6342a 100644 --- a/samples/orm/zenstack/schema.ts +++ b/samples/orm/zenstack/schema.ts @@ -122,7 +122,7 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "profile", fields: ["userId"], references: ["id"] } }, userId: { @@ -184,7 +184,7 @@ export class SchemaType implements SchemaDef { author: { name: "author", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "posts", fields: ["authorId"], references: ["id"] } }, authorId: { diff --git a/samples/sveltekit/src/zenstack/schema.ts b/samples/sveltekit/src/zenstack/schema.ts index 695ee053a..724c9659f 100644 --- a/samples/sveltekit/src/zenstack/schema.ts +++ b/samples/sveltekit/src/zenstack/schema.ts @@ -92,7 +92,7 @@ export class SchemaType implements SchemaDef { author: { name: "author", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "posts", fields: ["authorId"], references: ["id"], onUpdate: "Cascade", onDelete: "Cascade" } }, authorId: { diff --git a/tests/e2e/apps/rally/zenstack/schema.ts b/tests/e2e/apps/rally/zenstack/schema.ts index d9ddfdb78..dd860a2b0 100644 --- a/tests/e2e/apps/rally/zenstack/schema.ts +++ b/tests/e2e/apps/rally/zenstack/schema.ts @@ -69,7 +69,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "accounts", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, accessTokenExpiresAt: { @@ -104,7 +104,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("provider"), ExpressionUtils.field("providerAccountId")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("provider"), ExpressionUtils.field("providerAccountId")]) }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("accounts") }] } ], idFields: ["id"], @@ -333,7 +333,7 @@ export class SchemaType implements SchemaDef { name: "defaultDestinationCalendar", type: "ProviderCalendar", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("UserDefaultDestinationCalendar") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("defaultDestinationCalendarId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("UserDefaultDestinationCalendar") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("defaultDestinationCalendarId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "userDefaultDestination", name: "UserDefaultDestinationCalendar", fields: ["defaultDestinationCalendarId"], references: ["id"], onDelete: "SetNull" } }, sessions: { @@ -380,7 +380,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("identifier"), ExpressionUtils.field("token")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("identifier"), ExpressionUtils.field("token")]) }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("verification_tokens") }] } ], idFields: ["token"], @@ -451,19 +451,19 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "sessions", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, impersonatedByUser: { name: "impersonatedByUser", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("ImpersonatedSessions") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("impersonatedBy")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("ImpersonatedSessions") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("impersonatedBy")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "impersonatedSessions", name: "ImpersonatedSessions", fields: ["impersonatedBy"], references: ["id"] } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("token")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("token")]) }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("sessions") }] } ], idFields: ["id"], @@ -658,14 +658,14 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "polls", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, scheduledEvent: { name: "scheduledEvent", type: "ScheduledEvent", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scheduledEventId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("scheduledEventId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "polls", fields: ["scheduledEventId"], references: ["id"], onDelete: "SetNull" } }, options: { @@ -708,7 +708,7 @@ export class SchemaType implements SchemaDef { name: "space", type: "Space", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "polls", fields: ["spaceId"], references: ["id"], onDelete: "SetNull" } }, spaceId: { @@ -722,9 +722,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("guestId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("guestId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("polls") }] } ], idFields: ["id"], @@ -770,18 +770,18 @@ export class SchemaType implements SchemaDef { poll: { name: "poll", type: "Poll", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("pollId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("pollId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "watchers", fields: ["pollId"], references: ["id"], onDelete: "Cascade" } }, user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "watcher", fields: ["userId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("pollId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("pollId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("watchers") }] } ], idFields: ["id"], @@ -876,19 +876,19 @@ export class SchemaType implements SchemaDef { poll: { name: "poll", type: "Poll", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("pollId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("pollId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "participants", fields: ["pollId"], references: ["id"], onDelete: "Cascade" } }, user: { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "participants", fields: ["userId"], references: ["id"], onDelete: "SetNull" } } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("pollId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("pollId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("participants") }] } ], idFields: ["id"], @@ -940,12 +940,12 @@ export class SchemaType implements SchemaDef { poll: { name: "poll", type: "Poll", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("pollId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("pollId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "options", fields: ["pollId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("pollId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("pollId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("options") }] } ], idFields: ["id"], @@ -1009,26 +1009,26 @@ export class SchemaType implements SchemaDef { participant: { name: "participant", type: "Participant", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("participantId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("participantId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "votes", fields: ["participantId"], references: ["id"], onDelete: "Cascade" } }, option: { name: "option", type: "Option", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("optionId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("optionId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "votes", fields: ["optionId"], references: ["id"], onDelete: "Cascade" } }, poll: { name: "poll", type: "Poll", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("pollId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("pollId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "votes", fields: ["pollId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("pollId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("participantId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("optionId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("pollId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("participantId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("optionId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("votes") }] } ], idFields: ["id"], @@ -1094,19 +1094,19 @@ export class SchemaType implements SchemaDef { poll: { name: "poll", type: "Poll", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("pollId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("pollId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "comments", fields: ["pollId"], references: ["id"], onDelete: "Cascade" } }, user: { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "comments", fields: ["userId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("pollId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("pollId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("comments") }] } ], idFields: ["id"], @@ -1162,21 +1162,21 @@ export class SchemaType implements SchemaDef { poll: { name: "poll", type: "Poll", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("pollId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("pollId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "views", fields: ["pollId"], references: ["id"], onDelete: "Cascade" } }, user: { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "pollViews", fields: ["userId"], references: ["id"], onDelete: "SetNull" } } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("pollId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("viewedAt")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("pollId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("viewedAt")]) }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("poll_views") }] } ], idFields: ["id"], @@ -1232,7 +1232,7 @@ export class SchemaType implements SchemaDef { owner: { name: "owner", type: "User", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("UserSpaces") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("UserSpaces") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "spaces", name: "UserSpaces", fields: ["ownerId"], references: ["id"], onDelete: "Cascade" } }, polls: { @@ -1268,7 +1268,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("ownerId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("ownerId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("spaces") }] } ], idFields: ["id"], @@ -1329,20 +1329,20 @@ export class SchemaType implements SchemaDef { space: { name: "space", type: "Space", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "members", fields: ["spaceId"], references: ["id"], onDelete: "Cascade" } }, user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "memberOf", fields: ["userId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId"), ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }, { name: "map", value: ExpressionUtils.literal("space_members_space_id_idx") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }, { name: "map", value: ExpressionUtils.literal("space_members_user_id_idx") }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId"), ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }, { name: "map", value: ExpressionUtils.literal("space_members_space_id_idx") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }, { name: "map", value: ExpressionUtils.literal("space_members_user_id_idx") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("space_members") }] } ], idFields: ["id"], @@ -1402,19 +1402,19 @@ export class SchemaType implements SchemaDef { invitedBy: { name: "invitedBy", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("inviterId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("inviterId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "spaceMemberInvites", fields: ["inviterId"], references: ["id"], onDelete: "Cascade" } }, space: { name: "space", type: "Space", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "memberInvites", fields: ["spaceId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId"), ExpressionUtils.field("email")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }, { name: "map", value: ExpressionUtils.literal("space_member_invites_space_id_idx") }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId"), ExpressionUtils.field("email")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }, { name: "map", value: ExpressionUtils.literal("space_member_invites_space_id_idx") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("space_member_invites") }] } ], idFields: ["id"], @@ -1509,19 +1509,19 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("UserToSubscription") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("UserToSubscription") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "subscriptions", name: "UserToSubscription", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, space: { name: "space", type: "Space", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("SpaceToSubscription") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("SpaceToSubscription") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "subscriptions", name: "SpaceToSubscription", fields: ["spaceId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("subscriptions") }] } ], idFields: ["id"], @@ -1569,7 +1569,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "paymentMethods", fields: ["userId"], references: ["id"], onDelete: "Cascade" } } }, @@ -1680,13 +1680,13 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "scheduledEvents", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, space: { name: "space", type: "Space", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "scheduledEvents", fields: ["spaceId"], references: ["id"], onDelete: "Cascade" } }, rescheduledDates: { @@ -1709,8 +1709,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "type", value: ExpressionUtils.literal("Hash") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("scheduled_events") }] } ], idFields: ["id"], @@ -1762,12 +1762,12 @@ export class SchemaType implements SchemaDef { scheduledEvent: { name: "scheduledEvent", type: "ScheduledEvent", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scheduledEventId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("scheduledEventId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "rescheduledDates", fields: ["scheduledEventId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scheduledEventId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("scheduledEventId")]) }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("rescheduled_event_dates") }] } ], idFields: ["id"], @@ -1839,21 +1839,21 @@ export class SchemaType implements SchemaDef { scheduledEvent: { name: "scheduledEvent", type: "ScheduledEvent", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scheduledEventId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("scheduledEventId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "invites", fields: ["scheduledEventId"], references: ["id"], onDelete: "Cascade" } }, user: { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("inviteeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("inviteeId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "scheduledEventInvites", fields: ["inviteeId"], references: ["id"], onDelete: "SetNull" } } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scheduledEventId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("inviteeId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("inviteeEmail")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("scheduledEventId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("inviteeId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("inviteeEmail")]) }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("scheduled_event_invites") }] } ], idFields: ["id"], @@ -1929,13 +1929,13 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "credentials", fields: ["userId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("provider"), ExpressionUtils.field("providerAccountId")]) }, { name: "name", value: ExpressionUtils.literal("user_provider_account_unique") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("expiresAt")]) }, { name: "name", value: ExpressionUtils.literal("credential_expiry_idx") }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId"), ExpressionUtils.field("provider"), ExpressionUtils.field("providerAccountId")]) }, { name: "name", value: ExpressionUtils.literal("user_provider_account_unique") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("expiresAt")]) }, { name: "name", value: ExpressionUtils.literal("credential_expiry_idx") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("credentials") }] } ], idFields: ["id"], @@ -2001,7 +2001,7 @@ export class SchemaType implements SchemaDef { credential: { name: "credential", type: "Credential", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("credentialId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("credentialId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "calendarConnections", fields: ["credentialId"], references: ["id"], onDelete: "Cascade" } }, credentialId: { @@ -2015,7 +2015,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "calendarConnections", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, providerCalendars: { @@ -2026,7 +2026,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("provider"), ExpressionUtils.field("providerAccountId")]) }, { name: "name", value: ExpressionUtils.literal("user_provider_account_unique") }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId"), ExpressionUtils.field("provider"), ExpressionUtils.field("providerAccountId")]) }, { name: "name", value: ExpressionUtils.literal("user_provider_account_unique") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("calendar_connections") }] } ], idFields: ["id"], @@ -2119,7 +2119,7 @@ export class SchemaType implements SchemaDef { calendarConnection: { name: "calendarConnection", type: "CalendarConnection", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("calendarConnectionId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("calendarConnectionId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "providerCalendars", fields: ["calendarConnectionId"], references: ["id"], onDelete: "Cascade" } }, userDefaultDestination: { @@ -2131,10 +2131,10 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("calendarConnectionId"), ExpressionUtils.field("providerCalendarId")]) }, { name: "name", value: ExpressionUtils.literal("connection_calendar_unique") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("calendarConnectionId"), ExpressionUtils.field("isSelected")]) }, { name: "name", value: ExpressionUtils.literal("connection_selected_idx") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("isPrimary")]) }, { name: "name", value: ExpressionUtils.literal("primary_calendar_idx") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("lastSyncedAt")]) }, { name: "name", value: ExpressionUtils.literal("sync_time_idx") }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("calendarConnectionId"), ExpressionUtils.field("providerCalendarId")]) }, { name: "name", value: ExpressionUtils.literal("connection_calendar_unique") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("calendarConnectionId"), ExpressionUtils.field("isSelected")]) }, { name: "name", value: ExpressionUtils.literal("connection_selected_idx") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Boolean", [ExpressionUtils.field("isPrimary")]) }, { name: "name", value: ExpressionUtils.literal("primary_calendar_idx") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("lastSyncedAt")]) }, { name: "name", value: ExpressionUtils.literal("sync_time_idx") }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("provider_calendars") }] } ], idFields: ["id"], @@ -2280,7 +2280,7 @@ export class SchemaType implements SchemaDef { license: { name: "license", type: "License", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("licenseId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("licenseId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "validations", fields: ["licenseId"], references: ["id"], onDelete: "Cascade" } }, ipAddress: { diff --git a/tests/e2e/github-repos/cal.com/schema.ts b/tests/e2e/github-repos/cal.com/schema.ts index 47bb801a4..e77063c76 100644 --- a/tests/e2e/github-repos/cal.com/schema.ts +++ b/tests/e2e/github-repos/cal.com/schema.ts @@ -17,7 +17,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "hosts", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -31,7 +31,7 @@ export class SchemaType implements SchemaDef { eventType: { name: "eventType", type: "EventType", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "hosts", fields: ["eventTypeId"], references: ["id"], onDelete: "Cascade" } }, eventTypeId: { @@ -67,7 +67,7 @@ export class SchemaType implements SchemaDef { name: "schedule", type: "Schedule", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scheduleId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("scheduleId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "Host", fields: ["scheduleId"], references: ["id"] } }, scheduleId: { @@ -86,10 +86,10 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("eventTypeId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scheduleId")]) }] } + { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("eventTypeId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("scheduleId")]) }] } ], idFields: ["userId", "eventTypeId"], uniqueFields: { @@ -111,7 +111,7 @@ export class SchemaType implements SchemaDef { eventType: { name: "eventType", type: "EventType", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "calVideoSettings", fields: ["eventTypeId"], references: ["id"], onDelete: "Cascade" } }, disableRecordingForOrganizer: { @@ -239,7 +239,7 @@ export class SchemaType implements SchemaDef { name: "owner", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("owner") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("owner") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "ownedEventTypes", name: "owner", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -262,14 +262,14 @@ export class SchemaType implements SchemaDef { name: "profile", type: "Profile", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("profileId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("profileId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "eventTypes", fields: ["profileId"], references: ["id"] } }, team: { name: "team", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "eventTypes", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, teamId: { @@ -339,7 +339,7 @@ export class SchemaType implements SchemaDef { name: "parent", type: "EventType", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("managed_eventtype") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("parentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("managed_eventtype") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("parentId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "children", name: "managed_eventtype", fields: ["parentId"], references: ["id"], onDelete: "Cascade" } }, children: { @@ -516,7 +516,7 @@ export class SchemaType implements SchemaDef { name: "schedule", type: "Schedule", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scheduleId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("scheduleId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "eventType", fields: ["scheduleId"], references: ["id"] } }, scheduleId: { @@ -608,7 +608,7 @@ export class SchemaType implements SchemaDef { name: "instantMeetingSchedule", type: "Schedule", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("InstantMeetingSchedule") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("instantMeetingScheduleId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("InstantMeetingSchedule") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("instantMeetingScheduleId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "instantMeetingEvents", name: "InstantMeetingSchedule", fields: ["instantMeetingScheduleId"], references: ["id"] } }, instantMeetingParameters: { @@ -731,7 +731,7 @@ export class SchemaType implements SchemaDef { name: "secondaryEmail", type: "SecondaryEmail", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("secondaryEmailId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("secondaryEmailId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "eventTypes", fields: ["secondaryEmailId"], references: ["id"], onDelete: "Cascade" } }, useBookerTimezone: { @@ -752,21 +752,21 @@ export class SchemaType implements SchemaDef { name: "restrictionSchedule", type: "Schedule", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("restrictionSchedule") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("restrictionScheduleId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("restrictionSchedule") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("restrictionScheduleId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "restrictionSchedule", name: "restrictionSchedule", fields: ["restrictionScheduleId"], references: ["id"] } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("slug")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId"), ExpressionUtils.field("slug")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("parentId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("profileId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scheduleId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("secondaryEmailId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("parentId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("restrictionScheduleId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("slug")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId"), ExpressionUtils.field("slug")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("parentId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("profileId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("scheduleId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("secondaryEmailId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("parentId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("restrictionScheduleId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -798,7 +798,7 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "credentials", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -813,7 +813,7 @@ export class SchemaType implements SchemaDef { name: "team", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "credentials", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, teamId: { @@ -828,7 +828,7 @@ export class SchemaType implements SchemaDef { name: "app", type: "App", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("appId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("slug")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("appId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("slug")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "credentials", fields: ["appId"], references: ["slug"], onDelete: "Cascade" } }, appId: { @@ -897,15 +897,15 @@ export class SchemaType implements SchemaDef { name: "delegationCredential", type: "DelegationCredential", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("delegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("delegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "credentials", fields: ["delegationCredentialId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("appId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("subscriptionId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("invalid")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("delegationCredentialId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("appId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("subscriptionId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Boolean", [ExpressionUtils.field("invalid")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("delegationCredentialId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -939,7 +939,7 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "destinationCalendar", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -962,7 +962,7 @@ export class SchemaType implements SchemaDef { name: "eventType", type: "EventType", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "destinationCalendar", fields: ["eventTypeId"], references: ["id"], onDelete: "Cascade" } }, eventTypeId: { @@ -987,14 +987,14 @@ export class SchemaType implements SchemaDef { name: "credential", type: "Credential", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("credentialId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("credentialId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "destinationCalendars", fields: ["credentialId"], references: ["id"], onDelete: "Cascade" } }, delegationCredential: { name: "delegationCredential", type: "DelegationCredential", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("delegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("delegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "destinationCalendar", fields: ["delegationCredentialId"], references: ["id"], onDelete: "Cascade" } }, delegationCredentialId: { @@ -1009,7 +1009,7 @@ export class SchemaType implements SchemaDef { name: "domainWideDelegation", type: "DomainWideDelegation", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("domainWideDelegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("domainWideDelegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "destinationCalendar", fields: ["domainWideDelegationCredentialId"], references: ["id"], onDelete: "Cascade" } }, domainWideDelegationCredentialId: { @@ -1022,9 +1022,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("credentialId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("credentialId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1053,7 +1053,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "password", fields: ["userId"], references: ["id"], onDelete: "Cascade" } } }, @@ -1082,7 +1082,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "travelSchedules", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, timeZone: { @@ -1105,8 +1105,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("startDate")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("endDate")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("startDate")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("endDate")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1486,7 +1486,7 @@ export class SchemaType implements SchemaDef { name: "organization", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("scope") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("scope") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "orgUsers", name: "scope", fields: ["organizationId"], references: ["id"], onDelete: "SetNull" } }, accessCodes: { @@ -1556,7 +1556,7 @@ export class SchemaType implements SchemaDef { name: "movedToProfile", type: "Profile", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("moved_to_profile") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("movedToProfileId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("moved_to_profile") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("movedToProfileId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "movedFromUser", name: "moved_to_profile", fields: ["movedToProfileId"], references: ["id"], onDelete: "SetNull" } }, secondaryEmails: { @@ -1699,14 +1699,14 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("email")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("email"), ExpressionUtils.field("username")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("username"), ExpressionUtils.field("organizationId")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("movedToProfileId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("username")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("emailVerified")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("identityProvider")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("identityProviderId")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("email")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("email"), ExpressionUtils.field("username")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("username"), ExpressionUtils.field("organizationId")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("movedToProfileId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("username")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("emailVerified")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("IdentityProvider", [ExpressionUtils.field("identityProvider")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("identityProviderId")]) }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("users") }] } ], idFields: ["id"], @@ -1738,7 +1738,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "NotificationsSubscriptions", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, subscription: { @@ -1747,7 +1747,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("subscription")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("subscription")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1778,7 +1778,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "profiles", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, organizationId: { @@ -1791,7 +1791,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "orgProfiles", fields: ["organizationId"], references: ["id"], onDelete: "Cascade" } }, username: { @@ -1825,11 +1825,11 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("organizationId")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("username"), ExpressionUtils.field("organizationId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("uid")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("organizationId")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("username"), ExpressionUtils.field("organizationId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("uid")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("organizationId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1992,7 +1992,7 @@ export class SchemaType implements SchemaDef { name: "parent", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("organization") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("parentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("organization") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("parentId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "children", name: "organization", fields: ["parentId"], references: ["id"], onDelete: "Cascade" } }, children: { @@ -2114,7 +2114,7 @@ export class SchemaType implements SchemaDef { name: "createdByOAuthClient", type: "PlatformOAuthClient", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("CreatedByOAuthClient") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("createdByOAuthClientId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("CreatedByOAuthClient") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("createdByOAuthClientId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "teams", name: "CreatedByOAuthClient", fields: ["createdByOAuthClientId"], references: ["id"], onDelete: "Cascade" } }, createdByOAuthClientId: { @@ -2230,8 +2230,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("slug"), ExpressionUtils.field("parentId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("parentId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("slug"), ExpressionUtils.field("parentId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("parentId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2253,7 +2253,7 @@ export class SchemaType implements SchemaDef { name: "team", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "creditBalance", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, teamId: { @@ -2270,7 +2270,7 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "creditBalance", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -2339,7 +2339,7 @@ export class SchemaType implements SchemaDef { creditBalance: { name: "creditBalance", type: "CreditBalance", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("creditBalanceId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("creditBalanceId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "purchaseLogs", fields: ["creditBalanceId"], references: ["id"], onDelete: "Cascade" } }, credits: { @@ -2378,7 +2378,7 @@ export class SchemaType implements SchemaDef { creditBalance: { name: "creditBalance", type: "CreditBalance", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("creditBalanceId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("creditBalanceId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "expenseLogs", fields: ["creditBalanceId"], references: ["id"], onDelete: "Cascade" } }, bookingUid: { @@ -2393,7 +2393,7 @@ export class SchemaType implements SchemaDef { name: "booking", type: "Booking", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingUid")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("uid")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("bookingUid")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("uid")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "expenseLogs", fields: ["bookingUid"], references: ["uid"], onDelete: "Cascade" } }, credits: { @@ -2438,7 +2438,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "organizationSettings", fields: ["organizationId"], references: ["id"], onDelete: "Cascade" } }, organizationId: { @@ -2567,19 +2567,19 @@ export class SchemaType implements SchemaDef { name: "customRole", type: "Role", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("customRoleId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("customRoleId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "memberships", fields: ["customRoleId"], references: ["id"] } }, team: { name: "team", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "members", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "teams", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, disableImpersonation: { @@ -2610,12 +2610,12 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("teamId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("accepted")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("role")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("customRoleId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("teamId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Boolean", [ExpressionUtils.field("accepted")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("MembershipRole", [ExpressionUtils.field("role")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("customRoleId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2676,7 +2676,7 @@ export class SchemaType implements SchemaDef { name: "team", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "inviteTokens", fields: ["teamId"], references: ["id"] } }, secondaryEmailId: { @@ -2691,15 +2691,15 @@ export class SchemaType implements SchemaDef { name: "secondaryEmail", type: "SecondaryEmail", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("secondaryEmailId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("secondaryEmailId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "verificationTokens", fields: ["secondaryEmailId"], references: ["id"] } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("identifier"), ExpressionUtils.field("token")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("token")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("secondaryEmailId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("identifier"), ExpressionUtils.field("token")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("token")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("secondaryEmailId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2738,7 +2738,7 @@ export class SchemaType implements SchemaDef { team: { name: "team", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "instantMeetingTokens", fields: ["teamId"], references: ["id"] } }, bookingId: { @@ -2755,7 +2755,7 @@ export class SchemaType implements SchemaDef { name: "booking", type: "Booking", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "instantMeetingToken", fields: ["bookingId"], references: ["id"], onDelete: "Cascade" } }, createdAt: { @@ -2772,7 +2772,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("token")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("token")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2823,7 +2823,7 @@ export class SchemaType implements SchemaDef { name: "booking", type: "Booking", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "references", fields: ["bookingId"], references: ["id"], onDelete: "Cascade" } }, bookingId: { @@ -2848,7 +2848,7 @@ export class SchemaType implements SchemaDef { name: "credential", type: "Credential", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("credentialId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("credentialId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "references", fields: ["credentialId"], references: ["id"], onDelete: "SetNull" } }, credentialId: { @@ -2863,7 +2863,7 @@ export class SchemaType implements SchemaDef { name: "delegationCredential", type: "DelegationCredential", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("delegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("delegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "bookingReferences", fields: ["delegationCredentialId"], references: ["id"], onDelete: "SetNull" } }, delegationCredentialId: { @@ -2878,7 +2878,7 @@ export class SchemaType implements SchemaDef { name: "domainWideDelegation", type: "DomainWideDelegation", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("domainWideDelegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("domainWideDelegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "bookingReferences", fields: ["domainWideDelegationCredentialId"], references: ["id"], onDelete: "SetNull" } }, domainWideDelegationCredentialId: { @@ -2891,9 +2891,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("type")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("uid")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("type")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("uid")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2938,7 +2938,7 @@ export class SchemaType implements SchemaDef { name: "booking", type: "Booking", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "attendees", fields: ["bookingId"], references: ["id"], onDelete: "Cascade" } }, bookingId: { @@ -2964,8 +2964,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("email")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("email")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2999,7 +2999,7 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "bookings", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -3025,7 +3025,7 @@ export class SchemaType implements SchemaDef { name: "eventType", type: "EventType", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "bookings", fields: ["eventTypeId"], references: ["id"] } }, eventTypeId: { @@ -3109,7 +3109,7 @@ export class SchemaType implements SchemaDef { name: "destinationCalendar", type: "DestinationCalendar", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("destinationCalendarId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("destinationCalendarId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "booking", fields: ["destinationCalendarId"], references: ["id"] } }, destinationCalendarId: { @@ -3139,7 +3139,7 @@ export class SchemaType implements SchemaDef { name: "reassignBy", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("reassignByUser") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("reassignById")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("reassignByUser") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("reassignById")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "reassignedBookings", name: "reassignByUser", fields: ["reassignById"], references: ["id"] } }, reassignById: { @@ -3311,13 +3311,13 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("destinationCalendarId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("recurringEventId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("uid")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("status")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("startTime"), ExpressionUtils.field("endTime"), ExpressionUtils.field("status")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("destinationCalendarId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("recurringEventId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("uid")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("BookingStatus", [ExpressionUtils.field("status")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("startTime"), ExpressionUtils.field("endTime"), ExpressionUtils.field("status")]) }] } ], idFields: ["id"], uniqueFields: { @@ -3347,7 +3347,7 @@ export class SchemaType implements SchemaDef { booking: { name: "booking", type: "Booking", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "tracking", fields: ["bookingId"], references: ["id"], onDelete: "Cascade" } }, utm_source: { @@ -3377,7 +3377,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -3398,7 +3398,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "schedules", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -3451,7 +3451,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -3472,7 +3472,7 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "availability", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -3487,7 +3487,7 @@ export class SchemaType implements SchemaDef { name: "eventType", type: "EventType", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "availability", fields: ["eventTypeId"], references: ["id"] } }, eventTypeId: { @@ -3523,7 +3523,7 @@ export class SchemaType implements SchemaDef { name: "Schedule", type: "Schedule", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scheduleId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("scheduleId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "availability", fields: ["scheduleId"], references: ["id"] } }, scheduleId: { @@ -3536,9 +3536,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scheduleId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("scheduleId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -3558,7 +3558,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "selectedCalendars", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -3580,7 +3580,7 @@ export class SchemaType implements SchemaDef { name: "credential", type: "Credential", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("credentialId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("credentialId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "selectedCalendars", fields: ["credentialId"], references: ["id"], onDelete: "Cascade" } }, credentialId: { @@ -3620,7 +3620,7 @@ export class SchemaType implements SchemaDef { name: "delegationCredential", type: "DelegationCredential", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("delegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("delegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "selectedCalendars", fields: ["delegationCredentialId"], references: ["id"], onDelete: "Cascade" } }, delegationCredentialId: { @@ -3635,7 +3635,7 @@ export class SchemaType implements SchemaDef { name: "domainWideDelegationCredential", type: "DomainWideDelegation", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("domainWideDelegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("domainWideDelegationCredentialId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "selectedCalendars", fields: ["domainWideDelegationCredentialId"], references: ["id"], onDelete: "Cascade" } }, domainWideDelegationCredentialId: { @@ -3686,19 +3686,19 @@ export class SchemaType implements SchemaDef { name: "eventType", type: "EventType", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "selectedCalendars", fields: ["eventTypeId"], references: ["id"] } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("integration"), ExpressionUtils.field("externalId"), ExpressionUtils.field("eventTypeId")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("googleChannelId"), ExpressionUtils.field("eventTypeId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("externalId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("credentialId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("integration"), ExpressionUtils.field("googleChannelExpiration"), ExpressionUtils.field("error"), ExpressionUtils.field("watchAttempts"), ExpressionUtils.field("maxAttempts")]) }, { name: "name", value: ExpressionUtils.literal("SelectedCalendar_watch_idx") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("integration"), ExpressionUtils.field("googleChannelExpiration"), ExpressionUtils.field("error"), ExpressionUtils.field("unwatchAttempts"), ExpressionUtils.field("maxAttempts")]) }, { name: "name", value: ExpressionUtils.literal("SelectedCalendar_unwatch_idx") }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("integration"), ExpressionUtils.field("externalId"), ExpressionUtils.field("eventTypeId")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("googleChannelId"), ExpressionUtils.field("eventTypeId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("externalId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("credentialId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("integration"), ExpressionUtils.field("googleChannelExpiration"), ExpressionUtils.field("error"), ExpressionUtils.field("watchAttempts"), ExpressionUtils.field("maxAttempts")]) }, { name: "name", value: ExpressionUtils.literal("SelectedCalendar_watch_idx") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("integration"), ExpressionUtils.field("googleChannelExpiration"), ExpressionUtils.field("error"), ExpressionUtils.field("unwatchAttempts"), ExpressionUtils.field("maxAttempts")]) }, { name: "name", value: ExpressionUtils.literal("SelectedCalendar_unwatch_idx") }] } ], idFields: ["id"], uniqueFields: { @@ -3727,7 +3727,7 @@ export class SchemaType implements SchemaDef { eventType: { name: "eventType", type: "EventType", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "customInputs", fields: ["eventTypeId"], references: ["id"], onDelete: "Cascade" } }, label: { @@ -3755,7 +3755,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -3828,8 +3828,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("referenceId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("reminderType")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("referenceId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("ReminderType", [ExpressionUtils.field("reminderType")]) }] } ], idFields: ["id"], uniqueFields: { @@ -3856,7 +3856,7 @@ export class SchemaType implements SchemaDef { name: "app", type: "App", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("appId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("slug")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("appId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("slug")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "payments", fields: ["appId"], references: ["slug"], onDelete: "Cascade" } }, appId: { @@ -3878,7 +3878,7 @@ export class SchemaType implements SchemaDef { name: "booking", type: "Booking", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "payment", fields: ["bookingId"], references: ["id"], onDelete: "Cascade" } }, amount: { @@ -3920,8 +3920,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("externalId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("externalId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4002,35 +4002,35 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "webhooks", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, team: { name: "team", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "webhooks", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, eventType: { name: "eventType", type: "EventType", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "webhooks", fields: ["eventTypeId"], references: ["id"], onDelete: "Cascade" } }, platformOAuthClient: { name: "platformOAuthClient", type: "PlatformOAuthClient", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("platformOAuthClientId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("platformOAuthClientId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "webhook", fields: ["platformOAuthClientId"], references: ["id"], onDelete: "Cascade" } }, app: { name: "app", type: "App", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("appId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("slug")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("appId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("slug")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "Webhook", fields: ["appId"], references: ["slug"], onDelete: "Cascade" } }, appId: { @@ -4070,9 +4070,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("subscriberUrl")]) }, { name: "name", value: ExpressionUtils.literal("courseIdentifier") }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("platformOAuthClientId"), ExpressionUtils.field("subscriberUrl")]) }, { name: "name", value: ExpressionUtils.literal("oauthclientwebhook") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("active")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("subscriberUrl")]) }, { name: "name", value: ExpressionUtils.literal("courseIdentifier") }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("platformOAuthClientId"), ExpressionUtils.field("subscriberUrl")]) }, { name: "name", value: ExpressionUtils.literal("oauthclientwebhook") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Boolean", [ExpressionUtils.field("active")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4100,13 +4100,13 @@ export class SchemaType implements SchemaDef { impersonatedUser: { name: "impersonatedUser", type: "User", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("impersonated_user") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("impersonatedUserId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("impersonated_user") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("impersonatedUserId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "impersonatedUsers", name: "impersonated_user", fields: ["impersonatedUserId"], references: ["id"], onDelete: "Cascade" } }, impersonatedBy: { name: "impersonatedBy", type: "User", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("impersonated_by_user") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("impersonatedById")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("impersonated_by_user") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("impersonatedById")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "impersonatedBy", name: "impersonated_by_user", fields: ["impersonatedById"], references: ["id"], onDelete: "Cascade" } }, impersonatedUserId: { @@ -4125,8 +4125,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("impersonatedUserId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("impersonatedById")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("impersonatedUserId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("impersonatedById")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4190,21 +4190,21 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "apiKeys", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, team: { name: "team", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "apiKeys", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, app: { name: "app", type: "App", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("appId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("slug")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("appId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("slug")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "ApiKey", fields: ["appId"], references: ["slug"], onDelete: "Cascade" } }, appId: { @@ -4223,7 +4223,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4279,12 +4279,12 @@ export class SchemaType implements SchemaDef { apiKey: { name: "apiKey", type: "ApiKey", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("apiKeyId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("apiKeyId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "rateLimits", fields: ["apiKeyId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("apiKeyId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("apiKeyId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4310,7 +4310,7 @@ export class SchemaType implements SchemaDef { eventType: { name: "eventType", type: "EventType", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "hashedLink", fields: ["eventTypeId"], references: ["id"], onDelete: "Cascade" } }, eventTypeId: { @@ -4403,14 +4403,14 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "accounts", fields: ["userId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("provider"), ExpressionUtils.field("providerAccountId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("type")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("provider"), ExpressionUtils.field("providerAccountId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("type")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4449,12 +4449,12 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "sessions", fields: ["userId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4532,7 +4532,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("enabled")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Boolean", [ExpressionUtils.field("enabled")]) }] } ], idFields: ["slug"], uniqueFields: { @@ -4590,14 +4590,14 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("routing-form") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("routing-form") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "routingForms", name: "routing-form", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, updatedBy: { name: "updatedBy", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("updated-routing-form") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("updatedById")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("updated-routing-form") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("updatedById")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "updatedRoutingForms", name: "updated-routing-form", fields: ["updatedById"], references: ["id"], onDelete: "SetNull" } }, updatedById: { @@ -4619,7 +4619,7 @@ export class SchemaType implements SchemaDef { name: "team", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "routingForms", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, teamId: { @@ -4661,8 +4661,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("disabled")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Boolean", [ExpressionUtils.field("disabled")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4688,7 +4688,7 @@ export class SchemaType implements SchemaDef { form: { name: "form", type: "App_RoutingForms_Form", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("formId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("formId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "responses", fields: ["formId"], references: ["id"], onDelete: "Cascade" } }, formId: { @@ -4729,7 +4729,7 @@ export class SchemaType implements SchemaDef { name: "routedToBooking", type: "Booking", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("routedToBookingUid")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("uid")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("routedToBookingUid")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("uid")]) }] }], relation: { opposite: "routedFromRoutingFormReponse", fields: ["routedToBookingUid"], references: ["uid"] } }, chosenRouteId: { @@ -4757,10 +4757,10 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("formFillerId"), ExpressionUtils.field("formId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("formFillerId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("formId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("routedToBookingUid")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("formFillerId"), ExpressionUtils.field("formId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("formFillerId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("formId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("routedToBookingUid")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4782,7 +4782,7 @@ export class SchemaType implements SchemaDef { form: { name: "form", type: "App_RoutingForms_Form", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("formId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("formId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "queuedResponses", fields: ["formId"], references: ["id"], onDelete: "Cascade" } }, formId: { @@ -4828,7 +4828,7 @@ export class SchemaType implements SchemaDef { name: "actualResponse", type: "App_RoutingForms_FormResponse", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("actualResponseId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("actualResponseId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "queuedFormResponse", fields: ["actualResponseId"], references: ["id"], onDelete: "Cascade" } } }, @@ -4878,21 +4878,21 @@ export class SchemaType implements SchemaDef { response: { name: "response", type: "App_RoutingForms_FormResponse", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("responseId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "map", value: ExpressionUtils.literal("RoutingFormResponseField_response_fkey") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("responseId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "map", value: ExpressionUtils.literal("RoutingFormResponseField_response_fkey") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "routingFormResponseFields", fields: ["responseId"], references: ["id"], onDelete: "Cascade" } }, denormalized: { name: "denormalized", type: "RoutingFormResponseDenormalized", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("DenormalizedResponseToFields") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("responseId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("DenormalizedResponseToFields") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("responseId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "fields", name: "DenormalizedResponseToFields", fields: ["responseId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("responseId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("fieldId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("valueNumber")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("valueStringArray")]) }, { name: "type", value: ExpressionUtils.literal("Gin") }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("responseId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("fieldId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Float", [ExpressionUtils.field("valueNumber")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("valueStringArray")]) }, { name: "type", value: ExpressionUtils.literal("Gin") }] } ], idFields: ["id"], uniqueFields: { @@ -5069,7 +5069,7 @@ export class SchemaType implements SchemaDef { name: "booking", type: "Booking", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "routingFormResponses", fields: ["bookingId"], references: ["id"], onDelete: "SetNull" } }, bookingUid: { @@ -5186,7 +5186,7 @@ export class SchemaType implements SchemaDef { response: { name: "response", type: "App_RoutingForms_FormResponse", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "routingFormResponses", fields: ["id"], references: ["id"], onDelete: "Cascade" } }, fields: { @@ -5198,13 +5198,13 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("formId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("formTeamId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("formUserId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("formId"), ExpressionUtils.field("createdAt")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingUserId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId"), ExpressionUtils.field("eventTypeParentId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("formId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("formTeamId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("formUserId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("formId"), ExpressionUtils.field("createdAt")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingUserId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId"), ExpressionUtils.field("eventTypeParentId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -5237,7 +5237,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "Feedback", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, rating: { @@ -5251,8 +5251,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("rating")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("rating")]) }] } ], idFields: ["id"], uniqueFields: { @@ -5287,7 +5287,7 @@ export class SchemaType implements SchemaDef { workflow: { name: "workflow", type: "Workflow", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workflowId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("workflowId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "steps", fields: ["workflowId"], references: ["id"], onDelete: "Cascade" } }, sendTo: { @@ -5346,7 +5346,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workflowId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("workflowId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -5385,14 +5385,14 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "workflows", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, team: { name: "team", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "workflows", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, teamId: { @@ -5443,8 +5443,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -5464,7 +5464,7 @@ export class SchemaType implements SchemaDef { eventType: { name: "eventType", type: "EventType", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "aiPhoneCallConfig", fields: ["eventTypeId"], references: ["id"], onDelete: "Cascade" } }, eventTypeId: { @@ -5531,8 +5531,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -5553,7 +5553,7 @@ export class SchemaType implements SchemaDef { workflow: { name: "workflow", type: "Workflow", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workflowId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("workflowId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "activeOn", fields: ["workflowId"], references: ["id"], onDelete: "Cascade" } }, workflowId: { @@ -5566,7 +5566,7 @@ export class SchemaType implements SchemaDef { eventType: { name: "eventType", type: "EventType", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "workflows", fields: ["eventTypeId"], references: ["id"], onDelete: "Cascade" } }, eventTypeId: { @@ -5578,9 +5578,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workflowId"), ExpressionUtils.field("eventTypeId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workflowId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("workflowId"), ExpressionUtils.field("eventTypeId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("workflowId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -5601,7 +5601,7 @@ export class SchemaType implements SchemaDef { workflow: { name: "workflow", type: "Workflow", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workflowId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("workflowId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "activeOnTeams", fields: ["workflowId"], references: ["id"], onDelete: "Cascade" } }, workflowId: { @@ -5614,7 +5614,7 @@ export class SchemaType implements SchemaDef { team: { name: "team", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "activeOrgWorkflows", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, teamId: { @@ -5626,9 +5626,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workflowId"), ExpressionUtils.field("teamId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workflowId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("workflowId"), ExpressionUtils.field("teamId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("workflowId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -5702,7 +5702,7 @@ export class SchemaType implements SchemaDef { name: "booking", type: "Booking", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingUid")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("uid")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("bookingUid")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("uid")]) }] }], relation: { opposite: "workflowReminders", fields: ["bookingUid"], references: ["uid"] } }, method: { @@ -5736,7 +5736,7 @@ export class SchemaType implements SchemaDef { name: "workflowStep", type: "WorkflowStep", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workflowStepId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("workflowStepId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "workflowReminders", fields: ["workflowStepId"], references: ["id"], onDelete: "Cascade" } }, cancelled: { @@ -5764,11 +5764,11 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingUid")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workflowStepId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("seatReferenceId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("method"), ExpressionUtils.field("scheduled"), ExpressionUtils.field("scheduledDate")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("cancelled"), ExpressionUtils.field("scheduledDate")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("bookingUid")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("workflowStepId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("seatReferenceId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("WorkflowMethods", [ExpressionUtils.field("method"), ExpressionUtils.field("scheduled"), ExpressionUtils.field("scheduledDate")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Boolean", [ExpressionUtils.field("cancelled"), ExpressionUtils.field("scheduledDate")]) }] } ], idFields: ["id"], uniqueFields: { @@ -5834,7 +5834,7 @@ export class SchemaType implements SchemaDef { name: "webhook", type: "Webhook", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("webhookId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("webhookId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "scheduledTriggers", fields: ["webhookId"], references: ["id"], onDelete: "Cascade" } }, bookingId: { @@ -5849,7 +5849,7 @@ export class SchemaType implements SchemaDef { name: "booking", type: "Booking", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "scheduledTriggers", fields: ["bookingId"], references: ["id"], onDelete: "Cascade" } } }, @@ -5884,7 +5884,7 @@ export class SchemaType implements SchemaDef { booking: { name: "booking", type: "Booking", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "seatsReferences", fields: ["bookingId"], references: ["id"], onDelete: "Cascade" } }, attendeeId: { @@ -5899,7 +5899,7 @@ export class SchemaType implements SchemaDef { attendee: { name: "attendee", type: "Attendee", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("attendeeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("attendeeId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "bookingSeat", fields: ["attendeeId"], references: ["id"], onDelete: "Cascade" } }, data: { @@ -5914,8 +5914,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("attendeeId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("attendeeId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -5946,7 +5946,7 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "verifiedNumbers", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, teamId: { @@ -5961,7 +5961,7 @@ export class SchemaType implements SchemaDef { name: "team", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "verifiedNumbers", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, phoneNumber: { @@ -5970,8 +5970,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -6000,7 +6000,7 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "verifiedEmails", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, teamId: { @@ -6015,7 +6015,7 @@ export class SchemaType implements SchemaDef { name: "team", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "verifiedEmails", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, email: { @@ -6024,8 +6024,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -6106,8 +6106,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("enabled")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("stale")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Boolean", [ExpressionUtils.field("enabled")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Boolean", [ExpressionUtils.field("stale")]) }] } ], idFields: ["slug"], uniqueFields: { @@ -6120,7 +6120,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "features", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -6134,7 +6134,7 @@ export class SchemaType implements SchemaDef { feature: { name: "feature", type: "Feature", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("featureId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("slug")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("featureId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("slug")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "users", fields: ["featureId"], references: ["slug"], onDelete: "Cascade" } }, featureId: { @@ -6163,8 +6163,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("featureId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("featureId")]) }] } + { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("featureId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("featureId")]) }] } ], idFields: ["userId", "featureId"], uniqueFields: { @@ -6177,7 +6177,7 @@ export class SchemaType implements SchemaDef { team: { name: "team", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "features", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, teamId: { @@ -6191,7 +6191,7 @@ export class SchemaType implements SchemaDef { feature: { name: "feature", type: "Feature", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("featureId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("slug")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("featureId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("slug")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "teams", fields: ["featureId"], references: ["slug"], onDelete: "Cascade" } }, featureId: { @@ -6220,8 +6220,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId"), ExpressionUtils.field("featureId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId"), ExpressionUtils.field("featureId")]) }] } + { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId"), ExpressionUtils.field("featureId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId"), ExpressionUtils.field("featureId")]) }] } ], idFields: ["teamId", "featureId"], uniqueFields: { @@ -6270,7 +6270,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("slotUtcStartDate"), ExpressionUtils.field("slotUtcEndDate"), ExpressionUtils.field("uid")]) }, { name: "name", value: ExpressionUtils.literal("selectedSlotUnique") }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("slotUtcStartDate"), ExpressionUtils.field("slotUtcEndDate"), ExpressionUtils.field("uid")]) }, { name: "name", value: ExpressionUtils.literal("selectedSlotUnique") }] } ], idFields: ["id"], uniqueFields: { @@ -6343,7 +6343,7 @@ export class SchemaType implements SchemaDef { name: "client", type: "OAuthClient", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("clientId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("clientId")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("clientId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("clientId")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "accessCodes", fields: ["clientId"], references: ["clientId"], onDelete: "Cascade" } }, expiresAt: { @@ -6367,7 +6367,7 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "accessCodes", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, teamId: { @@ -6382,7 +6382,7 @@ export class SchemaType implements SchemaDef { name: "team", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "accessCodes", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } } }, @@ -6636,16 +6636,16 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("createdAt")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventParentId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("startTime")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("endTime")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("status")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId"), ExpressionUtils.field("isTeamBooking")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("isTeamBooking")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("createdAt")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventParentId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("startTime")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("endTime")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("BookingStatus", [ExpressionUtils.field("status")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId"), ExpressionUtils.field("isTeamBooking")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("isTeamBooking")]) }] } ], idFields: ["id"], uniqueFields: { @@ -6821,14 +6821,14 @@ export class SchemaType implements SchemaDef { name: "credential", type: "Credential", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("credentialId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("credentialId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "CalendarCache", fields: ["credentialId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("credentialId"), ExpressionUtils.field("key")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("credentialId"), ExpressionUtils.field("key")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("key")]) }] } + { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("credentialId"), ExpressionUtils.field("key")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("credentialId"), ExpressionUtils.field("key")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("key")]) }] } ], idFields: ["key", "credentialId"], uniqueFields: { @@ -6881,7 +6881,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("from"), ExpressionUtils.field("type"), ExpressionUtils.field("fromOrgId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("from"), ExpressionUtils.field("type"), ExpressionUtils.field("fromOrgId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -6923,7 +6923,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId"), ExpressionUtils.field("userId"), ExpressionUtils.field("isBanner")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId"), ExpressionUtils.field("userId"), ExpressionUtils.field("isBanner")]) }] }, { name: "@@map", args: [{ name: "name", value: ExpressionUtils.literal("avatars") }] } ], idFields: ["objectKey"], @@ -6971,7 +6971,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "bookingRedirects", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, toUserId: { @@ -6986,7 +6986,7 @@ export class SchemaType implements SchemaDef { name: "toUser", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("toUser") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("toUserId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("toUser") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("toUserId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "bookingRedirectsTo", name: "toUser", fields: ["toUserId"], references: ["id"], onDelete: "Cascade" } }, reasonId: { @@ -7001,7 +7001,7 @@ export class SchemaType implements SchemaDef { name: "reason", type: "OutOfOfficeReason", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("reasonId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("reasonId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "entries", fields: ["reasonId"], references: ["id"], onDelete: "SetNull" } }, createdAt: { @@ -7018,10 +7018,10 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("uuid")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("toUserId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("start"), ExpressionUtils.field("end")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("uuid")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("toUserId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("start"), ExpressionUtils.field("end")]) }] } ], idFields: ["id"], uniqueFields: { @@ -7067,7 +7067,7 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "OutOfOfficeReasons", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, entries: { @@ -7131,7 +7131,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "platformOAuthClient", fields: ["organizationId"], references: ["id"], onDelete: "Cascade" } }, teams: { @@ -7223,13 +7223,13 @@ export class SchemaType implements SchemaDef { owner: { name: "owner", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "PlatformAuthorizationToken", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, client: { name: "client", type: "PlatformOAuthClient", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("platformOAuthClientId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("platformOAuthClientId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "authorizationTokens", fields: ["platformOAuthClientId"], references: ["id"], onDelete: "Cascade" } }, platformOAuthClientId: { @@ -7254,7 +7254,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("platformOAuthClientId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("platformOAuthClientId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -7291,13 +7291,13 @@ export class SchemaType implements SchemaDef { owner: { name: "owner", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "AccessToken", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, client: { name: "client", type: "PlatformOAuthClient", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("platformOAuthClientId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("platformOAuthClientId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "accessTokens", fields: ["platformOAuthClientId"], references: ["id"], onDelete: "Cascade" } }, platformOAuthClientId: { @@ -7350,13 +7350,13 @@ export class SchemaType implements SchemaDef { owner: { name: "owner", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "RefreshToken", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, client: { name: "client", type: "PlatformOAuthClient", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("platformOAuthClientId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("platformOAuthClientId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "refreshToken", fields: ["platformOAuthClientId"], references: ["id"], onDelete: "Cascade" } }, platformOAuthClientId: { @@ -7414,7 +7414,7 @@ export class SchemaType implements SchemaDef { name: "org", type: "OrganizationSettings", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("organizationId")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "dSyncData", fields: ["organizationId"], references: ["organizationId"], onDelete: "Cascade" } }, teamGroupMapping: { @@ -7469,7 +7469,7 @@ export class SchemaType implements SchemaDef { team: { name: "team", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "dsyncTeamGroupMapping", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, directoryId: { @@ -7482,7 +7482,7 @@ export class SchemaType implements SchemaDef { directory: { name: "directory", type: "DSyncData", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("directoryId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("directoryId")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("directoryId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("directoryId")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "teamGroupMapping", fields: ["directoryId"], references: ["directoryId"], onDelete: "Cascade" } }, groupName: { @@ -7491,7 +7491,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId"), ExpressionUtils.field("groupName")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId"), ExpressionUtils.field("groupName")]) }] } ], idFields: ["id"], uniqueFields: { @@ -7512,7 +7512,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "secondaryEmails", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -7545,9 +7545,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("email")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("email")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("email")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("email")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -7647,7 +7647,7 @@ export class SchemaType implements SchemaDef { managedOrganization: { name: "managedOrganization", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("ManagedOrganization") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("managedOrganizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("ManagedOrganization") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("managedOrganizationId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "managedOrganization", name: "ManagedOrganization", fields: ["managedOrganizationId"], references: ["id"], onDelete: "Cascade" } }, managerOrganizationId: { @@ -7660,7 +7660,7 @@ export class SchemaType implements SchemaDef { managerOrganization: { name: "managerOrganization", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("ManagerOrganization") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("managerOrganizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("ManagerOrganization") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("managerOrganizationId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "managedOrganizations", name: "ManagerOrganization", fields: ["managerOrganizationId"], references: ["id"], onDelete: "Cascade" } }, createdAt: { @@ -7671,8 +7671,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("managerOrganizationId"), ExpressionUtils.field("managedOrganizationId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("managerOrganizationId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("managerOrganizationId"), ExpressionUtils.field("managedOrganizationId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("managerOrganizationId")]) }] } ], idFields: ["managedOrganizationId"], uniqueFields: { @@ -7742,7 +7742,7 @@ export class SchemaType implements SchemaDef { name: "managerBilling", type: "PlatformBilling", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("PlatformManagedBilling") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("managerBillingId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("PlatformManagedBilling") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("managerBillingId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "managedBillings", name: "PlatformManagedBilling", fields: ["managerBillingId"], references: ["id"] } }, managedBillings: { @@ -7755,7 +7755,7 @@ export class SchemaType implements SchemaDef { team: { name: "team", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "platformBilling", fields: ["id"], references: ["id"], onDelete: "Cascade" } } }, @@ -7777,7 +7777,7 @@ export class SchemaType implements SchemaDef { attribute: { name: "attribute", type: "Attribute", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("attributeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("attributeId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "options", fields: ["attributeId"], references: ["id"], onDelete: "Cascade" } }, attributeId: { @@ -7831,7 +7831,7 @@ export class SchemaType implements SchemaDef { team: { name: "team", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "attributes", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, teamId: { @@ -7899,7 +7899,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -7920,7 +7920,7 @@ export class SchemaType implements SchemaDef { member: { name: "member", type: "Membership", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("memberId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("memberId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "AttributeToUser", fields: ["memberId"], references: ["id"], onDelete: "Cascade" } }, memberId: { @@ -7933,7 +7933,7 @@ export class SchemaType implements SchemaDef { attributeOption: { name: "attributeOption", type: "AttributeOption", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("attributeOptionId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("attributeOptionId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "assignedUsers", fields: ["attributeOptionId"], references: ["id"], onDelete: "Cascade" } }, attributeOptionId: { @@ -7966,7 +7966,7 @@ export class SchemaType implements SchemaDef { name: "createdBy", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("createdBy") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("createdById")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("createdBy") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("createdById")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "createdAttributeToUsers", name: "createdBy", fields: ["createdById"], references: ["id"], onDelete: "SetNull" } }, createdByDSyncId: { @@ -7981,7 +7981,7 @@ export class SchemaType implements SchemaDef { name: "createdByDSync", type: "DSyncData", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("createdByDSync") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("createdByDSyncId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("directoryId")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("createdByDSync") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("createdByDSyncId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("directoryId")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "createdAttributeToUsers", name: "createdByDSync", fields: ["createdByDSyncId"], references: ["directoryId"], onDelete: "SetNull" } }, updatedAt: { @@ -7995,7 +7995,7 @@ export class SchemaType implements SchemaDef { name: "updatedBy", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("updatedBy") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("updatedById")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("updatedBy") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("updatedById")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "updatedAttributeToUsers", name: "updatedBy", fields: ["updatedById"], references: ["id"], onDelete: "SetNull" } }, updatedById: { @@ -8018,12 +8018,12 @@ export class SchemaType implements SchemaDef { name: "updatedByDSync", type: "DSyncData", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("updatedByDSync") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("updatedByDSyncId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("directoryId")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("updatedByDSync") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("updatedByDSyncId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("directoryId")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "updatedAttributeToUsers", name: "updatedByDSync", fields: ["updatedByDSyncId"], references: ["directoryId"], onDelete: "SetNull" } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("memberId"), ExpressionUtils.field("attributeOptionId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("memberId"), ExpressionUtils.field("attributeOptionId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -8058,7 +8058,7 @@ export class SchemaType implements SchemaDef { booking: { name: "booking", type: "Booking", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "assignmentReason", fields: ["bookingId"], references: ["id"], onDelete: "Cascade" } }, reasonEnum: { @@ -8071,7 +8071,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -8091,7 +8091,7 @@ export class SchemaType implements SchemaDef { workspacePlatform: { name: "workspacePlatform", type: "WorkspacePlatform", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workspacePlatformId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("workspacePlatformId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "delegationCredentials", fields: ["workspacePlatformId"], references: ["id"], onDelete: "Cascade" } }, workspacePlatformId: { @@ -8131,7 +8131,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "delegationCredentials", fields: ["organizationId"], references: ["id"], onDelete: "Cascade" } }, domain: { @@ -8176,8 +8176,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId"), ExpressionUtils.field("domain")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("enabled")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("organizationId"), ExpressionUtils.field("domain")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Boolean", [ExpressionUtils.field("enabled")]) }] } ], idFields: ["id"], uniqueFields: { @@ -8198,7 +8198,7 @@ export class SchemaType implements SchemaDef { workspacePlatform: { name: "workspacePlatform", type: "WorkspacePlatform", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workspacePlatformId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("workspacePlatformId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "domainWideDelegations", fields: ["workspacePlatformId"], references: ["id"], onDelete: "Cascade" } }, workspacePlatformId: { @@ -8228,7 +8228,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "domainWideDelegations", fields: ["organizationId"], references: ["id"], onDelete: "Cascade" } }, domain: { @@ -8267,7 +8267,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId"), ExpressionUtils.field("domain")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("organizationId"), ExpressionUtils.field("domain")]) }] } ], idFields: ["id"], uniqueFields: { @@ -8333,7 +8333,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("slug")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("slug")]) }] } ], idFields: ["id"], uniqueFields: { @@ -8354,7 +8354,7 @@ export class SchemaType implements SchemaDef { eventType: { name: "eventType", type: "EventType", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "fieldTranslations", fields: ["eventTypeId"], references: ["id"], onDelete: "Cascade" } }, eventTypeId: { @@ -8411,20 +8411,20 @@ export class SchemaType implements SchemaDef { creator: { name: "creator", type: "User", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("CreatedEventTypeTranslations") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("createdBy")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("CreatedEventTypeTranslations") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("createdBy")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "createdTranslations", name: "CreatedEventTypeTranslations", fields: ["createdBy"], references: ["id"] } }, updater: { name: "updater", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("UpdatedEventTypeTranslations") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("updatedBy")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("UpdatedEventTypeTranslations") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("updatedBy")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "updatedTranslations", name: "UpdatedEventTypeTranslations", fields: ["updatedBy"], references: ["id"], onDelete: "SetNull" } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId"), ExpressionUtils.field("field"), ExpressionUtils.field("targetLocale")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("eventTypeId"), ExpressionUtils.field("field"), ExpressionUtils.field("targetLocale")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId"), ExpressionUtils.field("field"), ExpressionUtils.field("targetLocale")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("eventTypeId"), ExpressionUtils.field("field"), ExpressionUtils.field("targetLocale")]) }] } ], idFields: ["uid"], uniqueFields: { @@ -8465,7 +8465,7 @@ export class SchemaType implements SchemaDef { createdBy: { name: "createdBy", type: "User", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("CreatedWatchlists") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("createdById")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("CreatedWatchlists") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("createdById")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "createdWatchlists", name: "CreatedWatchlists", onDelete: "Cascade", fields: ["createdById"], references: ["id"] } }, createdById: { @@ -8485,7 +8485,7 @@ export class SchemaType implements SchemaDef { name: "updatedBy", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("UpdatedWatchlists") }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("updatedById")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("UpdatedWatchlists") }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("updatedById")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "updatedWatchlists", name: "UpdatedWatchlists", onDelete: "SetNull", fields: ["updatedById"], references: ["id"] } }, updatedById: { @@ -8504,8 +8504,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("type"), ExpressionUtils.field("value")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("type"), ExpressionUtils.field("value")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("WatchlistType", [ExpressionUtils.field("type"), ExpressionUtils.field("value")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("WatchlistType", [ExpressionUtils.field("type"), ExpressionUtils.field("value")]) }] } ], idFields: ["id"], uniqueFields: { @@ -8526,7 +8526,7 @@ export class SchemaType implements SchemaDef { createdBy: { name: "createdBy", type: "User", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("CreatedOrganizationOnboardings") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("createdById")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("CreatedOrganizationOnboardings") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("createdById")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "createdOrganizationOnboardings", name: "CreatedOrganizationOnboardings", fields: ["createdById"], references: ["id"], onDelete: "Cascade" } }, createdById: { @@ -8573,7 +8573,7 @@ export class SchemaType implements SchemaDef { name: "organization", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "organizationOnboarding", fields: ["organizationId"], references: ["id"], onDelete: "Cascade" } }, billingPeriod: { @@ -8655,8 +8655,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("orgOwnerEmail")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("stripeCustomerId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("orgOwnerEmail")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("stripeCustomerId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -8679,7 +8679,7 @@ export class SchemaType implements SchemaDef { form: { name: "form", type: "App_RoutingForms_Form", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("formId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("formId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "incompleteBookingActions", fields: ["formId"], references: ["id"], onDelete: "Cascade" } }, formId: { @@ -8736,7 +8736,7 @@ export class SchemaType implements SchemaDef { team: { name: "team", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "internalNotePresets", fields: ["teamId"], references: ["id"] } }, teamId: { @@ -8760,8 +8760,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId"), ExpressionUtils.field("name")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId"), ExpressionUtils.field("name")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -8836,7 +8836,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "filterSegments", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -8850,7 +8850,7 @@ export class SchemaType implements SchemaDef { name: "team", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "filterSegments", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, teamId: { @@ -8869,8 +8869,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scope"), ExpressionUtils.field("userId"), ExpressionUtils.field("tableIdentifier")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scope"), ExpressionUtils.field("teamId"), ExpressionUtils.field("tableIdentifier")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("FilterSegmentScope", [ExpressionUtils.field("scope"), ExpressionUtils.field("userId"), ExpressionUtils.field("tableIdentifier")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("FilterSegmentScope", [ExpressionUtils.field("scope"), ExpressionUtils.field("teamId"), ExpressionUtils.field("tableIdentifier")]) }] } ], idFields: ["id"], uniqueFields: { @@ -8920,20 +8920,20 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "filterSegmentPreferences", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, segment: { name: "segment", type: "FilterSegment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("segmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("segmentId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "userPreferences", fields: ["segmentId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("tableIdentifier")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("segmentId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId"), ExpressionUtils.field("tableIdentifier")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("segmentId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -8955,7 +8955,7 @@ export class SchemaType implements SchemaDef { name: "notePreset", type: "InternalNotePreset", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("notePresetId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("notePresetId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "BookingInternalNote", fields: ["notePresetId"], references: ["id"], onDelete: "Cascade" } }, notePresetId: { @@ -8974,7 +8974,7 @@ export class SchemaType implements SchemaDef { booking: { name: "booking", type: "Booking", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "internalNote", fields: ["bookingId"], references: ["id"], onDelete: "Cascade" } }, bookingId: { @@ -8987,7 +8987,7 @@ export class SchemaType implements SchemaDef { createdBy: { name: "createdBy", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("createdById")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("createdById")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "BookingInternalNote", fields: ["createdById"], references: ["id"] } }, createdById: { @@ -9005,8 +9005,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId"), ExpressionUtils.field("notePresetId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("bookingId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId"), ExpressionUtils.field("notePresetId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("bookingId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -9050,7 +9050,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("type"), ExpressionUtils.field("value")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("WorkflowContactType", [ExpressionUtils.field("type"), ExpressionUtils.field("value")]) }] } ], idFields: ["id"], uniqueFields: { @@ -9089,7 +9089,7 @@ export class SchemaType implements SchemaDef { name: "team", type: "Team", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "roles", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, permissions: { @@ -9124,8 +9124,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("name"), ExpressionUtils.field("teamId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("name"), ExpressionUtils.field("teamId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("teamId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -9153,7 +9153,7 @@ export class SchemaType implements SchemaDef { role: { name: "role", type: "Role", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("roleId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("roleId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "permissions", fields: ["roleId"], references: ["id"], onDelete: "Cascade" } }, resource: { @@ -9172,9 +9172,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("roleId"), ExpressionUtils.field("resource"), ExpressionUtils.field("action")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("roleId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("action")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("roleId"), ExpressionUtils.field("resource"), ExpressionUtils.field("action")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("roleId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("action")]) }] } ], idFields: ["id"], uniqueFields: { diff --git a/tests/e2e/github-repos/formbricks/schema.ts b/tests/e2e/github-repos/formbricks/schema.ts index f3e478760..fe29237a3 100644 --- a/tests/e2e/github-repos/formbricks/schema.ts +++ b/tests/e2e/github-repos/formbricks/schema.ts @@ -52,7 +52,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "Environment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "webhooks", fields: ["environmentId"], references: ["id"], onDelete: "Cascade" } }, environmentId: { @@ -74,7 +74,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -106,7 +106,7 @@ export class SchemaType implements SchemaDef { attributeKey: { name: "attributeKey", type: "ContactAttributeKey", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("attributeKeyId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("attributeKeyId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "attributes", fields: ["attributeKeyId"], references: ["id"], onDelete: "Cascade" } }, attributeKeyId: { @@ -119,7 +119,7 @@ export class SchemaType implements SchemaDef { contact: { name: "contact", type: "Contact", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("contactId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("contactId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "attributes", fields: ["contactId"], references: ["id"], onDelete: "Cascade" } }, contactId: { @@ -135,8 +135,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("contactId"), ExpressionUtils.field("attributeKeyId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("attributeKeyId"), ExpressionUtils.field("value")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("contactId"), ExpressionUtils.field("attributeKeyId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("attributeKeyId"), ExpressionUtils.field("value")]) }] } ], idFields: ["id"], uniqueFields: { @@ -195,7 +195,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "Environment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "attributeKeys", fields: ["environmentId"], references: ["id"], onDelete: "Cascade" } }, environmentId: { @@ -219,8 +219,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("key"), ExpressionUtils.field("environmentId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId"), ExpressionUtils.field("createdAt")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("key"), ExpressionUtils.field("environmentId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId"), ExpressionUtils.field("createdAt")]) }] } ], idFields: ["id"], uniqueFields: { @@ -258,7 +258,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "Environment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "contacts", fields: ["environmentId"], references: ["id"], onDelete: "Cascade" } }, environmentId: { @@ -288,7 +288,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -327,7 +327,7 @@ export class SchemaType implements SchemaDef { survey: { name: "survey", type: "Survey", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "responses", fields: ["surveyId"], references: ["id"], onDelete: "Cascade" } }, surveyId: { @@ -341,7 +341,7 @@ export class SchemaType implements SchemaDef { name: "contact", type: "Contact", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("contactId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("contactId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "responses", fields: ["contactId"], references: ["id"], onDelete: "Cascade" } }, contactId: { @@ -428,16 +428,16 @@ export class SchemaType implements SchemaDef { name: "display", type: "Display", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("displayId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("displayId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "response", fields: ["displayId"], references: ["id"] } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId"), ExpressionUtils.field("singleUseId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("createdAt")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId"), ExpressionUtils.field("createdAt")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("contactId"), ExpressionUtils.field("createdAt")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId"), ExpressionUtils.field("singleUseId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("createdAt")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId"), ExpressionUtils.field("createdAt")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("contactId"), ExpressionUtils.field("createdAt")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -471,7 +471,7 @@ export class SchemaType implements SchemaDef { response: { name: "response", type: "Response", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("responseId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("responseId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "notes", fields: ["responseId"], references: ["id"], onDelete: "Cascade" } }, responseId: { @@ -484,7 +484,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "responseNotes", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -512,7 +512,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("responseId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("responseId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -561,13 +561,13 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "Environment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "tags", fields: ["environmentId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId"), ExpressionUtils.field("name")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId"), ExpressionUtils.field("name")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -589,7 +589,7 @@ export class SchemaType implements SchemaDef { response: { name: "response", type: "Response", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("responseId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("responseId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "tags", fields: ["responseId"], references: ["id"], onDelete: "Cascade" } }, tagId: { @@ -603,13 +603,13 @@ export class SchemaType implements SchemaDef { tag: { name: "tag", type: "Tag", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("tagId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("tagId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "responses", fields: ["tagId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("responseId"), ExpressionUtils.field("tagId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("responseId")]) }] } + { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("responseId"), ExpressionUtils.field("tagId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("responseId")]) }] } ], idFields: ["responseId", "tagId"], uniqueFields: { @@ -641,7 +641,7 @@ export class SchemaType implements SchemaDef { survey: { name: "survey", type: "Survey", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "displays", fields: ["surveyId"], references: ["id"], onDelete: "Cascade" } }, surveyId: { @@ -655,7 +655,7 @@ export class SchemaType implements SchemaDef { name: "contact", type: "Contact", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("contactId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("contactId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "displays", fields: ["contactId"], references: ["id"], onDelete: "Cascade" } }, contactId: { @@ -686,8 +686,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("contactId"), ExpressionUtils.field("createdAt")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("contactId"), ExpressionUtils.field("createdAt")]) }] } ], idFields: ["id"], uniqueFields: { @@ -720,7 +720,7 @@ export class SchemaType implements SchemaDef { survey: { name: "survey", type: "Survey", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "triggers", fields: ["surveyId"], references: ["id"], onDelete: "Cascade" } }, surveyId: { @@ -733,7 +733,7 @@ export class SchemaType implements SchemaDef { actionClass: { name: "actionClass", type: "ActionClass", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("actionClassId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("actionClassId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "surveyTriggers", fields: ["actionClassId"], references: ["id"], onDelete: "Cascade" } }, actionClassId: { @@ -745,8 +745,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId"), ExpressionUtils.field("actionClassId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId"), ExpressionUtils.field("actionClassId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -779,7 +779,7 @@ export class SchemaType implements SchemaDef { attributeKey: { name: "attributeKey", type: "ContactAttributeKey", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("attributeKeyId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("attributeKeyId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "attributeFilters", fields: ["attributeKeyId"], references: ["id"], onDelete: "Cascade" } }, attributeKeyId: { @@ -792,7 +792,7 @@ export class SchemaType implements SchemaDef { survey: { name: "survey", type: "Survey", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "attributeFilters", fields: ["surveyId"], references: ["id"], onDelete: "Cascade" } }, surveyId: { @@ -812,9 +812,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId"), ExpressionUtils.field("attributeKeyId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("attributeKeyId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId"), ExpressionUtils.field("attributeKeyId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("attributeKeyId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -862,7 +862,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "Environment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "surveys", fields: ["environmentId"], references: ["id"], onDelete: "Cascade" } }, environmentId: { @@ -876,7 +876,7 @@ export class SchemaType implements SchemaDef { name: "creator", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("createdBy")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("createdBy")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "surveys", fields: ["createdBy"], references: ["id"] } }, createdBy: { @@ -909,7 +909,7 @@ export class SchemaType implements SchemaDef { name: "endings", type: "Json", array: true, - attributes: [{ name: "@default", args: [{ name: "value", value: ExpressionUtils.array([]) }] }], + attributes: [{ name: "@default", args: [{ name: "value", value: ExpressionUtils.array("Any", []) }] }], default: [] }, thankYouCard: { @@ -1017,7 +1017,7 @@ export class SchemaType implements SchemaDef { name: "segment", type: "Segment", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("segmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("segmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "surveys", fields: ["segmentId"], references: ["id"] } }, projectOverwrites: { @@ -1109,8 +1109,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId"), ExpressionUtils.field("updatedAt")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("segmentId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId"), ExpressionUtils.field("updatedAt")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("segmentId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1143,7 +1143,7 @@ export class SchemaType implements SchemaDef { survey: { name: "survey", type: "Survey", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "followUps", fields: ["surveyId"], references: ["id"], onDelete: "Cascade" } }, surveyId: { @@ -1219,7 +1219,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "Environment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "actionClasses", fields: ["environmentId"], references: ["id"], onDelete: "Cascade" } }, environmentId: { @@ -1237,9 +1237,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("key"), ExpressionUtils.field("environmentId")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("name"), ExpressionUtils.field("environmentId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId"), ExpressionUtils.field("createdAt")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("key"), ExpressionUtils.field("environmentId")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("name"), ExpressionUtils.field("environmentId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId"), ExpressionUtils.field("createdAt")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1276,13 +1276,13 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "Environment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "integration", fields: ["environmentId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("type"), ExpressionUtils.field("environmentId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("IntegrationType", [ExpressionUtils.field("type"), ExpressionUtils.field("environmentId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1358,7 +1358,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "environments", fields: ["projectId"], references: ["id"], onDelete: "Cascade" } }, projectId: { @@ -1448,7 +1448,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1484,7 +1484,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Organization", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "projects", fields: ["organizationId"], references: ["id"], onDelete: "Cascade" } }, organizationId: { @@ -1577,8 +1577,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId"), ExpressionUtils.field("name")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId"), ExpressionUtils.field("name")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1670,7 +1670,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Organization", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "memberships", fields: ["organizationId"], references: ["id"], onDelete: "Cascade" } }, organizationId: { @@ -1684,7 +1684,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "memberships", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -1714,9 +1714,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("organizationId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }] } + { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId"), ExpressionUtils.field("organizationId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }] } ], idFields: ["organizationId", "userId"], uniqueFields: { @@ -1745,7 +1745,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Organization", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "invites", fields: ["organizationId"], references: ["id"], onDelete: "Cascade" } }, organizationId: { @@ -1758,7 +1758,7 @@ export class SchemaType implements SchemaDef { creator: { name: "creator", type: "User", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("inviteCreatedBy") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("creatorId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("inviteCreatedBy") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("creatorId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "invitesCreated", name: "inviteCreatedBy", fields: ["creatorId"], references: ["id"] } }, creatorId: { @@ -1772,7 +1772,7 @@ export class SchemaType implements SchemaDef { name: "acceptor", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("inviteAcceptedBy") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("acceptorId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("inviteAcceptedBy") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("acceptorId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "invitesAccepted", name: "inviteAcceptedBy", fields: ["acceptorId"], references: ["id"], onDelete: "Cascade" } }, acceptorId: { @@ -1808,13 +1808,13 @@ export class SchemaType implements SchemaDef { name: "teamIds", type: "String", array: true, - attributes: [{ name: "@default", args: [{ name: "value", value: ExpressionUtils.array([]) }] }], + attributes: [{ name: "@default", args: [{ name: "value", value: ExpressionUtils.array("Any", []) }] }], default: [] } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("email"), ExpressionUtils.field("organizationId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("email"), ExpressionUtils.field("organizationId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1867,7 +1867,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Organization", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "apiKeys", fields: ["organizationId"], references: ["id"], onDelete: "Cascade" } }, apiKeyEnvironments: { @@ -1884,7 +1884,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1924,7 +1924,7 @@ export class SchemaType implements SchemaDef { apiKey: { name: "apiKey", type: "ApiKey", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("apiKeyId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("apiKeyId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "apiKeyEnvironments", fields: ["apiKeyId"], references: ["id"], onDelete: "Cascade" } }, environmentId: { @@ -1937,7 +1937,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "Environment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "ApiKeyEnvironment", fields: ["environmentId"], references: ["id"], onDelete: "Cascade" } }, permission: { @@ -1946,8 +1946,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("apiKeyId"), ExpressionUtils.field("environmentId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("apiKeyId"), ExpressionUtils.field("environmentId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1981,7 +1981,7 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "accounts", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -2048,8 +2048,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("provider"), ExpressionUtils.field("providerAccountId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("provider"), ExpressionUtils.field("providerAccountId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2216,7 +2216,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("email")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("email")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2311,7 +2311,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "Environment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "segments", fields: ["environmentId"], references: ["id"], onDelete: "Cascade" } }, surveys: { @@ -2322,8 +2322,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId"), ExpressionUtils.field("title")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId"), ExpressionUtils.field("title")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2365,7 +2365,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "languages", fields: ["projectId"], references: ["id"], onDelete: "Cascade" } }, projectId: { @@ -2383,7 +2383,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId"), ExpressionUtils.field("code")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId"), ExpressionUtils.field("code")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2397,7 +2397,7 @@ export class SchemaType implements SchemaDef { language: { name: "language", type: "Language", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("languageId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("languageId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "surveyLanguages", fields: ["languageId"], references: ["id"], onDelete: "Cascade" } }, languageId: { @@ -2419,7 +2419,7 @@ export class SchemaType implements SchemaDef { survey: { name: "survey", type: "Survey", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "languages", fields: ["surveyId"], references: ["id"], onDelete: "Cascade" } }, default: { @@ -2436,9 +2436,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("languageId"), ExpressionUtils.field("surveyId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("languageId")]) }] } + { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("languageId"), ExpressionUtils.field("surveyId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("languageId")]) }] } ], idFields: ["languageId", "surveyId"], uniqueFields: { @@ -2477,7 +2477,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "Environment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "insights", fields: ["environmentId"], references: ["id"], onDelete: "Cascade" } }, category: { @@ -2523,7 +2523,7 @@ export class SchemaType implements SchemaDef { document: { name: "document", type: "Document", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("documentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("documentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "documentInsights", fields: ["documentId"], references: ["id"], onDelete: "Cascade" } }, insightId: { @@ -2537,13 +2537,13 @@ export class SchemaType implements SchemaDef { insight: { name: "insight", type: "Insight", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("insightId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("insightId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "documentInsights", fields: ["insightId"], references: ["id"], onDelete: "Cascade" } } }, attributes: [ - { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("documentId"), ExpressionUtils.field("insightId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("insightId")]) }] } + { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("documentId"), ExpressionUtils.field("insightId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("insightId")]) }] } ], idFields: ["documentId", "insightId"], uniqueFields: { @@ -2582,7 +2582,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "Environment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "documents", fields: ["environmentId"], references: ["id"], onDelete: "Cascade" } }, surveyId: { @@ -2597,7 +2597,7 @@ export class SchemaType implements SchemaDef { name: "survey", type: "Survey", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("surveyId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "documents", fields: ["surveyId"], references: ["id"], onDelete: "Cascade" } }, responseId: { @@ -2612,7 +2612,7 @@ export class SchemaType implements SchemaDef { name: "response", type: "Response", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("responseId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("responseId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "documents", fields: ["responseId"], references: ["id"], onDelete: "Cascade" } }, questionId: { @@ -2645,8 +2645,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("responseId"), ExpressionUtils.field("questionId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("createdAt")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("responseId"), ExpressionUtils.field("questionId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("createdAt")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2690,7 +2690,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Organization", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "teams", fields: ["organizationId"], references: ["id"], onDelete: "Cascade" } }, teamUsers: { @@ -2707,7 +2707,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId"), ExpressionUtils.field("name")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId"), ExpressionUtils.field("name")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2741,7 +2741,7 @@ export class SchemaType implements SchemaDef { team: { name: "team", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "teamUsers", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -2755,7 +2755,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "teamUsers", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, role: { @@ -2764,8 +2764,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId"), ExpressionUtils.field("userId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }] } + { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("teamId"), ExpressionUtils.field("userId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }] } ], idFields: ["teamId", "userId"], uniqueFields: { @@ -2798,7 +2798,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "projectTeams", fields: ["projectId"], references: ["id"], onDelete: "Cascade" } }, teamId: { @@ -2812,7 +2812,7 @@ export class SchemaType implements SchemaDef { team: { name: "team", type: "Team", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("teamId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "projectTeams", fields: ["teamId"], references: ["id"], onDelete: "Cascade" } }, permission: { @@ -2823,8 +2823,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId"), ExpressionUtils.field("teamId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("teamId")]) }] } + { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId"), ExpressionUtils.field("teamId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("teamId")]) }] } ], idFields: ["projectId", "teamId"], uniqueFields: { diff --git a/tests/e2e/github-repos/trigger.dev/schema.ts b/tests/e2e/github-repos/trigger.dev/schema.ts index 12dab9e1b..29c733500 100644 --- a/tests/e2e/github-repos/trigger.dev/schema.ts +++ b/tests/e2e/github-repos/trigger.dev/schema.ts @@ -137,7 +137,7 @@ export class SchemaType implements SchemaDef { name: "invitationCode", type: "InvitationCode", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("invitationCodeId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("invitationCodeId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "users", fields: ["invitationCodeId"], references: ["id"] } }, invitationCodeId: { @@ -223,7 +223,7 @@ export class SchemaType implements SchemaDef { name: "personalAccessToken", type: "PersonalAccessToken", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("personalAccessTokenId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("personalAccessTokenId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "authorizationCodes", fields: ["personalAccessTokenId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, personalAccessTokenId: { @@ -284,7 +284,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "personalAccessTokens", fields: ["userId"], references: ["id"] } }, userId: { @@ -512,7 +512,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Organization", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "members", fields: ["organizationId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, organizationId: { @@ -525,7 +525,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "orgMemberships", fields: ["userId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, userId: { @@ -561,7 +561,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId"), ExpressionUtils.field("userId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId"), ExpressionUtils.field("userId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -599,7 +599,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Organization", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "invites", fields: ["organizationId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, organizationId: { @@ -612,7 +612,7 @@ export class SchemaType implements SchemaDef { inviter: { name: "inviter", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("inviterId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("inviterId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "sentInvites", fields: ["inviterId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, inviterId: { @@ -636,7 +636,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId"), ExpressionUtils.field("email")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId"), ExpressionUtils.field("email")]) }] } ], idFields: ["id"], uniqueFields: { @@ -692,7 +692,7 @@ export class SchemaType implements SchemaDef { name: "parentEnvironment", type: "RuntimeEnvironment", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("parentEnvironment") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("parentEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("parentEnvironment") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("parentEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "childEnvironments", name: "parentEnvironment", fields: ["parentEnvironmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, parentEnvironmentId: { @@ -745,7 +745,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Organization", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "environments", fields: ["organizationId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, organizationId: { @@ -758,7 +758,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "environments", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -772,7 +772,7 @@ export class SchemaType implements SchemaDef { name: "orgMember", type: "OrgMember", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("orgMemberId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("orgMemberId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "environments", fields: ["orgMemberId"], references: ["id"], onDelete: "SetNull", onUpdate: "Cascade" } }, orgMemberId: { @@ -888,7 +888,7 @@ export class SchemaType implements SchemaDef { name: "currentSession", type: "RuntimeEnvironmentSession", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("currentSession") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("currentSessionId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("currentSession") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("currentSessionId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "currentEnvironments", name: "currentSession", fields: ["currentSessionId"], references: ["id"], onDelete: "SetNull", onUpdate: "Cascade" } }, currentSessionId: { @@ -937,10 +937,10 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId"), ExpressionUtils.field("slug"), ExpressionUtils.field("orgMemberId")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId"), ExpressionUtils.field("shortcode")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("parentEnvironmentId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId"), ExpressionUtils.field("slug"), ExpressionUtils.field("orgMemberId")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId"), ExpressionUtils.field("shortcode")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("parentEnvironmentId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -980,7 +980,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Organization", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "projects", fields: ["organizationId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, organizationId: { @@ -1040,7 +1040,7 @@ export class SchemaType implements SchemaDef { name: "defaultWorkerGroup", type: "WorkerInstanceGroup", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("ProjectDefaultWorkerGroup") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("defaultWorkerGroupId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("ProjectDefaultWorkerGroup") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("defaultWorkerGroupId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "defaultForProjects", name: "ProjectDefaultWorkerGroup", fields: ["defaultWorkerGroupId"], references: ["id"] } }, defaultWorkerGroupId: { @@ -1272,7 +1272,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("key")]) }, { name: "type", value: ExpressionUtils.literal("BTree") }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("key")]) }, { name: "type", value: ExpressionUtils.literal("BTree") }] } ], idFields: ["key"], uniqueFields: { @@ -1360,7 +1360,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "backgroundWorkers", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -1373,7 +1373,7 @@ export class SchemaType implements SchemaDef { runtimeEnvironment: { name: "runtimeEnvironment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "backgroundWorkers", fields: ["runtimeEnvironmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, runtimeEnvironmentId: { @@ -1443,7 +1443,7 @@ export class SchemaType implements SchemaDef { name: "workerGroup", type: "WorkerInstanceGroup", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workerGroupId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("workerGroupId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "backgroundWorkers", fields: ["workerGroupId"], references: ["id"], onDelete: "SetNull", onUpdate: "Cascade" } }, workerGroupId: { @@ -1462,9 +1462,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId"), ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("version")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("createdAt")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId"), ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("version")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("createdAt")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1504,7 +1504,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "BackgroundWorkerFile", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -1534,7 +1534,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId"), ExpressionUtils.field("contentHash")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId"), ExpressionUtils.field("contentHash")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1580,7 +1580,7 @@ export class SchemaType implements SchemaDef { worker: { name: "worker", type: "BackgroundWorker", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workerId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("workerId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "tasks", fields: ["workerId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, workerId: { @@ -1593,7 +1593,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "backgroundWorkerTasks", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -1607,7 +1607,7 @@ export class SchemaType implements SchemaDef { name: "file", type: "BackgroundWorkerFile", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("fileId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("fileId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "tasks", fields: ["fileId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, fileId: { @@ -1621,7 +1621,7 @@ export class SchemaType implements SchemaDef { runtimeEnvironment: { name: "runtimeEnvironment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "backgroundWorkerTasks", fields: ["runtimeEnvironmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, runtimeEnvironmentId: { @@ -1682,7 +1682,7 @@ export class SchemaType implements SchemaDef { name: "queue", type: "TaskQueue", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("queueId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("queueId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "tasks", fields: ["queueId"], references: ["id"], onDelete: "SetNull", onUpdate: "Cascade" } }, maxDurationInSeconds: { @@ -1698,9 +1698,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workerId"), ExpressionUtils.field("slug")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId"), ExpressionUtils.field("slug")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("projectId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("workerId"), ExpressionUtils.field("slug")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId"), ExpressionUtils.field("slug")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("projectId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -1799,7 +1799,7 @@ export class SchemaType implements SchemaDef { runtimeEnvironment: { name: "runtimeEnvironment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "taskRuns", fields: ["runtimeEnvironmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, runtimeEnvironmentId: { @@ -1817,7 +1817,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "taskRuns", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -1955,7 +1955,7 @@ export class SchemaType implements SchemaDef { name: "lockedBy", type: "BackgroundWorkerTask", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("lockedById")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("lockedById")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "runs", fields: ["lockedById"], references: ["id"] } }, lockedById: { @@ -1970,7 +1970,7 @@ export class SchemaType implements SchemaDef { name: "lockedToVersion", type: "BackgroundWorker", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("lockedToVersionId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("lockedToVersionId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "lockedRuns", fields: ["lockedToVersionId"], references: ["id"] } }, lockedToVersionId: { @@ -2116,7 +2116,7 @@ export class SchemaType implements SchemaDef { name: "rootTaskRun", type: "TaskRun", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("TaskRootRun") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("rootTaskRunId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("NoAction") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("TaskRootRun") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("rootTaskRunId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("NoAction") }] }], relation: { opposite: "descendantRuns", name: "TaskRootRun", fields: ["rootTaskRunId"], references: ["id"], onDelete: "SetNull", onUpdate: "NoAction" } }, rootTaskRunId: { @@ -2138,7 +2138,7 @@ export class SchemaType implements SchemaDef { name: "parentTaskRun", type: "TaskRun", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("TaskParentRun") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("parentTaskRunId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("NoAction") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("TaskParentRun") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("parentTaskRunId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("NoAction") }] }], relation: { opposite: "childRuns", name: "TaskParentRun", fields: ["parentTaskRunId"], references: ["id"], onDelete: "SetNull", onUpdate: "NoAction" } }, parentTaskRunId: { @@ -2160,7 +2160,7 @@ export class SchemaType implements SchemaDef { name: "parentTaskRunAttempt", type: "TaskRunAttempt", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("TaskParentRunAttempt") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("parentTaskRunAttemptId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("NoAction") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("TaskParentRunAttempt") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("parentTaskRunAttemptId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("NoAction") }] }], relation: { opposite: "childRuns", name: "TaskParentRunAttempt", fields: ["parentTaskRunAttemptId"], references: ["id"], onDelete: "SetNull", onUpdate: "NoAction" } }, parentTaskRunAttemptId: { @@ -2175,7 +2175,7 @@ export class SchemaType implements SchemaDef { name: "batch", type: "BatchTaskRun", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("batchId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("NoAction") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("batchId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("NoAction") }] }], relation: { opposite: "runs", fields: ["batchId"], references: ["id"], onDelete: "SetNull", onUpdate: "NoAction" } }, batchId: { @@ -2259,20 +2259,20 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("oneTimeUseToken")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("taskIdentifier"), ExpressionUtils.field("idempotencyKey")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("parentTaskRunId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("rootTaskRunId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scheduleId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spanId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("parentSpanId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("scheduleId"), ExpressionUtils.field("createdAt")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runTags")]) }, { name: "type", value: ExpressionUtils.literal("Gin") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("batchId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("id")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("createdAt")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("createdAt")]) }, { name: "type", value: ExpressionUtils.literal("Brin") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("status"), ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("createdAt"), ExpressionUtils.field("id")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("oneTimeUseToken")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("taskIdentifier"), ExpressionUtils.field("idempotencyKey")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("parentTaskRunId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("rootTaskRunId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("scheduleId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spanId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("parentSpanId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("scheduleId"), ExpressionUtils.field("createdAt")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runTags")]) }, { name: "type", value: ExpressionUtils.literal("Gin") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("batchId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("id")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("createdAt")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("createdAt")]) }, { name: "type", value: ExpressionUtils.literal("Brin") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("TaskRunStatus", [ExpressionUtils.field("status"), ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("createdAt"), ExpressionUtils.field("id")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2332,7 +2332,7 @@ export class SchemaType implements SchemaDef { run: { name: "run", type: "TaskRun", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "executionSnapshots", fields: ["runId"], references: ["id"] } }, runStatus: { @@ -2351,7 +2351,7 @@ export class SchemaType implements SchemaDef { name: "batch", type: "BatchTaskRun", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("batchId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("batchId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "executionSnapshots", fields: ["batchId"], references: ["id"] } }, attemptNumber: { @@ -2369,7 +2369,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "executionSnapshots", fields: ["environmentId"], references: ["id"] } }, environmentType: { @@ -2386,7 +2386,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "executionSnapshots", fields: ["projectId"], references: ["id"] } }, organizationId: { @@ -2399,7 +2399,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Organization", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "executionSnapshots", fields: ["organizationId"], references: ["id"] } }, completedWaitpoints: { @@ -2426,7 +2426,7 @@ export class SchemaType implements SchemaDef { name: "checkpoint", type: "TaskRunCheckpoint", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("checkpointId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("checkpointId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "executionSnapshot", fields: ["checkpointId"], references: ["id"] } }, workerId: { @@ -2441,7 +2441,7 @@ export class SchemaType implements SchemaDef { name: "worker", type: "WorkerInstance", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workerId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("workerId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "TaskRunExecutionSnapshot", fields: ["workerId"], references: ["id"] } }, runnerId: { @@ -2473,7 +2473,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runId"), ExpressionUtils.field("isValid"), ExpressionUtils.field("createdAt")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runId"), ExpressionUtils.field("isValid"), ExpressionUtils.field("createdAt")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2522,7 +2522,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "taskRunCheckpoints", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -2535,7 +2535,7 @@ export class SchemaType implements SchemaDef { runtimeEnvironment: { name: "runtimeEnvironment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "taskRunCheckpoints", fields: ["runtimeEnvironmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, runtimeEnvironmentId: { @@ -2633,7 +2633,7 @@ export class SchemaType implements SchemaDef { name: "completedByTaskRun", type: "TaskRun", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("CompletingRun") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("completedByTaskRunId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("CompletingRun") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("completedByTaskRunId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "associatedWaitpoint", name: "CompletingRun", fields: ["completedByTaskRunId"], references: ["id"], onDelete: "SetNull" } }, completedAfter: { @@ -2653,7 +2653,7 @@ export class SchemaType implements SchemaDef { name: "completedByBatch", type: "BatchTaskRun", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("completedByBatchId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("completedByBatchId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }] }], relation: { opposite: "waitpoints", fields: ["completedByBatchId"], references: ["id"], onDelete: "SetNull" } }, blockingTaskRuns: { @@ -2696,7 +2696,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "waitpoints", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -2709,7 +2709,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "waitpoints", fields: ["environmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, environmentId: { @@ -2738,10 +2738,10 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId"), ExpressionUtils.field("idempotencyKey")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("completedByBatchId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId"), ExpressionUtils.field("type"), ExpressionUtils.field("createdAt")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId"), ExpressionUtils.field("type"), ExpressionUtils.field("status")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId"), ExpressionUtils.field("idempotencyKey")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("completedByBatchId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId"), ExpressionUtils.field("type"), ExpressionUtils.field("createdAt")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId"), ExpressionUtils.field("type"), ExpressionUtils.field("status")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2764,7 +2764,7 @@ export class SchemaType implements SchemaDef { taskRun: { name: "taskRun", type: "TaskRun", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskRunId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskRunId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "blockedByWaitpoints", fields: ["taskRunId"], references: ["id"] } }, taskRunId: { @@ -2777,7 +2777,7 @@ export class SchemaType implements SchemaDef { waitpoint: { name: "waitpoint", type: "Waitpoint", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("waitpointId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("waitpointId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "blockingTaskRuns", fields: ["waitpointId"], references: ["id"] } }, waitpointId: { @@ -2790,7 +2790,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "taskRunWaitpoints", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -2817,7 +2817,7 @@ export class SchemaType implements SchemaDef { name: "batch", type: "BatchTaskRun", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("batchId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("batchId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "runsBlocked", fields: ["batchId"], references: ["id"] } }, batchIndex: { @@ -2839,9 +2839,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskRunId"), ExpressionUtils.field("waitpointId"), ExpressionUtils.field("batchIndex")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskRunId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("waitpointId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskRunId"), ExpressionUtils.field("waitpointId"), ExpressionUtils.field("batchIndex")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskRunId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("waitpointId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2866,7 +2866,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "waitpointTags", fields: ["environmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, environmentId: { @@ -2879,7 +2879,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "waitpointTags", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -2897,7 +2897,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId"), ExpressionUtils.field("name")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId"), ExpressionUtils.field("name")]) }] } ], idFields: ["id"], uniqueFields: { @@ -2959,7 +2959,7 @@ export class SchemaType implements SchemaDef { workerGroup: { name: "workerGroup", type: "WorkerInstanceGroup", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workerGroupId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("workerGroupId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "workers", fields: ["workerGroupId"], references: ["id"] } }, workerGroupId: { @@ -2979,7 +2979,7 @@ export class SchemaType implements SchemaDef { name: "organization", type: "Organization", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "workerInstances", fields: ["organizationId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, organizationId: { @@ -2994,7 +2994,7 @@ export class SchemaType implements SchemaDef { name: "project", type: "Project", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "workers", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -3009,7 +3009,7 @@ export class SchemaType implements SchemaDef { name: "environment", type: "RuntimeEnvironment", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "workerInstances", fields: ["environmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, environmentId: { @@ -3024,7 +3024,7 @@ export class SchemaType implements SchemaDef { name: "deployment", type: "WorkerDeployment", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("deploymentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("deploymentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "workerInstance", fields: ["deploymentId"], references: ["id"], onDelete: "SetNull", onUpdate: "Cascade" } }, deploymentId: { @@ -3059,7 +3059,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workerGroupId"), ExpressionUtils.field("resourceIdentifier")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("workerGroupId"), ExpressionUtils.field("resourceIdentifier")]) }] } ], idFields: ["id"], uniqueFields: { @@ -3105,7 +3105,7 @@ export class SchemaType implements SchemaDef { token: { name: "token", type: "WorkerGroupToken", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("tokenId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("tokenId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "workerGroup", fields: ["tokenId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, tokenId: { @@ -3140,7 +3140,7 @@ export class SchemaType implements SchemaDef { name: "organization", type: "Organization", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "workerGroups", fields: ["organizationId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, organizationId: { @@ -3155,7 +3155,7 @@ export class SchemaType implements SchemaDef { name: "project", type: "Project", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "workerGroups", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -3256,7 +3256,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "runTags", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -3274,8 +3274,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId"), ExpressionUtils.field("name")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("name"), ExpressionUtils.field("id")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId"), ExpressionUtils.field("name")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("name"), ExpressionUtils.field("id")]) }] } ], idFields: ["id"], uniqueFields: { @@ -3297,7 +3297,7 @@ export class SchemaType implements SchemaDef { taskRun: { name: "taskRun", type: "TaskRun", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskRunId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskRunId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "dependency", fields: ["taskRunId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, taskRunId: { @@ -3313,7 +3313,7 @@ export class SchemaType implements SchemaDef { name: "checkpointEvent", type: "CheckpointRestoreEvent", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("checkpointEventId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("checkpointEventId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "taskRunDependency", fields: ["checkpointEventId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, checkpointEventId: { @@ -3330,7 +3330,7 @@ export class SchemaType implements SchemaDef { name: "dependentAttempt", type: "TaskRunAttempt", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("dependentAttemptId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("dependentAttemptId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "dependencies", fields: ["dependentAttemptId"], references: ["id"] } }, dependentAttemptId: { @@ -3345,7 +3345,7 @@ export class SchemaType implements SchemaDef { name: "dependentBatchRun", type: "BatchTaskRun", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("dependentBatchRun") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("dependentBatchRunId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("dependentBatchRun") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("dependentBatchRunId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "runDependencies", name: "dependentBatchRun", fields: ["dependentBatchRunId"], references: ["id"] } }, dependentBatchRunId: { @@ -3375,8 +3375,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("dependentAttemptId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("dependentBatchRunId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("dependentAttemptId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("dependentBatchRunId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -3423,7 +3423,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "taskRunNumberCounter", fields: ["environmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, environmentId: { @@ -3441,7 +3441,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskIdentifier"), ExpressionUtils.field("environmentId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskIdentifier"), ExpressionUtils.field("environmentId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -3474,7 +3474,7 @@ export class SchemaType implements SchemaDef { taskRun: { name: "taskRun", type: "TaskRun", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("attempts") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskRunId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("attempts") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskRunId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "attempts", name: "attempts", fields: ["taskRunId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, taskRunId: { @@ -3487,7 +3487,7 @@ export class SchemaType implements SchemaDef { backgroundWorker: { name: "backgroundWorker", type: "BackgroundWorker", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("backgroundWorkerId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("backgroundWorkerId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "attempts", fields: ["backgroundWorkerId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, backgroundWorkerId: { @@ -3500,7 +3500,7 @@ export class SchemaType implements SchemaDef { backgroundWorkerTask: { name: "backgroundWorkerTask", type: "BackgroundWorkerTask", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("backgroundWorkerTaskId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("backgroundWorkerTaskId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "attempts", fields: ["backgroundWorkerTaskId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, backgroundWorkerTaskId: { @@ -3513,7 +3513,7 @@ export class SchemaType implements SchemaDef { runtimeEnvironment: { name: "runtimeEnvironment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "taskRunAttempts", fields: ["runtimeEnvironmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, runtimeEnvironmentId: { @@ -3526,7 +3526,7 @@ export class SchemaType implements SchemaDef { queue: { name: "queue", type: "TaskQueue", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("queueId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("queueId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "attempts", fields: ["queueId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, queueId: { @@ -3631,8 +3631,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskRunId"), ExpressionUtils.field("number")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskRunId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskRunId"), ExpressionUtils.field("number")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskRunId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -3901,9 +3901,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("traceId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spanId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("traceId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spanId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -3950,7 +3950,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "taskQueues", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -3963,7 +3963,7 @@ export class SchemaType implements SchemaDef { runtimeEnvironment: { name: "runtimeEnvironment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "taskQueues", fields: ["runtimeEnvironmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, runtimeEnvironmentId: { @@ -4027,7 +4027,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("name")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("name")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4065,7 +4065,7 @@ export class SchemaType implements SchemaDef { runtimeEnvironment: { name: "runtimeEnvironment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "batchTaskRuns", fields: ["runtimeEnvironmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, status: { @@ -4103,7 +4103,7 @@ export class SchemaType implements SchemaDef { name: "runIds", type: "String", array: true, - attributes: [{ name: "@default", args: [{ name: "value", value: ExpressionUtils.array([]) }] }], + attributes: [{ name: "@default", args: [{ name: "value", value: ExpressionUtils.array("Any", []) }] }], default: [] }, runCount: { @@ -4217,7 +4217,7 @@ export class SchemaType implements SchemaDef { name: "checkpointEvent", type: "CheckpointRestoreEvent", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("checkpointEventId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("checkpointEventId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "batchTaskRunDependency", fields: ["checkpointEventId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, checkpointEventId: { @@ -4234,7 +4234,7 @@ export class SchemaType implements SchemaDef { name: "dependentTaskAttempt", type: "TaskRunAttempt", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("dependentTaskAttemptId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("dependentTaskAttemptId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "batchDependencies", fields: ["dependentTaskAttemptId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, dependentTaskAttemptId: { @@ -4254,9 +4254,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("oneTimeUseToken")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("idempotencyKey")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("dependentTaskAttemptId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("oneTimeUseToken")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId"), ExpressionUtils.field("idempotencyKey")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("dependentTaskAttemptId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4286,7 +4286,7 @@ export class SchemaType implements SchemaDef { batchTaskRun: { name: "batchTaskRun", type: "BatchTaskRun", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("batchTaskRunId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("batchTaskRunId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "items", fields: ["batchTaskRunId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, batchTaskRunId: { @@ -4299,7 +4299,7 @@ export class SchemaType implements SchemaDef { taskRun: { name: "taskRun", type: "TaskRun", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskRunId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskRunId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "batchItems", fields: ["taskRunId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, taskRunId: { @@ -4313,7 +4313,7 @@ export class SchemaType implements SchemaDef { name: "taskRunAttempt", type: "TaskRunAttempt", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskRunAttemptId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskRunAttemptId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "batchTaskRunItems", fields: ["taskRunAttemptId"], references: ["id"], onDelete: "SetNull", onUpdate: "Cascade" } }, taskRunAttemptId: { @@ -4343,9 +4343,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("batchTaskRunId"), ExpressionUtils.field("taskRunId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskRunAttemptId")]) }, { name: "map", value: ExpressionUtils.literal("idx_batchtaskrunitem_taskrunattempt") }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskRunId")]) }, { name: "map", value: ExpressionUtils.literal("idx_batchtaskrunitem_taskrun") }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("batchTaskRunId"), ExpressionUtils.field("taskRunId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskRunAttemptId")]) }, { name: "map", value: ExpressionUtils.literal("idx_batchtaskrunitem_taskrunattempt") }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskRunId")]) }, { name: "map", value: ExpressionUtils.literal("idx_batchtaskrunitem_taskrun") }] } ], idFields: ["id"], uniqueFields: { @@ -4376,7 +4376,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "environmentVariables", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -4406,7 +4406,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId"), ExpressionUtils.field("key")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId"), ExpressionUtils.field("key")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4429,7 +4429,7 @@ export class SchemaType implements SchemaDef { name: "valueReference", type: "SecretReference", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("valueReferenceId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("valueReferenceId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "environmentVariableValues", fields: ["valueReferenceId"], references: ["id"], onDelete: "SetNull", onUpdate: "Cascade" } }, valueReferenceId: { @@ -4443,7 +4443,7 @@ export class SchemaType implements SchemaDef { variable: { name: "variable", type: "EnvironmentVariable", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("variableId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("variableId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "values", fields: ["variableId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, variableId: { @@ -4456,7 +4456,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "environmentVariableValues", fields: ["environmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, environmentId: { @@ -4486,7 +4486,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("variableId"), ExpressionUtils.field("environmentId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("variableId"), ExpressionUtils.field("environmentId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4541,7 +4541,7 @@ export class SchemaType implements SchemaDef { run: { name: "run", type: "TaskRun", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "checkpoints", fields: ["runId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, runId: { @@ -4554,7 +4554,7 @@ export class SchemaType implements SchemaDef { attempt: { name: "attempt", type: "TaskRunAttempt", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("attemptId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("attemptId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "checkpoints", fields: ["attemptId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, attemptId: { @@ -4572,7 +4572,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "checkpoints", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -4585,7 +4585,7 @@ export class SchemaType implements SchemaDef { runtimeEnvironment: { name: "runtimeEnvironment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "checkpoints", fields: ["runtimeEnvironmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, runtimeEnvironmentId: { @@ -4609,8 +4609,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("attemptId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("attemptId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4645,7 +4645,7 @@ export class SchemaType implements SchemaDef { checkpoint: { name: "checkpoint", type: "Checkpoint", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("checkpointId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("checkpointId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "events", fields: ["checkpointId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, checkpointId: { @@ -4658,7 +4658,7 @@ export class SchemaType implements SchemaDef { run: { name: "run", type: "TaskRun", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "CheckpointRestoreEvent", fields: ["runId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, runId: { @@ -4671,7 +4671,7 @@ export class SchemaType implements SchemaDef { attempt: { name: "attempt", type: "TaskRunAttempt", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("attemptId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("attemptId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "CheckpointRestoreEvent", fields: ["attemptId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, attemptId: { @@ -4684,7 +4684,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "CheckpointRestoreEvent", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -4697,7 +4697,7 @@ export class SchemaType implements SchemaDef { runtimeEnvironment: { name: "runtimeEnvironment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runtimeEnvironmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "CheckpointRestoreEvent", fields: ["runtimeEnvironmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, runtimeEnvironmentId: { @@ -4733,8 +4733,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("checkpointId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runId")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("checkpointId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4800,7 +4800,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "WorkerDeployment", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -4813,7 +4813,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "workerDeployments", fields: ["environmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, environmentId: { @@ -4827,7 +4827,7 @@ export class SchemaType implements SchemaDef { name: "worker", type: "BackgroundWorker", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workerId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("workerId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "deployment", fields: ["workerId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, workerId: { @@ -4844,7 +4844,7 @@ export class SchemaType implements SchemaDef { name: "triggeredBy", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("triggeredById")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("triggeredById")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "deployments", fields: ["triggeredById"], references: ["id"], onDelete: "SetNull", onUpdate: "Cascade" } }, triggeredById: { @@ -4912,8 +4912,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId"), ExpressionUtils.field("shortCode")]) }] }, - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId"), ExpressionUtils.field("version")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId"), ExpressionUtils.field("shortCode")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId"), ExpressionUtils.field("version")]) }] } ], idFields: ["id"], uniqueFields: { @@ -4941,7 +4941,7 @@ export class SchemaType implements SchemaDef { deployment: { name: "deployment", type: "WorkerDeployment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("deploymentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("deploymentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "promotions", fields: ["deploymentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, deploymentId: { @@ -4954,7 +4954,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "workerDeploymentPromotions", fields: ["environmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, environmentId: { @@ -4966,7 +4966,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId"), ExpressionUtils.field("label")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId"), ExpressionUtils.field("label")]) }] } ], idFields: ["id"], uniqueFields: { @@ -5053,7 +5053,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "taskSchedules", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -5083,9 +5083,9 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId"), ExpressionUtils.field("deduplicationKey")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId"), ExpressionUtils.field("createdAt")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId"), ExpressionUtils.field("deduplicationKey")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId"), ExpressionUtils.field("createdAt")]) }] } ], idFields: ["id"], uniqueFields: { @@ -5107,7 +5107,7 @@ export class SchemaType implements SchemaDef { taskSchedule: { name: "taskSchedule", type: "TaskSchedule", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskScheduleId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskScheduleId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "instances", fields: ["taskScheduleId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, taskScheduleId: { @@ -5120,7 +5120,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "taskScheduleInstances", fields: ["environmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, environmentId: { @@ -5160,7 +5160,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskScheduleId"), ExpressionUtils.field("environmentId")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskScheduleId"), ExpressionUtils.field("environmentId")]) }] } ], idFields: ["id"], uniqueFields: { @@ -5185,7 +5185,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "sessions", fields: ["environmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, environmentId: { @@ -5257,7 +5257,7 @@ export class SchemaType implements SchemaDef { name: "integration", type: "OrganizationIntegration", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("integrationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("integrationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("SetNull") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "alertChannels", fields: ["integrationId"], references: ["id"], onDelete: "SetNull", onUpdate: "Cascade" } }, integrationId: { @@ -5295,13 +5295,13 @@ export class SchemaType implements SchemaDef { name: "environmentTypes", type: "RuntimeEnvironmentType", array: true, - attributes: [{ name: "@default", args: [{ name: "value", value: ExpressionUtils.array([ExpressionUtils.literal("STAGING"), ExpressionUtils.literal("PRODUCTION")]) }] }], + attributes: [{ name: "@default", args: [{ name: "value", value: ExpressionUtils.array("RuntimeEnvironmentType", [ExpressionUtils.literal("STAGING"), ExpressionUtils.literal("PRODUCTION")]) }] }], default: ["STAGING", "PRODUCTION"] }, project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "alertChannels", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -5337,7 +5337,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId"), ExpressionUtils.field("deduplicationKey")]) }] } + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId"), ExpressionUtils.field("deduplicationKey")]) }] } ], idFields: ["id"], uniqueFields: { @@ -5365,7 +5365,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "alerts", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -5378,7 +5378,7 @@ export class SchemaType implements SchemaDef { environment: { name: "environment", type: "RuntimeEnvironment", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("environmentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "alerts", fields: ["environmentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, environmentId: { @@ -5391,7 +5391,7 @@ export class SchemaType implements SchemaDef { channel: { name: "channel", type: "ProjectAlertChannel", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("channelId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("channelId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "alerts", fields: ["channelId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, channelId: { @@ -5415,7 +5415,7 @@ export class SchemaType implements SchemaDef { name: "taskRunAttempt", type: "TaskRunAttempt", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskRunAttemptId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskRunAttemptId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "alerts", fields: ["taskRunAttemptId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, taskRunAttemptId: { @@ -5430,7 +5430,7 @@ export class SchemaType implements SchemaDef { name: "taskRun", type: "TaskRun", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("taskRunId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("taskRunId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "alerts", fields: ["taskRunId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, taskRunId: { @@ -5445,7 +5445,7 @@ export class SchemaType implements SchemaDef { name: "workerDeployment", type: "WorkerDeployment", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("workerDeploymentId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("workerDeploymentId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "alerts", fields: ["workerDeploymentId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, workerDeploymentId: { @@ -5488,7 +5488,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "alertStorages", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -5501,7 +5501,7 @@ export class SchemaType implements SchemaDef { alertChannel: { name: "alertChannel", type: "ProjectAlertChannel", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("alertChannelId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("alertChannelId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "alertStorages", fields: ["alertChannelId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, alertChannelId: { @@ -5568,7 +5568,7 @@ export class SchemaType implements SchemaDef { tokenReference: { name: "tokenReference", type: "SecretReference", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("tokenReferenceId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("tokenReferenceId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "OrganizationIntegration", fields: ["tokenReferenceId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, tokenReferenceId: { @@ -5581,7 +5581,7 @@ export class SchemaType implements SchemaDef { organization: { name: "organization", type: "Organization", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("organizationId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "organizationIntegrations", fields: ["organizationId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, organizationId: { @@ -5635,7 +5635,7 @@ export class SchemaType implements SchemaDef { project: { name: "project", type: "Project", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("projectId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "bulkActionGroups", fields: ["projectId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, projectId: { @@ -5699,7 +5699,7 @@ export class SchemaType implements SchemaDef { group: { name: "group", type: "BulkActionGroup", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("groupId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("groupId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "items", fields: ["groupId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, groupId: { @@ -5722,7 +5722,7 @@ export class SchemaType implements SchemaDef { sourceRun: { name: "sourceRun", type: "TaskRun", - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("SourceActionItemRun") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("sourceRunId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("SourceActionItemRun") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("sourceRunId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "sourceBulkActionItems", name: "SourceActionItemRun", fields: ["sourceRunId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, sourceRunId: { @@ -5736,7 +5736,7 @@ export class SchemaType implements SchemaDef { name: "destinationRun", type: "TaskRun", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("DestinationActionItemRun") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("destinationRunId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("DestinationActionItemRun") }, { name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("destinationRunId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "destinationBulkActionItems", name: "DestinationActionItemRun", fields: ["destinationRunId"], references: ["id"], onDelete: "Cascade", onUpdate: "Cascade" } }, destinationRunId: { @@ -5805,8 +5805,8 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("createdAt")]) }] } + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("DateTime", [ExpressionUtils.field("createdAt")]) }] } ], idFields: ["id"], uniqueFields: { @@ -6068,10 +6068,10 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("id"), ExpressionUtils.field("createdAt")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("traceId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spanId")]) }] }, - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("runId")]) }] } + { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("id"), ExpressionUtils.field("createdAt")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("traceId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spanId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("runId")]) }] } ], idFields: ["id", "createdAt"], uniqueFields: { diff --git a/tests/e2e/orm/client-api/timezone/pg-timezone.test.ts b/tests/e2e/orm/client-api/timezone/pg-timezone.test.ts new file mode 100644 index 000000000..935ca818d --- /dev/null +++ b/tests/e2e/orm/client-api/timezone/pg-timezone.test.ts @@ -0,0 +1,546 @@ +import { createTestClient } from '@zenstackhq/testtools'; +import { afterEach, beforeEach, describe, expect, it } from 'vitest'; + +describe('Timezone handling tests for postgres', () => { + describe.each([ + { + name: 'DateTime without timezone', + withTimezone: false, + }, + { + name: 'DateTime with timezone', + withTimezone: true, + }, + ])('$name', ({ withTimezone }) => { + const schema = ` +model User { + id Int @id @default(autoincrement()) + email String @unique + name String? + createdAt DateTime @default(now()) ${withTimezone ? '@db.Timestamptz' : ''} + posts Post[] +} + +model Post { + id Int @id @default(autoincrement()) + title String + publishedAt DateTime? ${withTimezone ? '@db.Timestamptz' : ''} + createdAt DateTime @default(now()) ${withTimezone ? '@db.Timestamptz' : ''} + authorId Int + author User @relation(fields: [authorId], references: [id], onDelete: Cascade) +} + `; + + let client: any; + + beforeEach(async () => { + client = await createTestClient(schema, { + usePrismaPush: true, + provider: 'postgresql', + }); + }); + + afterEach(async () => { + await client?.$disconnect(); + }); + + it('returns DateTime fields as JS Date objects', async () => { + const testDate = new Date('2024-06-15T14:30:00.000Z'); + + const user = await client.user.create({ + data: { + email: 'user@test.com', + name: 'Test User', + }, + }); + + const post = await client.post.create({ + data: { + title: 'Test Post', + publishedAt: testDate, + authorId: user.id, + }, + }); + + expect(post.publishedAt).toBeInstanceOf(Date); + expect(post.createdAt).toBeInstanceOf(Date); + expect(user.createdAt).toBeInstanceOf(Date); + }); + + it('preserves exact datetime value on create and query', async () => { + const testDate = new Date('2024-06-15T14:30:00.000Z'); + + const user = await client.user.create({ + data: { + email: 'user@test.com', + }, + }); + + const created = await client.post.create({ + data: { + title: 'Test Post', + publishedAt: testDate, + authorId: user.id, + }, + }); + + expect(created.publishedAt).toBeInstanceOf(Date); + expect(created.publishedAt.toISOString()).toBe(testDate.toISOString()); + + const queried = await client.post.findUnique({ + where: { id: created.id }, + }); + + expect(queried.publishedAt).toBeInstanceOf(Date); + expect(queried.publishedAt.toISOString()).toBe(testDate.toISOString()); + }); + + it('preserves exact datetime value with different timezone offsets', async () => { + // Test with a date that has a non-UTC timezone offset + // When created with '2024-06-15T10:30:00-04:00', it should be stored as '2024-06-15T14:30:00Z' + const testDate = new Date('2024-06-15T10:30:00-04:00'); + + const user = await client.user.create({ + data: { + email: 'user@test.com', + }, + }); + + const created = await client.post.create({ + data: { + title: 'Test Post', + publishedAt: testDate, + authorId: user.id, + }, + }); + + expect(created.publishedAt).toBeInstanceOf(Date); + expect(created.publishedAt.getTime()).toBe(testDate.getTime()); + expect(created.publishedAt.toISOString()).toBe('2024-06-15T14:30:00.000Z'); + + const queried = await client.post.findUnique({ + where: { id: created.id }, + }); + + expect(queried.publishedAt).toBeInstanceOf(Date); + expect(queried.publishedAt.getTime()).toBe(testDate.getTime()); + expect(queried.publishedAt.toISOString()).toBe('2024-06-15T14:30:00.000Z'); + }); + + it('stores datetime as UTC in database', async () => { + const testDate = new Date('2024-06-15T14:30:00.000Z'); + + const user = await client.user.create({ + data: { + email: 'user@test.com', + }, + }); + + const created = await client.post.create({ + data: { + title: 'Test Post', + publishedAt: testDate, + authorId: user.id, + }, + }); + + // Query the database directly using Kysely to verify UTC storage + const rawResult = await client.$qb + .selectFrom('Post') + .select(['publishedAt']) + .where('id', '=', created.id) + .executeTakeFirst(); + + // The raw value from database should be a Date object with UTC time + expect(rawResult.publishedAt).toBeInstanceOf(Date); + expect(rawResult.publishedAt.toISOString()).toBe('2024-06-15T14:30:00.000Z'); + }); + + it('handles multiple posts with different timezones correctly', async () => { + const dates = [ + new Date('2024-01-15T09:00:00Z'), // UTC + new Date('2024-02-15T09:00:00-05:00'), // EST + new Date('2024-03-15T09:00:00+09:00'), // JST + new Date('2024-04-15T09:00:00+02:00'), // CEST + ]; + + const user = await client.user.create({ + data: { + email: 'user@test.com', + }, + }); + + const createdPosts: any[] = []; + for (let i = 0; i < dates.length; i++) { + const post = await client.post.create({ + data: { + title: `Post ${i + 1}`, + publishedAt: dates[i], + authorId: user.id, + }, + }); + createdPosts.push(post); + } + + // Verify each post + for (let i = 0; i < dates.length; i++) { + const queried = await client.post.findUnique({ + where: { id: createdPosts[i].id }, + }); + + expect(queried).toBeTruthy(); + expect(queried.publishedAt).toBeInstanceOf(Date); + expect(queried.publishedAt.getTime()).toBe(dates[i]?.getTime()); + } + }); + + it('handles date filtering correctly across timezones', async () => { + const baseDate = new Date('2024-06-15T12:00:00Z'); + + const user = await client.user.create({ + data: { + email: 'user@test.com', + }, + }); + + await client.post.create({ + data: { + title: 'Before Post', + publishedAt: new Date(baseDate.getTime() - 3600000), // 1 hour before + authorId: user.id, + }, + }); + + const targetPost = await client.post.create({ + data: { + title: 'Target Post', + publishedAt: baseDate, + authorId: user.id, + }, + }); + + await client.post.create({ + data: { + title: 'After Post', + publishedAt: new Date(baseDate.getTime() + 3600000), // 1 hour after + authorId: user.id, + }, + }); + + // Query for posts published at exactly the base date + const found = await client.post.findMany({ + where: { + publishedAt: baseDate, + }, + }); + + expect(found).toHaveLength(1); + expect(found[0].id).toBe(targetPost.id); + }); + + it('handles update operations with timezone-aware dates', async () => { + const initialDate = new Date('2024-06-15T10:00:00Z'); + const updatedDate = new Date('2024-06-15T15:00:00-05:00'); // 20:00 UTC + + const user = await client.user.create({ + data: { + email: 'user@test.com', + }, + }); + + const created = await client.post.create({ + data: { + title: 'Test Post', + publishedAt: initialDate, + authorId: user.id, + }, + }); + + const updated = await client.post.update({ + where: { id: created.id }, + data: { publishedAt: updatedDate }, + }); + + expect(updated.publishedAt).toBeInstanceOf(Date); + expect(updated.publishedAt.getTime()).toBe(updatedDate.getTime()); + expect(updated.publishedAt.toISOString()).toBe('2024-06-15T20:00:00.000Z'); + + const queried = await client.post.findUnique({ + where: { id: created.id }, + }); + + expect(queried.publishedAt.getTime()).toBe(updatedDate.getTime()); + }); + + it('returns DateTime fields correctly in nested relations (include)', async () => { + const userCreatedAt = new Date('2024-01-01T10:00:00Z'); + const postPublishedAt = new Date('2024-06-15T14:30:00-05:00'); + + // Create user with a specific createdAt using raw Kysely + const userResult = await client.$qb + .insertInto('User') + .values({ + email: 'user@test.com', + name: 'Test User', + // with query builder, when dealing with no-timezone timestamp, we need to + // pass ISO string to avoid any timezone conversion by pg + createdAt: withTimezone ? userCreatedAt : userCreatedAt.toISOString(), + }) + .returning(['id']) + .executeTakeFirstOrThrow(); + + const post = await client.post.create({ + data: { + title: 'Test Post', + publishedAt: postPublishedAt, + authorId: userResult.id, + }, + }); + + // Query post with author included + const postWithAuthor = await client.post.findUnique({ + where: { id: post.id }, + include: { author: true }, + }); + + expect(postWithAuthor.publishedAt).toBeInstanceOf(Date); + expect(postWithAuthor.publishedAt.getTime()).toBe(postPublishedAt.getTime()); + expect(postWithAuthor.createdAt).toBeInstanceOf(Date); + + expect(postWithAuthor.author.createdAt).toBeInstanceOf(Date); + expect(postWithAuthor.author.createdAt.toISOString()).toBe(userCreatedAt.toISOString()); + + // Query user with posts included + const userWithPosts = await client.user.findUnique({ + where: { id: userResult.id }, + include: { posts: true }, + }); + + expect(userWithPosts.createdAt).toBeInstanceOf(Date); + expect(userWithPosts.createdAt.toISOString()).toBe(userCreatedAt.toISOString()); + + expect(userWithPosts.posts).toHaveLength(1); + expect(userWithPosts.posts[0].publishedAt).toBeInstanceOf(Date); + expect(userWithPosts.posts[0].publishedAt.getTime()).toBe(postPublishedAt.getTime()); + expect(userWithPosts.posts[0].createdAt).toBeInstanceOf(Date); + }); + + it('returns DateTime fields correctly in nested create operations', async () => { + const publishedAt = new Date('2024-06-15T10:30:00-04:00'); + + const user = await client.user.create({ + data: { + email: 'user@test.com', + name: 'Test User', + posts: { + create: [ + { + title: 'Post 1', + publishedAt: publishedAt, + }, + { + title: 'Post 2', + publishedAt: new Date('2024-06-16T10:30:00+02:00'), + }, + ], + }, + }, + include: { posts: true }, + }); + + expect(user.createdAt).toBeInstanceOf(Date); + expect(user.posts).toHaveLength(2); + + expect(user.posts[0].publishedAt).toBeInstanceOf(Date); + expect(user.posts[0].publishedAt.getTime()).toBe(publishedAt.getTime()); + expect(user.posts[0].createdAt).toBeInstanceOf(Date); + + expect(user.posts[1].publishedAt).toBeInstanceOf(Date); + expect(user.posts[1].createdAt).toBeInstanceOf(Date); + }); + + it('handles findMany with nested includes and mixed timezones', async () => { + const user1Date = new Date('2024-01-01T08:00:00-05:00'); + const user2Date = new Date('2024-01-02T08:00:00+09:00'); + + // Create users with raw Kysely to control createdAt + const user1Result = await client.$qb + .insertInto('User') + .values({ + email: 'user1@test.com', + name: 'User 1', + createdAt: withTimezone ? user1Date : user1Date.toISOString(), + }) + .returning(['id']) + .executeTakeFirstOrThrow(); + + const user2Result = await client.$qb + .insertInto('User') + .values({ + email: 'user2@test.com', + name: 'User 2', + createdAt: withTimezone ? user2Date : user2Date.toISOString(), + }) + .returning(['id']) + .executeTakeFirstOrThrow(); + + await client.post.create({ + data: { + title: 'Post 1', + publishedAt: new Date('2024-06-15T10:00:00-07:00'), + authorId: user1Result.id, + }, + }); + + await client.post.create({ + data: { + title: 'Post 2', + publishedAt: new Date('2024-06-16T15:00:00+01:00'), + authorId: user2Result.id, + }, + }); + + const usersWithPosts = await client.user.findMany({ + include: { posts: true }, + orderBy: { id: 'asc' }, + }); + + expect(usersWithPosts).toHaveLength(2); + + expect(usersWithPosts[0].createdAt).toBeInstanceOf(Date); + expect(usersWithPosts[0].createdAt.getTime()).toBe(user1Date.getTime()); + expect(usersWithPosts[0].posts[0].publishedAt).toBeInstanceOf(Date); + expect(usersWithPosts[0].posts[0].createdAt).toBeInstanceOf(Date); + + expect(usersWithPosts[1].createdAt).toBeInstanceOf(Date); + expect(usersWithPosts[1].createdAt.getTime()).toBe(user2Date.getTime()); + expect(usersWithPosts[1].posts[0].publishedAt).toBeInstanceOf(Date); + expect(usersWithPosts[1].posts[0].createdAt).toBeInstanceOf(Date); + }); + + it('query builder: handles DateTime insert with different timezones', async () => { + const userCreatedAt = new Date('2024-01-15T08:00:00-05:00'); + const postPublishedAt = new Date('2024-06-15T15:30:00+09:00'); + + // Insert using query builder + const userResult = await client.$qb + .insertInto('User') + .values({ + email: 'qb-user@test.com', + name: 'QB User', + createdAt: withTimezone ? userCreatedAt : userCreatedAt.toISOString(), + }) + .returning(['id', 'createdAt']) + .executeTakeFirstOrThrow(); + + expect(userResult.createdAt).toBeInstanceOf(Date); + expect(userResult.createdAt.getTime()).toBe(userCreatedAt.getTime()); + + const postResult = await client.$qb + .insertInto('Post') + .values({ + title: 'QB Post', + publishedAt: withTimezone ? postPublishedAt : postPublishedAt.toISOString(), + authorId: userResult.id, + createdAt: withTimezone ? new Date() : new Date().toISOString(), + }) + .returning(['id', 'publishedAt', 'createdAt']) + .executeTakeFirstOrThrow(); + + expect(postResult.publishedAt).toBeInstanceOf(Date); + expect(postResult.publishedAt.getTime()).toBe(postPublishedAt.getTime()); + expect(postResult.publishedAt.toISOString()).toBe('2024-06-15T06:30:00.000Z'); + expect(postResult.createdAt).toBeInstanceOf(Date); + }); + + it('query builder: handles DateTime select and preserves timezone', async () => { + const testDate = new Date('2024-06-15T10:30:00-07:00'); + + const user = await client.user.create({ + data: { + email: 'user@test.com', + }, + }); + + // Insert using query builder + const insertResult = await client.$qb + .insertInto('Post') + .values({ + title: 'QB Select Test', + publishedAt: withTimezone ? testDate : testDate.toISOString(), + authorId: user.id, + createdAt: withTimezone ? new Date() : new Date().toISOString(), + }) + .returning(['id']) + .executeTakeFirstOrThrow(); + + // Select using query builder + const selectResult = await client.$qb + .selectFrom('Post') + .select(['id', 'title', 'publishedAt', 'createdAt']) + .where('id', '=', insertResult.id) + .executeTakeFirstOrThrow(); + + expect(selectResult.publishedAt).toBeInstanceOf(Date); + expect(selectResult.publishedAt.getTime()).toBe(testDate.getTime()); + expect(selectResult.publishedAt.toISOString()).toBe('2024-06-15T17:30:00.000Z'); + expect(selectResult.createdAt).toBeInstanceOf(Date); + }); + + it('query builder: handles multiple DateTime inserts with mixed timezones', async () => { + const dates = [ + { createdAt: new Date('2024-01-15T09:00:00Z'), publishedAt: new Date('2024-06-15T10:00:00Z') }, + { + createdAt: new Date('2024-02-15T09:00:00-05:00'), + publishedAt: new Date('2024-06-16T10:00:00-05:00'), + }, + { + createdAt: new Date('2024-03-15T09:00:00+09:00'), + publishedAt: new Date('2024-06-17T10:00:00+09:00'), + }, + ]; + + const user = await client.user.create({ + data: { + email: 'user@test.com', + }, + }); + + const insertedIds: any[] = []; + for (const dateSet of dates) { + const result = await client.$qb + .insertInto('Post') + .values({ + title: 'Multi Insert Test', + publishedAt: withTimezone ? dateSet.publishedAt : dateSet.publishedAt.toISOString(), + authorId: user.id, + createdAt: withTimezone ? dateSet.createdAt : dateSet.createdAt.toISOString(), + }) + .returning(['id']) + .executeTakeFirstOrThrow(); + insertedIds.push(result.id); + } + + // Verify all records using query builder select + const results = await client.$qb + .selectFrom('Post') + .select(['id', 'publishedAt', 'createdAt']) + .where('id', 'in', insertedIds) + .orderBy('id', 'asc') + .execute(); + + expect(results).toHaveLength(3); + + for (let i = 0; i < results.length; i++) { + const row = results[i]; + const expectedDates = dates[i]; + expect(row.publishedAt).toBeTruthy(); + expect(row.publishedAt).toBeInstanceOf(Date); + expect((row.publishedAt as Date).getTime()).toBe(expectedDates!.publishedAt.getTime()); + expect(row.createdAt).toBeTruthy(); + expect(row.createdAt).toBeInstanceOf(Date); + expect((row.createdAt as Date).getTime()).toBe(expectedDates!.createdAt.getTime()); + } + }); + }); +}); diff --git a/tests/e2e/orm/schemas/basic/schema.ts b/tests/e2e/orm/schemas/basic/schema.ts index 9d6cb1982..ce123db2d 100644 --- a/tests/e2e/orm/schemas/basic/schema.ts +++ b/tests/e2e/orm/schemas/basic/schema.ts @@ -118,7 +118,7 @@ export class SchemaType implements SchemaDef { author: { name: "author", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "posts", fields: ["authorId"], references: ["id"], onUpdate: "Cascade", onDelete: "Cascade" } }, authorId: { @@ -175,7 +175,7 @@ export class SchemaType implements SchemaDef { name: "post", type: "Post", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("postId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("postId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "comments", fields: ["postId"], references: ["id"], onUpdate: "Cascade", onDelete: "Cascade" } }, postId: { @@ -227,7 +227,7 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "profile", fields: ["userId"], references: ["id"], onUpdate: "Cascade", onDelete: "Cascade" } }, userId: { diff --git a/tests/e2e/orm/schemas/default-auth/schema.ts b/tests/e2e/orm/schemas/default-auth/schema.ts index 986173e6a..cdc982776 100644 --- a/tests/e2e/orm/schemas/default-auth/schema.ts +++ b/tests/e2e/orm/schemas/default-auth/schema.ts @@ -61,14 +61,14 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "profile", fields: ["userId"], references: ["id"], hasDefault: true } }, address: { name: "address", type: "Address", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("addressId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("addressId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "profile", fields: ["addressId"], references: ["id"] } }, addressId: { diff --git a/tests/e2e/orm/schemas/delegate/schema.ts b/tests/e2e/orm/schemas/delegate/schema.ts index d24bd749e..b3fabd6ea 100644 --- a/tests/e2e/orm/schemas/delegate/schema.ts +++ b/tests/e2e/orm/schemas/delegate/schema.ts @@ -72,7 +72,7 @@ export class SchemaType implements SchemaDef { name: "asset", type: "Asset", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("assetId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("assetId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "comments", fields: ["assetId"], references: ["id"], onDelete: "Cascade" } }, assetId: { @@ -121,7 +121,7 @@ export class SchemaType implements SchemaDef { name: "owner", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "assets", fields: ["ownerId"], references: ["id"], onDelete: "Cascade" } }, ownerId: { @@ -145,7 +145,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("ownerId")]) }] }, + { name: "@@index", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("ownerId")]) }] }, { name: "@@delegate", args: [{ name: "discriminator", value: ExpressionUtils.field("assetType") }] } ], idFields: ["id"], @@ -192,7 +192,7 @@ export class SchemaType implements SchemaDef { type: "User", optional: true, originModel: "Asset", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "assets", fields: ["ownerId"], references: ["id"], onDelete: "Cascade" } }, ownerId: { @@ -281,7 +281,7 @@ export class SchemaType implements SchemaDef { type: "User", optional: true, originModel: "Asset", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "assets", fields: ["ownerId"], references: ["id"], onDelete: "Cascade" } }, ownerId: { @@ -332,7 +332,7 @@ export class SchemaType implements SchemaDef { name: "user", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("direct") }, { name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "name", value: ExpressionUtils.literal("direct") }, { name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "ratedVideos", name: "direct", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -387,7 +387,7 @@ export class SchemaType implements SchemaDef { type: "User", optional: true, originModel: "Asset", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "assets", fields: ["ownerId"], references: ["id"], onDelete: "Cascade" } }, ownerId: { @@ -420,7 +420,7 @@ export class SchemaType implements SchemaDef { name: "gallery", type: "Gallery", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("galleryId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("galleryId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "images", fields: ["galleryId"], references: ["id"], onDelete: "Cascade" } }, galleryId: { diff --git a/tests/e2e/orm/schemas/name-mapping/schema.ts b/tests/e2e/orm/schemas/name-mapping/schema.ts index b92cd14b4..e39aeb951 100644 --- a/tests/e2e/orm/schemas/name-mapping/schema.ts +++ b/tests/e2e/orm/schemas/name-mapping/schema.ts @@ -67,7 +67,7 @@ export class SchemaType implements SchemaDef { author: { name: "author", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "posts", fields: ["authorId"], references: ["id"] } }, authorId: { diff --git a/tests/e2e/orm/schemas/omit/schema.ts b/tests/e2e/orm/schemas/omit/schema.ts index 60d51ad5c..29391a36e 100644 --- a/tests/e2e/orm/schemas/omit/schema.ts +++ b/tests/e2e/orm/schemas/omit/schema.ts @@ -58,7 +58,7 @@ export class SchemaType implements SchemaDef { author: { name: "author", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "posts", fields: ["authorId"], references: ["id"], onDelete: "Cascade" } }, authorId: { diff --git a/tests/e2e/orm/schemas/petstore/schema.ts b/tests/e2e/orm/schemas/petstore/schema.ts index 795946d59..feebb2972 100644 --- a/tests/e2e/orm/schemas/petstore/schema.ts +++ b/tests/e2e/orm/schemas/petstore/schema.ts @@ -78,7 +78,7 @@ export class SchemaType implements SchemaDef { name: "order", type: "Order", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("orderId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("orderId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "pets", fields: ["orderId"], references: ["id"] } }, orderId: { @@ -131,7 +131,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "orders", fields: ["userId"], references: ["id"] } }, userId: { diff --git a/tests/e2e/orm/schemas/todo/schema.ts b/tests/e2e/orm/schemas/todo/schema.ts index fff7ad070..2df7b731b 100644 --- a/tests/e2e/orm/schemas/todo/schema.ts +++ b/tests/e2e/orm/schemas/todo/schema.ts @@ -48,7 +48,7 @@ export class SchemaType implements SchemaDef { name: "owner", type: "User", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "ownedSpaces", fields: ["ownerId"], references: ["id"], onDelete: "Cascade" } }, ownerId: { @@ -109,7 +109,7 @@ export class SchemaType implements SchemaDef { space: { name: "space", type: "Space", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "members", fields: ["spaceId"], references: ["id"], onDelete: "Cascade" } }, spaceId: { @@ -122,7 +122,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "spaces", fields: ["userId"], references: ["id"], onDelete: "Cascade" } }, userId: { @@ -138,7 +138,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId"), ExpressionUtils.field("spaceId")]) }] }, + { name: "@@unique", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId"), ExpressionUtils.field("spaceId")]) }] }, { name: "@@deny", args: [{ name: "operation", value: ExpressionUtils.literal("all") }, { name: "condition", value: ExpressionUtils.binary(ExpressionUtils.call("auth"), "==", ExpressionUtils._null()) }] }, { name: "@@allow", args: [{ name: "operation", value: ExpressionUtils.literal("create,update,delete") }, { name: "condition", value: ExpressionUtils.binary(ExpressionUtils.binary(ExpressionUtils.member(ExpressionUtils.field("space"), ["ownerId"]), "==", ExpressionUtils.member(ExpressionUtils.call("auth"), ["id"])), "||", ExpressionUtils.binary(ExpressionUtils.member(ExpressionUtils.field("space"), ["members"]), "?", ExpressionUtils.binary(ExpressionUtils.binary(ExpressionUtils.field("userId"), "==", ExpressionUtils.member(ExpressionUtils.call("auth"), ["id"])), "&&", ExpressionUtils.binary(ExpressionUtils.field("role"), "==", ExpressionUtils.literal("ADMIN"))))) }] }, { name: "@@allow", args: [{ name: "operation", value: ExpressionUtils.literal("read") }, { name: "condition", value: ExpressionUtils.binary(ExpressionUtils.member(ExpressionUtils.field("space"), ["members"]), "?", ExpressionUtils.binary(ExpressionUtils.field("userId"), "==", ExpressionUtils.member(ExpressionUtils.call("auth"), ["id"]))) }] } @@ -259,7 +259,7 @@ export class SchemaType implements SchemaDef { space: { name: "space", type: "Space", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("spaceId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "lists", fields: ["spaceId"], references: ["id"], onDelete: "Cascade" } }, spaceId: { @@ -272,7 +272,7 @@ export class SchemaType implements SchemaDef { owner: { name: "owner", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "lists", fields: ["ownerId"], references: ["id"], onDelete: "Cascade" } }, ownerId: { @@ -344,7 +344,7 @@ export class SchemaType implements SchemaDef { owner: { name: "owner", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("ownerId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "todos", fields: ["ownerId"], references: ["id"], onDelete: "Cascade" } }, ownerId: { @@ -357,7 +357,7 @@ export class SchemaType implements SchemaDef { list: { name: "list", type: "List", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("listId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("listId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "todos", fields: ["listId"], references: ["id"], onDelete: "Cascade" } }, listId: { diff --git a/tests/e2e/orm/schemas/typing/schema.ts b/tests/e2e/orm/schemas/typing/schema.ts index 4c82da67d..58325be74 100644 --- a/tests/e2e/orm/schemas/typing/schema.ts +++ b/tests/e2e/orm/schemas/typing/schema.ts @@ -113,7 +113,7 @@ export class SchemaType implements SchemaDef { author: { name: "author", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "posts", fields: ["authorId"], references: ["id"] } }, authorId: { @@ -159,7 +159,7 @@ export class SchemaType implements SchemaDef { name: "region", type: "Region", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("regionCountry"), ExpressionUtils.field("regionCity")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("country"), ExpressionUtils.field("city")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("regionCountry"), ExpressionUtils.field("regionCity")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("country"), ExpressionUtils.field("city")]) }] }], relation: { opposite: "profiles", fields: ["regionCountry", "regionCity"], references: ["country", "city"] } }, regionCountry: { @@ -181,7 +181,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "profile", fields: ["userId"], references: ["id"] } }, userId: { @@ -252,7 +252,7 @@ export class SchemaType implements SchemaDef { } }, attributes: [ - { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("country"), ExpressionUtils.field("city")]) }] } + { name: "@@id", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("country"), ExpressionUtils.field("city")]) }] } ], idFields: ["country", "city"], uniqueFields: { @@ -280,7 +280,7 @@ export class SchemaType implements SchemaDef { post: { name: "post", type: "Post", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("postId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("postId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "meta", fields: ["postId"], references: ["id"] } }, postId: { diff --git a/tests/regression/test/issue-422/schema.ts b/tests/regression/test/issue-422/schema.ts index 212279b05..32450381f 100644 --- a/tests/regression/test/issue-422/schema.ts +++ b/tests/regression/test/issue-422/schema.ts @@ -34,7 +34,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "sessions", fields: ["userId"], references: ["id"], onDelete: "Cascade" } } }, @@ -101,7 +101,7 @@ export class SchemaType implements SchemaDef { user: { name: "user", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("userId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "profile", fields: ["userId"], references: ["id"], onDelete: "Cascade" } } }, diff --git a/tests/regression/test/issue-503/schema.ts b/tests/regression/test/issue-503/schema.ts index 0c8573144..702a67e37 100644 --- a/tests/regression/test/issue-503/schema.ts +++ b/tests/regression/test/issue-503/schema.ts @@ -46,7 +46,7 @@ export class SchemaType implements SchemaDef { chat: { name: "chat", type: "InternalChat", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("chatId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("chatId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "messages", fields: ["chatId"], references: ["id"] } }, chatId: { @@ -60,7 +60,7 @@ export class SchemaType implements SchemaDef { name: "media", type: "Media", optional: true, - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("mediaId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("Int", [ExpressionUtils.field("mediaId")]) }, { name: "references", value: ExpressionUtils.array("Int", [ExpressionUtils.field("id")]) }] }], relation: { opposite: "messages", fields: ["mediaId"], references: ["id"] } }, mediaId: { diff --git a/tests/regression/test/issue-595.test.ts b/tests/regression/test/issue-595.test.ts new file mode 100644 index 000000000..8211aad69 --- /dev/null +++ b/tests/regression/test/issue-595.test.ts @@ -0,0 +1,122 @@ +import { createPolicyTestClient } from '@zenstackhq/testtools'; +import { describe, expect, it } from 'vitest'; + +describe('Regression for issue 595', () => { + it('verifies the issue', async () => { + const db = await createPolicyTestClient( + ` +enum Role { + admin @map('administrator') + editor + viewer + + @@map('roles') +} + +type AuthUser { + id String + roles Role[] + + @@auth +} + +model User { + id String @id @default(cuid()) + name String + email String? @unique + posts Post[] + profile Profile? + + @@allow('read', auth() != null) + @@allow('update', auth().id == this.id) + @@allow('all', has(auth().roles, admin)) +} + +model Profile { + id String @id @default(cuid()) + userId String @unique + bio String? + + user User @relation(fields: [userId], references: [id], onDelete: Cascade) + + @@allow('read', auth() != null) + @@allow('create', userId == auth().id) + @@allow('update', userId == auth().id) + @@allow('all', has(auth().roles, admin)) +} + +model Post { + id String @id @default(cuid()) + title String + authorId String + author User @relation(fields: [authorId], references: [id], onDelete: Cascade) + + @@allow('read', auth() != null) + @@allow('create', authorId == auth().id) + @@allow('update', hasSome(auth().roles, [admin, editor])) +} + `, + { usePrismaPush: true, provider: 'postgresql' }, + ); + + const adminDb = db.$setAuth({ roles: ['admin'] }); + const userId = 'user-123'; + const userDb = db.$setAuth({ id: userId, roles: ['editor'] }); + const otherRoleDb = db.$setAuth({ roles: ['viewer'] }); + + await expect( + db.user.create({ + data: { id: 'user-123', name: 'User 123' }, + }), + ).toBeRejectedByPolicy(); + + await expect( + adminDb.user.create({ + data: { id: 'user-123', name: 'User 123' }, + }), + ).toResolveTruthy(); + + await userDb.user.update({ + data: { + profile: { + upsert: { + create: { bio: 'Hello' }, + update: { bio: 'Hello' }, + where: { userId }, + }, + }, + }, + where: { id: userId }, + }); + + const postId = 'post-123'; + + await expect( + userDb.post.create({ + data: { + id: postId, + title: 'First Post', + authorId: userId, + }, + }), + ).toResolveTruthy(); + + await expect( + otherRoleDb.post.update({ + where: { id: postId }, + data: { title: 'Updated Title' }, + }), + ).toBeRejectedNotFound(); + + await expect( + userDb.post.update({ + where: { id: postId }, + data: { title: 'Updated Title' }, + }), + ).toResolveTruthy(); + + await expect(userDb.user.delete({ where: { id: userId } })).toBeRejectedNotFound(); + + await expect(adminDb.user.delete({ where: { id: userId } })).toResolveTruthy(); + }); +}); diff --git a/tests/regression/test/issue-598.test.ts b/tests/regression/test/issue-598.test.ts new file mode 100644 index 000000000..c7e680dc2 --- /dev/null +++ b/tests/regression/test/issue-598.test.ts @@ -0,0 +1,79 @@ +import { createPolicyTestClient } from '@zenstackhq/testtools'; +import { describe, expect, it } from 'vitest'; + +describe('Regression for issue 598', () => { + it('access policy can reference mixin fields from imported files', async () => { + const db = await createPolicyTestClient( + ` +import './mixins' + +datasource db { + provider = 'postgresql' + url = '$DB_URL' +} + +model User { + id Int @id @default(autoincrement()) + email String @unique + documents Document[] + + @@allow('all', true) +} + +model Document with AuditMixin { + id String @id @default(cuid()) + title String + ownerId Int + owner User @relation(fields: [ownerId], references: [id]) + + @@allow('create,read', auth() != null) + @@allow('update', auth().id == createdById) // createdById from mixin +} + `, + { + extraZModelFiles: { + mixins: ` +type AuditMixin { + createdById Int + createdAt DateTime @default(now()) +} + `, + }, + }, + ); + + // Test that the policy rule using mixin field works correctly + const userDb = db.$setAuth({ id: 1 }); + const otherUserDb = db.$setAuth({ id: 2 }); + + // Create users first + await db.user.create({ data: { id: 1, email: 'user1@test.com' } }); + await db.user.create({ data: { id: 2, email: 'user2@test.com' } }); + + // Create document as user 1 + await userDb.document.create({ + data: { + id: 'doc-1', + title: 'Test Document', + ownerId: 1, + createdById: 1, // From mixin + }, + }); + + // User 1 should be able to update (matches createdById) + await expect( + userDb.document.update({ + where: { id: 'doc-1' }, + data: { title: 'Updated' }, + }), + ).toResolveTruthy(); + + // User 2 should NOT be able to update (different createdById) + await expect( + otherUserDb.document.update({ + where: { id: 'doc-1' }, + data: { title: 'Hacked' }, + }), + ).toBeRejectedNotFound(); + }); +}); diff --git a/tests/runtimes/bun/schemas/schema.ts b/tests/runtimes/bun/schemas/schema.ts index 199c89967..5dfb25346 100644 --- a/tests/runtimes/bun/schemas/schema.ts +++ b/tests/runtimes/bun/schemas/schema.ts @@ -72,7 +72,7 @@ export class SchemaType implements SchemaDef { author: { name: "author", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "posts", fields: ["authorId"], references: ["id"], onUpdate: "Cascade", onDelete: "Cascade" } }, authorId: { diff --git a/tests/runtimes/edge-runtime/schemas/schema.ts b/tests/runtimes/edge-runtime/schemas/schema.ts index 13425189b..367e5f123 100644 --- a/tests/runtimes/edge-runtime/schemas/schema.ts +++ b/tests/runtimes/edge-runtime/schemas/schema.ts @@ -72,7 +72,7 @@ export class SchemaType implements SchemaDef { author: { name: "author", type: "User", - attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array([ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array([ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], + attributes: [{ name: "@relation", args: [{ name: "fields", value: ExpressionUtils.array("String", [ExpressionUtils.field("authorId")]) }, { name: "references", value: ExpressionUtils.array("String", [ExpressionUtils.field("id")]) }, { name: "onUpdate", value: ExpressionUtils.literal("Cascade") }, { name: "onDelete", value: ExpressionUtils.literal("Cascade") }] }], relation: { opposite: "posts", fields: ["authorId"], references: ["id"], onUpdate: "Cascade", onDelete: "Cascade" } }, authorId: { From 6cba59cfe888856e8967a148e5c545c00553ab89 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 30 Jan 2026 06:54:58 +0000 Subject: [PATCH 6/8] docs: clean up merge conflicts by rebasing on correct base From 664317588be08664eca8b540189e33e82602e72c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 30 Jan 2026 07:03:34 +0000 Subject: [PATCH 7/8] Push new branch to create fresh PR Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com> --- .git-push-trigger | 1 + 1 file changed, 1 insertion(+) create mode 100644 .git-push-trigger diff --git a/.git-push-trigger b/.git-push-trigger new file mode 100644 index 000000000..6c2dbaf3d --- /dev/null +++ b/.git-push-trigger @@ -0,0 +1 @@ +# Trigger push From 2b85025d2b6dc92348c40c88c6d44d278732e46c Mon Sep 17 00:00:00 2001 From: ymc9 <104139426+ymc9@users.noreply.github.com> Date: Fri, 30 Jan 2026 15:27:03 +0800 Subject: [PATCH 8/8] clean up agent mess --- .git-push-trigger | 1 - packages/cli/package.json | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 .git-push-trigger diff --git a/.git-push-trigger b/.git-push-trigger deleted file mode 100644 index 6c2dbaf3d..000000000 --- a/.git-push-trigger +++ /dev/null @@ -1 +0,0 @@ -# Trigger push diff --git a/packages/cli/package.json b/packages/cli/package.json index 27bb74b01..9d6ea65a5 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -58,8 +58,7 @@ "pg": "catalog:", "prisma": "catalog:", "semver": "^7.7.2", - "ts-pattern": "catalog:", - "mysql2": "catalog:" + "ts-pattern": "catalog:" }, "devDependencies": { "@types/better-sqlite3": "catalog:",