diff --git a/packages/twenty-front/src/generated-metadata/graphql.ts b/packages/twenty-front/src/generated-metadata/graphql.ts index 65dda9a31e..987059de9c 100644 --- a/packages/twenty-front/src/generated-metadata/graphql.ts +++ b/packages/twenty-front/src/generated-metadata/graphql.ts @@ -1606,6 +1606,7 @@ export type FieldRichTextConfiguration = { export type FieldsConfiguration = { __typename?: 'FieldsConfiguration'; configurationType: WidgetConfigurationType; + viewId?: Maybe; }; export type File = { @@ -4844,6 +4845,7 @@ export enum ViewSortDirection { export enum ViewType { CALENDAR = 'CALENDAR', + FIELDS_WIDGET = 'FIELDS_WIDGET', KANBAN = 'KANBAN', TABLE = 'TABLE' } diff --git a/packages/twenty-server/src/database/typeorm/core/migrations/common/1770906704231-addFieldsWidgetViewType.ts b/packages/twenty-server/src/database/typeorm/core/migrations/common/1770906704231-addFieldsWidgetViewType.ts new file mode 100644 index 0000000000..6c8c2ecdbb --- /dev/null +++ b/packages/twenty-server/src/database/typeorm/core/migrations/common/1770906704231-addFieldsWidgetViewType.ts @@ -0,0 +1,32 @@ +import { type MigrationInterface, type QueryRunner } from 'typeorm'; + +export class AddFieldsWidgetViewType1770906704231 + implements MigrationInterface +{ + name = 'AddFieldsWidgetViewType1770906704231'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TYPE "core"."view_type_enum" ADD VALUE IF NOT EXISTS 'FIELDS_WIDGET' AFTER 'CALENDAR'`, + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `CREATE TYPE "core"."view_type_enum_old" AS ENUM('CALENDAR', 'KANBAN', 'TABLE')`, + ); + await queryRunner.query( + `ALTER TABLE "core"."view" ALTER COLUMN "type" DROP DEFAULT`, + ); + await queryRunner.query( + `ALTER TABLE "core"."view" ALTER COLUMN "type" TYPE "core"."view_type_enum_old" USING "type"::"text"::"core"."view_type_enum_old"`, + ); + await queryRunner.query( + `ALTER TABLE "core"."view" ALTER COLUMN "type" SET DEFAULT 'TABLE'`, + ); + await queryRunner.query(`DROP TYPE "core"."view_type_enum"`); + await queryRunner.query( + `ALTER TYPE "core"."view_type_enum_old" RENAME TO "view_type_enum"`, + ); + } +} diff --git a/packages/twenty-server/src/engine/metadata-modules/page-layout-widget/dtos/fields-configuration.dto.ts b/packages/twenty-server/src/engine/metadata-modules/page-layout-widget/dtos/fields-configuration.dto.ts index 905d363ba3..4991370d36 100644 --- a/packages/twenty-server/src/engine/metadata-modules/page-layout-widget/dtos/fields-configuration.dto.ts +++ b/packages/twenty-server/src/engine/metadata-modules/page-layout-widget/dtos/fields-configuration.dto.ts @@ -1,6 +1,6 @@ import { Field, ObjectType } from '@nestjs/graphql'; -import { IsIn, IsNotEmpty } from 'class-validator'; +import { IsIn, IsNotEmpty, IsOptional, IsUUID } from 'class-validator'; import { WidgetConfigurationType } from 'src/engine/metadata-modules/page-layout-widget/enums/widget-configuration-type.type'; import { PageLayoutWidgetConfigurationBase } from 'src/engine/metadata-modules/page-layout-widget/types/page-layout-widget-configurationt-base.type'; @@ -13,4 +13,9 @@ export class FieldsConfigurationDTO @IsIn([WidgetConfigurationType.FIELDS]) @IsNotEmpty() configurationType: WidgetConfigurationType.FIELDS; + + @Field(() => String, { nullable: true }) + @IsOptional() + @IsUUID() + viewId: string | null; } diff --git a/packages/twenty-server/src/engine/metadata-modules/view/enums/view-type.enum.ts b/packages/twenty-server/src/engine/metadata-modules/view/enums/view-type.enum.ts index f40be54d22..0227f67729 100644 --- a/packages/twenty-server/src/engine/metadata-modules/view/enums/view-type.enum.ts +++ b/packages/twenty-server/src/engine/metadata-modules/view/enums/view-type.enum.ts @@ -2,4 +2,5 @@ export enum ViewType { TABLE = 'TABLE', KANBAN = 'KANBAN', CALENDAR = 'CALENDAR', + FIELDS_WIDGET = 'FIELDS_WIDGET', } diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view-field-group-name.type.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view-field-group-name.type.ts new file mode 100644 index 0000000000..f72a41e217 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view-field-group-name.type.ts @@ -0,0 +1,12 @@ +import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type'; +import { type AllStandardObjectViewName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view-name.type'; +import { type AllStandardObjectView } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view.type'; + +export type AllStandardObjectViewFieldGroupName< + T extends AllStandardObjectName, + V extends AllStandardObjectViewName, +> = AllStandardObjectView[V] extends { + viewFieldGroups: infer ViewFieldGroups; +} + ? keyof ViewFieldGroups + : never; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/__tests__/__snapshots__/get-standard-object-metadata-related-entity-ids.util.spec.ts.snap b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/__tests__/__snapshots__/get-standard-object-metadata-related-entity-ids.util.spec.ts.snap index 541225ac25..995c639d83 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/__tests__/__snapshots__/get-standard-object-metadata-related-entity-ids.util.spec.ts.snap +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/__tests__/__snapshots__/get-standard-object-metadata-related-entity-ids.util.spec.ts.snap @@ -231,6 +231,7 @@ exports[`getStandardObjectMetadataRelatedEntityIds should return standard object "views": { "allCalendarEvents": { "id": "00000000-0000-0000-0000-000000000091", + "viewFieldGroups": {}, "viewFields": { "conferenceLink": { "id": "00000000-0000-0000-0000-000000000088", @@ -375,10 +376,11 @@ exports[`getStandardObjectMetadataRelatedEntityIds should return standard object "id": "00000000-0000-0000-0000-000000000102", }, }, - "id": "00000000-0000-0000-0000-000000000126", + "id": "00000000-0000-0000-0000-000000000140", "views": { "allCompanies": { "id": "00000000-0000-0000-0000-000000000125", + "viewFieldGroups": {}, "viewFields": { "accountOwner": { "id": "00000000-0000-0000-0000-000000000120", @@ -407,123 +409,171 @@ exports[`getStandardObjectMetadataRelatedEntityIds should return standard object }, "viewGroups": {}, }, + "companyRecordPageFields": { + "id": "00000000-0000-0000-0000-000000000139", + "viewFieldGroups": { + "additional": { + "id": "00000000-0000-0000-0000-000000000137", + }, + "general": { + "id": "00000000-0000-0000-0000-000000000136", + }, + "other": { + "id": "00000000-0000-0000-0000-000000000138", + }, + }, + "viewFields": { + "accountOwner": { + "id": "00000000-0000-0000-0000-000000000127", + }, + "address": { + "id": "00000000-0000-0000-0000-000000000133", + }, + "annualRecurringRevenue": { + "id": "00000000-0000-0000-0000-000000000128", + }, + "createdAt": { + "id": "00000000-0000-0000-0000-000000000134", + }, + "createdBy": { + "id": "00000000-0000-0000-0000-000000000135", + }, + "domainName": { + "id": "00000000-0000-0000-0000-000000000126", + }, + "employees": { + "id": "00000000-0000-0000-0000-000000000130", + }, + "idealCustomerProfile": { + "id": "00000000-0000-0000-0000-000000000129", + }, + "linkedinLink": { + "id": "00000000-0000-0000-0000-000000000131", + }, + "xLink": { + "id": "00000000-0000-0000-0000-000000000132", + }, + }, + "viewGroups": {}, + }, }, }, "connectedAccount": { "fields": { "accessToken": { - "id": "00000000-0000-0000-0000-000000000133", + "id": "00000000-0000-0000-0000-000000000147", }, "accountOwner": { - "id": "00000000-0000-0000-0000-000000000135", + "id": "00000000-0000-0000-0000-000000000149", }, "authFailedAt": { - "id": "00000000-0000-0000-0000-000000000137", + "id": "00000000-0000-0000-0000-000000000151", }, "calendarChannels": { - "id": "00000000-0000-0000-0000-000000000140", + "id": "00000000-0000-0000-0000-000000000154", }, "connectionParameters": { - "id": "00000000-0000-0000-0000-000000000143", + "id": "00000000-0000-0000-0000-000000000157", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000128", - }, - "deletedAt": { - "id": "00000000-0000-0000-0000-000000000130", - }, - "handle": { - "id": "00000000-0000-0000-0000-000000000131", - }, - "handleAliases": { - "id": "00000000-0000-0000-0000-000000000141", - }, - "id": { - "id": "00000000-0000-0000-0000-000000000127", - }, - "lastCredentialsRefreshedAt": { - "id": "00000000-0000-0000-0000-000000000138", - }, - "lastSyncHistoryId": { - "id": "00000000-0000-0000-0000-000000000136", - }, - "messageChannels": { - "id": "00000000-0000-0000-0000-000000000139", - }, - "provider": { - "id": "00000000-0000-0000-0000-000000000132", - }, - "refreshToken": { - "id": "00000000-0000-0000-0000-000000000134", - }, - "scopes": { "id": "00000000-0000-0000-0000-000000000142", }, + "deletedAt": { + "id": "00000000-0000-0000-0000-000000000144", + }, + "handle": { + "id": "00000000-0000-0000-0000-000000000145", + }, + "handleAliases": { + "id": "00000000-0000-0000-0000-000000000155", + }, + "id": { + "id": "00000000-0000-0000-0000-000000000141", + }, + "lastCredentialsRefreshedAt": { + "id": "00000000-0000-0000-0000-000000000152", + }, + "lastSyncHistoryId": { + "id": "00000000-0000-0000-0000-000000000150", + }, + "messageChannels": { + "id": "00000000-0000-0000-0000-000000000153", + }, + "provider": { + "id": "00000000-0000-0000-0000-000000000146", + }, + "refreshToken": { + "id": "00000000-0000-0000-0000-000000000148", + }, + "scopes": { + "id": "00000000-0000-0000-0000-000000000156", + }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000129", + "id": "00000000-0000-0000-0000-000000000143", }, }, - "id": "00000000-0000-0000-0000-000000000144", + "id": "00000000-0000-0000-0000-000000000158", "views": undefined, }, "dashboard": { "fields": { "attachments": { - "id": "00000000-0000-0000-0000-000000000156", + "id": "00000000-0000-0000-0000-000000000170", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000146", + "id": "00000000-0000-0000-0000-000000000160", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000152", + "id": "00000000-0000-0000-0000-000000000166", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000148", + "id": "00000000-0000-0000-0000-000000000162", }, "favorites": { - "id": "00000000-0000-0000-0000-000000000155", + "id": "00000000-0000-0000-0000-000000000169", }, "id": { - "id": "00000000-0000-0000-0000-000000000145", + "id": "00000000-0000-0000-0000-000000000159", }, "pageLayoutId": { - "id": "00000000-0000-0000-0000-000000000151", + "id": "00000000-0000-0000-0000-000000000165", }, "position": { - "id": "00000000-0000-0000-0000-000000000150", + "id": "00000000-0000-0000-0000-000000000164", }, "searchVector": { - "id": "00000000-0000-0000-0000-000000000157", + "id": "00000000-0000-0000-0000-000000000171", }, "timelineActivities": { - "id": "00000000-0000-0000-0000-000000000154", + "id": "00000000-0000-0000-0000-000000000168", }, "title": { - "id": "00000000-0000-0000-0000-000000000149", + "id": "00000000-0000-0000-0000-000000000163", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000147", + "id": "00000000-0000-0000-0000-000000000161", }, "updatedBy": { - "id": "00000000-0000-0000-0000-000000000153", + "id": "00000000-0000-0000-0000-000000000167", }, }, - "id": "00000000-0000-0000-0000-000000000163", + "id": "00000000-0000-0000-0000-000000000177", "views": { "allDashboards": { - "id": "00000000-0000-0000-0000-000000000162", + "id": "00000000-0000-0000-0000-000000000176", + "viewFieldGroups": {}, "viewFields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000160", + "id": "00000000-0000-0000-0000-000000000174", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000159", + "id": "00000000-0000-0000-0000-000000000173", }, "title": { - "id": "00000000-0000-0000-0000-000000000158", + "id": "00000000-0000-0000-0000-000000000172", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000161", + "id": "00000000-0000-0000-0000-000000000175", }, }, "viewGroups": {}, @@ -533,151 +583,152 @@ exports[`getStandardObjectMetadataRelatedEntityIds should return standard object "favorite": { "fields": { "company": { - "id": "00000000-0000-0000-0000-000000000171", + "id": "00000000-0000-0000-0000-000000000185", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000165", - }, - "dashboard": { - "id": "00000000-0000-0000-0000-000000000180", - }, - "deletedAt": { - "id": "00000000-0000-0000-0000-000000000167", - }, - "favoriteFolder": { "id": "00000000-0000-0000-0000-000000000179", }, + "dashboard": { + "id": "00000000-0000-0000-0000-000000000194", + }, + "deletedAt": { + "id": "00000000-0000-0000-0000-000000000181", + }, + "favoriteFolder": { + "id": "00000000-0000-0000-0000-000000000193", + }, "forWorkspaceMember": { - "id": "00000000-0000-0000-0000-000000000169", + "id": "00000000-0000-0000-0000-000000000183", }, "id": { - "id": "00000000-0000-0000-0000-000000000164", - }, - "note": { - "id": "00000000-0000-0000-0000-000000000177", - }, - "opportunity": { - "id": "00000000-0000-0000-0000-000000000172", - }, - "person": { - "id": "00000000-0000-0000-0000-000000000170", - }, - "position": { - "id": "00000000-0000-0000-0000-000000000168", - }, - "task": { - "id": "00000000-0000-0000-0000-000000000176", - }, - "updatedAt": { - "id": "00000000-0000-0000-0000-000000000166", - }, - "viewId": { "id": "00000000-0000-0000-0000-000000000178", }, + "note": { + "id": "00000000-0000-0000-0000-000000000191", + }, + "opportunity": { + "id": "00000000-0000-0000-0000-000000000186", + }, + "person": { + "id": "00000000-0000-0000-0000-000000000184", + }, + "position": { + "id": "00000000-0000-0000-0000-000000000182", + }, + "task": { + "id": "00000000-0000-0000-0000-000000000190", + }, + "updatedAt": { + "id": "00000000-0000-0000-0000-000000000180", + }, + "viewId": { + "id": "00000000-0000-0000-0000-000000000192", + }, "workflow": { - "id": "00000000-0000-0000-0000-000000000173", + "id": "00000000-0000-0000-0000-000000000187", }, "workflowRun": { - "id": "00000000-0000-0000-0000-000000000175", + "id": "00000000-0000-0000-0000-000000000189", }, "workflowVersion": { - "id": "00000000-0000-0000-0000-000000000174", + "id": "00000000-0000-0000-0000-000000000188", }, }, - "id": "00000000-0000-0000-0000-000000000181", + "id": "00000000-0000-0000-0000-000000000195", "views": undefined, }, "favoriteFolder": { "fields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000183", + "id": "00000000-0000-0000-0000-000000000197", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000185", + "id": "00000000-0000-0000-0000-000000000199", }, "favorites": { - "id": "00000000-0000-0000-0000-000000000188", + "id": "00000000-0000-0000-0000-000000000202", }, "id": { - "id": "00000000-0000-0000-0000-000000000182", + "id": "00000000-0000-0000-0000-000000000196", }, "name": { - "id": "00000000-0000-0000-0000-000000000187", + "id": "00000000-0000-0000-0000-000000000201", }, "position": { - "id": "00000000-0000-0000-0000-000000000186", + "id": "00000000-0000-0000-0000-000000000200", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000184", + "id": "00000000-0000-0000-0000-000000000198", }, }, - "id": "00000000-0000-0000-0000-000000000189", + "id": "00000000-0000-0000-0000-000000000203", "views": undefined, }, "message": { "fields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000260", + "id": "00000000-0000-0000-0000-000000000274", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000262", + "id": "00000000-0000-0000-0000-000000000276", }, "direction": { - "id": "00000000-0000-0000-0000-000000000265", + "id": "00000000-0000-0000-0000-000000000279", }, "headerMessageId": { - "id": "00000000-0000-0000-0000-000000000263", + "id": "00000000-0000-0000-0000-000000000277", }, "id": { - "id": "00000000-0000-0000-0000-000000000259", + "id": "00000000-0000-0000-0000-000000000273", }, "messageChannelMessageAssociations": { - "id": "00000000-0000-0000-0000-000000000270", + "id": "00000000-0000-0000-0000-000000000284", }, "messageParticipants": { - "id": "00000000-0000-0000-0000-000000000269", + "id": "00000000-0000-0000-0000-000000000283", }, "messageThread": { - "id": "00000000-0000-0000-0000-000000000264", + "id": "00000000-0000-0000-0000-000000000278", }, "receivedAt": { - "id": "00000000-0000-0000-0000-000000000268", + "id": "00000000-0000-0000-0000-000000000282", }, "subject": { - "id": "00000000-0000-0000-0000-000000000266", + "id": "00000000-0000-0000-0000-000000000280", }, "text": { - "id": "00000000-0000-0000-0000-000000000267", + "id": "00000000-0000-0000-0000-000000000281", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000261", + "id": "00000000-0000-0000-0000-000000000275", }, }, - "id": "00000000-0000-0000-0000-000000000279", + "id": "00000000-0000-0000-0000-000000000293", "views": { "allMessages": { - "id": "00000000-0000-0000-0000-000000000278", + "id": "00000000-0000-0000-0000-000000000292", + "viewFieldGroups": {}, "viewFields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000277", + "id": "00000000-0000-0000-0000-000000000291", }, "headerMessageId": { - "id": "00000000-0000-0000-0000-000000000275", + "id": "00000000-0000-0000-0000-000000000289", }, "messageParticipants": { - "id": "00000000-0000-0000-0000-000000000273", + "id": "00000000-0000-0000-0000-000000000287", }, "messageThread": { - "id": "00000000-0000-0000-0000-000000000272", + "id": "00000000-0000-0000-0000-000000000286", }, "receivedAt": { - "id": "00000000-0000-0000-0000-000000000274", + "id": "00000000-0000-0000-0000-000000000288", }, "subject": { - "id": "00000000-0000-0000-0000-000000000271", + "id": "00000000-0000-0000-0000-000000000285", }, "text": { - "id": "00000000-0000-0000-0000-000000000276", + "id": "00000000-0000-0000-0000-000000000290", }, }, "viewGroups": {}, @@ -687,223 +738,224 @@ exports[`getStandardObjectMetadataRelatedEntityIds should return standard object "messageChannel": { "fields": { "connectedAccount": { - "id": "00000000-0000-0000-0000-000000000207", - }, - "contactAutoCreationPolicy": { - "id": "00000000-0000-0000-0000-000000000210", - }, - "createdAt": { - "id": "00000000-0000-0000-0000-000000000202", - }, - "deletedAt": { - "id": "00000000-0000-0000-0000-000000000204", - }, - "excludeGroupEmails": { - "id": "00000000-0000-0000-0000-000000000212", - }, - "excludeNonProfessionalEmails": { - "id": "00000000-0000-0000-0000-000000000211", - }, - "handle": { - "id": "00000000-0000-0000-0000-000000000206", - }, - "id": { - "id": "00000000-0000-0000-0000-000000000201", - }, - "isContactAutoCreationEnabled": { - "id": "00000000-0000-0000-0000-000000000209", - }, - "isSyncEnabled": { - "id": "00000000-0000-0000-0000-000000000217", - }, - "messageChannelMessageAssociations": { - "id": "00000000-0000-0000-0000-000000000213", - }, - "messageFolderImportPolicy": { - "id": "00000000-0000-0000-0000-000000000215", - }, - "messageFolders": { - "id": "00000000-0000-0000-0000-000000000214", - }, - "pendingGroupEmailsAction": { - "id": "00000000-0000-0000-0000-000000000216", - }, - "syncCursor": { - "id": "00000000-0000-0000-0000-000000000218", - }, - "syncStage": { "id": "00000000-0000-0000-0000-000000000221", }, - "syncStageStartedAt": { - "id": "00000000-0000-0000-0000-000000000222", + "contactAutoCreationPolicy": { + "id": "00000000-0000-0000-0000-000000000224", }, - "syncStatus": { + "createdAt": { + "id": "00000000-0000-0000-0000-000000000216", + }, + "deletedAt": { + "id": "00000000-0000-0000-0000-000000000218", + }, + "excludeGroupEmails": { + "id": "00000000-0000-0000-0000-000000000226", + }, + "excludeNonProfessionalEmails": { + "id": "00000000-0000-0000-0000-000000000225", + }, + "handle": { "id": "00000000-0000-0000-0000-000000000220", }, - "syncedAt": { - "id": "00000000-0000-0000-0000-000000000219", + "id": { + "id": "00000000-0000-0000-0000-000000000215", }, - "throttleFailureCount": { + "isContactAutoCreationEnabled": { "id": "00000000-0000-0000-0000-000000000223", }, + "isSyncEnabled": { + "id": "00000000-0000-0000-0000-000000000231", + }, + "messageChannelMessageAssociations": { + "id": "00000000-0000-0000-0000-000000000227", + }, + "messageFolderImportPolicy": { + "id": "00000000-0000-0000-0000-000000000229", + }, + "messageFolders": { + "id": "00000000-0000-0000-0000-000000000228", + }, + "pendingGroupEmailsAction": { + "id": "00000000-0000-0000-0000-000000000230", + }, + "syncCursor": { + "id": "00000000-0000-0000-0000-000000000232", + }, + "syncStage": { + "id": "00000000-0000-0000-0000-000000000235", + }, + "syncStageStartedAt": { + "id": "00000000-0000-0000-0000-000000000236", + }, + "syncStatus": { + "id": "00000000-0000-0000-0000-000000000234", + }, + "syncedAt": { + "id": "00000000-0000-0000-0000-000000000233", + }, + "throttleFailureCount": { + "id": "00000000-0000-0000-0000-000000000237", + }, "type": { - "id": "00000000-0000-0000-0000-000000000208", + "id": "00000000-0000-0000-0000-000000000222", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000203", + "id": "00000000-0000-0000-0000-000000000217", }, "visibility": { - "id": "00000000-0000-0000-0000-000000000205", + "id": "00000000-0000-0000-0000-000000000219", }, }, - "id": "00000000-0000-0000-0000-000000000224", + "id": "00000000-0000-0000-0000-000000000238", "views": undefined, }, "messageChannelMessageAssociation": { "fields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000191", + "id": "00000000-0000-0000-0000-000000000205", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000193", + "id": "00000000-0000-0000-0000-000000000207", }, "direction": { - "id": "00000000-0000-0000-0000-000000000199", + "id": "00000000-0000-0000-0000-000000000213", }, "id": { - "id": "00000000-0000-0000-0000-000000000190", + "id": "00000000-0000-0000-0000-000000000204", }, "message": { - "id": "00000000-0000-0000-0000-000000000195", + "id": "00000000-0000-0000-0000-000000000209", }, "messageChannel": { - "id": "00000000-0000-0000-0000-000000000194", + "id": "00000000-0000-0000-0000-000000000208", }, "messageExternalId": { - "id": "00000000-0000-0000-0000-000000000196", + "id": "00000000-0000-0000-0000-000000000210", }, "messageThread": { - "id": "00000000-0000-0000-0000-000000000197", + "id": "00000000-0000-0000-0000-000000000211", }, "messageThreadExternalId": { - "id": "00000000-0000-0000-0000-000000000198", + "id": "00000000-0000-0000-0000-000000000212", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000192", + "id": "00000000-0000-0000-0000-000000000206", }, }, - "id": "00000000-0000-0000-0000-000000000200", + "id": "00000000-0000-0000-0000-000000000214", "views": undefined, }, "messageFolder": { "fields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000226", + "id": "00000000-0000-0000-0000-000000000240", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000228", + "id": "00000000-0000-0000-0000-000000000242", }, "externalId": { - "id": "00000000-0000-0000-0000-000000000235", + "id": "00000000-0000-0000-0000-000000000249", }, "id": { - "id": "00000000-0000-0000-0000-000000000225", + "id": "00000000-0000-0000-0000-000000000239", }, "isSentFolder": { - "id": "00000000-0000-0000-0000-000000000233", + "id": "00000000-0000-0000-0000-000000000247", }, "isSynced": { - "id": "00000000-0000-0000-0000-000000000234", + "id": "00000000-0000-0000-0000-000000000248", }, "messageChannel": { - "id": "00000000-0000-0000-0000-000000000231", + "id": "00000000-0000-0000-0000-000000000245", }, "name": { - "id": "00000000-0000-0000-0000-000000000229", + "id": "00000000-0000-0000-0000-000000000243", }, "parentFolderId": { - "id": "00000000-0000-0000-0000-000000000230", + "id": "00000000-0000-0000-0000-000000000244", }, "pendingSyncAction": { - "id": "00000000-0000-0000-0000-000000000236", + "id": "00000000-0000-0000-0000-000000000250", }, "syncCursor": { - "id": "00000000-0000-0000-0000-000000000232", + "id": "00000000-0000-0000-0000-000000000246", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000227", + "id": "00000000-0000-0000-0000-000000000241", }, }, - "id": "00000000-0000-0000-0000-000000000237", + "id": "00000000-0000-0000-0000-000000000251", "views": undefined, }, "messageParticipant": { "fields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000239", + "id": "00000000-0000-0000-0000-000000000253", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000241", + "id": "00000000-0000-0000-0000-000000000255", }, "displayName": { - "id": "00000000-0000-0000-0000-000000000245", + "id": "00000000-0000-0000-0000-000000000259", }, "handle": { - "id": "00000000-0000-0000-0000-000000000244", + "id": "00000000-0000-0000-0000-000000000258", }, "id": { - "id": "00000000-0000-0000-0000-000000000238", + "id": "00000000-0000-0000-0000-000000000252", }, "message": { - "id": "00000000-0000-0000-0000-000000000242", + "id": "00000000-0000-0000-0000-000000000256", }, "person": { - "id": "00000000-0000-0000-0000-000000000246", + "id": "00000000-0000-0000-0000-000000000260", }, "role": { - "id": "00000000-0000-0000-0000-000000000243", + "id": "00000000-0000-0000-0000-000000000257", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000240", + "id": "00000000-0000-0000-0000-000000000254", }, "workspaceMember": { - "id": "00000000-0000-0000-0000-000000000247", + "id": "00000000-0000-0000-0000-000000000261", }, }, - "id": "00000000-0000-0000-0000-000000000248", + "id": "00000000-0000-0000-0000-000000000262", "views": undefined, }, "messageThread": { "fields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000250", + "id": "00000000-0000-0000-0000-000000000264", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000252", + "id": "00000000-0000-0000-0000-000000000266", }, "id": { - "id": "00000000-0000-0000-0000-000000000249", + "id": "00000000-0000-0000-0000-000000000263", }, "messageChannelMessageAssociations": { - "id": "00000000-0000-0000-0000-000000000254", + "id": "00000000-0000-0000-0000-000000000268", }, "messages": { - "id": "00000000-0000-0000-0000-000000000253", + "id": "00000000-0000-0000-0000-000000000267", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000251", + "id": "00000000-0000-0000-0000-000000000265", }, }, - "id": "00000000-0000-0000-0000-000000000258", + "id": "00000000-0000-0000-0000-000000000272", "views": { "allMessageThreads": { - "id": "00000000-0000-0000-0000-000000000257", + "id": "00000000-0000-0000-0000-000000000271", + "viewFieldGroups": {}, "viewFields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000256", + "id": "00000000-0000-0000-0000-000000000270", }, "messages": { - "id": "00000000-0000-0000-0000-000000000255", + "id": "00000000-0000-0000-0000-000000000269", }, }, "viewGroups": {}, @@ -913,67 +965,94 @@ exports[`getStandardObjectMetadataRelatedEntityIds should return standard object "note": { "fields": { "attachments": { - "id": "00000000-0000-0000-0000-000000000290", + "id": "00000000-0000-0000-0000-000000000304", }, "bodyV2": { - "id": "00000000-0000-0000-0000-000000000286", + "id": "00000000-0000-0000-0000-000000000300", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000281", + "id": "00000000-0000-0000-0000-000000000295", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000287", + "id": "00000000-0000-0000-0000-000000000301", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000283", + "id": "00000000-0000-0000-0000-000000000297", }, "favorites": { - "id": "00000000-0000-0000-0000-000000000292", + "id": "00000000-0000-0000-0000-000000000306", }, "id": { - "id": "00000000-0000-0000-0000-000000000280", + "id": "00000000-0000-0000-0000-000000000294", }, "noteTargets": { - "id": "00000000-0000-0000-0000-000000000289", + "id": "00000000-0000-0000-0000-000000000303", }, "position": { - "id": "00000000-0000-0000-0000-000000000284", + "id": "00000000-0000-0000-0000-000000000298", }, "searchVector": { - "id": "00000000-0000-0000-0000-000000000293", + "id": "00000000-0000-0000-0000-000000000307", }, "timelineActivities": { - "id": "00000000-0000-0000-0000-000000000291", + "id": "00000000-0000-0000-0000-000000000305", }, "title": { - "id": "00000000-0000-0000-0000-000000000285", + "id": "00000000-0000-0000-0000-000000000299", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000282", + "id": "00000000-0000-0000-0000-000000000296", }, "updatedBy": { - "id": "00000000-0000-0000-0000-000000000288", + "id": "00000000-0000-0000-0000-000000000302", }, }, - "id": "00000000-0000-0000-0000-000000000300", + "id": "00000000-0000-0000-0000-000000000321", "views": { "allNotes": { - "id": "00000000-0000-0000-0000-000000000299", + "id": "00000000-0000-0000-0000-000000000313", + "viewFieldGroups": {}, "viewFields": { "bodyV2": { - "id": "00000000-0000-0000-0000-000000000296", + "id": "00000000-0000-0000-0000-000000000310", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000298", + "id": "00000000-0000-0000-0000-000000000312", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000297", + "id": "00000000-0000-0000-0000-000000000311", }, "noteTargets": { - "id": "00000000-0000-0000-0000-000000000295", + "id": "00000000-0000-0000-0000-000000000309", }, "title": { - "id": "00000000-0000-0000-0000-000000000294", + "id": "00000000-0000-0000-0000-000000000308", + }, + }, + "viewGroups": {}, + }, + "noteRecordPageFields": { + "id": "00000000-0000-0000-0000-000000000320", + "viewFieldGroups": { + "additional": { + "id": "00000000-0000-0000-0000-000000000318", + }, + "general": { + "id": "00000000-0000-0000-0000-000000000317", + }, + "other": { + "id": "00000000-0000-0000-0000-000000000319", + }, + }, + "viewFields": { + "createdAt": { + "id": "00000000-0000-0000-0000-000000000315", + }, + "createdBy": { + "id": "00000000-0000-0000-0000-000000000316", + }, + "title": { + "id": "00000000-0000-0000-0000-000000000314", }, }, "viewGroups": {}, @@ -983,279 +1062,370 @@ exports[`getStandardObjectMetadataRelatedEntityIds should return standard object "noteTarget": { "fields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000302", + "id": "00000000-0000-0000-0000-000000000323", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000304", + "id": "00000000-0000-0000-0000-000000000325", }, "id": { - "id": "00000000-0000-0000-0000-000000000301", + "id": "00000000-0000-0000-0000-000000000322", }, "note": { - "id": "00000000-0000-0000-0000-000000000305", + "id": "00000000-0000-0000-0000-000000000326", }, "targetCompany": { - "id": "00000000-0000-0000-0000-000000000307", + "id": "00000000-0000-0000-0000-000000000328", }, "targetOpportunity": { - "id": "00000000-0000-0000-0000-000000000308", + "id": "00000000-0000-0000-0000-000000000329", }, "targetPerson": { - "id": "00000000-0000-0000-0000-000000000306", + "id": "00000000-0000-0000-0000-000000000327", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000303", + "id": "00000000-0000-0000-0000-000000000324", }, }, - "id": "00000000-0000-0000-0000-000000000309", + "id": "00000000-0000-0000-0000-000000000330", "views": undefined, }, "opportunity": { "fields": { "amount": { - "id": "00000000-0000-0000-0000-000000000315", + "id": "00000000-0000-0000-0000-000000000336", }, "attachments": { - "id": "00000000-0000-0000-0000-000000000327", + "id": "00000000-0000-0000-0000-000000000348", }, "closeDate": { - "id": "00000000-0000-0000-0000-000000000316", + "id": "00000000-0000-0000-0000-000000000337", }, "company": { - "id": "00000000-0000-0000-0000-000000000322", + "id": "00000000-0000-0000-0000-000000000343", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000311", + "id": "00000000-0000-0000-0000-000000000332", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000319", + "id": "00000000-0000-0000-0000-000000000340", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000313", + "id": "00000000-0000-0000-0000-000000000334", }, "favorites": { - "id": "00000000-0000-0000-0000-000000000324", + "id": "00000000-0000-0000-0000-000000000345", }, "id": { - "id": "00000000-0000-0000-0000-000000000310", + "id": "00000000-0000-0000-0000-000000000331", }, "name": { - "id": "00000000-0000-0000-0000-000000000314", + "id": "00000000-0000-0000-0000-000000000335", }, "noteTargets": { - "id": "00000000-0000-0000-0000-000000000326", + "id": "00000000-0000-0000-0000-000000000347", }, "owner": { - "id": "00000000-0000-0000-0000-000000000323", + "id": "00000000-0000-0000-0000-000000000344", }, "pointOfContact": { - "id": "00000000-0000-0000-0000-000000000321", + "id": "00000000-0000-0000-0000-000000000342", }, "position": { - "id": "00000000-0000-0000-0000-000000000318", + "id": "00000000-0000-0000-0000-000000000339", }, "searchVector": { - "id": "00000000-0000-0000-0000-000000000329", + "id": "00000000-0000-0000-0000-000000000350", }, "stage": { - "id": "00000000-0000-0000-0000-000000000317", + "id": "00000000-0000-0000-0000-000000000338", }, "taskTargets": { - "id": "00000000-0000-0000-0000-000000000325", + "id": "00000000-0000-0000-0000-000000000346", }, "timelineActivities": { - "id": "00000000-0000-0000-0000-000000000328", + "id": "00000000-0000-0000-0000-000000000349", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000312", + "id": "00000000-0000-0000-0000-000000000333", }, "updatedBy": { - "id": "00000000-0000-0000-0000-000000000320", + "id": "00000000-0000-0000-0000-000000000341", }, }, - "id": "00000000-0000-0000-0000-000000000349", + "id": "00000000-0000-0000-0000-000000000382", "views": { "allOpportunities": { - "id": "00000000-0000-0000-0000-000000000336", + "id": "00000000-0000-0000-0000-000000000357", + "viewFieldGroups": {}, "viewFields": { "amount": { - "id": "00000000-0000-0000-0000-000000000331", + "id": "00000000-0000-0000-0000-000000000352", }, "closeDate": { - "id": "00000000-0000-0000-0000-000000000333", + "id": "00000000-0000-0000-0000-000000000354", }, "company": { - "id": "00000000-0000-0000-0000-000000000334", + "id": "00000000-0000-0000-0000-000000000355", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000332", + "id": "00000000-0000-0000-0000-000000000353", }, "name": { - "id": "00000000-0000-0000-0000-000000000330", + "id": "00000000-0000-0000-0000-000000000351", }, "pointOfContact": { - "id": "00000000-0000-0000-0000-000000000335", + "id": "00000000-0000-0000-0000-000000000356", }, }, "viewGroups": {}, }, "byStage": { - "id": "00000000-0000-0000-0000-000000000348", + "id": "00000000-0000-0000-0000-000000000369", + "viewFieldGroups": {}, "viewFields": { "amount": { - "id": "00000000-0000-0000-0000-000000000338", + "id": "00000000-0000-0000-0000-000000000359", }, "closeDate": { - "id": "00000000-0000-0000-0000-000000000340", + "id": "00000000-0000-0000-0000-000000000361", }, "company": { - "id": "00000000-0000-0000-0000-000000000341", + "id": "00000000-0000-0000-0000-000000000362", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000339", + "id": "00000000-0000-0000-0000-000000000360", }, "name": { - "id": "00000000-0000-0000-0000-000000000337", + "id": "00000000-0000-0000-0000-000000000358", }, "pointOfContact": { - "id": "00000000-0000-0000-0000-000000000342", + "id": "00000000-0000-0000-0000-000000000363", }, }, "viewGroups": { "customer": { - "id": "00000000-0000-0000-0000-000000000347", + "id": "00000000-0000-0000-0000-000000000368", }, "meeting": { - "id": "00000000-0000-0000-0000-000000000345", + "id": "00000000-0000-0000-0000-000000000366", }, "new": { - "id": "00000000-0000-0000-0000-000000000343", + "id": "00000000-0000-0000-0000-000000000364", }, "proposal": { - "id": "00000000-0000-0000-0000-000000000346", + "id": "00000000-0000-0000-0000-000000000367", }, "screening": { - "id": "00000000-0000-0000-0000-000000000344", + "id": "00000000-0000-0000-0000-000000000365", }, }, }, + "opportunityRecordPageFields": { + "id": "00000000-0000-0000-0000-000000000381", + "viewFieldGroups": { + "additional": { + "id": "00000000-0000-0000-0000-000000000379", + }, + "general": { + "id": "00000000-0000-0000-0000-000000000378", + }, + "other": { + "id": "00000000-0000-0000-0000-000000000380", + }, + }, + "viewFields": { + "amount": { + "id": "00000000-0000-0000-0000-000000000370", + }, + "closeDate": { + "id": "00000000-0000-0000-0000-000000000371", + }, + "company": { + "id": "00000000-0000-0000-0000-000000000373", + }, + "createdAt": { + "id": "00000000-0000-0000-0000-000000000376", + }, + "createdBy": { + "id": "00000000-0000-0000-0000-000000000377", + }, + "owner": { + "id": "00000000-0000-0000-0000-000000000375", + }, + "pointOfContact": { + "id": "00000000-0000-0000-0000-000000000374", + }, + "stage": { + "id": "00000000-0000-0000-0000-000000000372", + }, + }, + "viewGroups": {}, + }, }, }, "person": { "fields": { "attachments": { - "id": "00000000-0000-0000-0000-000000000371", + "id": "00000000-0000-0000-0000-000000000404", }, "avatarFile": { - "id": "00000000-0000-0000-0000-000000000362", + "id": "00000000-0000-0000-0000-000000000395", }, "avatarUrl": { - "id": "00000000-0000-0000-0000-000000000361", + "id": "00000000-0000-0000-0000-000000000394", }, "calendarEventParticipants": { - "id": "00000000-0000-0000-0000-000000000373", + "id": "00000000-0000-0000-0000-000000000406", }, "city": { - "id": "00000000-0000-0000-0000-000000000360", + "id": "00000000-0000-0000-0000-000000000393", }, "company": { - "id": "00000000-0000-0000-0000-000000000366", + "id": "00000000-0000-0000-0000-000000000399", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000351", + "id": "00000000-0000-0000-0000-000000000384", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000364", + "id": "00000000-0000-0000-0000-000000000397", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000353", + "id": "00000000-0000-0000-0000-000000000386", }, "emails": { - "id": "00000000-0000-0000-0000-000000000355", + "id": "00000000-0000-0000-0000-000000000388", }, "favorites": { - "id": "00000000-0000-0000-0000-000000000370", + "id": "00000000-0000-0000-0000-000000000403", }, "id": { - "id": "00000000-0000-0000-0000-000000000350", + "id": "00000000-0000-0000-0000-000000000383", }, "jobTitle": { - "id": "00000000-0000-0000-0000-000000000358", + "id": "00000000-0000-0000-0000-000000000391", }, "linkedinLink": { - "id": "00000000-0000-0000-0000-000000000356", + "id": "00000000-0000-0000-0000-000000000389", }, "messageParticipants": { - "id": "00000000-0000-0000-0000-000000000372", + "id": "00000000-0000-0000-0000-000000000405", }, "name": { - "id": "00000000-0000-0000-0000-000000000354", + "id": "00000000-0000-0000-0000-000000000387", }, "noteTargets": { - "id": "00000000-0000-0000-0000-000000000369", + "id": "00000000-0000-0000-0000-000000000402", }, "phones": { - "id": "00000000-0000-0000-0000-000000000359", + "id": "00000000-0000-0000-0000-000000000392", }, "pointOfContactForOpportunities": { - "id": "00000000-0000-0000-0000-000000000367", + "id": "00000000-0000-0000-0000-000000000400", }, "position": { - "id": "00000000-0000-0000-0000-000000000363", + "id": "00000000-0000-0000-0000-000000000396", }, "searchVector": { - "id": "00000000-0000-0000-0000-000000000375", + "id": "00000000-0000-0000-0000-000000000408", }, "taskTargets": { - "id": "00000000-0000-0000-0000-000000000368", + "id": "00000000-0000-0000-0000-000000000401", }, "timelineActivities": { - "id": "00000000-0000-0000-0000-000000000374", + "id": "00000000-0000-0000-0000-000000000407", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000352", + "id": "00000000-0000-0000-0000-000000000385", }, "updatedBy": { - "id": "00000000-0000-0000-0000-000000000365", + "id": "00000000-0000-0000-0000-000000000398", }, "xLink": { - "id": "00000000-0000-0000-0000-000000000357", + "id": "00000000-0000-0000-0000-000000000390", }, }, - "id": "00000000-0000-0000-0000-000000000387", + "id": "00000000-0000-0000-0000-000000000434", "views": { "allPeople": { - "id": "00000000-0000-0000-0000-000000000386", + "id": "00000000-0000-0000-0000-000000000419", + "viewFieldGroups": {}, "viewFields": { "city": { - "id": "00000000-0000-0000-0000-000000000382", + "id": "00000000-0000-0000-0000-000000000415", }, "company": { - "id": "00000000-0000-0000-0000-000000000379", + "id": "00000000-0000-0000-0000-000000000412", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000381", + "id": "00000000-0000-0000-0000-000000000414", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000378", + "id": "00000000-0000-0000-0000-000000000411", }, "emails": { - "id": "00000000-0000-0000-0000-000000000377", + "id": "00000000-0000-0000-0000-000000000410", }, "jobTitle": { - "id": "00000000-0000-0000-0000-000000000383", + "id": "00000000-0000-0000-0000-000000000416", }, "linkedinLink": { - "id": "00000000-0000-0000-0000-000000000384", + "id": "00000000-0000-0000-0000-000000000417", }, "name": { - "id": "00000000-0000-0000-0000-000000000376", + "id": "00000000-0000-0000-0000-000000000409", }, "phones": { - "id": "00000000-0000-0000-0000-000000000380", + "id": "00000000-0000-0000-0000-000000000413", }, "xLink": { - "id": "00000000-0000-0000-0000-000000000385", + "id": "00000000-0000-0000-0000-000000000418", + }, + }, + "viewGroups": {}, + }, + "personRecordPageFields": { + "id": "00000000-0000-0000-0000-000000000433", + "viewFieldGroups": { + "additional": { + "id": "00000000-0000-0000-0000-000000000431", + }, + "general": { + "id": "00000000-0000-0000-0000-000000000430", + }, + "other": { + "id": "00000000-0000-0000-0000-000000000432", + }, + }, + "viewFields": { + "avatarUrl": { + "id": "00000000-0000-0000-0000-000000000427", + }, + "city": { + "id": "00000000-0000-0000-0000-000000000426", + }, + "company": { + "id": "00000000-0000-0000-0000-000000000422", + }, + "createdAt": { + "id": "00000000-0000-0000-0000-000000000428", + }, + "createdBy": { + "id": "00000000-0000-0000-0000-000000000429", + }, + "emails": { + "id": "00000000-0000-0000-0000-000000000420", + }, + "jobTitle": { + "id": "00000000-0000-0000-0000-000000000423", + }, + "linkedinLink": { + "id": "00000000-0000-0000-0000-000000000424", + }, + "phones": { + "id": "00000000-0000-0000-0000-000000000421", + }, + "xLink": { + "id": "00000000-0000-0000-0000-000000000425", }, }, "viewGroups": {}, @@ -1265,274 +1435,313 @@ exports[`getStandardObjectMetadataRelatedEntityIds should return standard object "task": { "fields": { "assignee": { - "id": "00000000-0000-0000-0000-000000000401", + "id": "00000000-0000-0000-0000-000000000448", }, "attachments": { - "id": "00000000-0000-0000-0000-000000000400", + "id": "00000000-0000-0000-0000-000000000447", }, "bodyV2": { - "id": "00000000-0000-0000-0000-000000000394", + "id": "00000000-0000-0000-0000-000000000441", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000389", + "id": "00000000-0000-0000-0000-000000000436", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000397", + "id": "00000000-0000-0000-0000-000000000444", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000391", + "id": "00000000-0000-0000-0000-000000000438", }, "dueAt": { - "id": "00000000-0000-0000-0000-000000000395", + "id": "00000000-0000-0000-0000-000000000442", }, "favorites": { - "id": "00000000-0000-0000-0000-000000000403", + "id": "00000000-0000-0000-0000-000000000450", }, "id": { - "id": "00000000-0000-0000-0000-000000000388", + "id": "00000000-0000-0000-0000-000000000435", }, "position": { - "id": "00000000-0000-0000-0000-000000000392", + "id": "00000000-0000-0000-0000-000000000439", }, "searchVector": { - "id": "00000000-0000-0000-0000-000000000404", + "id": "00000000-0000-0000-0000-000000000451", }, "status": { - "id": "00000000-0000-0000-0000-000000000396", + "id": "00000000-0000-0000-0000-000000000443", }, "taskTargets": { - "id": "00000000-0000-0000-0000-000000000399", + "id": "00000000-0000-0000-0000-000000000446", }, "timelineActivities": { - "id": "00000000-0000-0000-0000-000000000402", + "id": "00000000-0000-0000-0000-000000000449", }, "title": { - "id": "00000000-0000-0000-0000-000000000393", + "id": "00000000-0000-0000-0000-000000000440", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000390", + "id": "00000000-0000-0000-0000-000000000437", }, "updatedBy": { - "id": "00000000-0000-0000-0000-000000000398", + "id": "00000000-0000-0000-0000-000000000445", }, }, - "id": "00000000-0000-0000-0000-000000000435", + "id": "00000000-0000-0000-0000-000000000492", "views": { "allTasks": { - "id": "00000000-0000-0000-0000-000000000413", + "id": "00000000-0000-0000-0000-000000000460", + "viewFieldGroups": {}, "viewFields": { "assignee": { - "id": "00000000-0000-0000-0000-000000000410", + "id": "00000000-0000-0000-0000-000000000457", }, "bodyV2": { - "id": "00000000-0000-0000-0000-000000000411", + "id": "00000000-0000-0000-0000-000000000458", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000412", + "id": "00000000-0000-0000-0000-000000000459", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000408", + "id": "00000000-0000-0000-0000-000000000455", }, "dueAt": { - "id": "00000000-0000-0000-0000-000000000409", + "id": "00000000-0000-0000-0000-000000000456", }, "status": { - "id": "00000000-0000-0000-0000-000000000406", + "id": "00000000-0000-0000-0000-000000000453", }, "taskTargets": { - "id": "00000000-0000-0000-0000-000000000407", + "id": "00000000-0000-0000-0000-000000000454", }, "title": { - "id": "00000000-0000-0000-0000-000000000405", + "id": "00000000-0000-0000-0000-000000000452", }, }, "viewGroups": {}, }, "assignedToMe": { - "id": "00000000-0000-0000-0000-000000000425", + "id": "00000000-0000-0000-0000-000000000472", + "viewFieldGroups": {}, "viewFields": { "assignee": { - "id": "00000000-0000-0000-0000-000000000418", + "id": "00000000-0000-0000-0000-000000000465", }, "bodyV2": { - "id": "00000000-0000-0000-0000-000000000419", + "id": "00000000-0000-0000-0000-000000000466", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000420", + "id": "00000000-0000-0000-0000-000000000467", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000416", + "id": "00000000-0000-0000-0000-000000000463", }, "dueAt": { - "id": "00000000-0000-0000-0000-000000000417", + "id": "00000000-0000-0000-0000-000000000464", }, "taskTargets": { - "id": "00000000-0000-0000-0000-000000000415", + "id": "00000000-0000-0000-0000-000000000462", }, "title": { - "id": "00000000-0000-0000-0000-000000000414", + "id": "00000000-0000-0000-0000-000000000461", }, }, "viewGroups": { "done": { - "id": "00000000-0000-0000-0000-000000000423", + "id": "00000000-0000-0000-0000-000000000470", }, "empty": { - "id": "00000000-0000-0000-0000-000000000424", + "id": "00000000-0000-0000-0000-000000000471", }, "inProgress": { - "id": "00000000-0000-0000-0000-000000000422", + "id": "00000000-0000-0000-0000-000000000469", }, "todo": { - "id": "00000000-0000-0000-0000-000000000421", + "id": "00000000-0000-0000-0000-000000000468", }, }, }, "byStatus": { - "id": "00000000-0000-0000-0000-000000000434", + "id": "00000000-0000-0000-0000-000000000481", + "viewFieldGroups": {}, "viewFields": { "assignee": { - "id": "00000000-0000-0000-0000-000000000429", + "id": "00000000-0000-0000-0000-000000000476", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000430", + "id": "00000000-0000-0000-0000-000000000477", }, "dueAt": { - "id": "00000000-0000-0000-0000-000000000428", + "id": "00000000-0000-0000-0000-000000000475", }, "status": { - "id": "00000000-0000-0000-0000-000000000427", + "id": "00000000-0000-0000-0000-000000000474", }, "title": { - "id": "00000000-0000-0000-0000-000000000426", + "id": "00000000-0000-0000-0000-000000000473", }, }, "viewGroups": { "done": { - "id": "00000000-0000-0000-0000-000000000433", + "id": "00000000-0000-0000-0000-000000000480", }, "inProgress": { - "id": "00000000-0000-0000-0000-000000000432", + "id": "00000000-0000-0000-0000-000000000479", }, "todo": { - "id": "00000000-0000-0000-0000-000000000431", + "id": "00000000-0000-0000-0000-000000000478", }, }, }, + "taskRecordPageFields": { + "id": "00000000-0000-0000-0000-000000000491", + "viewFieldGroups": { + "additional": { + "id": "00000000-0000-0000-0000-000000000489", + }, + "general": { + "id": "00000000-0000-0000-0000-000000000488", + }, + "other": { + "id": "00000000-0000-0000-0000-000000000490", + }, + }, + "viewFields": { + "assignee": { + "id": "00000000-0000-0000-0000-000000000485", + }, + "createdAt": { + "id": "00000000-0000-0000-0000-000000000486", + }, + "createdBy": { + "id": "00000000-0000-0000-0000-000000000487", + }, + "dueAt": { + "id": "00000000-0000-0000-0000-000000000483", + }, + "status": { + "id": "00000000-0000-0000-0000-000000000484", + }, + "title": { + "id": "00000000-0000-0000-0000-000000000482", + }, + }, + "viewGroups": {}, + }, }, }, "taskTarget": { "fields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000437", + "id": "00000000-0000-0000-0000-000000000494", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000439", + "id": "00000000-0000-0000-0000-000000000496", }, "id": { - "id": "00000000-0000-0000-0000-000000000436", + "id": "00000000-0000-0000-0000-000000000493", }, "targetCompany": { - "id": "00000000-0000-0000-0000-000000000442", + "id": "00000000-0000-0000-0000-000000000499", }, "targetOpportunity": { - "id": "00000000-0000-0000-0000-000000000443", + "id": "00000000-0000-0000-0000-000000000500", }, "targetPerson": { - "id": "00000000-0000-0000-0000-000000000441", + "id": "00000000-0000-0000-0000-000000000498", }, "task": { - "id": "00000000-0000-0000-0000-000000000440", + "id": "00000000-0000-0000-0000-000000000497", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000438", + "id": "00000000-0000-0000-0000-000000000495", }, }, - "id": "00000000-0000-0000-0000-000000000444", + "id": "00000000-0000-0000-0000-000000000501", "views": undefined, }, "timelineActivity": { "fields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000446", + "id": "00000000-0000-0000-0000-000000000503", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000448", + "id": "00000000-0000-0000-0000-000000000505", }, "happensAt": { - "id": "00000000-0000-0000-0000-000000000449", + "id": "00000000-0000-0000-0000-000000000506", }, "id": { - "id": "00000000-0000-0000-0000-000000000445", + "id": "00000000-0000-0000-0000-000000000502", }, "linkedObjectMetadataId": { - "id": "00000000-0000-0000-0000-000000000464", + "id": "00000000-0000-0000-0000-000000000521", }, "linkedRecordCachedName": { - "id": "00000000-0000-0000-0000-000000000462", + "id": "00000000-0000-0000-0000-000000000519", }, "linkedRecordId": { - "id": "00000000-0000-0000-0000-000000000463", + "id": "00000000-0000-0000-0000-000000000520", }, "name": { - "id": "00000000-0000-0000-0000-000000000450", + "id": "00000000-0000-0000-0000-000000000507", }, "properties": { - "id": "00000000-0000-0000-0000-000000000451", + "id": "00000000-0000-0000-0000-000000000508", }, "targetCompany": { - "id": "00000000-0000-0000-0000-000000000454", + "id": "00000000-0000-0000-0000-000000000511", }, "targetDashboard": { - "id": "00000000-0000-0000-0000-000000000461", + "id": "00000000-0000-0000-0000-000000000518", }, "targetNote": { - "id": "00000000-0000-0000-0000-000000000457", + "id": "00000000-0000-0000-0000-000000000514", }, "targetOpportunity": { - "id": "00000000-0000-0000-0000-000000000455", + "id": "00000000-0000-0000-0000-000000000512", }, "targetPerson": { - "id": "00000000-0000-0000-0000-000000000453", + "id": "00000000-0000-0000-0000-000000000510", }, "targetTask": { - "id": "00000000-0000-0000-0000-000000000456", + "id": "00000000-0000-0000-0000-000000000513", }, "targetWorkflow": { - "id": "00000000-0000-0000-0000-000000000458", + "id": "00000000-0000-0000-0000-000000000515", }, "targetWorkflowRun": { - "id": "00000000-0000-0000-0000-000000000460", + "id": "00000000-0000-0000-0000-000000000517", }, "targetWorkflowVersion": { - "id": "00000000-0000-0000-0000-000000000459", + "id": "00000000-0000-0000-0000-000000000516", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000447", + "id": "00000000-0000-0000-0000-000000000504", }, "workspaceMember": { - "id": "00000000-0000-0000-0000-000000000452", + "id": "00000000-0000-0000-0000-000000000509", }, }, - "id": "00000000-0000-0000-0000-000000000471", + "id": "00000000-0000-0000-0000-000000000528", "views": { "allTimelineActivities": { - "id": "00000000-0000-0000-0000-000000000470", + "id": "00000000-0000-0000-0000-000000000527", + "viewFieldGroups": {}, "viewFields": { "happensAt": { - "id": "00000000-0000-0000-0000-000000000466", + "id": "00000000-0000-0000-0000-000000000523", }, "linkedRecordCachedName": { - "id": "00000000-0000-0000-0000-000000000469", + "id": "00000000-0000-0000-0000-000000000526", }, "name": { - "id": "00000000-0000-0000-0000-000000000465", + "id": "00000000-0000-0000-0000-000000000522", }, "properties": { - "id": "00000000-0000-0000-0000-000000000467", + "id": "00000000-0000-0000-0000-000000000524", }, "workspaceMember": { - "id": "00000000-0000-0000-0000-000000000468", + "id": "00000000-0000-0000-0000-000000000525", }, }, "viewGroups": {}, @@ -1542,79 +1751,80 @@ exports[`getStandardObjectMetadataRelatedEntityIds should return standard object "workflow": { "fields": { "attachments": { - "id": "00000000-0000-0000-0000-000000000485", + "id": "00000000-0000-0000-0000-000000000542", }, "automatedTriggers": { - "id": "00000000-0000-0000-0000-000000000482", + "id": "00000000-0000-0000-0000-000000000539", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000473", + "id": "00000000-0000-0000-0000-000000000530", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000486", + "id": "00000000-0000-0000-0000-000000000543", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000475", + "id": "00000000-0000-0000-0000-000000000532", }, "favorites": { - "id": "00000000-0000-0000-0000-000000000483", + "id": "00000000-0000-0000-0000-000000000540", }, "id": { - "id": "00000000-0000-0000-0000-000000000472", + "id": "00000000-0000-0000-0000-000000000529", }, "lastPublishedVersionId": { - "id": "00000000-0000-0000-0000-000000000477", + "id": "00000000-0000-0000-0000-000000000534", }, "name": { - "id": "00000000-0000-0000-0000-000000000476", + "id": "00000000-0000-0000-0000-000000000533", }, "position": { - "id": "00000000-0000-0000-0000-000000000479", + "id": "00000000-0000-0000-0000-000000000536", }, "runs": { - "id": "00000000-0000-0000-0000-000000000481", + "id": "00000000-0000-0000-0000-000000000538", }, "searchVector": { - "id": "00000000-0000-0000-0000-000000000488", + "id": "00000000-0000-0000-0000-000000000545", }, "statuses": { - "id": "00000000-0000-0000-0000-000000000478", + "id": "00000000-0000-0000-0000-000000000535", }, "timelineActivities": { - "id": "00000000-0000-0000-0000-000000000484", + "id": "00000000-0000-0000-0000-000000000541", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000474", + "id": "00000000-0000-0000-0000-000000000531", }, "updatedBy": { - "id": "00000000-0000-0000-0000-000000000487", + "id": "00000000-0000-0000-0000-000000000544", }, "versions": { - "id": "00000000-0000-0000-0000-000000000480", + "id": "00000000-0000-0000-0000-000000000537", }, }, - "id": "00000000-0000-0000-0000-000000000496", + "id": "00000000-0000-0000-0000-000000000553", "views": { "allWorkflows": { - "id": "00000000-0000-0000-0000-000000000495", + "id": "00000000-0000-0000-0000-000000000552", + "viewFieldGroups": {}, "viewFields": { "createdBy": { - "id": "00000000-0000-0000-0000-000000000492", + "id": "00000000-0000-0000-0000-000000000549", }, "name": { - "id": "00000000-0000-0000-0000-000000000489", + "id": "00000000-0000-0000-0000-000000000546", }, "runs": { - "id": "00000000-0000-0000-0000-000000000494", + "id": "00000000-0000-0000-0000-000000000551", }, "statuses": { - "id": "00000000-0000-0000-0000-000000000490", + "id": "00000000-0000-0000-0000-000000000547", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000491", + "id": "00000000-0000-0000-0000-000000000548", }, "versions": { - "id": "00000000-0000-0000-0000-000000000493", + "id": "00000000-0000-0000-0000-000000000550", }, }, "viewGroups": {}, @@ -1624,115 +1834,116 @@ exports[`getStandardObjectMetadataRelatedEntityIds should return standard object "workflowAutomatedTrigger": { "fields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000498", + "id": "00000000-0000-0000-0000-000000000555", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000500", + "id": "00000000-0000-0000-0000-000000000557", }, "id": { - "id": "00000000-0000-0000-0000-000000000497", + "id": "00000000-0000-0000-0000-000000000554", }, "settings": { - "id": "00000000-0000-0000-0000-000000000502", + "id": "00000000-0000-0000-0000-000000000559", }, "type": { - "id": "00000000-0000-0000-0000-000000000501", + "id": "00000000-0000-0000-0000-000000000558", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000499", + "id": "00000000-0000-0000-0000-000000000556", }, "workflow": { - "id": "00000000-0000-0000-0000-000000000503", + "id": "00000000-0000-0000-0000-000000000560", }, }, - "id": "00000000-0000-0000-0000-000000000504", + "id": "00000000-0000-0000-0000-000000000561", "views": undefined, }, "workflowRun": { "fields": { "context": { - "id": "00000000-0000-0000-0000-000000000520", + "id": "00000000-0000-0000-0000-000000000577", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000506", + "id": "00000000-0000-0000-0000-000000000563", }, "createdBy": { - "id": "00000000-0000-0000-0000-000000000517", + "id": "00000000-0000-0000-0000-000000000574", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000508", + "id": "00000000-0000-0000-0000-000000000565", }, "endedAt": { - "id": "00000000-0000-0000-0000-000000000514", + "id": "00000000-0000-0000-0000-000000000571", }, "enqueuedAt": { - "id": "00000000-0000-0000-0000-000000000512", + "id": "00000000-0000-0000-0000-000000000569", }, "favorites": { - "id": "00000000-0000-0000-0000-000000000522", + "id": "00000000-0000-0000-0000-000000000579", }, "id": { - "id": "00000000-0000-0000-0000-000000000505", + "id": "00000000-0000-0000-0000-000000000562", }, "name": { - "id": "00000000-0000-0000-0000-000000000509", + "id": "00000000-0000-0000-0000-000000000566", }, "output": { - "id": "00000000-0000-0000-0000-000000000519", + "id": "00000000-0000-0000-0000-000000000576", }, "position": { - "id": "00000000-0000-0000-0000-000000000516", + "id": "00000000-0000-0000-0000-000000000573", }, "searchVector": { - "id": "00000000-0000-0000-0000-000000000524", + "id": "00000000-0000-0000-0000-000000000581", }, "startedAt": { - "id": "00000000-0000-0000-0000-000000000513", + "id": "00000000-0000-0000-0000-000000000570", }, "state": { - "id": "00000000-0000-0000-0000-000000000521", + "id": "00000000-0000-0000-0000-000000000578", }, "status": { - "id": "00000000-0000-0000-0000-000000000515", + "id": "00000000-0000-0000-0000-000000000572", }, "timelineActivities": { - "id": "00000000-0000-0000-0000-000000000523", + "id": "00000000-0000-0000-0000-000000000580", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000507", + "id": "00000000-0000-0000-0000-000000000564", }, "updatedBy": { - "id": "00000000-0000-0000-0000-000000000518", + "id": "00000000-0000-0000-0000-000000000575", }, "workflow": { - "id": "00000000-0000-0000-0000-000000000511", + "id": "00000000-0000-0000-0000-000000000568", }, "workflowVersion": { - "id": "00000000-0000-0000-0000-000000000510", + "id": "00000000-0000-0000-0000-000000000567", }, }, - "id": "00000000-0000-0000-0000-000000000532", + "id": "00000000-0000-0000-0000-000000000589", "views": { "allWorkflowRuns": { - "id": "00000000-0000-0000-0000-000000000531", + "id": "00000000-0000-0000-0000-000000000588", + "viewFieldGroups": {}, "viewFields": { "createdBy": { - "id": "00000000-0000-0000-0000-000000000529", + "id": "00000000-0000-0000-0000-000000000586", }, "name": { - "id": "00000000-0000-0000-0000-000000000525", + "id": "00000000-0000-0000-0000-000000000582", }, "startedAt": { - "id": "00000000-0000-0000-0000-000000000528", + "id": "00000000-0000-0000-0000-000000000585", }, "status": { - "id": "00000000-0000-0000-0000-000000000527", + "id": "00000000-0000-0000-0000-000000000584", }, "workflow": { - "id": "00000000-0000-0000-0000-000000000526", + "id": "00000000-0000-0000-0000-000000000583", }, "workflowVersion": { - "id": "00000000-0000-0000-0000-000000000530", + "id": "00000000-0000-0000-0000-000000000587", }, }, "viewGroups": {}, @@ -1742,67 +1953,68 @@ exports[`getStandardObjectMetadataRelatedEntityIds should return standard object "workflowVersion": { "fields": { "createdAt": { - "id": "00000000-0000-0000-0000-000000000534", + "id": "00000000-0000-0000-0000-000000000591", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000536", + "id": "00000000-0000-0000-0000-000000000593", }, "favorites": { - "id": "00000000-0000-0000-0000-000000000544", + "id": "00000000-0000-0000-0000-000000000601", }, "id": { - "id": "00000000-0000-0000-0000-000000000533", + "id": "00000000-0000-0000-0000-000000000590", }, "name": { - "id": "00000000-0000-0000-0000-000000000537", + "id": "00000000-0000-0000-0000-000000000594", }, "position": { - "id": "00000000-0000-0000-0000-000000000541", + "id": "00000000-0000-0000-0000-000000000598", }, "runs": { - "id": "00000000-0000-0000-0000-000000000542", + "id": "00000000-0000-0000-0000-000000000599", }, "searchVector": { - "id": "00000000-0000-0000-0000-000000000546", + "id": "00000000-0000-0000-0000-000000000603", }, "status": { - "id": "00000000-0000-0000-0000-000000000540", + "id": "00000000-0000-0000-0000-000000000597", }, "steps": { - "id": "00000000-0000-0000-0000-000000000543", + "id": "00000000-0000-0000-0000-000000000600", }, "timelineActivities": { - "id": "00000000-0000-0000-0000-000000000545", + "id": "00000000-0000-0000-0000-000000000602", }, "trigger": { - "id": "00000000-0000-0000-0000-000000000539", + "id": "00000000-0000-0000-0000-000000000596", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000535", + "id": "00000000-0000-0000-0000-000000000592", }, "workflow": { - "id": "00000000-0000-0000-0000-000000000538", + "id": "00000000-0000-0000-0000-000000000595", }, }, - "id": "00000000-0000-0000-0000-000000000553", + "id": "00000000-0000-0000-0000-000000000610", "views": { "allWorkflowVersions": { - "id": "00000000-0000-0000-0000-000000000552", + "id": "00000000-0000-0000-0000-000000000609", + "viewFieldGroups": {}, "viewFields": { "name": { - "id": "00000000-0000-0000-0000-000000000547", + "id": "00000000-0000-0000-0000-000000000604", }, "runs": { - "id": "00000000-0000-0000-0000-000000000551", + "id": "00000000-0000-0000-0000-000000000608", }, "status": { - "id": "00000000-0000-0000-0000-000000000549", + "id": "00000000-0000-0000-0000-000000000606", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000550", + "id": "00000000-0000-0000-0000-000000000607", }, "workflow": { - "id": "00000000-0000-0000-0000-000000000548", + "id": "00000000-0000-0000-0000-000000000605", }, }, "viewGroups": {}, @@ -1812,115 +2024,116 @@ exports[`getStandardObjectMetadataRelatedEntityIds should return standard object "workspaceMember": { "fields": { "accountOwnerForCompanies": { - "id": "00000000-0000-0000-0000-000000000568", + "id": "00000000-0000-0000-0000-000000000625", }, "assignedTasks": { - "id": "00000000-0000-0000-0000-000000000565", + "id": "00000000-0000-0000-0000-000000000622", }, "avatarUrl": { - "id": "00000000-0000-0000-0000-000000000562", + "id": "00000000-0000-0000-0000-000000000619", }, "blocklist": { - "id": "00000000-0000-0000-0000-000000000571", + "id": "00000000-0000-0000-0000-000000000628", }, "calendarEventParticipants": { - "id": "00000000-0000-0000-0000-000000000572", + "id": "00000000-0000-0000-0000-000000000629", }, "calendarStartDay": { - "id": "00000000-0000-0000-0000-000000000578", + "id": "00000000-0000-0000-0000-000000000635", }, "colorScheme": { - "id": "00000000-0000-0000-0000-000000000560", + "id": "00000000-0000-0000-0000-000000000617", }, "connectedAccounts": { - "id": "00000000-0000-0000-0000-000000000569", + "id": "00000000-0000-0000-0000-000000000626", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000555", + "id": "00000000-0000-0000-0000-000000000612", }, "dateFormat": { - "id": "00000000-0000-0000-0000-000000000575", + "id": "00000000-0000-0000-0000-000000000632", }, "deletedAt": { - "id": "00000000-0000-0000-0000-000000000557", + "id": "00000000-0000-0000-0000-000000000614", }, "favorites": { - "id": "00000000-0000-0000-0000-000000000567", + "id": "00000000-0000-0000-0000-000000000624", }, "id": { - "id": "00000000-0000-0000-0000-000000000554", + "id": "00000000-0000-0000-0000-000000000611", }, "locale": { - "id": "00000000-0000-0000-0000-000000000561", + "id": "00000000-0000-0000-0000-000000000618", }, "messageParticipants": { - "id": "00000000-0000-0000-0000-000000000570", + "id": "00000000-0000-0000-0000-000000000627", }, "name": { - "id": "00000000-0000-0000-0000-000000000559", + "id": "00000000-0000-0000-0000-000000000616", }, "numberFormat": { - "id": "00000000-0000-0000-0000-000000000579", + "id": "00000000-0000-0000-0000-000000000636", }, "ownedOpportunities": { - "id": "00000000-0000-0000-0000-000000000566", + "id": "00000000-0000-0000-0000-000000000623", }, "position": { - "id": "00000000-0000-0000-0000-000000000558", + "id": "00000000-0000-0000-0000-000000000615", }, "searchVector": { - "id": "00000000-0000-0000-0000-000000000577", + "id": "00000000-0000-0000-0000-000000000634", }, "timeFormat": { - "id": "00000000-0000-0000-0000-000000000576", + "id": "00000000-0000-0000-0000-000000000633", }, "timeZone": { - "id": "00000000-0000-0000-0000-000000000574", + "id": "00000000-0000-0000-0000-000000000631", }, "timelineActivities": { - "id": "00000000-0000-0000-0000-000000000573", + "id": "00000000-0000-0000-0000-000000000630", }, "updatedAt": { - "id": "00000000-0000-0000-0000-000000000556", + "id": "00000000-0000-0000-0000-000000000613", }, "userEmail": { - "id": "00000000-0000-0000-0000-000000000563", + "id": "00000000-0000-0000-0000-000000000620", }, "userId": { - "id": "00000000-0000-0000-0000-000000000564", + "id": "00000000-0000-0000-0000-000000000621", }, }, - "id": "00000000-0000-0000-0000-000000000590", + "id": "00000000-0000-0000-0000-000000000647", "views": { "allWorkspaceMembers": { - "id": "00000000-0000-0000-0000-000000000589", + "id": "00000000-0000-0000-0000-000000000646", + "viewFieldGroups": {}, "viewFields": { "avatarUrl": { - "id": "00000000-0000-0000-0000-000000000582", + "id": "00000000-0000-0000-0000-000000000639", }, "colorScheme": { - "id": "00000000-0000-0000-0000-000000000583", + "id": "00000000-0000-0000-0000-000000000640", }, "createdAt": { - "id": "00000000-0000-0000-0000-000000000588", + "id": "00000000-0000-0000-0000-000000000645", }, "dateFormat": { - "id": "00000000-0000-0000-0000-000000000586", + "id": "00000000-0000-0000-0000-000000000643", }, "locale": { - "id": "00000000-0000-0000-0000-000000000584", + "id": "00000000-0000-0000-0000-000000000641", }, "name": { - "id": "00000000-0000-0000-0000-000000000580", + "id": "00000000-0000-0000-0000-000000000637", }, "timeFormat": { - "id": "00000000-0000-0000-0000-000000000587", + "id": "00000000-0000-0000-0000-000000000644", }, "timeZone": { - "id": "00000000-0000-0000-0000-000000000585", + "id": "00000000-0000-0000-0000-000000000642", }, "userEmail": { - "id": "00000000-0000-0000-0000-000000000581", + "id": "00000000-0000-0000-0000-000000000638", }, }, "viewGroups": {}, diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/get-standard-object-metadata-related-entity-ids.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/get-standard-object-metadata-related-entity-ids.util.ts index e39dde922d..8ab541cffc 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/get-standard-object-metadata-related-entity-ids.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/get-standard-object-metadata-related-entity-ids.util.ts @@ -4,6 +4,7 @@ import { STANDARD_OBJECTS } from 'twenty-shared/metadata'; import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type'; import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type'; import { type AllStandardObjectViewFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view-field-name.type'; +import { type AllStandardObjectViewFieldGroupName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view-field-group-name.type'; import { type AllStandardObjectViewGroupName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view-group-name.type'; import { type AllStandardObjectViewName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view-name.type'; @@ -12,6 +13,10 @@ type StandardObjectViewIds = { id: string; viewGroups: Record, { id: string }>; viewFields: Record, { id: string }>; + viewFieldGroups: Record< + AllStandardObjectViewFieldGroupName, + { id: string } + >; }; }; @@ -79,10 +84,36 @@ const computeStandardViewObjectIds = ({ } } + const viewFieldGroupIds = {} as Record< + AllStandardObjectViewFieldGroupName, + { id: string } + >; + + if ( + Object.prototype.hasOwnProperty.call(viewDefinition, 'viewFieldGroups') + ) { + const viewFieldGroupNames = Object.keys( + (viewDefinition as { viewFieldGroups: Record }) + .viewFieldGroups, + ); + + for (const viewFieldGroupName of viewFieldGroupNames) { + viewFieldGroupIds[ + viewFieldGroupName as AllStandardObjectViewFieldGroupName< + O, + typeof viewName + > + ] = { + id: v4(), + }; + } + } + viewIds[viewName] = { id: v4(), viewFields: viewFieldIds, viewGroups: viewGroupIds, + viewFieldGroups: viewFieldGroupIds, }; } diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/page-layout-widget/build-standard-flat-page-layout-widget-metadata-maps.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/page-layout-widget/build-standard-flat-page-layout-widget-metadata-maps.util.ts index a03a611693..5a6b8135be 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/page-layout-widget/build-standard-flat-page-layout-widget-metadata-maps.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/page-layout-widget/build-standard-flat-page-layout-widget-metadata-maps.util.ts @@ -1,14 +1,20 @@ +import { STANDARD_OBJECTS } from 'twenty-shared/metadata'; +import { isDefined } from 'twenty-shared/utils'; + import { createEmptyFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/constant/create-empty-flat-entity-maps.constant'; import { type FlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-maps.type'; import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-maps-or-throw.util'; import { type FlatPageLayoutWidget } from 'src/engine/metadata-modules/flat-page-layout-widget/types/flat-page-layout-widget.type'; import { WidgetConfigurationType } from 'src/engine/metadata-modules/page-layout-widget/enums/widget-configuration-type.type'; import { WidgetType } from 'src/engine/metadata-modules/page-layout-widget/enums/widget-type.enum'; +import { type AllPageLayoutWidgetConfiguration } from 'src/engine/metadata-modules/page-layout-widget/types/all-page-layout-widget-configuration.type'; import { STANDARD_RECORD_PAGE_LAYOUTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-page-layout.constant'; +import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type'; import { type StandardRecordPageLayoutConfig } from 'src/engine/workspace-manager/twenty-standard-application/utils/page-layout-config/standard-page-layout-config.type'; import { computeMyFirstDashboardWidgets } from 'src/engine/workspace-manager/twenty-standard-application/utils/page-layout-widget/compute-my-first-dashboard-widgets.util'; import { type CreateStandardPageLayoutWidgetArgs, + type CreateStandardPageLayoutWidgetContext, createStandardPageLayoutWidgetFlatMetadata, } from 'src/engine/workspace-manager/twenty-standard-application/utils/page-layout-widget/create-standard-page-layout-widget-flat-metadata.util'; import { findObjectNameByUniversalIdentifier } from 'src/engine/workspace-manager/twenty-standard-application/utils/page-layout/create-standard-page-layout-flat-metadata.util'; @@ -36,6 +42,122 @@ const RECORD_PAGE_LAYOUT_WIDGET_TYPES = [ WidgetType.WORKFLOW_RUN, ]; +const WIDGET_TYPE_TO_CONFIGURATION_TYPE: Partial< + Record +> = { + [WidgetType.FIELDS]: WidgetConfigurationType.FIELDS, + [WidgetType.FIELD]: WidgetConfigurationType.FIELD, + [WidgetType.STANDALONE_RICH_TEXT]: + WidgetConfigurationType.STANDALONE_RICH_TEXT, + [WidgetType.TIMELINE]: WidgetConfigurationType.TIMELINE, + [WidgetType.TASKS]: WidgetConfigurationType.TASKS, + [WidgetType.NOTES]: WidgetConfigurationType.NOTES, + [WidgetType.FILES]: WidgetConfigurationType.FILES, + [WidgetType.EMAILS]: WidgetConfigurationType.EMAILS, + [WidgetType.CALENDAR]: WidgetConfigurationType.CALENDAR, + [WidgetType.FIELD_RICH_TEXT]: WidgetConfigurationType.FIELD_RICH_TEXT, + [WidgetType.WORKFLOW]: WidgetConfigurationType.WORKFLOW, + [WidgetType.WORKFLOW_VERSION]: WidgetConfigurationType.WORKFLOW_VERSION, + [WidgetType.WORKFLOW_RUN]: WidgetConfigurationType.WORKFLOW_RUN, +}; + +const RECORD_PAGE_FIELDS_VIEW_NAME_BY_OBJECT: Partial< + Record +> = { + company: 'companyRecordPageFields', + person: 'personRecordPageFields', + opportunity: 'opportunityRecordPageFields', + task: 'taskRecordPageFields', + note: 'noteRecordPageFields', +}; + +const buildRecordPageWidgetConfigurations = ({ + widgetType, + layoutObjectName, + standardObjectMetadataRelatedEntityIds, +}: { + widgetType: WidgetType; + layoutObjectName: AllStandardObjectName | null; + standardObjectMetadataRelatedEntityIds: BuildStandardFlatPageLayoutWidgetMetadataMapsArgs['standardObjectMetadataRelatedEntityIds']; +}): { + configuration: AllPageLayoutWidgetConfiguration; + universalConfiguration: CreateStandardPageLayoutWidgetContext['universalConfiguration']; +} => { + if (widgetType === WidgetType.FIELDS && isDefined(layoutObjectName)) { + return buildFieldsWidgetConfiguration({ + objectName: layoutObjectName, + standardObjectMetadataRelatedEntityIds, + }); + } + + const configurationType = WIDGET_TYPE_TO_CONFIGURATION_TYPE[widgetType]; + + if (!configurationType) { + throw new Error( + `No configuration type mapping for widget type ${widgetType}`, + ); + } + + const baseConfig = { configurationType }; + + return { + // @ts-expect-error ignore - configurationType is validated but TS can't match to discriminated union + configuration: baseConfig, + // @ts-expect-error ignore - we'd need to implement for each widget type (including unused GRAPH type) to be able to match to the discriminated union + universalConfiguration: baseConfig, + }; +}; + +const buildFieldsWidgetConfiguration = ({ + objectName, + standardObjectMetadataRelatedEntityIds, +}: { + objectName: AllStandardObjectName; + standardObjectMetadataRelatedEntityIds: BuildStandardFlatPageLayoutWidgetMetadataMapsArgs['standardObjectMetadataRelatedEntityIds']; +}): { + configuration: AllPageLayoutWidgetConfiguration; + universalConfiguration: CreateStandardPageLayoutWidgetContext['universalConfiguration']; +} => { + const recordPageFieldsViewName = + RECORD_PAGE_FIELDS_VIEW_NAME_BY_OBJECT[objectName]; + + if (!recordPageFieldsViewName) { + return { + configuration: { + configurationType: WidgetConfigurationType.FIELDS, + viewId: null, + }, + universalConfiguration: { + configurationType: WidgetConfigurationType.FIELDS, + viewId: null, + }, + }; + } + + const views = standardObjectMetadataRelatedEntityIds[objectName] + .views as Record; + + const viewId = views[recordPageFieldsViewName]?.id ?? null; + + // @ts-expect-error ignore + const viewDefinition = STANDARD_OBJECTS[objectName].views?.[ + recordPageFieldsViewName + ] as { universalIdentifier: string } | undefined; + + const viewUniversalIdentifier = viewDefinition?.universalIdentifier ?? null; + + return { + configuration: { + configurationType: WidgetConfigurationType.FIELDS, + viewId, + }, + universalConfiguration: { + configurationType: WidgetConfigurationType.FIELDS, + viewId: viewUniversalIdentifier, + }, + }; +}; + const computeRecordPageWidgets = ({ now, workspaceId, @@ -51,18 +173,16 @@ const computeRecordPageWidgets = ({ ] as StandardRecordPageLayoutConfig; let layoutObjectMetadataId: string | null = null; + let layoutObjectName: AllStandardObjectName | null = null; if (layout.objectUniversalIdentifier) { const objectName = findObjectNameByUniversalIdentifier( layout.objectUniversalIdentifier, - ); + ) as AllStandardObjectName; - if (objectName) { - layoutObjectMetadataId = - standardObjectMetadataRelatedEntityIds[ - objectName as keyof typeof standardObjectMetadataRelatedEntityIds - ]?.id ?? null; - } + layoutObjectName = objectName; + layoutObjectMetadataId = + standardObjectMetadataRelatedEntityIds[objectName]?.id ?? null; } for (const tabTitle of Object.keys(layout.tabs)) { @@ -71,16 +191,24 @@ const computeRecordPageWidgets = ({ for (const widgetName of Object.keys(tab.widgets)) { const widget = tab.widgets[widgetName]; - const objectMetadataId = RECORD_PAGE_LAYOUT_WIDGET_TYPES.includes( + const isRecordPageWidget = RECORD_PAGE_LAYOUT_WIDGET_TYPES.includes( widget.type, - ) + ); + + const objectMetadataId = isRecordPageWidget ? layoutObjectMetadataId : null; - const objectMetadataUniversalIdentifier = - RECORD_PAGE_LAYOUT_WIDGET_TYPES.includes(widget.type) - ? (layout.objectUniversalIdentifier ?? null) - : null; + const objectMetadataUniversalIdentifier = isRecordPageWidget + ? (layout.objectUniversalIdentifier ?? null) + : null; + + const { configuration, universalConfiguration } = + buildRecordPageWidgetConfigurations({ + widgetType: widget.type, + layoutObjectName, + standardObjectMetadataRelatedEntityIds, + }); allWidgets.push( createStandardPageLayoutWidgetFlatMetadata({ @@ -98,12 +226,8 @@ const computeRecordPageWidgets = ({ type: widget.type, gridPosition: widget.gridPosition, position: widget.position ?? null, - configuration: { - configurationType: WidgetConfigurationType.FIELDS, - }, - universalConfiguration: { - configurationType: WidgetConfigurationType.FIELDS, - }, + configuration, + universalConfiguration, objectMetadataId, conditionalDisplay: widget.conditionalDisplay ?? null, }, diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/twenty-standard-application-all-flat-entity-maps.constant.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/twenty-standard-application-all-flat-entity-maps.constant.ts index 1a99d9d165..4c27e0995e 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/twenty-standard-application-all-flat-entity-maps.constant.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/twenty-standard-application-all-flat-entity-maps.constant.ts @@ -17,6 +17,7 @@ import { buildStandardFlatPageLayoutMetadataMaps } from 'src/engine/workspace-ma import { buildStandardFlatRoleMetadataMaps } from 'src/engine/workspace-manager/twenty-standard-application/utils/role-metadata/build-standard-flat-role-metadata-maps.util'; import { buildStandardFlatSkillMetadataMaps } from 'src/engine/workspace-manager/twenty-standard-application/utils/skill-metadata/build-standard-flat-skill-metadata-maps.util'; import { buildStandardFlatViewFieldMetadataMaps } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/build-standard-flat-view-field-metadata-maps.util'; +import { buildStandardFlatViewFieldGroupMetadataMaps } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/build-standard-flat-view-field-group-metadata-maps.util'; import { buildStandardFlatViewFilterMetadataMaps } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-filter/build-standard-flat-view-filter-metadata-maps.util'; import { buildStandardFlatViewGroupMetadataMaps } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-group/build-standard-flat-view-group-metadata-maps.util'; import { buildStandardFlatViewMetadataMaps } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/build-standard-flat-view-metadata-maps.util'; @@ -82,6 +83,7 @@ export const computeTwentyStandardApplicationAllFlatEntityMaps = ({ standardObjectMetadataRelatedEntityIds, twentyStandardApplicationId, workspaceId, + shouldIncludeRecordPageLayouts, }); const flatViewGroupMaps = buildStandardFlatViewGroupMetadataMaps({ @@ -97,7 +99,16 @@ export const computeTwentyStandardApplicationAllFlatEntityMaps = ({ const flatViewFilterGroupMaps = createEmptyFlatEntityMaps(); - const flatViewFieldGroupMaps = createEmptyFlatEntityMaps(); + const flatViewFieldGroupMaps = buildStandardFlatViewFieldGroupMetadataMaps({ + dependencyFlatEntityMaps: { + flatViewMaps, + }, + now, + standardObjectMetadataRelatedEntityIds, + twentyStandardApplicationId, + workspaceId, + shouldIncludeRecordPageLayouts, + }); const flatViewFilterMaps = buildStandardFlatViewFilterMetadataMaps({ dependencyFlatEntityMaps: { @@ -122,6 +133,7 @@ export const computeTwentyStandardApplicationAllFlatEntityMaps = ({ standardObjectMetadataRelatedEntityIds, twentyStandardApplicationId, workspaceId, + shouldIncludeRecordPageLayouts, }); const flatRoleMaps = buildStandardFlatRoleMetadataMaps({ diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/build-standard-flat-view-field-group-metadata-maps.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/build-standard-flat-view-field-group-metadata-maps.util.ts new file mode 100644 index 0000000000..a1e34943aa --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/build-standard-flat-view-field-group-metadata-maps.util.ts @@ -0,0 +1,70 @@ +import { createEmptyFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/constant/create-empty-flat-entity-maps.constant'; +import { type FlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-maps.type'; +import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-maps-or-throw.util'; +import { type FlatViewFieldGroup } from 'src/engine/metadata-modules/flat-view-field-group/types/flat-view-field-group.type'; +import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type'; +import { computeStandardCompanyViewFieldGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-company-view-field-groups.util'; +import { computeStandardNoteViewFieldGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-note-view-field-groups.util'; +import { computeStandardOpportunityViewFieldGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-opportunity-view-field-groups.util'; +import { computeStandardPersonViewFieldGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-person-view-field-groups.util'; +import { computeStandardTaskViewFieldGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-task-view-field-groups.util'; +import { type CreateStandardViewFieldGroupArgs } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/create-standard-view-field-group-flat-metadata.util'; + +type StandardViewFieldGroupBuilder

= ( + args: Omit, 'context'>, +) => Record; + +const STANDARD_FLAT_VIEW_FIELD_GROUP_METADATA_BUILDERS_BY_OBJECT_NAME = { + company: computeStandardCompanyViewFieldGroups, + person: computeStandardPersonViewFieldGroups, + opportunity: computeStandardOpportunityViewFieldGroups, + task: computeStandardTaskViewFieldGroups, + note: computeStandardNoteViewFieldGroups, +} as const satisfies { + [P in AllStandardObjectName]?: StandardViewFieldGroupBuilder

; +}; + +export type BuildStandardFlatViewFieldGroupMetadataMapsArgs = Omit< + CreateStandardViewFieldGroupArgs, + 'context' | 'objectName' +> & { + shouldIncludeRecordPageLayouts?: boolean; +}; + +export const buildStandardFlatViewFieldGroupMetadataMaps = ({ + shouldIncludeRecordPageLayouts, + ...args +}: BuildStandardFlatViewFieldGroupMetadataMapsArgs): FlatEntityMaps => { + if (!shouldIncludeRecordPageLayouts) { + return createEmptyFlatEntityMaps(); + } + + const allViewFieldGroupMetadatas: FlatViewFieldGroup[] = ( + Object.keys( + STANDARD_FLAT_VIEW_FIELD_GROUP_METADATA_BUILDERS_BY_OBJECT_NAME, + ) as (keyof typeof STANDARD_FLAT_VIEW_FIELD_GROUP_METADATA_BUILDERS_BY_OBJECT_NAME)[] + ).flatMap((objectName) => { + const builder: StandardViewFieldGroupBuilder = + STANDARD_FLAT_VIEW_FIELD_GROUP_METADATA_BUILDERS_BY_OBJECT_NAME[ + objectName + ]; + + const result = builder({ + ...args, + objectName, + }); + + return Object.values(result); + }); + + let flatViewFieldGroupMaps = createEmptyFlatEntityMaps(); + + for (const viewFieldGroupMetadata of allViewFieldGroupMetadatas) { + flatViewFieldGroupMaps = addFlatEntityToFlatEntityMapsOrThrow({ + flatEntity: viewFieldGroupMetadata, + flatEntityMaps: flatViewFieldGroupMaps, + }); + } + + return flatViewFieldGroupMaps; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-company-view-field-groups.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-company-view-field-groups.util.ts new file mode 100644 index 0000000000..0d191a3e74 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-company-view-field-groups.util.ts @@ -0,0 +1,47 @@ +import { type FlatViewFieldGroup } from 'src/engine/metadata-modules/flat-view-field-group/types/flat-view-field-group.type'; +import { + createStandardViewFieldGroupFlatMetadata, + type CreateStandardViewFieldGroupArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/create-standard-view-field-group-flat-metadata.util'; + +export const computeStandardCompanyViewFieldGroups = ( + args: Omit, 'context'>, +): Record => { + return { + companyRecordPageFieldsGeneral: createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + viewFieldGroupName: 'general', + name: 'General', + position: 0, + isVisible: true, + }, + }), + companyRecordPageFieldsAdditional: createStandardViewFieldGroupFlatMetadata( + { + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + viewFieldGroupName: 'additional', + name: 'Additional', + position: 1, + isVisible: true, + }, + }, + ), + companyRecordPageFieldsOther: createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + viewFieldGroupName: 'other', + name: 'Other', + position: 2, + isVisible: true, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-note-view-field-groups.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-note-view-field-groups.util.ts new file mode 100644 index 0000000000..194bc65110 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-note-view-field-groups.util.ts @@ -0,0 +1,45 @@ +import { type FlatViewFieldGroup } from 'src/engine/metadata-modules/flat-view-field-group/types/flat-view-field-group.type'; +import { + createStandardViewFieldGroupFlatMetadata, + type CreateStandardViewFieldGroupArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/create-standard-view-field-group-flat-metadata.util'; + +export const computeStandardNoteViewFieldGroups = ( + args: Omit, 'context'>, +): Record => { + return { + noteRecordPageFieldsGeneral: createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'note', + context: { + viewName: 'noteRecordPageFields', + viewFieldGroupName: 'general', + name: 'General', + position: 0, + isVisible: true, + }, + }), + noteRecordPageFieldsAdditional: createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'note', + context: { + viewName: 'noteRecordPageFields', + viewFieldGroupName: 'additional', + name: 'Additional', + position: 1, + isVisible: true, + }, + }), + noteRecordPageFieldsOther: createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'note', + context: { + viewName: 'noteRecordPageFields', + viewFieldGroupName: 'other', + name: 'Other', + position: 2, + isVisible: true, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-opportunity-view-field-groups.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-opportunity-view-field-groups.util.ts new file mode 100644 index 0000000000..1073e63c94 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-opportunity-view-field-groups.util.ts @@ -0,0 +1,47 @@ +import { type FlatViewFieldGroup } from 'src/engine/metadata-modules/flat-view-field-group/types/flat-view-field-group.type'; +import { + createStandardViewFieldGroupFlatMetadata, + type CreateStandardViewFieldGroupArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/create-standard-view-field-group-flat-metadata.util'; + +export const computeStandardOpportunityViewFieldGroups = ( + args: Omit, 'context'>, +): Record => { + return { + opportunityRecordPageFieldsGeneral: + createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'opportunityRecordPageFields', + viewFieldGroupName: 'general', + name: 'General', + position: 0, + isVisible: true, + }, + }), + opportunityRecordPageFieldsAdditional: + createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'opportunityRecordPageFields', + viewFieldGroupName: 'additional', + name: 'Additional', + position: 1, + isVisible: true, + }, + }), + opportunityRecordPageFieldsOther: createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'opportunityRecordPageFields', + viewFieldGroupName: 'other', + name: 'Other', + position: 2, + isVisible: true, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-person-view-field-groups.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-person-view-field-groups.util.ts new file mode 100644 index 0000000000..6bde611a71 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-person-view-field-groups.util.ts @@ -0,0 +1,45 @@ +import { type FlatViewFieldGroup } from 'src/engine/metadata-modules/flat-view-field-group/types/flat-view-field-group.type'; +import { + createStandardViewFieldGroupFlatMetadata, + type CreateStandardViewFieldGroupArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/create-standard-view-field-group-flat-metadata.util'; + +export const computeStandardPersonViewFieldGroups = ( + args: Omit, 'context'>, +): Record => { + return { + personRecordPageFieldsGeneral: createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + viewFieldGroupName: 'general', + name: 'General', + position: 0, + isVisible: true, + }, + }), + personRecordPageFieldsAdditional: createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + viewFieldGroupName: 'additional', + name: 'Additional', + position: 1, + isVisible: true, + }, + }), + personRecordPageFieldsOther: createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + viewFieldGroupName: 'other', + name: 'Other', + position: 2, + isVisible: true, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-task-view-field-groups.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-task-view-field-groups.util.ts new file mode 100644 index 0000000000..5633926886 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-task-view-field-groups.util.ts @@ -0,0 +1,45 @@ +import { type FlatViewFieldGroup } from 'src/engine/metadata-modules/flat-view-field-group/types/flat-view-field-group.type'; +import { + createStandardViewFieldGroupFlatMetadata, + type CreateStandardViewFieldGroupArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/create-standard-view-field-group-flat-metadata.util'; + +export const computeStandardTaskViewFieldGroups = ( + args: Omit, 'context'>, +): Record => { + return { + taskRecordPageFieldsGeneral: createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'task', + context: { + viewName: 'taskRecordPageFields', + viewFieldGroupName: 'general', + name: 'General', + position: 0, + isVisible: true, + }, + }), + taskRecordPageFieldsAdditional: createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'task', + context: { + viewName: 'taskRecordPageFields', + viewFieldGroupName: 'additional', + name: 'Additional', + position: 1, + isVisible: true, + }, + }), + taskRecordPageFieldsOther: createStandardViewFieldGroupFlatMetadata({ + ...args, + objectName: 'task', + context: { + viewName: 'taskRecordPageFields', + viewFieldGroupName: 'other', + name: 'Other', + position: 2, + isVisible: true, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/create-standard-view-field-group-flat-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/create-standard-view-field-group-flat-metadata.util.ts new file mode 100644 index 0000000000..2e795e8f1e --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/create-standard-view-field-group-flat-metadata.util.ts @@ -0,0 +1,76 @@ +import { STANDARD_OBJECTS } from 'twenty-shared/metadata'; +import { isDefined } from 'twenty-shared/utils'; + +import { type FlatViewFieldGroup } from 'src/engine/metadata-modules/flat-view-field-group/types/flat-view-field-group.type'; +import { TWENTY_STANDARD_APPLICATION } from 'src/engine/workspace-manager/twenty-standard-application/constants/twenty-standard-applications'; +import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type'; +import { type AllStandardObjectViewFieldGroupName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view-field-group-name.type'; +import { type AllStandardObjectViewName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view-name.type'; +import { type StandardBuilderArgs } from 'src/engine/workspace-manager/twenty-standard-application/types/metadata-standard-buillder-args.type'; + +type CreateStandardViewFieldGroupOptions< + O extends AllStandardObjectName, + V extends AllStandardObjectViewName, +> = { + viewName: V; + viewFieldGroupName: AllStandardObjectViewFieldGroupName; + name: string; + position: number; + isVisible: boolean; +}; + +export type CreateStandardViewFieldGroupArgs< + O extends AllStandardObjectName = AllStandardObjectName, + V extends AllStandardObjectViewName = AllStandardObjectViewName, +> = StandardBuilderArgs<'viewFieldGroup'> & { + objectName: O; + context: CreateStandardViewFieldGroupOptions; +}; + +export const createStandardViewFieldGroupFlatMetadata = < + O extends AllStandardObjectName, + V extends AllStandardObjectViewName, +>({ + workspaceId, + objectName, + context: { viewName, viewFieldGroupName, name, position, isVisible }, + standardObjectMetadataRelatedEntityIds, + twentyStandardApplicationId, + now, +}: CreateStandardViewFieldGroupArgs): FlatViewFieldGroup => { + // @ts-expect-error ignore + const viewDefinition = STANDARD_OBJECTS[objectName].views[viewName] as { + universalIdentifier: string; + viewFieldGroups: Record; + }; + + const viewFieldGroupDefinition = + viewDefinition.viewFieldGroups[viewFieldGroupName as string]; + + if (!isDefined(viewFieldGroupDefinition)) { + throw new Error( + `Invalid configuration ${objectName} ${viewName.toString()} ${String(viewFieldGroupName)}`, + ); + } + + return { + id: standardObjectMetadataRelatedEntityIds[objectName].views[viewName] + .viewFieldGroups[viewFieldGroupName].id, + viewFieldIds: [], + viewFieldUniversalIdentifiers: [], + universalIdentifier: viewFieldGroupDefinition.universalIdentifier, + applicationId: twentyStandardApplicationId, + applicationUniversalIdentifier: + TWENTY_STANDARD_APPLICATION.universalIdentifier, + workspaceId, + viewId: + standardObjectMetadataRelatedEntityIds[objectName].views[viewName].id, + viewUniversalIdentifier: viewDefinition.universalIdentifier, + name, + position, + isVisible, + createdAt: now, + updatedAt: now, + deletedAt: null, + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/build-standard-flat-view-field-metadata-maps.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/build-standard-flat-view-field-metadata-maps.util.ts index 788a6b2358..c4e829fcb5 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/build-standard-flat-view-field-metadata-maps.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/build-standard-flat-view-field-metadata-maps.util.ts @@ -1,3 +1,5 @@ +import { isDefined } from 'twenty-shared/utils'; + import { createEmptyFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/constant/create-empty-flat-entity-maps.constant'; import { type FlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-maps.type'; import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-maps-or-throw.util'; @@ -38,9 +40,17 @@ const STANDARD_FLAT_VIEW_FIELD_METADATA_BUILDERS_BY_OBJECT_NAME = { [P in AllStandardObjectName]?: StandardViewFieldBuilder

; }; -export const buildStandardFlatViewFieldMetadataMaps = ( - args: Omit, -): FlatEntityMaps => { +export type BuildStandardFlatViewFieldMetadataMapsArgs = Omit< + CreateStandardViewFieldArgs, + 'context' | 'objectName' +> & { + shouldIncludeRecordPageLayouts?: boolean; +}; + +export const buildStandardFlatViewFieldMetadataMaps = ({ + shouldIncludeRecordPageLayouts, + ...args +}: BuildStandardFlatViewFieldMetadataMapsArgs): FlatEntityMaps => { const allViewFieldMetadatas: FlatViewField[] = ( Object.keys( STANDARD_FLAT_VIEW_FIELD_METADATA_BUILDERS_BY_OBJECT_NAME, @@ -54,7 +64,15 @@ export const buildStandardFlatViewFieldMetadataMaps = ( objectName, }); - return Object.values(result); + return Object.values(result).filter( + (viewField) => + shouldIncludeRecordPageLayouts || + isDefined( + args.dependencyFlatEntityMaps.flatViewMaps.byUniversalIdentifier[ + viewField.viewUniversalIdentifier + ], + ), + ); }); let flatViewFieldMaps = createEmptyFlatEntityMaps(); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-company-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-company-view-fields.util.ts index fc1aef098d..8b5b2902fe 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-company-view-fields.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-company-view-fields.util.ts @@ -9,6 +9,7 @@ export const computeStandardCompanyViewFields = ( args: Omit, 'context'>, ): Record => { return { + // allCompanies view fields allCompaniesName: createStandardViewFieldFlatMetadata({ ...args, objectName: 'company', @@ -109,5 +110,139 @@ export const computeStandardCompanyViewFields = ( aggregateOperation: AggregateOperations.COUNT_NOT_EMPTY, }, }), + + // companyRecordPageFields view fields + companyRecordPageFieldsDomainName: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + viewFieldName: 'domainName', + fieldName: 'domainName', + position: 0, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + companyRecordPageFieldsAccountOwner: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + viewFieldName: 'accountOwner', + fieldName: 'accountOwner', + position: 1, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + companyRecordPageFieldsAnnualRecurringRevenue: + createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + viewFieldName: 'annualRecurringRevenue', + fieldName: 'annualRecurringRevenue', + position: 2, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + companyRecordPageFieldsIdealCustomerProfile: + createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + viewFieldName: 'idealCustomerProfile', + fieldName: 'idealCustomerProfile', + position: 0, + isVisible: false, + size: 150, + viewFieldGroupName: 'additional', + }, + }), + companyRecordPageFieldsEmployees: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + viewFieldName: 'employees', + fieldName: 'employees', + position: 0, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), + companyRecordPageFieldsLinkedinLink: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + viewFieldName: 'linkedinLink', + fieldName: 'linkedinLink', + position: 1, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), + companyRecordPageFieldsXLink: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + viewFieldName: 'xLink', + fieldName: 'xLink', + position: 2, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), + companyRecordPageFieldsAddress: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + viewFieldName: 'address', + fieldName: 'address', + position: 3, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), + companyRecordPageFieldsCreatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + viewFieldName: 'createdAt', + fieldName: 'createdAt', + position: 4, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), + companyRecordPageFieldsCreatedBy: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + viewFieldName: 'createdBy', + fieldName: 'createdBy', + position: 5, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), }; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-note-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-note-view-fields.util.ts index ddedc184e4..a7f4a3c6e9 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-note-view-fields.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-note-view-fields.util.ts @@ -68,5 +68,46 @@ export const computeStandardNoteViewFields = ( size: 150, }, }), + + // noteRecordPageFields view fields + noteRecordPageFieldsTitle: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'note', + context: { + viewName: 'noteRecordPageFields', + viewFieldName: 'title', + fieldName: 'title', + position: 0, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + noteRecordPageFieldsCreatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'note', + context: { + viewName: 'noteRecordPageFields', + viewFieldName: 'createdAt', + fieldName: 'createdAt', + position: 0, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), + noteRecordPageFieldsCreatedBy: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'note', + context: { + viewName: 'noteRecordPageFields', + viewFieldName: 'createdBy', + fieldName: 'createdBy', + position: 1, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), }; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-opportunity-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-opportunity-view-fields.util.ts index eae3a5a993..f95ed00184 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-opportunity-view-fields.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-opportunity-view-fields.util.ts @@ -158,5 +158,112 @@ export const computeStandardOpportunityViewFields = ( size: 150, }, }), + + // opportunityRecordPageFields view fields + opportunityRecordPageFieldsAmount: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'opportunityRecordPageFields', + viewFieldName: 'amount', + fieldName: 'amount', + position: 0, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + opportunityRecordPageFieldsCloseDate: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'opportunityRecordPageFields', + viewFieldName: 'closeDate', + fieldName: 'closeDate', + position: 1, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + opportunityRecordPageFieldsStage: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'opportunityRecordPageFields', + viewFieldName: 'stage', + fieldName: 'stage', + position: 2, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + opportunityRecordPageFieldsCompany: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'opportunityRecordPageFields', + viewFieldName: 'company', + fieldName: 'company', + position: 3, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + opportunityRecordPageFieldsPointOfContact: + createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'opportunityRecordPageFields', + viewFieldName: 'pointOfContact', + fieldName: 'pointOfContact', + position: 0, + isVisible: true, + size: 150, + viewFieldGroupName: 'additional', + }, + }), + opportunityRecordPageFieldsOwner: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'opportunityRecordPageFields', + viewFieldName: 'owner', + fieldName: 'owner', + position: 1, + isVisible: true, + size: 150, + viewFieldGroupName: 'additional', + }, + }), + opportunityRecordPageFieldsCreatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'opportunityRecordPageFields', + viewFieldName: 'createdAt', + fieldName: 'createdAt', + position: 0, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), + opportunityRecordPageFieldsCreatedBy: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'opportunityRecordPageFields', + viewFieldName: 'createdBy', + fieldName: 'createdBy', + position: 1, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), }; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-person-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-person-view-fields.util.ts index bf98a8f245..212140d5aa 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-person-view-fields.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-person-view-fields.util.ts @@ -9,6 +9,7 @@ export const computeStandardPersonViewFields = ( args: Omit, 'context'>, ): Record => { return { + // allPeople view fields allPeopleName: createStandardViewFieldFlatMetadata({ ...args, objectName: 'person', @@ -132,5 +133,137 @@ export const computeStandardPersonViewFields = ( size: 150, }, }), + + // personRecordPageFields view fields + personRecordPageFieldsEmails: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + viewFieldName: 'emails', + fieldName: 'emails', + position: 0, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + personRecordPageFieldsPhones: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + viewFieldName: 'phones', + fieldName: 'phones', + position: 1, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + personRecordPageFieldsCompany: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + viewFieldName: 'company', + fieldName: 'company', + position: 2, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + personRecordPageFieldsJobTitle: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + viewFieldName: 'jobTitle', + fieldName: 'jobTitle', + position: 3, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + personRecordPageFieldsLinkedinLink: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + viewFieldName: 'linkedinLink', + fieldName: 'linkedinLink', + position: 0, + isVisible: true, + size: 150, + viewFieldGroupName: 'additional', + }, + }), + personRecordPageFieldsXLink: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + viewFieldName: 'xLink', + fieldName: 'xLink', + position: 1, + isVisible: true, + size: 150, + viewFieldGroupName: 'additional', + }, + }), + personRecordPageFieldsCity: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + viewFieldName: 'city', + fieldName: 'city', + position: 0, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), + personRecordPageFieldsAvatarUrl: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + viewFieldName: 'avatarUrl', + fieldName: 'avatarUrl', + position: 1, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), + personRecordPageFieldsCreatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + viewFieldName: 'createdAt', + fieldName: 'createdAt', + position: 2, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), + personRecordPageFieldsCreatedBy: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + viewFieldName: 'createdBy', + fieldName: 'createdBy', + position: 3, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), }; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-task-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-task-view-fields.util.ts index 3d752f2591..3e75457fd2 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-task-view-fields.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-task-view-fields.util.ts @@ -253,5 +253,85 @@ export const computeStandardTaskViewFields = ( size: 150, }, }), + + // taskRecordPageFields view fields + taskRecordPageFieldsTitle: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'task', + context: { + viewName: 'taskRecordPageFields', + viewFieldName: 'title', + fieldName: 'title', + position: 0, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + taskRecordPageFieldsDueAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'task', + context: { + viewName: 'taskRecordPageFields', + viewFieldName: 'dueAt', + fieldName: 'dueAt', + position: 1, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + taskRecordPageFieldsStatus: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'task', + context: { + viewName: 'taskRecordPageFields', + viewFieldName: 'status', + fieldName: 'status', + position: 2, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + taskRecordPageFieldsAssignee: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'task', + context: { + viewName: 'taskRecordPageFields', + viewFieldName: 'assignee', + fieldName: 'assignee', + position: 3, + isVisible: true, + size: 150, + viewFieldGroupName: 'general', + }, + }), + taskRecordPageFieldsCreatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'task', + context: { + viewName: 'taskRecordPageFields', + viewFieldName: 'createdAt', + fieldName: 'createdAt', + position: 0, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), + taskRecordPageFieldsCreatedBy: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'task', + context: { + viewName: 'taskRecordPageFields', + viewFieldName: 'createdBy', + fieldName: 'createdBy', + position: 1, + isVisible: true, + size: 150, + viewFieldGroupName: 'other', + }, + }), }; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util.ts index 6b79e83c0f..0d25af6550 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util.ts @@ -7,6 +7,7 @@ import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/ import { TWENTY_STANDARD_APPLICATION } from 'src/engine/workspace-manager/twenty-standard-application/constants/twenty-standard-applications'; import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type'; import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type'; +import { type AllStandardObjectViewFieldGroupName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view-field-group-name.type'; import { type AllStandardObjectViewFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view-field-name.type'; import { type AllStandardObjectViewName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-view-name.type'; import { type StandardBuilderArgs } from 'src/engine/workspace-manager/twenty-standard-application/types/metadata-standard-buillder-args.type'; @@ -22,6 +23,7 @@ export type CreateStandardViewFieldOptions< isVisible: boolean; size: number; aggregateOperation?: AggregateOperations | null; + viewFieldGroupName?: AllStandardObjectViewFieldGroupName | null; }; export type CreateStandardViewFieldArgs< @@ -46,6 +48,7 @@ export const createStandardViewFieldFlatMetadata = < isVisible, size, aggregateOperation = null, + viewFieldGroupName = null, }, standardObjectMetadataRelatedEntityIds, twentyStandardApplicationId, @@ -61,6 +64,7 @@ export const createStandardViewFieldFlatMetadata = < { universalIdentifier: string; viewFields: Record; + viewFieldGroups?: Record; } >; }; @@ -75,6 +79,28 @@ export const createStandardViewFieldFlatMetadata = < ); } + let viewFieldGroupId: string | null = null; + let viewFieldGroupUniversalIdentifier: string | null = null; + + if (isDefined(viewFieldGroupName)) { + const viewFieldGroupDefinition = + viewDefinition.viewFieldGroups?.[viewFieldGroupName as string]; + + if (!isDefined(viewFieldGroupDefinition)) { + throw new Error( + `Invalid view field group ${objectName} ${viewName.toString()} ${String(viewFieldGroupName)}`, + ); + } + + viewFieldGroupUniversalIdentifier = + viewFieldGroupDefinition.universalIdentifier; + + viewFieldGroupId = ( + standardObjectMetadataRelatedEntityIds[objectName].views[viewName] + .viewFieldGroups as Record + )[viewFieldGroupName as string].id; + } + return { id: v4(), universalIdentifier: viewFieldDefinition.universalIdentifier, @@ -88,8 +114,8 @@ export const createStandardViewFieldFlatMetadata = < fieldMetadataId: standardObjectMetadataRelatedEntityIds[objectName].fields[fieldName].id, fieldMetadataUniversalIdentifier: fieldDefinition.universalIdentifier, - viewFieldGroupId: null, - viewFieldGroupUniversalIdentifier: null, + viewFieldGroupId, + viewFieldGroupUniversalIdentifier, position, isVisible, size, diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/build-standard-flat-view-metadata-maps.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/build-standard-flat-view-metadata-maps.util.ts index 5f06145d36..9bbea2fccb 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/build-standard-flat-view-metadata-maps.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/build-standard-flat-view-metadata-maps.util.ts @@ -2,6 +2,7 @@ import { createEmptyFlatEntityMaps } from 'src/engine/metadata-modules/flat-enti import { type FlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-maps.type'; import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-maps-or-throw.util'; import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type'; +import { ViewType } from 'src/engine/metadata-modules/view/enums/view-type.enum'; import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type'; import { computeStandardCalendarEventViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-calendar-event-views.util'; import { computeStandardCompanyViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-company-views.util'; @@ -38,9 +39,17 @@ const STANDARD_FLAT_VIEW_METADATA_BUILDERS_BY_OBJECT_NAME = { [P in AllStandardObjectName]?: StandardViewBuilder

; }; -export const buildStandardFlatViewMetadataMaps = ( - args: Omit, -): FlatEntityMaps => { +export type BuildStandardFlatViewMetadataMapsArgs = Omit< + CreateStandardViewArgs, + 'context' | 'objectName' +> & { + shouldIncludeRecordPageLayouts?: boolean; +}; + +export const buildStandardFlatViewMetadataMaps = ({ + shouldIncludeRecordPageLayouts, + ...args +}: BuildStandardFlatViewMetadataMapsArgs): FlatEntityMaps => { const allViewMetadatas: FlatView[] = ( Object.keys( STANDARD_FLAT_VIEW_METADATA_BUILDERS_BY_OBJECT_NAME, @@ -54,7 +63,10 @@ export const buildStandardFlatViewMetadataMaps = ( objectName, }); - return Object.values(result); + return Object.values(result).filter( + (view) => + shouldIncludeRecordPageLayouts || view.type !== ViewType.FIELDS_WIDGET, + ); }); let flatViewMaps = createEmptyFlatEntityMaps(); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-company-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-company-views.util.ts index a4044234d5..2e6b4cd8c3 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-company-views.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-company-views.util.ts @@ -22,5 +22,17 @@ export const computeStandardCompanyViews = ( icon: 'IconList', }, }), + companyRecordPageFields: createStandardViewFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'companyRecordPageFields', + name: 'Company Record Page Fields', + type: ViewType.FIELDS_WIDGET, + key: null, + position: 0, + icon: 'IconList', + }, + }), }; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-note-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-note-views.util.ts index a0c4fd676b..3fab3e7b87 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-note-views.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-note-views.util.ts @@ -22,5 +22,17 @@ export const computeStandardNoteViews = ( icon: 'IconNotes', }, }), + noteRecordPageFields: createStandardViewFlatMetadata({ + ...args, + objectName: 'note', + context: { + viewName: 'noteRecordPageFields', + name: 'Note Record Page Fields', + type: ViewType.FIELDS_WIDGET, + key: null, + position: 0, + icon: 'IconList', + }, + }), }; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-opportunity-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-opportunity-views.util.ts index 445b962858..75bf0d2f63 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-opportunity-views.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-opportunity-views.util.ts @@ -38,5 +38,17 @@ export const computeStandardOpportunityViews = ( kanbanAggregateOperationFieldName: 'amount', }, }), + opportunityRecordPageFields: createStandardViewFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'opportunityRecordPageFields', + name: 'Opportunity Record Page Fields', + type: ViewType.FIELDS_WIDGET, + key: null, + position: 0, + icon: 'IconList', + }, + }), }; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-person-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-person-views.util.ts index e83a3d91ae..3e668b37f8 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-person-views.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-person-views.util.ts @@ -22,5 +22,17 @@ export const computeStandardPersonViews = ( icon: 'IconList', }, }), + personRecordPageFields: createStandardViewFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'personRecordPageFields', + name: 'Person Record Page Fields', + type: ViewType.FIELDS_WIDGET, + key: null, + position: 0, + icon: 'IconList', + }, + }), }; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-task-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-task-views.util.ts index 0a186e68d6..8dd7210f1f 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-task-views.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-task-views.util.ts @@ -48,5 +48,17 @@ export const computeStandardTaskViews = ( mainGroupByFieldName: 'status', }, }), + taskRecordPageFields: createStandardViewFlatMetadata({ + ...args, + objectName: 'task', + context: { + viewName: 'taskRecordPageFields', + name: 'Task Record Page Fields', + type: ViewType.FIELDS_WIDGET, + key: null, + position: 0, + icon: 'IconList', + }, + }), }; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration/services/workspace-migration-build-orchestrator.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration/services/workspace-migration-build-orchestrator.service.ts index e04b283c18..a0abc73c11 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration/services/workspace-migration-build-orchestrator.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration/services/workspace-migration-build-orchestrator.service.ts @@ -311,6 +311,41 @@ export class WorkspaceMigrationBuildOrchestratorService { } } + if (isDefined(flatViewFieldGroupMaps)) { + const { from: fromFlatViewFieldGroupMaps, to: toFlatViewFieldGroupMaps } = + flatViewFieldGroupMaps; + + const viewFieldGroupResult = + await this.workspaceMigrationViewFieldGroupActionsBuilderService.validateAndBuild( + { + additionalCacheDataMaps, + from: fromFlatViewFieldGroupMaps, + to: toFlatViewFieldGroupMaps, + buildOptions, + dependencyOptimisticFlatEntityMaps: { + flatViewMaps: optimisticAllFlatEntityMaps.flatViewMaps, + }, + workspaceId, + }, + ); + + this.mergeFlatEntityMapsAndRelatedFlatEntityMapsInAllFlatEntityMapsThroughMutation( + { + allFlatEntityMaps: optimisticAllFlatEntityMaps, + flatEntityMapsAndRelatedFlatEntityMaps: + viewFieldGroupResult.optimisticFlatEntityMapsAndRelatedFlatEntityMaps, + }, + ); + + if (viewFieldGroupResult.status === 'fail') { + orchestratorFailureReport.viewFieldGroup.push( + ...viewFieldGroupResult.errors, + ); + } else { + orchestratorActionsReport.viewFieldGroup = viewFieldGroupResult.actions; + } + } + if (isDefined(flatViewFieldMaps)) { const { from: fromFlatViewFieldMaps, to: toFlatViewFieldMaps } = flatViewFieldMaps; @@ -457,41 +492,6 @@ export class WorkspaceMigrationBuildOrchestratorService { } } - if (isDefined(flatViewFieldGroupMaps)) { - const { from: fromFlatViewFieldGroupMaps, to: toFlatViewFieldGroupMaps } = - flatViewFieldGroupMaps; - - const viewFieldGroupResult = - await this.workspaceMigrationViewFieldGroupActionsBuilderService.validateAndBuild( - { - additionalCacheDataMaps, - from: fromFlatViewFieldGroupMaps, - to: toFlatViewFieldGroupMaps, - buildOptions, - dependencyOptimisticFlatEntityMaps: { - flatViewMaps: optimisticAllFlatEntityMaps.flatViewMaps, - }, - workspaceId, - }, - ); - - this.mergeFlatEntityMapsAndRelatedFlatEntityMapsInAllFlatEntityMapsThroughMutation( - { - allFlatEntityMaps: optimisticAllFlatEntityMaps, - flatEntityMapsAndRelatedFlatEntityMaps: - viewFieldGroupResult.optimisticFlatEntityMapsAndRelatedFlatEntityMaps, - }, - ); - - if (viewFieldGroupResult.status === 'fail') { - orchestratorFailureReport.viewFieldGroup.push( - ...viewFieldGroupResult.errors, - ); - } else { - orchestratorActionsReport.viewFieldGroup = viewFieldGroupResult.actions; - } - } - if (isDefined(flatRowLevelPermissionPredicateGroupMaps)) { const { from: fromFlatRowLevelPermissionPredicateGroupMaps, @@ -1032,6 +1032,9 @@ export class WorkspaceMigrationBuildOrchestratorService { ...aggregatedOrchestratorActionsReport.view.create, ...aggregatedOrchestratorActionsReport.view.update, ...aggregatedOrchestratorActionsReport.viewField.delete, + ...aggregatedOrchestratorActionsReport.viewFieldGroup.delete, + ...aggregatedOrchestratorActionsReport.viewFieldGroup.create, + ...aggregatedOrchestratorActionsReport.viewFieldGroup.update, ...aggregatedOrchestratorActionsReport.viewField.create, ...aggregatedOrchestratorActionsReport.viewField.update, ...aggregatedOrchestratorActionsReport.viewFilterGroup.delete, @@ -1043,9 +1046,6 @@ export class WorkspaceMigrationBuildOrchestratorService { ...aggregatedOrchestratorActionsReport.viewGroup.delete, ...aggregatedOrchestratorActionsReport.viewGroup.create, ...aggregatedOrchestratorActionsReport.viewGroup.update, - ...aggregatedOrchestratorActionsReport.viewFieldGroup.delete, - ...aggregatedOrchestratorActionsReport.viewFieldGroup.create, - ...aggregatedOrchestratorActionsReport.viewFieldGroup.update, /// // Logic functions diff --git a/packages/twenty-shared/src/metadata/standard-object.constant.ts b/packages/twenty-shared/src/metadata/standard-object.constant.ts index c735481808..bee32316f3 100644 --- a/packages/twenty-shared/src/metadata/standard-object.constant.ts +++ b/packages/twenty-shared/src/metadata/standard-object.constant.ts @@ -440,6 +440,52 @@ export const STANDARD_OBJECTS = { }, }, }, + companyRecordPageFields: { + universalIdentifier: '20202020-a001-4a01-8a01-c0aba11c1001', + viewFieldGroups: { + general: { + universalIdentifier: '20202020-a001-4a01-8a01-c0aba11c1101', + }, + additional: { + universalIdentifier: '20202020-a001-4a01-8a01-c0aba11c1102', + }, + other: { + universalIdentifier: '20202020-a001-4a01-8a01-c0aba11c1103', + }, + }, + viewFields: { + domainName: { + universalIdentifier: '20202020-af01-4a01-8a01-c0aba11c1201', + }, + accountOwner: { + universalIdentifier: '20202020-af01-4a01-8a01-c0aba11c1202', + }, + annualRecurringRevenue: { + universalIdentifier: '20202020-af01-4a01-8a01-c0aba11c1203', + }, + idealCustomerProfile: { + universalIdentifier: '20202020-af01-4a01-8a01-c0aba11c1204', + }, + employees: { + universalIdentifier: '20202020-af01-4a01-8a01-c0aba11c1205', + }, + linkedinLink: { + universalIdentifier: '20202020-af01-4a01-8a01-c0aba11c1206', + }, + xLink: { + universalIdentifier: '20202020-af01-4a01-8a01-c0aba11c1207', + }, + address: { + universalIdentifier: '20202020-af01-4a01-8a01-c0aba11c1208', + }, + createdAt: { + universalIdentifier: '20202020-af01-4a01-8a01-c0aba11c1209', + }, + createdBy: { + universalIdentifier: '20202020-af01-4a01-8a01-c0aba11c1210', + }, + }, + }, }, }, connectedAccount: { @@ -1035,6 +1081,31 @@ export const STANDARD_OBJECTS = { }, }, }, + noteRecordPageFields: { + universalIdentifier: '20202020-a005-4a05-8a05-a0be5a115001', + viewFieldGroups: { + general: { + universalIdentifier: '20202020-a005-4a05-8a05-a0be5a115101', + }, + additional: { + universalIdentifier: '20202020-a005-4a05-8a05-a0be5a115102', + }, + other: { + universalIdentifier: '20202020-a005-4a05-8a05-a0be5a115103', + }, + }, + viewFields: { + title: { + universalIdentifier: '20202020-af05-4a05-8a05-a0be5a115201', + }, + createdAt: { + universalIdentifier: '20202020-af05-4a05-8a05-a0be5a115202', + }, + createdBy: { + universalIdentifier: '20202020-af05-4a05-8a05-a0be5a115203', + }, + }, + }, }, }, noteTarget: { @@ -1209,6 +1280,46 @@ export const STANDARD_OBJECTS = { }, }, }, + opportunityRecordPageFields: { + universalIdentifier: '20202020-a003-4a03-8a03-0aa0b1ca3001', + viewFieldGroups: { + general: { + universalIdentifier: '20202020-a003-4a03-8a03-0aa0b1ca3101', + }, + additional: { + universalIdentifier: '20202020-a003-4a03-8a03-0aa0b1ca3102', + }, + other: { + universalIdentifier: '20202020-a003-4a03-8a03-0aa0b1ca3103', + }, + }, + viewFields: { + amount: { + universalIdentifier: '20202020-af03-4a03-8a03-0aa0b1ca3201', + }, + closeDate: { + universalIdentifier: '20202020-af03-4a03-8a03-0aa0b1ca3202', + }, + stage: { + universalIdentifier: '20202020-af03-4a03-8a03-0aa0b1ca3203', + }, + company: { + universalIdentifier: '20202020-af03-4a03-8a03-0aa0b1ca3204', + }, + pointOfContact: { + universalIdentifier: '20202020-af03-4a03-8a03-0aa0b1ca3205', + }, + owner: { + universalIdentifier: '20202020-af03-4a03-8a03-0aa0b1ca3206', + }, + createdAt: { + universalIdentifier: '20202020-af03-4a03-8a03-0aa0b1ca3207', + }, + createdBy: { + universalIdentifier: '20202020-af03-4a03-8a03-0aa0b1ca3208', + }, + }, + }, }, }, person: { @@ -1322,6 +1433,52 @@ export const STANDARD_OBJECTS = { }, }, }, + personRecordPageFields: { + universalIdentifier: '20202020-a002-4a02-8a02-ae0a1ea12001', + viewFieldGroups: { + general: { + universalIdentifier: '20202020-a002-4a02-8a02-ae0a1ea12101', + }, + additional: { + universalIdentifier: '20202020-a002-4a02-8a02-ae0a1ea12102', + }, + other: { + universalIdentifier: '20202020-a002-4a02-8a02-ae0a1ea12103', + }, + }, + viewFields: { + emails: { + universalIdentifier: '20202020-af02-4a02-8a02-ae0a1ea12201', + }, + phones: { + universalIdentifier: '20202020-af02-4a02-8a02-ae0a1ea12202', + }, + company: { + universalIdentifier: '20202020-af02-4a02-8a02-ae0a1ea12203', + }, + jobTitle: { + universalIdentifier: '20202020-af02-4a02-8a02-ae0a1ea12204', + }, + linkedinLink: { + universalIdentifier: '20202020-af02-4a02-8a02-ae0a1ea12205', + }, + xLink: { + universalIdentifier: '20202020-af02-4a02-8a02-ae0a1ea12206', + }, + city: { + universalIdentifier: '20202020-af02-4a02-8a02-ae0a1ea12207', + }, + avatarUrl: { + universalIdentifier: '20202020-af02-4a02-8a02-ae0a1ea12208', + }, + createdAt: { + universalIdentifier: '20202020-af02-4a02-8a02-ae0a1ea12209', + }, + createdBy: { + universalIdentifier: '20202020-af02-4a02-8a02-ae0a1ea12210', + }, + }, + }, }, }, task: { @@ -1479,6 +1636,40 @@ export const STANDARD_OBJECTS = { }, }, }, + taskRecordPageFields: { + universalIdentifier: '20202020-a006-4a06-8a06-ba5ca11a6001', + viewFieldGroups: { + general: { + universalIdentifier: '20202020-a006-4a06-8a06-ba5ca11a6101', + }, + additional: { + universalIdentifier: '20202020-a006-4a06-8a06-ba5ca11a6102', + }, + other: { + universalIdentifier: '20202020-a006-4a06-8a06-ba5ca11a6103', + }, + }, + viewFields: { + title: { + universalIdentifier: '20202020-af06-4a06-8a06-ba5ca11a6201', + }, + dueAt: { + universalIdentifier: '20202020-af06-4a06-8a06-ba5ca11a6202', + }, + status: { + universalIdentifier: '20202020-af06-4a06-8a06-ba5ca11a6203', + }, + assignee: { + universalIdentifier: '20202020-af06-4a06-8a06-ba5ca11a6204', + }, + createdAt: { + universalIdentifier: '20202020-af06-4a06-8a06-ba5ca11a6205', + }, + createdBy: { + universalIdentifier: '20202020-af06-4a06-8a06-ba5ca11a6206', + }, + }, + }, }, }, taskTarget: {