From ebd1ef5223626ecefd5f59b2c41dd219f6646384 Mon Sep 17 00:00:00 2001 From: Weiko Date: Wed, 15 Nov 2023 19:21:51 +0100 Subject: [PATCH] Add basic fields metadata (#2523) * Add basic fields metadata * add fieldmetadata dependency * re-arrange modules * fix * fix seed * set default fields nullable * set default fields nullable * fix tenantMigration order * fix tenantMigration order --- .../commands/data-seed-tenant.command.ts | 5 -- .../field-metadata/activity-target.ts | 71 +++++++++++++++++++ .../metadata/field-metadata/activity.ts | 55 ++++++++++++++ .../metadata/field-metadata/api-key.ts | 57 ++++++++++++++- .../metadata/field-metadata/attachment.ts | 55 ++++++++++++++ .../metadata/field-metadata/comment.ts | 55 ++++++++++++++ .../metadata/field-metadata/company.ts | 55 ++++++++++++++ .../metadata/field-metadata/favorite.ts | 56 ++++++++++++++- .../metadata/field-metadata/opportunity.ts | 55 ++++++++++++++ .../metadata/field-metadata/person.ts | 55 ++++++++++++++ .../metadata/field-metadata/pipeline-step.ts | 55 ++++++++++++++ .../metadata/field-metadata/view-field.ts | 56 +++++++++++++++ .../metadata/field-metadata/view-filter.ts | 57 ++++++++++++++- .../metadata/field-metadata/view-sort.ts | 56 +++++++++++++++ .../metadata/field-metadata/view.ts | 56 +++++++++++++++ .../metadata/field-metadata/webhook.ts | 55 ++++++++++++++ .../field-metadata/workspace-member.ts | 55 ++++++++++++++ .../object-metadata.service.ts | 50 +++++++++++++ .../relation-metadata.module.ts | 4 +- .../tenant-migration.service.ts | 2 +- .../standard-objects/activity-target.ts | 8 ++- .../standard-objects/activity.ts | 24 ++++--- .../standard-objects/api-key.ts | 8 ++- .../standard-objects/attachment.ts | 16 +++-- .../standard-objects/comment.ts | 8 ++- .../standard-objects/company.ts | 30 ++++---- .../standard-objects/favorite.ts | 10 +-- .../standard-objects/opportunity.ts | 16 +++-- .../tenant-manager/standard-objects/person.ts | 32 +++++---- .../standard-objects/pipeline-step.ts | 10 +-- .../standard-object-metadata.ts | 43 +++++++++++ .../standard-objects/view-field.ts | 14 ++-- .../standard-objects/view-filter.ts | 14 ++-- .../standard-objects/view-sort.ts | 10 +-- .../tenant-manager/standard-objects/view.ts | 14 ++-- .../standard-objects/webhook.ts | 6 +- .../standard-objects/workspace-member.ts | 26 +++---- .../tenant-manager/tenant-manager.service.ts | 29 +++++--- .../interfaces/record.interface.ts | 3 - .../interfaces/record.interface.ts | 3 - 40 files changed, 1154 insertions(+), 135 deletions(-) diff --git a/server/src/database/commands/data-seed-tenant.command.ts b/server/src/database/commands/data-seed-tenant.command.ts index f0a449478..c89e440df 100644 --- a/server/src/database/commands/data-seed-tenant.command.ts +++ b/server/src/database/commands/data-seed-tenant.command.ts @@ -1,7 +1,4 @@ -import { InjectDataSource } from '@nestjs/typeorm'; - import { Command, CommandRunner } from 'nest-commander'; -import { DataSource } from 'typeorm'; import { DataSourceService } from 'src/metadata/data-source/data-source.service'; import { TenantMigrationService } from 'src/metadata/tenant-migration/tenant-migration.service'; @@ -24,8 +21,6 @@ export class DataSeedTenantCommand extends CommandRunner { workspaceId = '20202020-1c25-4d02-bf25-6aeccf7ea419'; constructor( - @InjectDataSource('metadata') - private readonly metadataDataSource: DataSource, private readonly dataSourceService: DataSourceService, private readonly typeORMService: TypeORMService, private readonly tenantMigrationService: TenantMigrationService, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/activity-target.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/activity-target.ts index d9ce0ffbd..261ecc2ab 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/activity-target.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/activity-target.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedActivityTargetFieldMetadataIds { + Id = '20202020-7db7-4dac-8093-ea0a12e9466f', + CreatedAt = '20202020-585f-48fa-a4b6-97cf7f86315e', + UpdatedAt = '20202020-4cf0-4478-8c68-62a855622a99', + Activity = '20202020-cb21-42c9-bba8-347f7cb02b84', Person = '20202020-e56c-43e6-8fce-5619d8c2293a', Company = '20202020-9408-4cc0-9fe1-51467edb530b', @@ -34,6 +39,56 @@ export const seedActivityTargetFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedActivityTargetFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.ActivityTarget, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedActivityTargetFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.ActivityTarget, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedActivityTargetFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.ActivityTarget, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, // Relationships { id: SeedActivityTargetFieldMetadataIds.Activity, @@ -51,6 +106,22 @@ export const seedActivityTargetFieldMetadata = async ( icon: 'IconNotes', isNullable: false, }, + { + id: SeedActivityTargetFieldMetadataIds.Activity, + objectMetadataId: SeedObjectMetadataIds.ActivityTarget, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: 'RELATION', + name: 'activity', + label: 'Activity', + targetColumnMap: { + value: 'activityId', + }, + description: 'ActivityTarget activity', + icon: 'IconNotes', + isNullable: false, + }, { id: SeedActivityTargetFieldMetadataIds.Person, objectMetadataId: SeedObjectMetadataIds.ActivityTarget, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/activity.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/activity.ts index 58db87fb6..3c8568aa1 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/activity.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/activity.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedActivityFieldMetadataIds { + Id = '20202020-f695-419c-b928-c488323d6df3', + CreatedAt = '20202020-65a2-4d9c-b640-bac54007a14d', + UpdatedAt = '20202020-88df-4202-bf82-6a06c6963280', + Title = '20202020-2584-4797-95a8-5cc90d48c040', Body = '20202020-aff0-4961-be8a-0e5c2598b9a6', Type = '20202020-a243-4b94-a4b4-25705af86be2', @@ -43,6 +48,56 @@ export const seedActivityFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedActivityFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.Activity, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedActivityFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.Activity, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedActivityFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.Activity, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, // Primary identifier { id: SeedActivityFieldMetadataIds.Title, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/api-key.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/api-key.ts index ccef88fff..90cea6330 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/api-key.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/api-key.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedApiKeyFieldMetadataIds { + Id = '20202020-7222-45ee-b5c4-c30eba68566f', + CreatedAt = '20202020-ecd6-479f-8368-5032fdee43b3', + UpdatedAt = '20202020-435c-4133-93c0-df5709d1694d', + Name = '20202020-1dfa-4ef3-8d19-51e82c28677a', ExpiresAt = '20202020-a092-41e2-940e-e17cd0403aa7', RevokedAt = '20202020-da41-436e-8498-b1a99c23b275', @@ -34,6 +39,56 @@ export const seedApiKeyFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedApiKeyFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.ApiKey, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: false, + // isSystem: true, + }, + { + id: SeedApiKeyFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.ApiKey, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedApiKeyFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.ApiKey, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, // Scalar fields { id: SeedApiKeyFieldMetadataIds.Name, @@ -49,7 +104,7 @@ export const seedApiKeyFieldMetadata = async ( }, description: 'ApiKey name', icon: 'IconLink', - isNullable: false, + isNullable: true, }, { id: SeedApiKeyFieldMetadataIds.ExpiresAt, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/attachment.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/attachment.ts index 31f71ff33..db9c17767 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/attachment.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/attachment.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedAttachmentFieldMetadataIds { + Id = '20202020-0544-432b-8f96-84c4d6a94d50', + CreatedAt = '20202020-839b-4cbb-a1be-1a0cb85524a4', + UpdatedAt = '20202020-7f29-490d-a3e1-9c3015524057', + Name = '20202020-5683-4c80-8590-255321ece692', FullPath = '20202020-bb72-4644-b255-afb4ebb83b66', Type = '20202020-8dfa-492f-92d1-56d5fb18cbb7', @@ -39,6 +44,56 @@ export const seedAttachmentFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedAttachmentFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.Attachment, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedAttachmentFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.Attachment, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedAttachmentFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.Attachment, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, // Primary Identifier { id: SeedAttachmentFieldMetadataIds.Name, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/comment.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/comment.ts index 381245a51..ab8afcc85 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/comment.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/comment.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedCommentFieldMetadataIds { + Id = '20202020-2899-42fa-ba07-1f4dad7ae28f', + CreatedAt = '20202020-88fd-4db2-9fcb-b5f4f5955cf2', + UpdatedAt = '20202020-63dd-4426-abad-9973fece49ed', + Body = '20202020-354b-4f10-9425-fa3eb8fddc51', Author = '20202020-2c70-40c2-bba6-893780b25d41', @@ -35,6 +40,56 @@ export const seedCommentFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedCommentFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.Comment, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedCommentFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.Comment, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedCommentFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.Comment, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, // Scalar fields { id: SeedCommentFieldMetadataIds.Body, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/company.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/company.ts index 30f3e2453..f64b267e3 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/company.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/company.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedCompanyFieldMetadataIds { + Id = '20202020-8169-44a3-9e0b-6bad1ac50f87', + CreatedAt = '20202020-4dc2-47c9-bb15-6e6f19ba9e46', + UpdatedAt = '20202020-64b8-41bf-a01c-be6a806e8b70', + Name = '20202020-6d30-4111-9f40-b4301906fd3c', DomainName = '20202020-5e4e-4007-a630-8a2617914889', @@ -47,6 +52,56 @@ export const seedCompanyFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedCompanyFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.Company, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedCompanyFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.Company, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedCompanyFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.Company, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, // Main Identifier { id: SeedCompanyFieldMetadataIds.Name, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/favorite.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/favorite.ts index b9a28b663..6a8e1ebf5 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/favorite.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/favorite.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedFavoriteFieldMetadataIds { + Id = '20202020-7d1d-46c7-8c09-8e8c73e30042', + CreatedAt = '20202020-a0f4-443c-a63d-2776a842d024', + UpdatedAt = '20202020-273a-41bc-babf-f58f0b2ba2ec', + Position = '20202020-dd6d-4f67-94aa-22cc83eb0a2e', WorkspaceMember = '20202020-1138-4e93-bbff-917a68161abf', @@ -37,8 +42,57 @@ export const seedFavoriteFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedFavoriteFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.Favorite, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedFavoriteFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.Favorite, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedFavoriteFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.Favorite, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, // Scalar fields - { id: SeedFavoriteFieldMetadataIds.Position, objectMetadataId: SeedObjectMetadataIds.Favorite, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/opportunity.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/opportunity.ts index df5293100..f3a6222ad 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/opportunity.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/opportunity.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedOpportunityFieldMetadataIds { + Id = '20202020-16ef-476c-8eac-d439b84024cb', + CreatedAt = '20202020-a39d-4ea9-994f-28d1ebd15904', + UpdatedAt = '20202020-437b-4fd7-98bd-00cb91204329', + Amount = '20202020-8c1f-4c83-9a89-7843e586564d', CloseDate = '20202020-de52-4e7b-a298-db7a7553500f', Probability = '20202020-3b9c-4e58-a3d2-c617d3b596b1', @@ -39,6 +44,56 @@ export const seedOpportunityFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedOpportunityFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.Opportunity, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedOpportunityFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.Opportunity, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedOpportunityFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.Opportunity, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, // Scalar fields { id: SeedOpportunityFieldMetadataIds.Amount, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/person.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/person.ts index 50e4ecb48..8d08e75ab 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/person.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/person.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedPersonFieldMetadataIds { + Id = '20202020-03cd-4cd0-9afc-92077b69f24f', + CreatedAt = '20202020-bec0-4cf0-bf1c-8b2ed21f027a', + UpdatedAt = '20202020-2bf4-42b8-8718-a3e852bfa6a6', + FirstName = '20202020-9b56-4888-bfe3-f6f59aa999e3', LastName = '20202020-b784-458a-869d-6c53fa85483d', @@ -48,6 +53,56 @@ export const seedPersonFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedPersonFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.Person, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedPersonFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.Person, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedPersonFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.Person, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, // Main Identifier { id: SeedPersonFieldMetadataIds.FirstName, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/pipeline-step.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/pipeline-step.ts index 956a9642a..e05f1a782 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/pipeline-step.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/pipeline-step.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedPipelineStepFieldMetadataIds { + Id = '20202020-039a-4fbd-b4c1-66dfa9e4bd3f', + CreatedAt = '20202020-816f-4861-9b36-4a2f8ae2791c', + UpdatedAt = '20202020-2d73-4829-b774-522c2f5627d7', + Name = '20202020-f294-430e-b800-3a411fc05ad3', Color = '20202020-5b93-4b28-8c45-7988ea68f91b', Position = '20202020-6296-4cab-aafb-121ef5822b13', @@ -35,6 +40,56 @@ export const seedPipelineStepFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedPipelineStepFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.PipelineStep, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedPipelineStepFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.PipelineStep, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedPipelineStepFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.PipelineStep, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, // Main Identifier { id: SeedPipelineStepFieldMetadataIds.Name, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/view-field.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/view-field.ts index 1afcc9db5..a4b455a92 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/view-field.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/view-field.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedViewFieldFieldMetadataIds { + Id = '20202020-64f2-4ecf-b4c5-45daf154756a', + CreatedAt = '20202020-e137-4e59-b417-a134c050936c', + UpdatedAt = '20202020-17ff-4585-9f3b-cd9ee9523448', + FieldMetadataId = '20202020-1a5e-4ac1-9530-c7fff8481b79', IsVisible = '20202020-3aa9-42db-a74d-0fd6b7cb7c4a', Size = '20202020-b9a1-4c2e-a5af-3a6b4fef4af6', @@ -36,6 +41,57 @@ export const seedViewFieldFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedViewFieldFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.ViewField, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedViewFieldFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.ViewField, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedViewFieldFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.ViewField, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + // Fields { id: SeedViewFieldFieldMetadataIds.FieldMetadataId, objectMetadataId: SeedObjectMetadataIds.ViewField, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/view-filter.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/view-filter.ts index fd3d54949..03e63bb96 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/view-filter.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/view-filter.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedViewFilterFieldMetadataIds { + Id = '20202020-353c-4fb0-9011-1ad8e1dd67f9', + CreatedAt = '20202020-da57-452d-9671-ab3ccac2a9da', + UpdatedAt = '20202020-96c9-4cf1-87b4-8a009c591a16', + FieldMetadataId = '20202020-78bb-4f2b-a052-260bc8efd694', View = '20202020-65e5-4082-829d-8c634c20e7b5', Operand = '20202020-1d12-465d-ab2c-8af008182730', @@ -36,7 +41,57 @@ export const seedViewFilterFieldMetadata = async ( ]) .orIgnore() .values([ - // View Filters + // Default fields + { + id: SeedViewFilterFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.ViewFilter, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedViewFilterFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.ViewFilter, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedViewFilterFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.ViewFilter, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + // Fields { id: SeedViewFilterFieldMetadataIds.FieldMetadataId, objectMetadataId: SeedObjectMetadataIds.ViewFilter, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/view-sort.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/view-sort.ts index ee902fc60..747973f53 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/view-sort.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/view-sort.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedViewSortFieldMetadataIds { + Id = '20202020-5870-4665-92a6-a39b7f53352d', + CreatedAt = '20202020-7677-4955-8ffe-06481534d12c', + UpdatedAt = '20202020-16ec-4074-a54b-c8f7f1178cf6', + FieldMetadataId = '20202020-cb2c-4c8f-a289-c9851b23d064', View = '20202020-f5d0-467f-a3d8-395ba16b8ebf', Direction = '20202020-077e-4451-b1d8-e602c956ebd2', @@ -34,6 +39,57 @@ export const seedViewSortFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedViewSortFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.ViewSort, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedViewSortFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.ViewSort, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedViewSortFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.ViewSort, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + // Fields { id: SeedViewSortFieldMetadataIds.FieldMetadataId, objectMetadataId: SeedObjectMetadataIds.ViewSort, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/view.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/view.ts index b77d75af7..06406dda0 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/view.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/view.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedViewFieldMetadataIds { + Id = '20202020-2957-4431-b3b5-879b5e687c6e', + CreatedAt = '20202020-ad91-42b0-b654-cbd981ddb5bf', + UpdatedAt = '20202020-b4e6-4044-8f6e-886c6eb2a67c', + Name = '20202020-e10e-4346-8690-b2e582ebc03c', ObjectMetadataId = '20202020-2c69-46f0-9cf2-1a4f9869d560', Type = '20202020-2c70-46f0-9cf2-1a4f9869d591', @@ -37,6 +42,57 @@ export const seedViewFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedViewFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.View, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedViewFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.View, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedViewFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.View, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + // Fields { id: SeedViewFieldMetadataIds.Name, objectMetadataId: SeedObjectMetadataIds.View, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/webhook.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/webhook.ts index 2a5d2255b..01dc8b4dd 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/webhook.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/webhook.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedWebhookFieldMetadataIds { + Id = '20202020-bc24-4387-8abe-9fbe7849f820', + CreatedAt = '20202020-c643-4324-9032-f38117fbca3b', + UpdatedAt = '20202020-489b-4f1d-80a4-2dddf6fa0e7c', + TargetUrl = '20202020-c16e-4ba8-bb24-bbd88e9cdabc', Operation = '20202020-5995-493a-92a8-31376e5c052a', } @@ -33,6 +38,56 @@ export const seedWebhookFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedWebhookFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.Webhook, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedWebhookFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.Webhook, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedWebhookFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.Webhook, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, // Scalar fields { id: SeedWebhookFieldMetadataIds.TargetUrl, diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/workspace-member.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/workspace-member.ts index 6960cab4b..55367cde8 100644 --- a/server/src/database/typeorm-seeds/metadata/field-metadata/workspace-member.ts +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/workspace-member.ts @@ -2,10 +2,15 @@ import { DataSource } from 'typeorm'; import { SeedObjectMetadataIds } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { SeedWorkspaceId } from 'src/database/seeds/metadata'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; const fieldMetadataTableName = 'fieldMetadata'; export enum SeedWorkspaceMemberFieldMetadataIds { + Id = '20202020-678e-4702-a535-2549ef07f1ca', + CreatedAt = '20202020-1cbf-4b32-8c33-fbfedcd9afa8', + UpdatedAt = '20202020-1ba3-4c24-b2cd-b0789633e8d4', + FirstName = '20202020-1fa8-4d38-9fa4-0cf696909298', LastName = '20202020-8c37-4163-ba06-1dada334ce3e', AvatarUrl = '20202020-7ba6-40d5-934b-17146183a212', @@ -45,6 +50,56 @@ export const seedWorkspaceMemberFieldMetadata = async ( ]) .orIgnore() .values([ + // Default fields + { + id: SeedWorkspaceMemberFieldMetadataIds.Id, + objectMetadataId: SeedObjectMetadataIds.WorkspaceMember, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.UUID, + name: 'id', + label: 'Id', + targetColumnMap: { + value: 'id', + }, + description: undefined, + icon: undefined, + isNullable: true, + // isSystem: true, + }, + { + id: SeedWorkspaceMemberFieldMetadataIds.CreatedAt, + objectMetadataId: SeedObjectMetadataIds.WorkspaceMember, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'createdAt', + label: 'Creation date', + targetColumnMap: { + value: 'createdAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, + { + id: SeedWorkspaceMemberFieldMetadataIds.UpdatedAt, + objectMetadataId: SeedObjectMetadataIds.WorkspaceMember, + isCustom: false, + workspaceId: SeedWorkspaceId, + isActive: true, + type: FieldMetadataType.DATE, + name: 'updatedAt', + label: 'Update date', + targetColumnMap: { + value: 'updatedAt', + }, + description: undefined, + icon: 'IconCalendar', + isNullable: true, + }, // Scalar fields { id: SeedWorkspaceMemberFieldMetadataIds.FirstName, diff --git a/server/src/metadata/object-metadata/object-metadata.service.ts b/server/src/metadata/object-metadata/object-metadata.service.ts index 550849b27..eddc7cbc9 100644 --- a/server/src/metadata/object-metadata/object-metadata.service.ts +++ b/server/src/metadata/object-metadata/object-metadata.service.ts @@ -11,6 +11,7 @@ import { TypeOrmQueryService } from '@ptc-org/nestjs-query-typeorm'; import { TenantMigrationService } from 'src/metadata/tenant-migration/tenant-migration.service'; import { TenantMigrationRunnerService } from 'src/tenant-migration-runner/tenant-migration-runner.service'; import { TenantMigrationTableAction } from 'src/metadata/tenant-migration/tenant-migration.entity'; +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; import { ObjectMetadataEntity } from './object-metadata.entity'; @@ -57,6 +58,55 @@ export class ObjectMetadataService extends TypeOrmQueryService { return await this.tenantMigrationRepository.find({ - order: { createdAt: 'ASC' }, + order: { createdAt: 'ASC', name: 'ASC' }, where: { appliedAt: IsNull(), workspaceId, diff --git a/server/src/tenant-manager/standard-objects/activity-target.ts b/server/src/tenant-manager/standard-objects/activity-target.ts index 312f10507..98b0efc02 100644 --- a/server/src/tenant-manager/standard-objects/activity-target.ts +++ b/server/src/tenant-manager/standard-objects/activity-target.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const activityTargetMetadata = { nameSingular: 'activityTargetV2', namePlural: 'activityTargetsV2', @@ -13,7 +15,7 @@ const activityTargetMetadata = { // Relations isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'activity', label: 'Activity', targetColumnMap: { @@ -26,7 +28,7 @@ const activityTargetMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'person', label: 'Person', targetColumnMap: { @@ -39,7 +41,7 @@ const activityTargetMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'company', label: 'Company', targetColumnMap: { diff --git a/server/src/tenant-manager/standard-objects/activity.ts b/server/src/tenant-manager/standard-objects/activity.ts index d4bb813dc..43f7b3b35 100644 --- a/server/src/tenant-manager/standard-objects/activity.ts +++ b/server/src/tenant-manager/standard-objects/activity.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const activityMetadata = { nameSingular: 'activityV2', namePlural: 'activitiesV2', @@ -12,7 +14,7 @@ const activityMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'title', label: 'Title', targetColumnMap: { @@ -25,7 +27,7 @@ const activityMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'body', label: 'Body', targetColumnMap: { @@ -38,7 +40,7 @@ const activityMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'type', label: 'Type', targetColumnMap: { @@ -51,7 +53,7 @@ const activityMetadata = { { isCustom: false, isActive: true, - type: 'DATE', + type: FieldMetadataType.DATE, name: 'reminderAt', label: 'Reminder Date', targetColumnMap: { @@ -64,7 +66,7 @@ const activityMetadata = { { isCustom: false, isActive: true, - type: 'DATE', + type: FieldMetadataType.DATE, name: 'dueAt', label: 'Due Date', targetColumnMap: { @@ -77,7 +79,7 @@ const activityMetadata = { { isCustom: false, isActive: true, - type: 'DATE', + type: FieldMetadataType.DATE, name: 'completedAt', label: 'Completion Date', targetColumnMap: { @@ -91,7 +93,7 @@ const activityMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'activityTargets', label: 'Targets', targetColumnMap: {}, @@ -102,7 +104,7 @@ const activityMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'attachments', label: 'Attachments', targetColumnMap: {}, @@ -113,7 +115,7 @@ const activityMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'comments', label: 'Comments', targetColumnMap: {}, @@ -124,7 +126,7 @@ const activityMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'author', label: 'Author', targetColumnMap: { @@ -138,7 +140,7 @@ const activityMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'assignee', label: 'Assignee', targetColumnMap: { diff --git a/server/src/tenant-manager/standard-objects/api-key.ts b/server/src/tenant-manager/standard-objects/api-key.ts index 8a9afbdac..8cee9d86e 100644 --- a/server/src/tenant-manager/standard-objects/api-key.ts +++ b/server/src/tenant-manager/standard-objects/api-key.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const apiKeyMetadata = { nameSingular: 'apiKeyV2', namePlural: 'apiKeysV2', @@ -12,7 +14,7 @@ const apiKeyMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'name', label: 'Name', targetColumnMap: { @@ -25,7 +27,7 @@ const apiKeyMetadata = { { isCustom: false, isActive: true, - type: 'DATE', + type: FieldMetadataType.DATE, name: 'expiresAt', label: 'Expiration date', targetColumnMap: { @@ -38,7 +40,7 @@ const apiKeyMetadata = { { isCustom: false, isActive: true, - type: 'DATE', + type: FieldMetadataType.DATE, name: 'revokedAt', label: 'Revocation date', targetColumnMap: { diff --git a/server/src/tenant-manager/standard-objects/attachment.ts b/server/src/tenant-manager/standard-objects/attachment.ts index 972205027..edbe04b0c 100644 --- a/server/src/tenant-manager/standard-objects/attachment.ts +++ b/server/src/tenant-manager/standard-objects/attachment.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const attachmentMetadata = { nameSingular: 'attachmentV2', namePlural: 'attachmentsV2', @@ -12,7 +14,7 @@ const attachmentMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'name', label: 'Name', targetColumnMap: { @@ -25,7 +27,7 @@ const attachmentMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'fullPath', label: 'Full path', targetColumnMap: { @@ -38,7 +40,7 @@ const attachmentMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'type', label: 'Type', targetColumnMap: { @@ -52,7 +54,7 @@ const attachmentMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'author', label: 'Author', targetColumnMap: { @@ -65,7 +67,7 @@ const attachmentMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'activity', label: 'Activity', targetColumnMap: { @@ -78,7 +80,7 @@ const attachmentMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'person', label: 'Person', targetColumnMap: { @@ -91,7 +93,7 @@ const attachmentMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'company', label: 'Company', targetColumnMap: { diff --git a/server/src/tenant-manager/standard-objects/comment.ts b/server/src/tenant-manager/standard-objects/comment.ts index d5f5169b7..c73436009 100644 --- a/server/src/tenant-manager/standard-objects/comment.ts +++ b/server/src/tenant-manager/standard-objects/comment.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const commentMetadata = { nameSingular: 'commentV2', namePlural: 'commentsV2', @@ -12,7 +14,7 @@ const commentMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'body', label: 'Body', targetColumnMap: { @@ -26,7 +28,7 @@ const commentMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'author', label: 'Author', targetColumnMap: { @@ -39,7 +41,7 @@ const commentMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'activity', label: 'Activity', targetColumnMap: { diff --git a/server/src/tenant-manager/standard-objects/company.ts b/server/src/tenant-manager/standard-objects/company.ts index 4821ecfe1..b630378cc 100644 --- a/server/src/tenant-manager/standard-objects/company.ts +++ b/server/src/tenant-manager/standard-objects/company.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const companyMetadata = { nameSingular: 'companyV2', namePlural: 'companiesV2', @@ -12,7 +14,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'name', label: 'Name', targetColumnMap: { @@ -25,7 +27,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'domainName', label: 'Domain Name', targetColumnMap: { @@ -39,7 +41,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'address', label: 'Address', targetColumnMap: { @@ -52,7 +54,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'NUMBER', + type: FieldMetadataType.NUMBER, name: 'employees', label: 'Employees', targetColumnMap: { @@ -65,7 +67,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'linkedinUrl', label: 'Linkedin', targetColumnMap: { @@ -78,7 +80,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'xUrl', label: 'X', targetColumnMap: { @@ -91,7 +93,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'NUMBER', + type: FieldMetadataType.NUMBER, name: 'annualRecurringRevenue', label: 'ARR', targetColumnMap: { @@ -105,7 +107,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'BOOLEAN', + type: FieldMetadataType.BOOLEAN, name: 'idealCustomerProfile', label: 'ICP', targetColumnMap: { @@ -120,7 +122,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'people', label: 'People', targetColumnMap: {}, @@ -131,7 +133,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'accountOwner', label: 'Account Owner', targetColumnMap: { @@ -145,7 +147,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'activityTargets', label: 'Activities', targetColumnMap: {}, @@ -156,7 +158,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'opportunities', label: 'Opportunities', targetColumnMap: {}, @@ -167,7 +169,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'favorites', label: 'Favorites', targetColumnMap: {}, @@ -178,7 +180,7 @@ const companyMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'attachments', label: 'Attachments', targetColumnMap: {}, diff --git a/server/src/tenant-manager/standard-objects/favorite.ts b/server/src/tenant-manager/standard-objects/favorite.ts index 39d3293f7..9e819cb1e 100644 --- a/server/src/tenant-manager/standard-objects/favorite.ts +++ b/server/src/tenant-manager/standard-objects/favorite.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const favoriteMetadata = { nameSingular: 'favoriteV2', namePlural: 'favoritesV2', @@ -12,7 +14,7 @@ const favoriteMetadata = { { isCustom: false, isActive: true, - type: 'NUMBER', + type: FieldMetadataType.NUMBER, name: 'position', label: 'Position', targetColumnMap: { @@ -26,7 +28,7 @@ const favoriteMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'workspaceMember', label: 'Workspace Member', targetColumnMap: { @@ -39,7 +41,7 @@ const favoriteMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'person', label: 'Person', targetColumnMap: { @@ -52,7 +54,7 @@ const favoriteMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'company', label: 'Company', targetColumnMap: { diff --git a/server/src/tenant-manager/standard-objects/opportunity.ts b/server/src/tenant-manager/standard-objects/opportunity.ts index 698ba9513..d2a73acbd 100644 --- a/server/src/tenant-manager/standard-objects/opportunity.ts +++ b/server/src/tenant-manager/standard-objects/opportunity.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const opportunityMetadata = { nameSingular: 'opportunityV2', namePlural: 'opportunitiesV2', @@ -12,7 +14,7 @@ const opportunityMetadata = { { isCustom: false, isActive: true, - type: 'NUMBER', + type: FieldMetadataType.NUMBER, name: 'amount', label: 'Amount', targetColumnMap: { @@ -25,7 +27,7 @@ const opportunityMetadata = { { isCustom: false, isActive: true, - type: 'DATE', + type: FieldMetadataType.DATE, name: 'closeDate', label: 'Close date', targetColumnMap: { @@ -38,7 +40,7 @@ const opportunityMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'probability', label: 'Probability', targetColumnMap: { @@ -52,7 +54,7 @@ const opportunityMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'pipelineStep', label: 'Pipeline Step', targetColumnMap: { @@ -65,7 +67,7 @@ const opportunityMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'pointOfContact', label: 'Point of Contact', targetColumnMap: { @@ -78,7 +80,7 @@ const opportunityMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'person', label: 'Person', targetColumnMap: { @@ -91,7 +93,7 @@ const opportunityMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'company', label: 'Company', targetColumnMap: { diff --git a/server/src/tenant-manager/standard-objects/person.ts b/server/src/tenant-manager/standard-objects/person.ts index 22706ee64..1a098f731 100644 --- a/server/src/tenant-manager/standard-objects/person.ts +++ b/server/src/tenant-manager/standard-objects/person.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const personMetadata = { nameSingular: 'personV2', namePlural: 'peopleV2', @@ -12,7 +14,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'firstName', label: 'First name', targetColumnMap: { @@ -25,7 +27,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'lastName', label: 'Last name', targetColumnMap: { @@ -38,7 +40,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'EMAIL', + type: FieldMetadataType.EMAIL, name: 'email', label: 'Email', targetColumnMap: { @@ -51,7 +53,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'URL', + type: FieldMetadataType.URL, name: 'linkedinUrl', label: 'Linkedin', targetColumnMap: { @@ -64,7 +66,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'URL', + type: FieldMetadataType.URL, name: 'xUrl', label: 'X', targetColumnMap: { @@ -77,7 +79,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'jobTitle', label: 'Job Title', targetColumnMap: { @@ -90,7 +92,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'phone', label: 'Phone', targetColumnMap: { @@ -103,7 +105,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'city', label: 'City', targetColumnMap: { @@ -116,7 +118,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'avatarUrl', label: 'Avatar', targetColumnMap: { @@ -130,7 +132,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'company', label: 'Company', targetColumnMap: { @@ -143,7 +145,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'pointOfContactForOpportunities', label: 'POC for Opportunities', targetColumnMap: {}, @@ -154,7 +156,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'activityTargets', label: 'Activities', targetColumnMap: {}, @@ -165,7 +167,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'opportunities', label: 'Opportunities', targetColumnMap: {}, @@ -176,7 +178,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'favorites', label: 'Favorites', targetColumnMap: {}, @@ -187,7 +189,7 @@ const personMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'attachments', label: 'Attachments', targetColumnMap: {}, diff --git a/server/src/tenant-manager/standard-objects/pipeline-step.ts b/server/src/tenant-manager/standard-objects/pipeline-step.ts index 7285915e2..d135b0b0a 100644 --- a/server/src/tenant-manager/standard-objects/pipeline-step.ts +++ b/server/src/tenant-manager/standard-objects/pipeline-step.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const pipelineStepMetadata = { nameSingular: 'pipelineStepV2', namePlural: 'pipelineStepsV2', @@ -12,7 +14,7 @@ const pipelineStepMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'name', label: 'Name', targetColumnMap: { @@ -25,7 +27,7 @@ const pipelineStepMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'color', label: 'Color', targetColumnMap: { @@ -38,7 +40,7 @@ const pipelineStepMetadata = { { isCustom: false, isActive: true, - type: 'NUMBER', + type: FieldMetadataType.NUMBER, name: 'position', label: 'Position', targetColumnMap: { @@ -52,7 +54,7 @@ const pipelineStepMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'opportunities', label: 'Opportunities', targetColumnMap: {}, diff --git a/server/src/tenant-manager/standard-objects/standard-object-metadata.ts b/server/src/tenant-manager/standard-objects/standard-object-metadata.ts index 3ee1b6499..495af4891 100644 --- a/server/src/tenant-manager/standard-objects/standard-object-metadata.ts +++ b/server/src/tenant-manager/standard-objects/standard-object-metadata.ts @@ -14,6 +14,10 @@ import webhookMetadata from 'src/tenant-manager/standard-objects/webhook'; import pipelineStepMetadata from 'src/tenant-manager/standard-objects/pipeline-step'; import companyMetadata from 'src/tenant-manager/standard-objects/company'; import workspaceMemberMetadata from 'src/tenant-manager/standard-objects/workspace-member'; +import { + FieldMetadataEntity, + FieldMetadataType, +} from 'src/metadata/field-metadata/field-metadata.entity'; export const standardObjectsMetadata = { activityTargetV2: activityTargetMetadata, @@ -33,3 +37,42 @@ export const standardObjectsMetadata = { webhookV2: webhookMetadata, workspaceMemberV2: workspaceMemberMetadata, }; + +export const basicFieldsMetadata: Partial[] = [ + { + name: 'id', + label: 'Id', + type: FieldMetadataType.UUID, + targetColumnMap: { + value: 'id', + }, + isNullable: true, + // isSystem: true, + isCustom: false, + isActive: true, + }, + { + name: 'createdAt', + label: 'Creation date', + type: FieldMetadataType.DATE, + targetColumnMap: { + value: 'createdAt', + }, + icon: 'IconCalendar', + isNullable: true, + isCustom: false, + isActive: true, + }, + { + name: 'updatedAt', + label: 'Update date', + type: FieldMetadataType.DATE, + targetColumnMap: { + value: 'updatedAt', + }, + icon: 'IconCalendar', + isNullable: true, + isCustom: false, + isActive: true, + }, +]; diff --git a/server/src/tenant-manager/standard-objects/view-field.ts b/server/src/tenant-manager/standard-objects/view-field.ts index 7902d1968..e63363bb6 100644 --- a/server/src/tenant-manager/standard-objects/view-field.ts +++ b/server/src/tenant-manager/standard-objects/view-field.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const viewFieldMetadata = { nameSingular: 'viewFieldV2', namePlural: 'viewFieldsV2', @@ -12,7 +14,7 @@ const viewFieldMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'fieldMetadataId', label: 'Field Metadata Id', targetColumnMap: { @@ -25,7 +27,7 @@ const viewFieldMetadata = { { isCustom: false, isActive: true, - type: 'BOOLEAN', + type: FieldMetadataType.BOOLEAN, name: 'isVisible', label: 'Visible', targetColumnMap: { @@ -38,7 +40,7 @@ const viewFieldMetadata = { { isCustom: false, isActive: true, - type: 'NUMBER', + type: FieldMetadataType.NUMBER, name: 'size', label: 'Size', targetColumnMap: { @@ -51,7 +53,7 @@ const viewFieldMetadata = { { isCustom: false, isActive: true, - type: 'NUMBER', + type: FieldMetadataType.NUMBER, name: 'position', label: 'Position', targetColumnMap: { @@ -64,7 +66,7 @@ const viewFieldMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'view', label: 'View', targetColumnMap: { value: 'viewId' }, @@ -76,7 +78,7 @@ const viewFieldMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'viewId', label: 'View Id', targetColumnMap: { diff --git a/server/src/tenant-manager/standard-objects/view-filter.ts b/server/src/tenant-manager/standard-objects/view-filter.ts index 9c4c0ffcc..4767813a6 100644 --- a/server/src/tenant-manager/standard-objects/view-filter.ts +++ b/server/src/tenant-manager/standard-objects/view-filter.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const viewFilterMetadata = { nameSingular: 'viewFilterV2', namePlural: 'viewFiltersV2', @@ -12,7 +14,7 @@ const viewFilterMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'fieldMetadataId', label: 'Field Metadata Id', targetColumnMap: { @@ -25,7 +27,7 @@ const viewFilterMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'operand', label: 'Operand', targetColumnMap: { @@ -38,7 +40,7 @@ const viewFilterMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'value', label: 'Value', targetColumnMap: { @@ -51,7 +53,7 @@ const viewFilterMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'displayValue', label: 'Display Value', targetColumnMap: { @@ -64,7 +66,7 @@ const viewFilterMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'view', label: 'View', targetColumnMap: { value: 'viewId' }, @@ -76,7 +78,7 @@ const viewFilterMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'viewId', label: 'View Id', targetColumnMap: { diff --git a/server/src/tenant-manager/standard-objects/view-sort.ts b/server/src/tenant-manager/standard-objects/view-sort.ts index 4101d9460..6743a65ce 100644 --- a/server/src/tenant-manager/standard-objects/view-sort.ts +++ b/server/src/tenant-manager/standard-objects/view-sort.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const viewSortMetadata = { nameSingular: 'viewSortV2', namePlural: 'viewSortsV2', @@ -12,7 +14,7 @@ const viewSortMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'fieldMetadataId', label: 'Field Metadata Id', targetColumnMap: { @@ -25,7 +27,7 @@ const viewSortMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'direction', label: 'Direction', targetColumnMap: { @@ -38,7 +40,7 @@ const viewSortMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'view', label: 'View', targetColumnMap: { @@ -52,7 +54,7 @@ const viewSortMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'viewId', label: 'View Id', targetColumnMap: { diff --git a/server/src/tenant-manager/standard-objects/view.ts b/server/src/tenant-manager/standard-objects/view.ts index 08046b257..776aa3d5f 100644 --- a/server/src/tenant-manager/standard-objects/view.ts +++ b/server/src/tenant-manager/standard-objects/view.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const viewMetadata = { nameSingular: 'viewV2', namePlural: 'viewsV2', @@ -10,7 +12,7 @@ const viewMetadata = { isSystem: true, fields: [ { - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'name', label: 'Name', targetColumnMap: { @@ -21,7 +23,7 @@ const viewMetadata = { isNullable: false, }, { - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'objectMetadataId', label: 'Object Metadata Id', targetColumnMap: { @@ -32,7 +34,7 @@ const viewMetadata = { isNullable: false, }, { - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'type', label: 'Type', targetColumnMap: { @@ -45,7 +47,7 @@ const viewMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'viewFields', label: 'View Fields', targetColumnMap: {}, @@ -56,7 +58,7 @@ const viewMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'viewSorts', label: 'View Sorts', targetColumnMap: {}, @@ -67,7 +69,7 @@ const viewMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'viewFilters', label: 'View Filters', targetColumnMap: {}, diff --git a/server/src/tenant-manager/standard-objects/webhook.ts b/server/src/tenant-manager/standard-objects/webhook.ts index 0f2dd0f42..615fdf95d 100644 --- a/server/src/tenant-manager/standard-objects/webhook.ts +++ b/server/src/tenant-manager/standard-objects/webhook.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const webhookMetadata = { nameSingular: 'webhookV2', namePlural: 'webhooksV2', @@ -12,7 +14,7 @@ const webhookMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'targetUrl', label: 'Target Url', targetColumnMap: { @@ -25,7 +27,7 @@ const webhookMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'operation', label: 'Operation', targetColumnMap: { diff --git a/server/src/tenant-manager/standard-objects/workspace-member.ts b/server/src/tenant-manager/standard-objects/workspace-member.ts index 1af4e6bf8..4f5d65004 100644 --- a/server/src/tenant-manager/standard-objects/workspace-member.ts +++ b/server/src/tenant-manager/standard-objects/workspace-member.ts @@ -1,3 +1,5 @@ +import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; + const workspaceMemberMetadata = { nameSingular: 'workspaceMemberV2', namePlural: 'workspaceMembersV2', @@ -12,7 +14,7 @@ const workspaceMemberMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'firstName', label: 'First name', targetColumnMap: { @@ -25,7 +27,7 @@ const workspaceMemberMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'lastName', label: 'Last name', targetColumnMap: { @@ -38,7 +40,7 @@ const workspaceMemberMetadata = { { isCustom: false, isActive: true, - type: 'UUID', + type: FieldMetadataType.UUID, name: 'userId', label: 'User Id', targetColumnMap: { @@ -51,7 +53,7 @@ const workspaceMemberMetadata = { { isCustom: false, isActive: true, - type: 'BOOLEAN', + type: FieldMetadataType.BOOLEAN, name: 'allowImpersonation', label: 'Admin Access', targetColumnMap: { @@ -64,7 +66,7 @@ const workspaceMemberMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'colorScheme', label: 'Color Scheme', targetColumnMap: { @@ -77,7 +79,7 @@ const workspaceMemberMetadata = { { isCustom: false, isActive: true, - type: 'TEXT', + type: FieldMetadataType.TEXT, name: 'locale', label: 'Language', targetColumnMap: { @@ -91,7 +93,7 @@ const workspaceMemberMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'authoredActivities', label: 'Authored activities', targetColumnMap: {}, @@ -102,7 +104,7 @@ const workspaceMemberMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'assignedActivities', label: 'Assigned activities', targetColumnMap: {}, @@ -113,7 +115,7 @@ const workspaceMemberMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'favorites', label: 'Favorites', targetColumnMap: {}, @@ -124,7 +126,7 @@ const workspaceMemberMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'accountOwnerForCompanies', label: 'Account Owner For Companies', targetColumnMap: {}, @@ -135,7 +137,7 @@ const workspaceMemberMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'authoredAttachments', label: 'Authored attachments', targetColumnMap: {}, @@ -146,7 +148,7 @@ const workspaceMemberMetadata = { { isCustom: false, isActive: true, - type: 'RELATION', + type: FieldMetadataType.RELATION, name: 'authoredComments', label: 'Authored comments', targetColumnMap: {}, diff --git a/server/src/tenant-manager/tenant-manager.service.ts b/server/src/tenant-manager/tenant-manager.service.ts index aa0e8a6cf..0911dbef4 100644 --- a/server/src/tenant-manager/tenant-manager.service.ts +++ b/server/src/tenant-manager/tenant-manager.service.ts @@ -16,7 +16,10 @@ import { FieldMetadataType, } from 'src/metadata/field-metadata/field-metadata.entity'; -import { standardObjectsMetadata } from './standard-objects/standard-object-metadata'; +import { + basicFieldsMetadata, + standardObjectsMetadata, +} from './standard-objects/standard-object-metadata'; @Injectable() export class TenantManagerService { @@ -76,19 +79,23 @@ export class TenantManagerService { workspaceId: string, ): Promise { const createdObjectMetadata = await this.objectMetadataService.createMany( - Object.values(standardObjectsMetadata).map((objectMetadata) => ({ - ...objectMetadata, - dataSourceId, - workspaceId, - isCustom: false, - isActive: true, - fields: objectMetadata.fields.map((field) => ({ - ...field, + Object.values(standardObjectsMetadata).map( + (objectMetadata: ObjectMetadataEntity) => ({ + ...objectMetadata, + dataSourceId, workspaceId, isCustom: false, isActive: true, - })), - })), + fields: [...basicFieldsMetadata, ...objectMetadata.fields].map( + (field) => ({ + ...field, + workspaceId, + isCustom: false, + isActive: true, + }), + ), + }), + ), ); await this.relationMetadataService.createMany( diff --git a/server/src/tenant/query-builder/interfaces/record.interface.ts b/server/src/tenant/query-builder/interfaces/record.interface.ts index 18139b551..90a2568bb 100644 --- a/server/src/tenant/query-builder/interfaces/record.interface.ts +++ b/server/src/tenant/query-builder/interfaces/record.interface.ts @@ -1,8 +1,5 @@ export interface Record { - id?: string; [key: string]: any; - createdAt?: Date; - updatedAt?: Date; } export type RecordFilter = { diff --git a/server/src/tenant/resolver-builder/interfaces/record.interface.ts b/server/src/tenant/resolver-builder/interfaces/record.interface.ts index 18139b551..90a2568bb 100644 --- a/server/src/tenant/resolver-builder/interfaces/record.interface.ts +++ b/server/src/tenant/resolver-builder/interfaces/record.interface.ts @@ -1,8 +1,5 @@ export interface Record { - id?: string; [key: string]: any; - createdAt?: Date; - updatedAt?: Date; } export type RecordFilter = {