Spaces:
Build error
Build error
twenty / packages /twenty-server /src /engine /metadata-modules /object-metadata /object-metadata.entity.ts
| import { | |
| Column, | |
| CreateDateColumn, | |
| Entity, | |
| OneToMany, | |
| PrimaryGeneratedColumn, | |
| type Relation, | |
| Unique, | |
| UpdateDateColumn, | |
| } from 'typeorm'; | |
| import { ADD_METADATA_OVERRIDES_COLUMN_UPGRADE_COMMAND_NAME } from 'src/database/commands/upgrade-version-command/2-19/add-metadata-overrides-column-upgrade-command-name.constant'; | |
| import { DROP_METADATA_STANDARD_OVERRIDES_COLUMN_UPGRADE_COMMAND_NAME } from 'src/database/commands/upgrade-version-command/2-20/drop-metadata-standard-overrides-column-upgrade-command-name.constant'; | |
| import { type WorkspaceEntityDuplicateCriteria } from 'src/engine/api/graphql/workspace-query-builder/types/workspace-entity-duplicate-criteria.type'; | |
| import { WasIntroducedInUpgrade } from 'src/engine/core-modules/upgrade/decorators/was-introduced-in-upgrade.decorator'; | |
| import { WasRemovedInUpgrade } from 'src/engine/core-modules/upgrade/decorators/was-removed-in-upgrade.decorator'; | |
| import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; | |
| import { IndexMetadataEntity } from 'src/engine/metadata-modules/index-metadata/index-metadata.entity'; | |
| import { RENAME_IS_UI_READ_ONLY_TO_IS_UI_EDITABLE_UPGRADE_COMMAND_NAME } from 'src/engine/metadata-modules/object-metadata/constants/rename-is-ui-read-only-to-is-ui-editable-upgrade-command-name.constant'; | |
| import { type ObjectMetadataOverrides } from 'src/engine/metadata-modules/object-metadata/types/object-metadata-overrides.type'; | |
| import { FieldPermissionEntity } from 'src/engine/metadata-modules/object-permission/field-permission/field-permission.entity'; | |
| import { ObjectPermissionEntity } from 'src/engine/metadata-modules/object-permission/object-permission.entity'; | |
| import { SearchFieldMetadataEntity } from 'src/engine/metadata-modules/search-field-metadata/search-field-metadata.entity'; | |
| import { ViewEntity } from 'src/engine/metadata-modules/view/entities/view.entity'; | |
| import { SyncableEntity } from 'src/engine/workspace-manager/types/syncable-entity.interface'; | |
| import { type JsonbProperty } from 'src/engine/workspace-manager/workspace-migration/universal-flat-entity/types/jsonb-property.type'; | |
| ('objectMetadata') | |
| ('IDX_OBJECT_METADATA_NAME_SINGULAR_WORKSPACE_ID_UNIQUE', [ | |
| 'nameSingular', | |
| 'workspaceId', | |
| ]) | |
| ('IDX_OBJECT_METADATA_NAME_PLURAL_WORKSPACE_ID_UNIQUE', [ | |
| 'namePlural', | |
| 'workspaceId', | |
| ]) | |
| export class ObjectMetadataEntity | |
| extends SyncableEntity | |
| implements Required<ObjectMetadataEntity> | |
| { | |
| ('uuid') | |
| id: string; | |
| // @deprecated - FK dropped, column kept for data preservation only | |
| ({ nullable: true, type: 'uuid' }) | |
| dataSourceId: string; | |
| ({ nullable: false }) | |
| nameSingular: string; | |
| ({ nullable: false }) | |
| namePlural: string; | |
| ({ nullable: false }) | |
| labelSingular: string; | |
| ({ nullable: false }) | |
| labelPlural: string; | |
| ({ nullable: true, type: 'text' }) | |
| description: string | null; | |
| ({ nullable: true, type: 'varchar' }) | |
| icon: string | null; | |
| ({ nullable: true, type: 'text' }) | |
| color: string | null; | |
| ({ | |
| upgradeCommandName: ADD_METADATA_OVERRIDES_COLUMN_UPGRADE_COMMAND_NAME, | |
| }) | |
| ({ type: 'jsonb', nullable: true }) | |
| overrides: JsonbProperty<ObjectMetadataOverrides> | null; | |
| /** | |
| * @deprecated Please use `overrides` instead. | |
| */ | |
| ({ | |
| upgradeCommandName: | |
| DROP_METADATA_STANDARD_OVERRIDES_COLUMN_UPGRADE_COMMAND_NAME, | |
| }) | |
| ({ type: 'jsonb', nullable: true }) | |
| standardOverrides: WasRemovedInUpgrade<JsonbProperty<ObjectMetadataOverrides> | null>; | |
| /** | |
| * @deprecated | |
| */ | |
| ({ nullable: false }) | |
| targetTableName: string; | |
| ({ | |
| upgradeCommandName: | |
| '2.12.0_DropIsCustomFromObjectAndFieldMetadataFastInstanceCommand_1780579070012', | |
| }) | |
| ({ type: 'boolean', default: false }) | |
| isCustom: WasRemovedInUpgrade<boolean>; | |
| ({ default: false }) | |
| isRemote: boolean; | |
| ({ default: false }) | |
| isActive: boolean; | |
| ({ default: false }) | |
| isSystem: boolean; | |
| ({ | |
| upgradeCommandName: | |
| RENAME_IS_UI_READ_ONLY_TO_IS_UI_EDITABLE_UPGRADE_COMMAND_NAME, | |
| }) | |
| ({ default: true }) | |
| isUIEditable: boolean; | |
| // Superseded by isUIEditable. Intentionally NOT @WasRemovedInUpgrade: dropping | |
| // it in 2.13 would break the previous release's pods mid rolling-deploy, since | |
| // they still SELECT it. The WasRemovedInUpgrade<T> type is kept so callers may | |
| // omit it; the decorator + physical drop are deferred (core-team-issues#2542). | |
| ({ type: 'boolean', default: false }) | |
| isUIReadOnly: WasRemovedInUpgrade<boolean>; | |
| ({ | |
| upgradeCommandName: | |
| RENAME_IS_UI_READ_ONLY_TO_IS_UI_EDITABLE_UPGRADE_COMMAND_NAME, | |
| }) | |
| ({ default: true }) | |
| isUICreatable: boolean; | |
| ({ default: true }) | |
| isAuditLogged: boolean; | |
| ({ default: false }) | |
| isSearchable: boolean; | |
| ({ type: 'jsonb', nullable: true }) | |
| duplicateCriteria: JsonbProperty<WorkspaceEntityDuplicateCriteria[]> | null; | |
| ({ nullable: true, type: 'varchar' }) | |
| shortcut: string | null; | |
| // TODO: This should not be nullable - legacy field introduced when label identifier was nullable | |
| // TODO: This should be a joinColumn and we should have a FK on this too https://github.com/twentyhq/core-team-issues/issues/2172 | |
| ({ nullable: true, type: 'uuid' }) | |
| labelIdentifierFieldMetadataId: string | null; | |
| ({ nullable: true, type: 'uuid' }) | |
| imageIdentifierFieldMetadataId: string | null; | |
| ({ default: false }) | |
| isLabelSyncedWithName: boolean; | |
| (() => FieldMetadataEntity, (field) => field.object, { | |
| cascade: true, | |
| }) | |
| fields: Relation<FieldMetadataEntity[]>; | |
| (() => IndexMetadataEntity, (index) => index.objectMetadata, { | |
| cascade: true, | |
| }) | |
| indexMetadatas: Relation<IndexMetadataEntity[]>; | |
| ( | |
| () => SearchFieldMetadataEntity, | |
| (searchFieldMetadata) => searchFieldMetadata.objectMetadata, | |
| { | |
| cascade: true, | |
| }, | |
| ) | |
| searchFieldMetadatas: Relation<SearchFieldMetadataEntity[]>; | |
| ({ type: 'timestamptz' }) | |
| createdAt: Date; | |
| ({ type: 'timestamptz' }) | |
| updatedAt: Date; | |
| ( | |
| () => ObjectPermissionEntity, | |
| (objectPermission) => objectPermission.objectMetadata, | |
| { | |
| cascade: true, | |
| }, | |
| ) | |
| objectPermissions: Relation<ObjectPermissionEntity[]>; | |
| ( | |
| () => FieldPermissionEntity, | |
| (fieldPermission) => fieldPermission.objectMetadata, | |
| { | |
| cascade: true, | |
| }, | |
| ) | |
| fieldPermissions: Relation<FieldPermissionEntity[]>; | |
| (() => ViewEntity, (view) => view.objectMetadata, { | |
| cascade: true, | |
| }) | |
| views: Relation<ViewEntity[]>; | |
| } | |