From e8e81957a6f5f74968dd490ac0db0696d15a950f Mon Sep 17 00:00:00 2001 From: Paul Rastoin <45004772+prastoin@users.noreply.github.com> Date: Wed, 13 Aug 2025 11:20:17 +0200 Subject: [PATCH] `ObjectMetadataServiceV2.deleteOne` (#13871) # Introduction - Implementing the delete one for the new object metadata service v2. - Handling relation fields and fields in the first place to finally remove the object - puting back updatedAt and createdAt in flat metadatas - duplicate criteria addition for flat object - removing datasource id from object metadata dto --- .../src/generated-metadata/graphql.ts | 13 +- .../twenty-front/src/generated/graphql.ts | 1 - .../object-metadata/graphql/mutations.ts | 3 - .../object-metadata/graphql/queries.ts | 1 - .../useCreateOneObjectMetadataItem.ts | 2 - .../useDeleteOneObjectMetadataItem.ts | 2 - .../useFilteredObjectMetadataItems.ts | 2 - .../types/ObjectMetadataItem.ts | 1 - .../objectMetadataItemSchema.ts | 1 - .../components/__stories__/perf/mock.ts | 1 - .../generated/mock-metadata-query-result.ts | 39 -- .../src/testing/mock-data/workflow-run.ts | 11 - .../src/testing/mock-data/workflow.ts | 4 - .../services/field-metadata.service-v2.ts | 9 +- .../__mocks__/attachment-flat-fields.mock.ts | 40 +- .../__mocks__/company-flat-fields.mock.ts | 32 +- .../__mocks__/get-flat-field-metadata.mock.ts | 4 + .../__mocks__/note-flat-fields.mock.ts | 16 +- .../__mocks__/notetarget-flat-fields.mock.ts | 32 +- .../__mocks__/opportunity-flat-fields.mock.ts | 32 +- .../__mocks__/person-flat-fields.mock.ts | 36 +- .../__mocks__/pet-flat-fields.mock.ts | 20 +- .../__mocks__/rocket-flat-fields.mock.ts | 22 +- .../__mocks__/task-flat-fields.mock.ts | 20 +- .../__mocks__/tasktarget-flat-fields.mock.ts | 32 +- .../timelineactivity-flat-fields.mock.ts | 52 +-- .../types/flat-field-metadata.type.ts | 5 +- ...-to-flat-field-metadatas-to-delete.util.ts | 36 +- ...eld-metadata-to-field-metadata-dto.util.ts | 30 ++ ...d-metadata-from-create-field-input.util.ts | 4 + ...tion-flat-field-metadatas-or-throw.util.ts | 45 +++ .../get-flat-object-metadata.mock.ts | 5 + .../flat-object-metadata-validator.service.ts | 55 +++ .../types/flat-object-metadata.type.ts | 6 +- ...ject-input-to-flat-object-metadata.util.ts | 9 +- ...-to-flat-field-metadatas-to-delete.util.ts | 75 ++++ ...ct-metadata-to-object-metadata-dto.util.ts | 28 ++ .../dtos/object-metadata.dto.ts | 3 - .../object-metadata-v2.service.ts | 124 +++++- .../object-metadata.service.ts | 88 ++-- ...d-default-fields-for-custom-object.util.ts | 15 + .../workspace-migration-builder.spec.ts.snap | 377 +++++++++++------- .../workspace-migration-builder-v2.service.ts | 2 +- .../objects.integration-spec.ts | 1 - 44 files changed, 863 insertions(+), 473 deletions(-) create mode 100644 packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/from-flat-field-metadata-to-field-metadata-dto.util.ts create mode 100644 packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/get-relation-flat-field-metadatas-or-throw.util.ts create mode 100644 packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-delete-object-input-to-flat-field-metadatas-to-delete.util.ts create mode 100644 packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-to-object-metadata-dto.util.ts diff --git a/packages/twenty-front/src/generated-metadata/graphql.ts b/packages/twenty-front/src/generated-metadata/graphql.ts index b4cb1217e3..64754831eb 100644 --- a/packages/twenty-front/src/generated-metadata/graphql.ts +++ b/packages/twenty-front/src/generated-metadata/graphql.ts @@ -2143,7 +2143,6 @@ export type MutationVerifyTwoFactorAuthenticationMethodForAuthenticatedUserArgs export type Object = { __typename?: 'Object'; createdAt: Scalars['DateTime']; - dataSourceId: Scalars['UUID']; description?: Maybe; duplicateCriteria?: Maybe>>; fields: ObjectFieldsConnection; @@ -4185,7 +4184,7 @@ export type CreateOneObjectMetadataItemMutationVariables = Exact<{ }>; -export type CreateOneObjectMetadataItemMutation = { __typename?: 'Mutation', createOneObject: { __typename?: 'Object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, isSearchable: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, isLabelSyncedWithName: boolean } }; +export type CreateOneObjectMetadataItemMutation = { __typename?: 'Mutation', createOneObject: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, isSearchable: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, isLabelSyncedWithName: boolean } }; export type CreateOneFieldMetadataItemMutationVariables = Exact<{ input: CreateOneFieldMetadataInput; @@ -4208,14 +4207,14 @@ export type UpdateOneObjectMetadataItemMutationVariables = Exact<{ }>; -export type UpdateOneObjectMetadataItemMutation = { __typename?: 'Mutation', updateOneObject: { __typename?: 'Object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, isSearchable: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, isLabelSyncedWithName: boolean } }; +export type UpdateOneObjectMetadataItemMutation = { __typename?: 'Mutation', updateOneObject: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, isSearchable: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, isLabelSyncedWithName: boolean } }; export type DeleteOneObjectMetadataItemMutationVariables = Exact<{ idToDelete: Scalars['UUID']; }>; -export type DeleteOneObjectMetadataItemMutation = { __typename?: 'Mutation', deleteOneObject: { __typename?: 'Object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, isSearchable: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, isLabelSyncedWithName: boolean } }; +export type DeleteOneObjectMetadataItemMutation = { __typename?: 'Mutation', deleteOneObject: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, isSearchable: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, isLabelSyncedWithName: boolean } }; export type DeleteOneFieldMetadataItemMutationVariables = Exact<{ idToDelete: Scalars['UUID']; @@ -4227,7 +4226,7 @@ export type DeleteOneFieldMetadataItemMutation = { __typename?: 'Mutation', dele export type ObjectMetadataItemsQueryVariables = Exact<{ [key: string]: never; }>; -export type ObjectMetadataItemsQuery = { __typename?: 'Query', objects: { __typename?: 'ObjectConnection', edges: Array<{ __typename?: 'ObjectEdge', node: { __typename?: 'Object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isRemote: boolean, isActive: boolean, isSystem: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, shortcut?: string | null, isLabelSyncedWithName: boolean, isSearchable: boolean, duplicateCriteria?: Array> | null, indexMetadataList: Array<{ __typename?: 'Index', id: string, createdAt: string, updatedAt: string, name: string, indexWhereClause?: string | null, indexType: IndexType, isUnique: boolean, isCustom?: boolean | null, indexFieldMetadataList: Array<{ __typename?: 'IndexField', id: string, fieldMetadataId: string, createdAt: string, updatedAt: string, order: number }> }>, fieldsList: Array<{ __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isSystem?: boolean | null, isNullable?: boolean | null, isUnique?: boolean | null, createdAt: string, updatedAt: string, defaultValue?: any | null, options?: any | null, settings?: any | null, isLabelSyncedWithName?: boolean | null, relation?: { __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } } | null, morphRelations?: Array<{ __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } }> | null }> } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } }; +export type ObjectMetadataItemsQuery = { __typename?: 'Query', objects: { __typename?: 'ObjectConnection', edges: Array<{ __typename?: 'ObjectEdge', node: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isRemote: boolean, isActive: boolean, isSystem: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, shortcut?: string | null, isLabelSyncedWithName: boolean, isSearchable: boolean, duplicateCriteria?: Array> | null, indexMetadataList: Array<{ __typename?: 'Index', id: string, createdAt: string, updatedAt: string, name: string, indexWhereClause?: string | null, indexType: IndexType, isUnique: boolean, isCustom?: boolean | null, indexFieldMetadataList: Array<{ __typename?: 'IndexField', id: string, fieldMetadataId: string, createdAt: string, updatedAt: string, order: number }> }>, fieldsList: Array<{ __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isSystem?: boolean | null, isNullable?: boolean | null, isUnique?: boolean | null, createdAt: string, updatedAt: string, defaultValue?: any | null, options?: any | null, settings?: any | null, isLabelSyncedWithName?: boolean | null, relation?: { __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } } | null, morphRelations?: Array<{ __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } }> | null }> } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } }; export type SkipBookOnboardingStepMutationVariables = Exact<{ [key: string]: never; }>; @@ -7308,7 +7307,6 @@ export const CreateOneObjectMetadataItemDocument = gql` mutation CreateOneObjectMetadataItem($input: CreateOneObjectInput!) { createOneObject(input: $input) { id - dataSourceId nameSingular namePlural labelSingular @@ -7451,7 +7449,6 @@ export const UpdateOneObjectMetadataItemDocument = gql` mutation UpdateOneObjectMetadataItem($idToUpdate: UUID!, $updatePayload: UpdateObjectPayload!) { updateOneObject(input: {id: $idToUpdate, update: $updatePayload}) { id - dataSourceId nameSingular namePlural labelSingular @@ -7500,7 +7497,6 @@ export const DeleteOneObjectMetadataItemDocument = gql` mutation DeleteOneObjectMetadataItem($idToDelete: UUID!) { deleteOneObject(input: {id: $idToDelete}) { id - dataSourceId nameSingular namePlural labelSingular @@ -7595,7 +7591,6 @@ export const ObjectMetadataItemsDocument = gql` edges { node { id - dataSourceId nameSingular namePlural labelSingular diff --git a/packages/twenty-front/src/generated/graphql.ts b/packages/twenty-front/src/generated/graphql.ts index 07f9a92110..f718464b43 100644 --- a/packages/twenty-front/src/generated/graphql.ts +++ b/packages/twenty-front/src/generated/graphql.ts @@ -2054,7 +2054,6 @@ export type MutationVerifyTwoFactorAuthenticationMethodForAuthenticatedUserArgs export type Object = { __typename?: 'Object'; createdAt: Scalars['DateTime']; - dataSourceId: Scalars['UUID']; description?: Maybe; duplicateCriteria?: Maybe>>; fields: ObjectFieldsConnection; diff --git a/packages/twenty-front/src/modules/object-metadata/graphql/mutations.ts b/packages/twenty-front/src/modules/object-metadata/graphql/mutations.ts index eed6dc9422..3696cd8d46 100644 --- a/packages/twenty-front/src/modules/object-metadata/graphql/mutations.ts +++ b/packages/twenty-front/src/modules/object-metadata/graphql/mutations.ts @@ -4,7 +4,6 @@ export const CREATE_ONE_OBJECT_METADATA_ITEM = gql` mutation CreateOneObjectMetadataItem($input: CreateOneObjectInput!) { createOneObject(input: $input) { id - dataSourceId nameSingular namePlural labelSingular @@ -77,7 +76,6 @@ export const UPDATE_ONE_OBJECT_METADATA_ITEM = gql` ) { updateOneObject(input: { id: $idToUpdate, update: $updatePayload }) { id - dataSourceId nameSingular namePlural labelSingular @@ -100,7 +98,6 @@ export const DELETE_ONE_OBJECT_METADATA_ITEM = gql` mutation DeleteOneObjectMetadataItem($idToDelete: UUID!) { deleteOneObject(input: { id: $idToDelete }) { id - dataSourceId nameSingular namePlural labelSingular diff --git a/packages/twenty-front/src/modules/object-metadata/graphql/queries.ts b/packages/twenty-front/src/modules/object-metadata/graphql/queries.ts index 66f55a29af..4d650509be 100644 --- a/packages/twenty-front/src/modules/object-metadata/graphql/queries.ts +++ b/packages/twenty-front/src/modules/object-metadata/graphql/queries.ts @@ -6,7 +6,6 @@ export const FIND_MANY_OBJECT_METADATA_ITEMS = gql` edges { node { id - dataSourceId nameSingular namePlural labelSingular diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/__mocks__/useCreateOneObjectMetadataItem.ts b/packages/twenty-front/src/modules/object-metadata/hooks/__mocks__/useCreateOneObjectMetadataItem.ts index 17043afd2e..1c7087d371 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/__mocks__/useCreateOneObjectMetadataItem.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/__mocks__/useCreateOneObjectMetadataItem.ts @@ -4,7 +4,6 @@ export const query = gql` mutation CreateOneObjectMetadataItem($input: CreateOneObjectInput!) { createOneObject(input: $input) { id - dataSourceId nameSingular namePlural labelSingular @@ -72,7 +71,6 @@ export const variables = { export const responseData = { id: '', - dataSourceId: '', nameSingular: 'viewFilter', namePlural: 'viewFilters', labelSingular: 'View Filter', diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/__mocks__/useDeleteOneObjectMetadataItem.ts b/packages/twenty-front/src/modules/object-metadata/hooks/__mocks__/useDeleteOneObjectMetadataItem.ts index b98c224815..9642fbaf32 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/__mocks__/useDeleteOneObjectMetadataItem.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/__mocks__/useDeleteOneObjectMetadataItem.ts @@ -4,7 +4,6 @@ export const query = gql` mutation DeleteOneObjectMetadataItem($idToDelete: UUID!) { deleteOneObject(input: { id: $idToDelete }) { id - dataSourceId nameSingular namePlural labelSingular @@ -27,7 +26,6 @@ export const variables = { idToDelete: 'idToDelete' }; export const responseData = { id: '', - dataSourceId: '', nameSingular: '', namePlural: '', labelSingular: '', diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/__mocks__/useFilteredObjectMetadataItems.ts b/packages/twenty-front/src/modules/object-metadata/hooks/__mocks__/useFilteredObjectMetadataItems.ts index 8e5ba1ea35..f62f94a9c7 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/__mocks__/useFilteredObjectMetadataItems.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/__mocks__/useFilteredObjectMetadataItems.ts @@ -7,7 +7,6 @@ export const query = gql` ) { updateOneObject(input: { id: $idToUpdate, update: $updatePayload }) { id - dataSourceId nameSingular namePlural labelSingular @@ -39,7 +38,6 @@ export const variables = { export const responseData = { id: 'idToUpdate', - dataSourceId: 'dataSourceId', nameSingular: 'nameSingular', namePlural: 'namePlural', labelSingular: 'labelSingular', diff --git a/packages/twenty-front/src/modules/object-metadata/types/ObjectMetadataItem.ts b/packages/twenty-front/src/modules/object-metadata/types/ObjectMetadataItem.ts index 37b991cb07..9f06af9dfc 100644 --- a/packages/twenty-front/src/modules/object-metadata/types/ObjectMetadataItem.ts +++ b/packages/twenty-front/src/modules/object-metadata/types/ObjectMetadataItem.ts @@ -7,7 +7,6 @@ export type ObjectMetadataItem = Omit< GeneratedObject, | '__typename' | 'fields' - | 'dataSourceId' | 'indexMetadatas' | 'labelIdentifierFieldMetadataId' | 'fieldsList' diff --git a/packages/twenty-front/src/modules/object-metadata/validation-schemas/objectMetadataItemSchema.ts b/packages/twenty-front/src/modules/object-metadata/validation-schemas/objectMetadataItemSchema.ts index 7af0f131d9..19873197a2 100644 --- a/packages/twenty-front/src/modules/object-metadata/validation-schemas/objectMetadataItemSchema.ts +++ b/packages/twenty-front/src/modules/object-metadata/validation-schemas/objectMetadataItemSchema.ts @@ -9,7 +9,6 @@ import { camelCaseStringSchema } from '~/utils/validation-schemas/camelCaseStrin export const objectMetadataItemSchema = z.object({ __typename: z.literal('Object').optional(), createdAt: z.string().datetime(), - dataSourceId: z.string().uuid(), description: z.string().trim().nullable().optional(), fields: z.array(fieldMetadataItemSchema()), readableFields: z.array(fieldMetadataItemSchema()), diff --git a/packages/twenty-front/src/modules/object-record/record-table/components/__stories__/perf/mock.ts b/packages/twenty-front/src/modules/object-record/record-table/components/__stories__/perf/mock.ts index eb0b1386e3..81c9716467 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/components/__stories__/perf/mock.ts +++ b/packages/twenty-front/src/modules/object-record/record-table/components/__stories__/perf/mock.ts @@ -4,7 +4,6 @@ export const mockPerformance = { objectMetadataItem: { __typename: 'object', id: '4916628e-8570-4242-8970-f58c509e5a93', - dataSourceId: '0fd9fd54-0e8d-4f78-911c-76b33436a768', nameSingular: 'person', namePlural: 'people', primaryLinkLabelSingular: 'Person', diff --git a/packages/twenty-front/src/testing/mock-data/generated/mock-metadata-query-result.ts b/packages/twenty-front/src/testing/mock-data/generated/mock-metadata-query-result.ts index b0cbb2d633..c469b01933 100644 --- a/packages/twenty-front/src/testing/mock-data/generated/mock-metadata-query-result.ts +++ b/packages/twenty-front/src/testing/mock-data/generated/mock-metadata-query-result.ts @@ -23,7 +23,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "fac890af-68c5-4718-a16b-7401b1868429", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "workflowRun", "namePlural": "workflowRuns", "isCustom": false, @@ -539,7 +538,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "f8022881-1190-4760-8107-309648f32024", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "noteTarget", "namePlural": "noteTargets", "isCustom": false, @@ -1008,7 +1006,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "e58c0a80-38c6-4d18-85b6-7d1e2ad52443", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "surveyResult", "namePlural": "surveyResults", "isCustom": true, @@ -1592,7 +1589,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "df24f198-ac9c-4e00-b5c8-6dec9a413610", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "apiKey", "namePlural": "apiKeys", "isCustom": false, @@ -1774,7 +1770,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "d7802b9b-71f5-4ae9-9d52-6d1aca373a2b", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "viewFilterGroup", "namePlural": "viewFilterGroups", "isCustom": false, @@ -2028,7 +2023,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "d4dd18bc-c2b1-4619-bc6a-c80dc355b5a1", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "timelineActivity", "namePlural": "timelineActivities", "isCustom": false, @@ -2873,7 +2867,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "cbe0ae42-a8f4-4166-817b-96e647aae5dd", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "messageThread", "namePlural": "messageThreads", "isCustom": false, @@ -3040,7 +3033,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "cad90776-17ac-4b9b-a3cd-43a6eb0b4d46", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "viewGroup", "namePlural": "viewGroups", "isCustom": false, @@ -3293,7 +3285,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "c73c0408-222b-4214-a855-f6bb88ee8ebc", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "rocket", "namePlural": "rockets", "isCustom": true, @@ -3733,7 +3724,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "c5bdd9b9-06c5-450a-86b7-cb91f3c33b94", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "messageParticipant", "namePlural": "messageParticipants", "isCustom": false, @@ -4094,7 +4084,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "c4b95b85-3b53-4b33-94f2-58a2b5abb746", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "view", "namePlural": "views", "isCustom": false, @@ -4840,7 +4829,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "b95a4f5d-6fdc-48f9-9598-652960eed462", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "favorite", "namePlural": "favorites", "isCustom": false, @@ -5680,7 +5668,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "ab9c539f-e084-4766-97c7-28fd85116001", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "favoriteFolder", "namePlural": "favoriteFolders", "isCustom": false, @@ -5889,7 +5876,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "a0a44046-66f1-456a-9133-1f78ac60b9ca", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "attachment", "namePlural": "attachments", "isCustom": false, @@ -6521,7 +6507,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "955353b0-fefe-473a-a99e-46b9097ac488", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "messageChannelMessageAssociation", "namePlural": "messageChannelMessageAssociations", "isCustom": false, @@ -6818,7 +6803,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "8a9fa581-d75d-495e-8215-cd7c11ea598e", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "viewFilter", "namePlural": "viewFilters", "isCustom": false, @@ -7134,7 +7118,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "83b1dd88-82e5-4d8c-b52b-81e5302adf58", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "task", "namePlural": "tasks", "isCustom": false, @@ -7671,7 +7654,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "7ae7e7ef-6985-4606-bbe3-b76e97b93524", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "taskTarget", "namePlural": "taskTargets", "isCustom": false, @@ -8140,7 +8122,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "7ad6021f-d432-4c92-baef-2b632196a62a", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "calendarEvent", "namePlural": "calendarEvents", "isCustom": false, @@ -8611,7 +8592,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "736f6327-d230-4daa-b198-55fdaec9de8e", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "blocklist", "namePlural": "blocklists", "isCustom": false, @@ -8801,7 +8781,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "6f3b9df6-57c0-4fe0-b8af-1a5ed20d76bd", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "person", "namePlural": "people", "isCustom": false, @@ -9761,7 +9740,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "641f0c5f-bb3d-4a8f-8a35-45f769027d41", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "opportunity", "namePlural": "opportunities", "isCustom": false, @@ -10410,7 +10388,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "62855e83-6d97-4c48-bffc-c17e8e955820", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "pet", "namePlural": "pets", "isCustom": true, @@ -11330,7 +11307,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "4f860d25-b720-4218-9471-28ac7ccb6c22", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "workflowAutomatedTrigger", "namePlural": "workflowAutomatedTriggers", "isCustom": false, @@ -11556,7 +11532,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "4a45f524-b8cb-40e8-8450-28e402b442cf", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "company", "namePlural": "companies", "isCustom": false, @@ -12437,7 +12412,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "4895c95d-e723-4fac-9327-943b55ed865c", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "connectedAccount", "namePlural": "connectedAccounts", "isCustom": false, @@ -12870,7 +12844,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "46d270fd-7b29-4a75-9943-27c8594b1f3c", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "note", "namePlural": "notes", "isCustom": false, @@ -13293,7 +13266,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "45ff61b7-21cd-4c9a-99cc-1a7f63032949", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "viewField", "namePlural": "viewFields", "isCustom": false, @@ -13652,7 +13624,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "4534bb30-62fb-46fd-899b-c03348acd97a", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "workflowVersion", "namePlural": "workflowVersions", "isCustom": false, @@ -14099,7 +14070,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "3dd1c5bd-c964-414d-a52f-c3d182f9eac7", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "calendarEventParticipant", "namePlural": "calendarEventParticipants", "isCustom": false, @@ -14481,7 +14451,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "3d041dc9-e4f0-4cd0-ad45-7d15080c4ac7", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "workflow", "namePlural": "workflows", "isCustom": false, @@ -14968,7 +14937,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "369081b1-70a6-4fc6-9e50-f0b12841549d", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "workspaceMember", "namePlural": "workspaceMembers", "isCustom": false, @@ -15804,7 +15772,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "352992e9-f389-45d0-aac5-a89ebc20ba77", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "webhook", "namePlural": "webhooks", "isCustom": false, @@ -16009,7 +15976,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "1551e0e2-8694-41f7-a256-423cd8ea04f2", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "messageFolder", "namePlural": "messageFolders", "isCustom": false, @@ -16220,7 +16186,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "0cb72a53-6506-415c-921c-2268680636ca", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "viewSort", "namePlural": "viewSorts", "isCustom": false, @@ -16431,7 +16396,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "0afdc892-41cb-4869-98fd-0623162dbdf4", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "calendarChannelEventAssociation", "namePlural": "calendarChannelEventAssociations", "isCustom": false, @@ -16692,7 +16656,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "0972537f-b817-40b1-a34f-a30a270d2b07", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "calendarChannel", "namePlural": "calendarChannels", "isCustom": false, @@ -17263,7 +17226,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "089247da-73c3-456c-a274-eefc605eb3fa", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "messageChannel", "namePlural": "messageChannels", "isCustom": false, @@ -17960,7 +17922,6 @@ export const mockedStandardObjectMetadataQueryResult: ObjectMetadataItemsQuery = "node": { "__typename": "Object", "id": "04dc5940-3a62-4536-ad57-c96f913cf67b", - "dataSourceId": "b2f5abbb-ae8d-4f89-9048-ddd8cf8ec20b", "nameSingular": "message", "namePlural": "messages", "isCustom": false, diff --git a/packages/twenty-front/src/testing/mock-data/workflow-run.ts b/packages/twenty-front/src/testing/mock-data/workflow-run.ts index b3e3dba1b1..b8483d8769 100644 --- a/packages/twenty-front/src/testing/mock-data/workflow-run.ts +++ b/packages/twenty-front/src/testing/mock-data/workflow-run.ts @@ -1194,11 +1194,6 @@ export const oneSucceededWorkflowRunQueryResult = { value: '20202020-1c25-4d02-bf25-6aeccf7ea419', isLeaf: true, }, - dataSourceId: { - label: ' Data Source Id', - value: 'f20df2e6-420e-40e0-a4ca-68846bbe6c92', - isLeaf: true, - }, isSearchable: { label: ' Is Searchable', value: true, @@ -3415,7 +3410,6 @@ export const oneSucceededWorkflowRunQueryResult = { description: 'A company', labelPlural: 'Companies', workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419', - dataSourceId: 'f20df2e6-420e-40e0-a4ca-68846bbe6c92', fieldsByName: { id: { id: '593dd556-69ab-4df7-aa2e-ab5e20eb7977', @@ -5640,11 +5634,6 @@ export const oneSucceededWorkflowRunQueryResult = { value: '20202020-1c25-4d02-bf25-6aeccf7ea419', isLeaf: true, }, - dataSourceId: { - label: ' Data Source Id', - value: 'f20df2e6-420e-40e0-a4ca-68846bbe6c92', - isLeaf: true, - }, isSearchable: { label: ' Is Searchable', value: true, diff --git a/packages/twenty-front/src/testing/mock-data/workflow.ts b/packages/twenty-front/src/testing/mock-data/workflow.ts index 9a2d6f9ebe..5994360250 100644 --- a/packages/twenty-front/src/testing/mock-data/workflow.ts +++ b/packages/twenty-front/src/testing/mock-data/workflow.ts @@ -1501,10 +1501,6 @@ export const workflowQueryResult = { value: '3b8e6458-5fc1-4e63-8563-008ccddaa6db', isLeaf: true, }, - dataSourceId: { - value: '82de2d45-4c55-46d6-83ce-8c82ad5e2ecf', - isLeaf: true, - }, nameSingular: { value: 'company', isLeaf: true, diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata.service-v2.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata.service-v2.ts index f0e873e6b1..cc6931d2ad 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata.service-v2.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata.service-v2.ts @@ -11,6 +11,7 @@ import { In, Repository } from 'typeorm'; import { MultipleMetadataValidationErrors } from 'src/engine/core-modules/error/multiple-metadata-validation-errors'; import { type CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input'; import { type DeleteOneFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/delete-field.input'; +import { FieldMetadataDTO } from 'src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto'; import { type UpdateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/update-field.input'; import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { @@ -22,6 +23,7 @@ import { type FailedFlatFieldMetadataValidationExceptions } from 'src/engine/met import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type'; import { fromCreateFieldInputToFlatFieldMetadatasToCreate } from 'src/engine/metadata-modules/flat-field-metadata/utils/from-create-field-input-to-flat-field-metadatas-to-create.util'; import { fromDeleteFieldInputToFlatFieldMetadatasToDelete } from 'src/engine/metadata-modules/flat-field-metadata/utils/from-delete-field-input-to-flat-field-metadatas-to-delete.util'; +import { fromFlatFieldMetadataToFieldMetadataDto } from 'src/engine/metadata-modules/flat-field-metadata/utils/from-flat-field-metadata-to-field-metadata-dto.util'; import { fromUpdateFieldInputToFlatFieldMetadataToUpdate } from 'src/engine/metadata-modules/flat-field-metadata/utils/from-update-field-input-to-flat-field-metadata-to-update.util'; import { isFlatFieldMetadataEntityOfType } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-of-type.util'; import { throwOnFieldInputTranspilationsError } from 'src/engine/metadata-modules/flat-field-metadata/utils/throw-on-field-input-transpilations-error.util'; @@ -75,7 +77,7 @@ export class FieldMetadataServiceV2 { }: { deleteOneFieldInput: DeleteOneFieldInput; workspaceId: string; - }): Promise { + }): Promise { const { flatObjectMetadataMaps: existingFlatObjectMetadataMaps } = await this.workspaceMetadataCacheService.getExistingOrRecomputeFlatObjectMetadataMaps( { @@ -143,8 +145,9 @@ export class FieldMetadataServiceV2 { ); } - // TODO to be discussed with coco regarding storing dates in flat in order to build dtos - // return flatFieldMetadatasToDelete[0]; + return fromFlatFieldMetadataToFieldMetadataDto( + flatFieldMetadatasToDelete[0], + ); } private computeOtherFlatObjectMetadataMapsToValidate({ diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/attachment-flat-fields.mock.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/attachment-flat-fields.mock.ts index e099d24a31..e19c8af49c 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/attachment-flat-fields.mock.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/attachment-flat-fields.mock.ts @@ -1,11 +1,11 @@ import { FieldMetadataType } from 'twenty-shared/types'; -import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-settings.interface'; +import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; import { getFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock'; -import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type'; import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type'; +import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type'; export const ATTACHMENT_FLAT_FIELDS_MOCK = { name: getFlatFieldMetadataMock({ @@ -210,7 +210,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '958b82d0-a290-4e10-898d-3d858fbf684f', relationTargetObjectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840', uniqueIdentifier: '20202020-6501-4ac5-a4ef-b2f8522ef6cd', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '958b82d0-a290-4e10-898d-3d858fbf684f', standardId: '20202020-000f-4947-917f-1b09851024fe', objectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840', @@ -233,7 +233,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '99724bb6-7a84-4b54-9b3f-dab730ab445a', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-000f-4947-917f-1b09851024fe', - }, + }), }), task: getFlatFieldMetadataMock({ id: 'bd823f17-f923-4f0d-8533-51d7bc062975', @@ -262,7 +262,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '00fd339a-6431-465d-9524-09b5c804f497', relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0', uniqueIdentifier: '20202020-51e5-4621-9cf8-215487951c4b', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '00fd339a-6431-465d-9524-09b5c804f497', standardId: '20202020-794d-4783-a8ff-cecdb15be139', objectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0', @@ -285,7 +285,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'bd823f17-f923-4f0d-8533-51d7bc062975', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-794d-4783-a8ff-cecdb15be139', - }, + }), }), note: getFlatFieldMetadataMock({ id: '5a98eb2b-1120-42e3-afd3-09d7da642fba', @@ -314,7 +314,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '4d4b3225-ddd2-4d76-a4d6-bcdd43a256e8', relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c', uniqueIdentifier: '20202020-4f4b-4503-a6fc-6b982f3dffb5', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '4d4b3225-ddd2-4d76-a4d6-bcdd43a256e8', standardId: '20202020-4986-4c92-bf19-39934b149b16', objectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c', @@ -337,7 +337,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '5a98eb2b-1120-42e3-afd3-09d7da642fba', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-4986-4c92-bf19-39934b149b16', - }, + }), }), person: getFlatFieldMetadataMock({ id: '6938c2ec-ebcc-4f30-8d38-2c9c40228c53', @@ -366,7 +366,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '367ad117-de09-466c-94f8-ce99d951b5ce', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-0158-4aa2-965c-5cdafe21ffa2', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '367ad117-de09-466c-94f8-ce99d951b5ce', standardId: '20202020-cd97-451f-87fa-bcb789bdbf3a', objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', @@ -389,7 +389,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '6938c2ec-ebcc-4f30-8d38-2c9c40228c53', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-cd97-451f-87fa-bcb789bdbf3a', - }, + }), }), company: getFlatFieldMetadataMock({ id: '0bacf73b-f45b-4683-85b4-3e812e6228bf', @@ -418,7 +418,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '44a572c5-d620-47f5-943a-346ae967e99e', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: '20202020-ceab-4a28-b546-73b06b4c08d5', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '44a572c5-d620-47f5-943a-346ae967e99e', standardId: '20202020-c1b5-4120-b0f0-987ca401ed53', objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', @@ -441,7 +441,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '0bacf73b-f45b-4683-85b4-3e812e6228bf', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-c1b5-4120-b0f0-987ca401ed53', - }, + }), }), opportunity: getFlatFieldMetadataMock({ id: 'da72fbe2-a5aa-42b5-b6bd-482a3919eb20', @@ -470,7 +470,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '16515578-a6ce-48af-a303-2005bb8492f0', relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', uniqueIdentifier: '20202020-7374-499d-bea3-9354890755b5', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '16515578-a6ce-48af-a303-2005bb8492f0', standardId: '20202020-87c7-4118-83d6-2f4031005209', objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', @@ -493,7 +493,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'da72fbe2-a5aa-42b5-b6bd-482a3919eb20', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-87c7-4118-83d6-2f4031005209', - }, + }), }), rocket: getFlatFieldMetadataMock({ id: 'ba23019c-7f25-42c3-8138-622e61c42968', @@ -522,7 +522,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'f5984acf-5128-42ac-840f-9d2888423699', relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a', uniqueIdentifier: '20202020-ca2d-47c0-8253-9d0b662fb01a', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'f5984acf-5128-42ac-840f-9d2888423699', standardId: '20202020-8d59-46ca-b7b2-73d167712134', objectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a', @@ -545,7 +545,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'ba23019c-7f25-42c3-8138-622e61c42968', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-8d59-46ca-b7b2-73d167712134', - }, + }), }), pet: getFlatFieldMetadataMock({ id: '317a33ef-117e-4953-86d4-c4a9670a2ce3', @@ -574,7 +574,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '231903d0-3b14-47ed-9a88-fbf11031c451', relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f', uniqueIdentifier: '20202020-b715-4658-8b6a-5359824dbddd', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '231903d0-3b14-47ed-9a88-fbf11031c451', standardId: '20202020-8d59-46ca-b7b2-73d167712134', objectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f', @@ -597,7 +597,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '317a33ef-117e-4953-86d4-c4a9670a2ce3', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-8d59-46ca-b7b2-73d167712134', - }, + }), }), surveyResult: getFlatFieldMetadataMock({ id: 'a09463e6-5e56-4965-bc8a-2faa23a64672', @@ -626,7 +626,7 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '3347ffcc-43d0-4697-a9ce-6fb9b0e677e1', relationTargetObjectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8', uniqueIdentifier: '20202020-58b5-4f6c-8402-06b2bf3ea064', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '3347ffcc-43d0-4697-a9ce-6fb9b0e677e1', standardId: '20202020-8d59-46ca-b7b2-73d167712134', objectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8', @@ -649,6 +649,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'a09463e6-5e56-4965-bc8a-2faa23a64672', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-8d59-46ca-b7b2-73d167712134', - }, + }), }), } as const satisfies Record; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/company-flat-fields.mock.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/company-flat-fields.mock.ts index 54032c0f73..85ed4b7889 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/company-flat-fields.mock.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/company-flat-fields.mock.ts @@ -434,7 +434,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'ee247ca6-fdaa-4a56-87a2-730cf84f5f29', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-3213-4ddf-9494-6422bcff8d7c', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'ee247ca6-fdaa-4a56-87a2-730cf84f5f29', standardId: '20202020-e2f3-448e-b34c-2d625f0025fd', objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', @@ -461,7 +461,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'b0563539-f027-40c5-a14c-ee7a25ff6fd9', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: '20202020-e2f3-448e-b34c-2d625f0025fd', - }, + }), }), accountOwner: getFlatFieldMetadataMock({ id: '86c6692b-bed5-4ef1-bad0-657e56a85eba', @@ -491,7 +491,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '1fe5453f-6042-4370-b388-c9a198bd0ab4', relationTargetObjectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840', uniqueIdentifier: '20202020-95b8-4e10-9881-edb5d4765f9d', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '1fe5453f-6042-4370-b388-c9a198bd0ab4', standardId: '20202020-dc29-4bd4-a3c1-29eafa324bee', objectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840', @@ -514,7 +514,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '86c6692b-bed5-4ef1-bad0-657e56a85eba', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: '20202020-dc29-4bd4-a3c1-29eafa324bee', - }, + }), }), taskTargets: getFlatFieldMetadataMock({ id: '4f9138da-cd36-4df4-98f9-ebabe036b141', @@ -539,7 +539,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'ec11b025-1476-4e84-81c5-cf5b5c776edc', relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', uniqueIdentifier: '20202020-cb17-4a61-8f8f-3be6730480de', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'ec11b025-1476-4e84-81c5-cf5b5c776edc', standardId: '20202020-4703-4a4e-948c-487b0c60a92c', objectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', @@ -566,7 +566,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '4f9138da-cd36-4df4-98f9-ebabe036b141', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: '20202020-4703-4a4e-948c-487b0c60a92c', - }, + }), }), noteTargets: getFlatFieldMetadataMock({ id: '56b9dc8a-0379-42cf-ab31-8db7061f5a2a', @@ -591,7 +591,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'd1d3f9eb-1447-4adb-bc2b-f133bc58ac35', relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', uniqueIdentifier: '20202020-bae0-4556-a74a-a9c686f77a88', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'd1d3f9eb-1447-4adb-bc2b-f133bc58ac35', standardId: 'c500fbc0-d6f2-4982-a959-5a755431696c', objectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', @@ -618,7 +618,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '56b9dc8a-0379-42cf-ab31-8db7061f5a2a', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: 'c500fbc0-d6f2-4982-a959-5a755431696c', - }, + }), }), opportunities: getFlatFieldMetadataMock({ id: '3eda8c8e-74e4-401f-bb0e-470db5b267e6', @@ -643,7 +643,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '512890f1-4da0-4b96-bb71-5ccabefb82e7', relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', uniqueIdentifier: '20202020-add3-4658-8e23-d70dccb6d0ec', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '512890f1-4da0-4b96-bb71-5ccabefb82e7', standardId: '20202020-cbac-457e-b565-adece5fc815f', objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', @@ -670,7 +670,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '3eda8c8e-74e4-401f-bb0e-470db5b267e6', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: '20202020-cbac-457e-b565-adece5fc815f', - }, + }), }), favorites: getFlatFieldMetadataMock({ id: '72415216-fed4-450b-aa00-691e37718b01', @@ -695,7 +695,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '9a11532c-6839-46ed-a2f5-ed03f88b86f6', relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', uniqueIdentifier: '20202020-4d1d-41ac-b13b-621631298d55', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '9a11532c-6839-46ed-a2f5-ed03f88b86f6', standardId: '20202020-cff5-4682-8bf9-069169e08279', objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', @@ -722,7 +722,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '72415216-fed4-450b-aa00-691e37718b01', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: '20202020-cff5-4682-8bf9-069169e08279', - }, + }), }), attachments: getFlatFieldMetadataMock({ id: '44a572c5-d620-47f5-943a-346ae967e99e', @@ -747,7 +747,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '0bacf73b-f45b-4683-85b4-3e812e6228bf', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-c1b5-4120-b0f0-987ca401ed53', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '0bacf73b-f45b-4683-85b4-3e812e6228bf', standardId: '20202020-ceab-4a28-b546-73b06b4c08d5', objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', @@ -774,7 +774,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '44a572c5-d620-47f5-943a-346ae967e99e', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: '20202020-ceab-4a28-b546-73b06b4c08d5', - }, + }), }), timelineActivities: getFlatFieldMetadataMock({ id: 'cc78390f-f570-4c2c-9f19-2a8fef67f4f6', @@ -799,7 +799,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'fd8cabe5-7dc8-4d6a-8053-43434488b3e4', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-0414-4daf-9c0d-64fe7b27f89f', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'fd8cabe5-7dc8-4d6a-8053-43434488b3e4', standardId: '20202020-04ad-4221-a744-7a8278a5ce21', objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', @@ -826,7 +826,7 @@ export const COMPANY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'cc78390f-f570-4c2c-9f19-2a8fef67f4f6', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: '20202020-04ad-4221-a744-7a8278a5ce21', - }, + }), }), tagline: getFlatFieldMetadataMock({ id: 'f869f4ed-e440-486a-8392-be33ab327cf4', diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock.ts index 88caae2cbf..29f5eadb0e 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock.ts @@ -13,7 +13,11 @@ type FlatFieldMetadataOverrides< export const getFlatFieldMetadataMock = ( overrides: FlatFieldMetadataOverrides, ): FlatFieldMetadata => { + const createdAt = new Date(); + return { + createdAt, + updatedAt: createdAt, defaultValue: null, options: null, settings: null, diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/note-flat-fields.mock.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/note-flat-fields.mock.ts index fa36707424..69b0d9f0e4 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/note-flat-fields.mock.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/note-flat-fields.mock.ts @@ -260,7 +260,7 @@ export const NOTE_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'b1e812b7-604e-459b-9449-31fa414b315c', relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', uniqueIdentifier: '20202020-1f25-43fe-8b00-af212fdde823', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'b1e812b7-604e-459b-9449-31fa414b315c', standardId: '20202020-57f3-4f50-9599-fc0f671df003', objectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', @@ -287,7 +287,7 @@ export const NOTE_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '3a13d398-b7e6-4871-a5f8-5446806b3e5b', relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c', uniqueIdentifier: '20202020-57f3-4f50-9599-fc0f671df003', - }, + }), }), attachments: getFlatFieldMetadataMock({ id: '4d4b3225-ddd2-4d76-a4d6-bcdd43a256e8', @@ -312,7 +312,7 @@ export const NOTE_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '5a98eb2b-1120-42e3-afd3-09d7da642fba', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-4986-4c92-bf19-39934b149b16', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '5a98eb2b-1120-42e3-afd3-09d7da642fba', standardId: '20202020-4f4b-4503-a6fc-6b982f3dffb5', objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', @@ -339,7 +339,7 @@ export const NOTE_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '4d4b3225-ddd2-4d76-a4d6-bcdd43a256e8', relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c', uniqueIdentifier: '20202020-4f4b-4503-a6fc-6b982f3dffb5', - }, + }), }), timelineActivities: getFlatFieldMetadataMock({ id: '1207d260-db2c-41d4-bb09-34ea1188978f', @@ -364,7 +364,7 @@ export const NOTE_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '2b9f1c90-9e35-4ccc-8d84-b42de31ef127', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-7030-42f8-929c-1a57b25d6bce', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '2b9f1c90-9e35-4ccc-8d84-b42de31ef127', standardId: '20202020-ec55-4135-8da5-3a20badc0156', objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', @@ -391,7 +391,7 @@ export const NOTE_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '1207d260-db2c-41d4-bb09-34ea1188978f', relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c', uniqueIdentifier: '20202020-ec55-4135-8da5-3a20badc0156', - }, + }), }), favorites: getFlatFieldMetadataMock({ id: '065a1ede-f773-48ca-84bf-70f61d838396', @@ -416,7 +416,7 @@ export const NOTE_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'a61baf0f-2d43-4fda-9baf-efb000c17ecd', relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', uniqueIdentifier: '20202020-4d1d-41ac-b13b-621631298d67', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'a61baf0f-2d43-4fda-9baf-efb000c17ecd', standardId: '20202020-1f25-43fe-8b00-af212fdde824', objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', @@ -443,6 +443,6 @@ export const NOTE_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '065a1ede-f773-48ca-84bf-70f61d838396', relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c', uniqueIdentifier: '20202020-1f25-43fe-8b00-af212fdde824', - }, + }), }), } as const satisfies Record; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/notetarget-flat-fields.mock.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/notetarget-flat-fields.mock.ts index fcb205a02c..a438bcf710 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/notetarget-flat-fields.mock.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/notetarget-flat-fields.mock.ts @@ -1,11 +1,11 @@ import { FieldMetadataType } from 'twenty-shared/types'; -import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-settings.interface'; +import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; import { getFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock'; -import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type'; import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type'; +import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type'; export const NOTETARGET_FLAT_FIELDS_MOCK = { id: getFlatFieldMetadataMock({ @@ -135,7 +135,7 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '3a13d398-b7e6-4871-a5f8-5446806b3e5b', relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c', uniqueIdentifier: '20202020-57f3-4f50-9599-fc0f671df003', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '3a13d398-b7e6-4871-a5f8-5446806b3e5b', standardId: '20202020-1f25-43fe-8b00-af212fdde823', objectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c', @@ -158,7 +158,7 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'b1e812b7-604e-459b-9449-31fa414b315c', relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', uniqueIdentifier: '20202020-1f25-43fe-8b00-af212fdde823', - }, + }), }), person: getFlatFieldMetadataMock({ id: '560c71ff-254f-4baf-a4d1-054c53444f41', @@ -187,7 +187,7 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '60388ed8-45f6-4fb5-8752-81c73e13f4ab', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-38ca-4aab-92f5-8a605ca2e4c5', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '60388ed8-45f6-4fb5-8752-81c73e13f4ab', standardId: '20202020-c8fc-4258-8250-15905d3fcfec', objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', @@ -210,7 +210,7 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '560c71ff-254f-4baf-a4d1-054c53444f41', relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', uniqueIdentifier: '20202020-c8fc-4258-8250-15905d3fcfec', - }, + }), }), company: getFlatFieldMetadataMock({ id: 'd1d3f9eb-1447-4adb-bc2b-f133bc58ac35', @@ -239,7 +239,7 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '56b9dc8a-0379-42cf-ab31-8db7061f5a2a', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: 'c500fbc0-d6f2-4982-a959-5a755431696c', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '56b9dc8a-0379-42cf-ab31-8db7061f5a2a', standardId: '20202020-bae0-4556-a74a-a9c686f77a88', objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', @@ -262,7 +262,7 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'd1d3f9eb-1447-4adb-bc2b-f133bc58ac35', relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', uniqueIdentifier: '20202020-bae0-4556-a74a-a9c686f77a88', - }, + }), }), opportunity: getFlatFieldMetadataMock({ id: 'f42eac2a-8d99-4259-b69a-549abd553eda', @@ -291,7 +291,7 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '36210a54-a72e-4530-a1eb-a0420c53e551', relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', uniqueIdentifier: '20202020-4e42-417a-a705-76581c9ade79', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '36210a54-a72e-4530-a1eb-a0420c53e551', standardId: '20202020-dd3f-42d5-a382-db58aabf43d3', objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', @@ -314,7 +314,7 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'f42eac2a-8d99-4259-b69a-549abd553eda', relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', uniqueIdentifier: '20202020-dd3f-42d5-a382-db58aabf43d3', - }, + }), }), rocket: getFlatFieldMetadataMock({ id: '4212b3d7-dd9f-4da9-85f7-2fa69a42296f', @@ -343,7 +343,7 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'c91376fb-20bd-47c7-8922-b64f7db51cfa', relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a', uniqueIdentifier: '20202020-52b6-4d5e-8f21-ed8b7c09c4a9', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'c91376fb-20bd-47c7-8922-b64f7db51cfa', standardId: '20202020-01fd-4f37-99dc-9427a444018a', objectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a', @@ -366,7 +366,7 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '4212b3d7-dd9f-4da9-85f7-2fa69a42296f', relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', uniqueIdentifier: '20202020-01fd-4f37-99dc-9427a444018a', - }, + }), }), pet: getFlatFieldMetadataMock({ id: 'd88d0737-e83a-47b1-b701-8edfe4a2ae2e', @@ -395,7 +395,7 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '98afd46e-0259-4c87-969d-16e7e660e007', relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f', uniqueIdentifier: '20202020-c54e-4804-8b0d-8795e5166432', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '98afd46e-0259-4c87-969d-16e7e660e007', standardId: '20202020-01fd-4f37-99dc-9427a444018a', objectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f', @@ -418,7 +418,7 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'd88d0737-e83a-47b1-b701-8edfe4a2ae2e', relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', uniqueIdentifier: '20202020-01fd-4f37-99dc-9427a444018a', - }, + }), }), surveyResult: getFlatFieldMetadataMock({ id: '7f444190-cb0e-4417-9c61-e59d8969b7f7', @@ -447,7 +447,7 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '1135971a-b1fa-4e63-b480-69410c6a09cd', relationTargetObjectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8', uniqueIdentifier: '20202020-75c4-4165-8146-dfdc2a76b940', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '1135971a-b1fa-4e63-b480-69410c6a09cd', standardId: '20202020-01fd-4f37-99dc-9427a444018a', objectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8', @@ -470,6 +470,6 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '7f444190-cb0e-4417-9c61-e59d8969b7f7', relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', uniqueIdentifier: '20202020-01fd-4f37-99dc-9427a444018a', - }, + }), }), } as const satisfies Record; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/opportunity-flat-fields.mock.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/opportunity-flat-fields.mock.ts index 1e4f7d03a5..4887394436 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/opportunity-flat-fields.mock.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/opportunity-flat-fields.mock.ts @@ -1,11 +1,11 @@ import { FieldMetadataType } from 'twenty-shared/types'; -import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-settings.interface'; +import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; import { getFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock'; -import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type'; import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type'; +import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type'; export const OPPORTUNITY_FLAT_FIELDS_MOCK = { name: getFlatFieldMetadataMock({ @@ -350,7 +350,7 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '7580c1b1-e8f9-480b-bd41-38b20df35777', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-8dfb-42fc-92b6-01afb759ed16', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '7580c1b1-e8f9-480b-bd41-38b20df35777', standardId: '20202020-911b-4a7d-b67b-918aa9a5b33a', objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', @@ -374,7 +374,7 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '0e55bf63-1ffb-4f74-89f2-edd5a6a6686c', relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', uniqueIdentifier: '20202020-911b-4a7d-b67b-918aa9a5b33a', - }, + }), }), company: getFlatFieldMetadataMock({ id: '512890f1-4da0-4b96-bb71-5ccabefb82e7', @@ -403,7 +403,7 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '3eda8c8e-74e4-401f-bb0e-470db5b267e6', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: '20202020-cbac-457e-b565-adece5fc815f', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '3eda8c8e-74e4-401f-bb0e-470db5b267e6', standardId: '20202020-add3-4658-8e23-d70dccb6d0ec', objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', @@ -426,7 +426,7 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '512890f1-4da0-4b96-bb71-5ccabefb82e7', relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', uniqueIdentifier: '20202020-add3-4658-8e23-d70dccb6d0ec', - }, + }), }), favorites: getFlatFieldMetadataMock({ id: '87bb9924-a1cc-4357-9c8a-52141dabf266', @@ -451,7 +451,7 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '6380cf8e-4327-4d1e-ad21-1826ce4ecf05', relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', uniqueIdentifier: '20202020-a1c2-4500-aaae-83ba8a0e827a', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '6380cf8e-4327-4d1e-ad21-1826ce4ecf05', standardId: '20202020-dabc-48e1-8318-2781a2b32aa2', objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', @@ -478,7 +478,7 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '87bb9924-a1cc-4357-9c8a-52141dabf266', relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', uniqueIdentifier: '20202020-dabc-48e1-8318-2781a2b32aa2', - }, + }), }), taskTargets: getFlatFieldMetadataMock({ id: 'c0c9f9ac-0d40-4206-90e5-0d1e14f8a09f', @@ -503,7 +503,7 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '49afc8d8-dde3-4d19-aa6b-bd16a751b114', relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', uniqueIdentifier: '20202020-59c0-4179-a208-4a255f04a5be', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '49afc8d8-dde3-4d19-aa6b-bd16a751b114', standardId: '20202020-6cb2-4c01-a9a5-aca3dbc11d41', objectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', @@ -530,7 +530,7 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'c0c9f9ac-0d40-4206-90e5-0d1e14f8a09f', relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', uniqueIdentifier: '20202020-6cb2-4c01-a9a5-aca3dbc11d41', - }, + }), }), noteTargets: getFlatFieldMetadataMock({ id: '36210a54-a72e-4530-a1eb-a0420c53e551', @@ -555,7 +555,7 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'f42eac2a-8d99-4259-b69a-549abd553eda', relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', uniqueIdentifier: '20202020-dd3f-42d5-a382-db58aabf43d3', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'f42eac2a-8d99-4259-b69a-549abd553eda', standardId: '20202020-4e42-417a-a705-76581c9ade79', objectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', @@ -582,7 +582,7 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '36210a54-a72e-4530-a1eb-a0420c53e551', relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', uniqueIdentifier: '20202020-4e42-417a-a705-76581c9ade79', - }, + }), }), attachments: getFlatFieldMetadataMock({ id: '16515578-a6ce-48af-a303-2005bb8492f0', @@ -607,7 +607,7 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'da72fbe2-a5aa-42b5-b6bd-482a3919eb20', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-87c7-4118-83d6-2f4031005209', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'da72fbe2-a5aa-42b5-b6bd-482a3919eb20', standardId: '20202020-7374-499d-bea3-9354890755b5', objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', @@ -634,7 +634,7 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '16515578-a6ce-48af-a303-2005bb8492f0', relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', uniqueIdentifier: '20202020-7374-499d-bea3-9354890755b5', - }, + }), }), timelineActivities: getFlatFieldMetadataMock({ id: '7826944b-3b21-4448-892e-5a2a68161313', @@ -659,7 +659,7 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '026cbaa7-860c-4ed4-b878-8d78849e6c28', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-30e2-421f-96c7-19c69d1cf631', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '026cbaa7-860c-4ed4-b878-8d78849e6c28', standardId: '20202020-7664-4a35-a3df-580d389fd527', objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', @@ -686,6 +686,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '7826944b-3b21-4448-892e-5a2a68161313', relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', uniqueIdentifier: '20202020-7664-4a35-a3df-580d389fd527', - }, + }), }), } as const satisfies Record; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/person-flat-fields.mock.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/person-flat-fields.mock.ts index f7b1d1d7ba..e229c29005 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/person-flat-fields.mock.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/person-flat-fields.mock.ts @@ -427,7 +427,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'b0563539-f027-40c5-a14c-ee7a25ff6fd9', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: '20202020-e2f3-448e-b34c-2d625f0025fd', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'b0563539-f027-40c5-a14c-ee7a25ff6fd9', standardId: '20202020-3213-4ddf-9494-6422bcff8d7c', objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', @@ -450,7 +450,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'ee247ca6-fdaa-4a56-87a2-730cf84f5f29', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-3213-4ddf-9494-6422bcff8d7c', - }, + }), }), pointOfContactForOpportunities: getFlatFieldMetadataMock({ id: '7580c1b1-e8f9-480b-bd41-38b20df35777', @@ -476,7 +476,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '0e55bf63-1ffb-4f74-89f2-edd5a6a6686c', relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', uniqueIdentifier: '20202020-911b-4a7d-b67b-918aa9a5b33a', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '0e55bf63-1ffb-4f74-89f2-edd5a6a6686c', standardId: '20202020-8dfb-42fc-92b6-01afb759ed16', objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', @@ -503,7 +503,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '7580c1b1-e8f9-480b-bd41-38b20df35777', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-8dfb-42fc-92b6-01afb759ed16', - }, + }), }), taskTargets: getFlatFieldMetadataMock({ id: '9609ca31-215e-47fd-9b3b-ab200acb2fa8', @@ -528,7 +528,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '64225f87-96c4-4846-9462-e7aa3ad9e182', relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', uniqueIdentifier: '20202020-584b-4d3e-88b6-53ab1fa03c3a', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '64225f87-96c4-4846-9462-e7aa3ad9e182', standardId: '20202020-c8a0-4e85-a016-87e2349cfbec', objectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', @@ -555,7 +555,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '9609ca31-215e-47fd-9b3b-ab200acb2fa8', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-c8a0-4e85-a016-87e2349cfbec', - }, + }), }), noteTargets: getFlatFieldMetadataMock({ id: '60388ed8-45f6-4fb5-8752-81c73e13f4ab', @@ -580,7 +580,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '560c71ff-254f-4baf-a4d1-054c53444f41', relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', uniqueIdentifier: '20202020-c8fc-4258-8250-15905d3fcfec', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '560c71ff-254f-4baf-a4d1-054c53444f41', standardId: '20202020-38ca-4aab-92f5-8a605ca2e4c5', objectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', @@ -607,7 +607,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '60388ed8-45f6-4fb5-8752-81c73e13f4ab', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-38ca-4aab-92f5-8a605ca2e4c5', - }, + }), }), favorites: getFlatFieldMetadataMock({ id: 'a1a72bee-1c15-4598-ba23-67ba8e3e505d', @@ -632,7 +632,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '013cec20-e9cc-42db-b9b9-ff6bd0f52abd', relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', uniqueIdentifier: '20202020-4073-4117-9cf1-203bcdc91cbd', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '013cec20-e9cc-42db-b9b9-ff6bd0f52abd', standardId: '20202020-c428-4f40-b6f3-86091511c41c', objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', @@ -659,7 +659,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'a1a72bee-1c15-4598-ba23-67ba8e3e505d', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-c428-4f40-b6f3-86091511c41c', - }, + }), }), attachments: getFlatFieldMetadataMock({ id: '367ad117-de09-466c-94f8-ce99d951b5ce', @@ -684,7 +684,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '6938c2ec-ebcc-4f30-8d38-2c9c40228c53', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-cd97-451f-87fa-bcb789bdbf3a', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '6938c2ec-ebcc-4f30-8d38-2c9c40228c53', standardId: '20202020-0158-4aa2-965c-5cdafe21ffa2', objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', @@ -711,7 +711,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '367ad117-de09-466c-94f8-ce99d951b5ce', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-0158-4aa2-965c-5cdafe21ffa2', - }, + }), }), messageParticipants: getFlatFieldMetadataMock({ id: '22dcab3c-939c-4b8d-bd7c-4c4d58588460', @@ -736,7 +736,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'e95d7d1a-9101-4048-b019-d2f8bc110328', relationTargetObjectMetadataId: 'edb170fd-a0c2-4619-b1a9-293cf07437c4', uniqueIdentifier: '20202020-498e-4c61-8158-fa04f0638334', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'e95d7d1a-9101-4048-b019-d2f8bc110328', standardId: '20202020-249d-4e0f-82cd-1b9df5cd3da2', objectMetadataId: 'edb170fd-a0c2-4619-b1a9-293cf07437c4', @@ -763,7 +763,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '22dcab3c-939c-4b8d-bd7c-4c4d58588460', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-249d-4e0f-82cd-1b9df5cd3da2', - }, + }), }), calendarEventParticipants: getFlatFieldMetadataMock({ id: '9e82a873-2988-4d9d-af04-81f2d947f4ec', @@ -788,7 +788,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'e39f443d-3282-47a3-a24d-47ed604d58be', relationTargetObjectMetadataId: 'a4c662b6-e08d-40a5-ae55-82ed8f4edf78', uniqueIdentifier: '20202020-52ee-45e9-a702-b64b3753e3a9', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'e39f443d-3282-47a3-a24d-47ed604d58be', standardId: '20202020-5761-4842-8186-e1898ef93966', objectMetadataId: 'a4c662b6-e08d-40a5-ae55-82ed8f4edf78', @@ -815,7 +815,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '9e82a873-2988-4d9d-af04-81f2d947f4ec', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-5761-4842-8186-e1898ef93966', - }, + }), }), timelineActivities: getFlatFieldMetadataMock({ id: 'b1457347-545b-4a42-9c68-bc655952229a', @@ -840,7 +840,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'dbd02754-4bef-4149-b39d-54759983ab47', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-a43e-4873-9c23-e522de906ce5', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'dbd02754-4bef-4149-b39d-54759983ab47', standardId: '20202020-c414-45b9-a60a-ac27aa96229f', objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', @@ -867,7 +867,7 @@ export const PERSON_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'b1457347-545b-4a42-9c68-bc655952229a', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-c414-45b9-a60a-ac27aa96229f', - }, + }), }), intro: getFlatFieldMetadataMock({ id: '94c95bfa-88bc-4271-87c2-08e6df084a15', diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/pet-flat-fields.mock.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/pet-flat-fields.mock.ts index 0d687158b2..56a841f63c 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/pet-flat-fields.mock.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/pet-flat-fields.mock.ts @@ -30,7 +30,7 @@ export const PET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'd88d0737-e83a-47b1-b701-8edfe4a2ae2e', relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', uniqueIdentifier: '20202020-01fd-4f37-99dc-9427a444018a', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'd88d0737-e83a-47b1-b701-8edfe4a2ae2e', standardId: '20202020-c54e-4804-8b0d-8795e5166432', objectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', @@ -57,7 +57,7 @@ export const PET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '98afd46e-0259-4c87-969d-16e7e660e007', relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f', uniqueIdentifier: '20202020-c54e-4804-8b0d-8795e5166432', - }, + }), }), id: getFlatFieldMetadataMock({ id: 'ce25501a-1cc6-44c5-9158-b602db0efaca', @@ -257,7 +257,7 @@ export const PET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '3cb86390-4ee7-42fa-bd1e-bd6326b47610', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-f1ef-4ba4-8f33-1a4577afa477', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '3cb86390-4ee7-42fa-bd1e-bd6326b47610', standardId: '20202020-d88f-4020-8c85-d6c600903762', objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', @@ -284,7 +284,7 @@ export const PET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '4eb74f21-1cb4-46b5-b3bb-4e41108e70d9', relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f', uniqueIdentifier: '20202020-d88f-4020-8c85-d6c600903762', - }, + }), }), favorites: getFlatFieldMetadataMock({ id: '80bc4e7a-6bd1-4f2b-98b1-6333c631cc1a', @@ -309,7 +309,7 @@ export const PET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'd34b4048-bf0c-4c61-8ffe-59f1838a2cc4', relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', uniqueIdentifier: '20202020-a4a7-4686-b296-1c6c3482ee21', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'd34b4048-bf0c-4c61-8ffe-59f1838a2cc4', standardId: '20202020-1bd7-4d10-80dc-968b9f5d1a8a', objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', @@ -336,7 +336,7 @@ export const PET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '80bc4e7a-6bd1-4f2b-98b1-6333c631cc1a', relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f', uniqueIdentifier: '20202020-1bd7-4d10-80dc-968b9f5d1a8a', - }, + }), }), attachments: getFlatFieldMetadataMock({ id: '231903d0-3b14-47ed-9a88-fbf11031c451', @@ -361,7 +361,7 @@ export const PET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '317a33ef-117e-4953-86d4-c4a9670a2ce3', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-8d59-46ca-b7b2-73d167712134', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '317a33ef-117e-4953-86d4-c4a9670a2ce3', standardId: '20202020-b715-4658-8b6a-5359824dbddd', objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', @@ -388,7 +388,7 @@ export const PET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '231903d0-3b14-47ed-9a88-fbf11031c451', relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f', uniqueIdentifier: '20202020-b715-4658-8b6a-5359824dbddd', - }, + }), }), taskTargets: getFlatFieldMetadataMock({ id: '3cae8259-ece8-4b81-9044-f5abae5ff25c', @@ -413,7 +413,7 @@ export const PET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '3955a4b4-1c10-4ce8-a92e-98e727ee7aec', relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', uniqueIdentifier: '20202020-0860-4566-b865-bff3c626c303', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '3955a4b4-1c10-4ce8-a92e-98e727ee7aec', standardId: '20202020-07d9-4d04-8b73-a39ab65943f1', objectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', @@ -440,7 +440,7 @@ export const PET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '3cae8259-ece8-4b81-9044-f5abae5ff25c', relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f', uniqueIdentifier: '20202020-07d9-4d04-8b73-a39ab65943f1', - }, + }), }), searchVector: getFlatFieldMetadataMock({ id: '0db37175-e573-43e4-bd83-fa71923fde0c', diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/rocket-flat-fields.mock.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/rocket-flat-fields.mock.ts index e48abcb8a1..6df128fd8e 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/rocket-flat-fields.mock.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/rocket-flat-fields.mock.ts @@ -3,8 +3,8 @@ import { FieldMetadataType } from 'twenty-shared/types'; import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; import { getFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock'; -import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type'; import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type'; +import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type'; export const ROCKET_FLAT_FIELDS_MOCK = { id: getFlatFieldMetadataMock({ @@ -205,7 +205,7 @@ export const ROCKET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'eebb9590-817b-4a51-88f7-9792aa8e0a59', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-f1ef-4ba4-8f33-1a4577afa477', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'eebb9590-817b-4a51-88f7-9792aa8e0a59', standardId: '20202020-0be6-444e-88f0-12e0c64ac27d', objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', @@ -232,7 +232,7 @@ export const ROCKET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '53a223cc-a445-420d-8698-1a9137039448', relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a', uniqueIdentifier: '20202020-0be6-444e-88f0-12e0c64ac27d', - }, + }), }), favorites: getFlatFieldMetadataMock({ id: '14010360-f3c2-442e-b05f-43c30158f246', @@ -257,7 +257,7 @@ export const ROCKET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '9448627d-725d-499e-a071-90fd5cfcf0ea', relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', uniqueIdentifier: '20202020-a4a7-4686-b296-1c6c3482ee21', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '9448627d-725d-499e-a071-90fd5cfcf0ea', standardId: '20202020-78f7-4d7d-86e9-7562ced0b381', objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', @@ -284,7 +284,7 @@ export const ROCKET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '14010360-f3c2-442e-b05f-43c30158f246', relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a', uniqueIdentifier: '20202020-78f7-4d7d-86e9-7562ced0b381', - }, + }), }), attachments: getFlatFieldMetadataMock({ id: 'f5984acf-5128-42ac-840f-9d2888423699', @@ -309,7 +309,7 @@ export const ROCKET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'ba23019c-7f25-42c3-8138-622e61c42968', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-8d59-46ca-b7b2-73d167712134', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'ba23019c-7f25-42c3-8138-622e61c42968', standardId: '20202020-ca2d-47c0-8253-9d0b662fb01a', objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', @@ -336,7 +336,7 @@ export const ROCKET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'f5984acf-5128-42ac-840f-9d2888423699', relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a', uniqueIdentifier: '20202020-ca2d-47c0-8253-9d0b662fb01a', - }, + }), }), noteTargets: getFlatFieldMetadataMock({ id: 'c91376fb-20bd-47c7-8922-b64f7db51cfa', @@ -361,7 +361,7 @@ export const ROCKET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '4212b3d7-dd9f-4da9-85f7-2fa69a42296f', relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', uniqueIdentifier: '20202020-01fd-4f37-99dc-9427a444018a', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '4212b3d7-dd9f-4da9-85f7-2fa69a42296f', standardId: '20202020-52b6-4d5e-8f21-ed8b7c09c4a9', objectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0', @@ -388,7 +388,7 @@ export const ROCKET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'c91376fb-20bd-47c7-8922-b64f7db51cfa', relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a', uniqueIdentifier: '20202020-52b6-4d5e-8f21-ed8b7c09c4a9', - }, + }), }), taskTargets: getFlatFieldMetadataMock({ id: '80e3b587-69ec-48bc-a872-20105c3b7df4', @@ -413,7 +413,7 @@ export const ROCKET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'a7e80fd8-76bc-45ed-b843-a2b87ef4d601', relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', uniqueIdentifier: '20202020-0860-4566-b865-bff3c626c303', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'a7e80fd8-76bc-45ed-b843-a2b87ef4d601', standardId: '20202020-b98f-473d-85fb-8cebc40b9a50', objectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', @@ -440,7 +440,7 @@ export const ROCKET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '80e3b587-69ec-48bc-a872-20105c3b7df4', relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a', uniqueIdentifier: '20202020-b98f-473d-85fb-8cebc40b9a50', - }, + }), }), searchVector: getFlatFieldMetadataMock({ id: 'e7609ea3-5a88-4d64-b0c1-eefd4602361a', diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/task-flat-fields.mock.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/task-flat-fields.mock.ts index b7459151be..a3b745e2cd 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/task-flat-fields.mock.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/task-flat-fields.mock.ts @@ -332,7 +332,7 @@ export const TASK_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'c906885c-315a-4783-942e-6caafecf2031', relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', uniqueIdentifier: '20202020-de9c-4d0e-a452-713d4a3e5fc7', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'c906885c-315a-4783-942e-6caafecf2031', standardId: '20202020-e881-457a-8758-74aaef4ae78a', objectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', @@ -359,7 +359,7 @@ export const TASK_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'cd08bc00-d02c-48d4-a1ac-a0cfa13742b7', relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0', uniqueIdentifier: '20202020-e881-457a-8758-74aaef4ae78a', - }, + }), }), attachments: getFlatFieldMetadataMock({ id: '00fd339a-6431-465d-9524-09b5c804f497', @@ -384,7 +384,7 @@ export const TASK_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'bd823f17-f923-4f0d-8533-51d7bc062975', relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', uniqueIdentifier: '20202020-794d-4783-a8ff-cecdb15be139', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'bd823f17-f923-4f0d-8533-51d7bc062975', standardId: '20202020-51e5-4621-9cf8-215487951c4b', objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27', @@ -411,7 +411,7 @@ export const TASK_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '00fd339a-6431-465d-9524-09b5c804f497', relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0', uniqueIdentifier: '20202020-51e5-4621-9cf8-215487951c4b', - }, + }), }), assignee: getFlatFieldMetadataMock({ id: '0e18f5e1-32c3-4daa-b282-ab64fb629b20', @@ -440,7 +440,7 @@ export const TASK_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '68779392-f0ec-42b4-9d89-9645ae84039d', relationTargetObjectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840', uniqueIdentifier: '20202020-065a-4f42-a906-e20422c1753f', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '68779392-f0ec-42b4-9d89-9645ae84039d', standardId: '20202020-61dc-4a1c-99e8-38ebf8d2bbeb', objectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840', @@ -463,7 +463,7 @@ export const TASK_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '0e18f5e1-32c3-4daa-b282-ab64fb629b20', relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0', uniqueIdentifier: '20202020-61dc-4a1c-99e8-38ebf8d2bbeb', - }, + }), }), timelineActivities: getFlatFieldMetadataMock({ id: '3536b3af-76a2-44f5-9d89-1961a0a0a763', @@ -488,7 +488,7 @@ export const TASK_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '187eaeb8-62c8-4925-815f-946b4768b786', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-c778-4278-99ee-23a2837aee64', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '187eaeb8-62c8-4925-815f-946b4768b786', standardId: '20202020-b2f5-415c-9135-a31dfe49501b', objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', @@ -515,7 +515,7 @@ export const TASK_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '3536b3af-76a2-44f5-9d89-1961a0a0a763', relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0', uniqueIdentifier: '20202020-b2f5-415c-9135-a31dfe49501b', - }, + }), }), favorites: getFlatFieldMetadataMock({ id: '33e4eff0-ff0f-4530-802a-cd630481ee84', @@ -540,7 +540,7 @@ export const TASK_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'db16ab78-ea3f-4b67-93e3-6ad9ab1b7273', relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', uniqueIdentifier: '20202020-4d1d-41ac-b13b-621631298d65', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'db16ab78-ea3f-4b67-93e3-6ad9ab1b7273', standardId: '20202020-1b1b-4b3b-8b1b-7f8d6a1d7d5c', objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2', @@ -567,6 +567,6 @@ export const TASK_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '33e4eff0-ff0f-4530-802a-cd630481ee84', relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0', uniqueIdentifier: '20202020-1b1b-4b3b-8b1b-7f8d6a1d7d5c', - }, + }), }), } as const satisfies Record; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/tasktarget-flat-fields.mock.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/tasktarget-flat-fields.mock.ts index c4050d4199..d6d3af2dbf 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/tasktarget-flat-fields.mock.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/tasktarget-flat-fields.mock.ts @@ -1,11 +1,11 @@ import { FieldMetadataType } from 'twenty-shared/types'; -import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-settings.interface'; +import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; import { getFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock'; -import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type'; import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type'; +import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type'; export const TASKTARGET_FLAT_FIELDS_MOCK = { id: getFlatFieldMetadataMock({ @@ -135,7 +135,7 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'cd08bc00-d02c-48d4-a1ac-a0cfa13742b7', relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0', uniqueIdentifier: '20202020-e881-457a-8758-74aaef4ae78a', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'cd08bc00-d02c-48d4-a1ac-a0cfa13742b7', standardId: '20202020-de9c-4d0e-a452-713d4a3e5fc7', objectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0', @@ -158,7 +158,7 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'c906885c-315a-4783-942e-6caafecf2031', relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', uniqueIdentifier: '20202020-de9c-4d0e-a452-713d4a3e5fc7', - }, + }), }), person: getFlatFieldMetadataMock({ id: '64225f87-96c4-4846-9462-e7aa3ad9e182', @@ -187,7 +187,7 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '9609ca31-215e-47fd-9b3b-ab200acb2fa8', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-c8a0-4e85-a016-87e2349cfbec', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '9609ca31-215e-47fd-9b3b-ab200acb2fa8', standardId: '20202020-584b-4d3e-88b6-53ab1fa03c3a', objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', @@ -210,7 +210,7 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '64225f87-96c4-4846-9462-e7aa3ad9e182', relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', uniqueIdentifier: '20202020-584b-4d3e-88b6-53ab1fa03c3a', - }, + }), }), company: getFlatFieldMetadataMock({ id: 'ec11b025-1476-4e84-81c5-cf5b5c776edc', @@ -239,7 +239,7 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '4f9138da-cd36-4df4-98f9-ebabe036b141', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: '20202020-4703-4a4e-948c-487b0c60a92c', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '4f9138da-cd36-4df4-98f9-ebabe036b141', standardId: '20202020-cb17-4a61-8f8f-3be6730480de', objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', @@ -262,7 +262,7 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'ec11b025-1476-4e84-81c5-cf5b5c776edc', relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', uniqueIdentifier: '20202020-cb17-4a61-8f8f-3be6730480de', - }, + }), }), opportunity: getFlatFieldMetadataMock({ id: '49afc8d8-dde3-4d19-aa6b-bd16a751b114', @@ -291,7 +291,7 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'c0c9f9ac-0d40-4206-90e5-0d1e14f8a09f', relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', uniqueIdentifier: '20202020-6cb2-4c01-a9a5-aca3dbc11d41', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'c0c9f9ac-0d40-4206-90e5-0d1e14f8a09f', standardId: '20202020-59c0-4179-a208-4a255f04a5be', objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', @@ -314,7 +314,7 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '49afc8d8-dde3-4d19-aa6b-bd16a751b114', relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', uniqueIdentifier: '20202020-59c0-4179-a208-4a255f04a5be', - }, + }), }), rocket: getFlatFieldMetadataMock({ id: 'a7e80fd8-76bc-45ed-b843-a2b87ef4d601', @@ -343,7 +343,7 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '80e3b587-69ec-48bc-a872-20105c3b7df4', relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a', uniqueIdentifier: '20202020-b98f-473d-85fb-8cebc40b9a50', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '80e3b587-69ec-48bc-a872-20105c3b7df4', standardId: '20202020-0860-4566-b865-bff3c626c303', objectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a', @@ -366,7 +366,7 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'a7e80fd8-76bc-45ed-b843-a2b87ef4d601', relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', uniqueIdentifier: '20202020-0860-4566-b865-bff3c626c303', - }, + }), }), pet: getFlatFieldMetadataMock({ id: '3955a4b4-1c10-4ce8-a92e-98e727ee7aec', @@ -395,7 +395,7 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '3cae8259-ece8-4b81-9044-f5abae5ff25c', relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f', uniqueIdentifier: '20202020-07d9-4d04-8b73-a39ab65943f1', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '3cae8259-ece8-4b81-9044-f5abae5ff25c', standardId: '20202020-0860-4566-b865-bff3c626c303', objectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f', @@ -418,7 +418,7 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '3955a4b4-1c10-4ce8-a92e-98e727ee7aec', relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', uniqueIdentifier: '20202020-0860-4566-b865-bff3c626c303', - }, + }), }), surveyResult: getFlatFieldMetadataMock({ id: 'caa8b6cf-c668-4fb0-abf9-e49645668020', @@ -447,7 +447,7 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'c4004fb2-3464-4302-b3c3-a32a1879fed7', relationTargetObjectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8', uniqueIdentifier: '20202020-c376-450d-8a49-a573f23eafd8', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'c4004fb2-3464-4302-b3c3-a32a1879fed7', standardId: '20202020-0860-4566-b865-bff3c626c303', objectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8', @@ -470,6 +470,6 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'caa8b6cf-c668-4fb0-abf9-e49645668020', relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166', uniqueIdentifier: '20202020-0860-4566-b865-bff3c626c303', - }, + }), }), } as const satisfies Record; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/timelineactivity-flat-fields.mock.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/timelineactivity-flat-fields.mock.ts index 2d01e03cc2..d9e9cfa1d3 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/timelineactivity-flat-fields.mock.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__mocks__/timelineactivity-flat-fields.mock.ts @@ -1,11 +1,11 @@ import { FieldMetadataType } from 'twenty-shared/types'; -import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-settings.interface'; +import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; import { getFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock'; -import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type'; import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type'; +import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type'; export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { happensAt: getFlatFieldMetadataMock({ @@ -285,7 +285,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'b2172f26-093d-4c9f-86c3-f0bcfaf54ad6', relationTargetObjectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840', uniqueIdentifier: '20202020-af23-4479-9a30-868edc474b36', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'b2172f26-093d-4c9f-86c3-f0bcfaf54ad6', standardId: '20202020-e15b-47b8-94fe-8200e3c66615', objectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840', @@ -308,7 +308,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'c8d9c315-034a-4ffd-a6b3-e6386092d0a8', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-e15b-47b8-94fe-8200e3c66615', - }, + }), }), person: getFlatFieldMetadataMock({ id: 'dbd02754-4bef-4149-b39d-54759983ab47', @@ -337,7 +337,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'b1457347-545b-4a42-9c68-bc655952229a', relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', uniqueIdentifier: '20202020-c414-45b9-a60a-ac27aa96229f', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'b1457347-545b-4a42-9c68-bc655952229a', standardId: '20202020-a43e-4873-9c23-e522de906ce5', objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611', @@ -360,7 +360,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'dbd02754-4bef-4149-b39d-54759983ab47', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-a43e-4873-9c23-e522de906ce5', - }, + }), }), company: getFlatFieldMetadataMock({ id: 'fd8cabe5-7dc8-4d6a-8053-43434488b3e4', @@ -389,7 +389,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'cc78390f-f570-4c2c-9f19-2a8fef67f4f6', relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', uniqueIdentifier: '20202020-04ad-4221-a744-7a8278a5ce21', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'cc78390f-f570-4c2c-9f19-2a8fef67f4f6', standardId: '20202020-0414-4daf-9c0d-64fe7b27f89f', objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc', @@ -412,7 +412,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'fd8cabe5-7dc8-4d6a-8053-43434488b3e4', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-0414-4daf-9c0d-64fe7b27f89f', - }, + }), }), opportunity: getFlatFieldMetadataMock({ id: '026cbaa7-860c-4ed4-b878-8d78849e6c28', @@ -441,7 +441,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '7826944b-3b21-4448-892e-5a2a68161313', relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', uniqueIdentifier: '20202020-7664-4a35-a3df-580d389fd527', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '7826944b-3b21-4448-892e-5a2a68161313', standardId: '20202020-30e2-421f-96c7-19c69d1cf631', objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7', @@ -464,7 +464,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '026cbaa7-860c-4ed4-b878-8d78849e6c28', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-30e2-421f-96c7-19c69d1cf631', - }, + }), }), note: getFlatFieldMetadataMock({ id: '2b9f1c90-9e35-4ccc-8d84-b42de31ef127', @@ -493,7 +493,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '1207d260-db2c-41d4-bb09-34ea1188978f', relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c', uniqueIdentifier: '20202020-ec55-4135-8da5-3a20badc0156', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '1207d260-db2c-41d4-bb09-34ea1188978f', standardId: '20202020-7030-42f8-929c-1a57b25d6bce', objectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c', @@ -516,7 +516,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '2b9f1c90-9e35-4ccc-8d84-b42de31ef127', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-7030-42f8-929c-1a57b25d6bce', - }, + }), }), task: getFlatFieldMetadataMock({ id: '187eaeb8-62c8-4925-815f-946b4768b786', @@ -545,7 +545,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '3536b3af-76a2-44f5-9d89-1961a0a0a763', relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0', uniqueIdentifier: '20202020-b2f5-415c-9135-a31dfe49501b', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '3536b3af-76a2-44f5-9d89-1961a0a0a763', standardId: '20202020-c778-4278-99ee-23a2837aee64', objectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0', @@ -568,7 +568,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '187eaeb8-62c8-4925-815f-946b4768b786', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-c778-4278-99ee-23a2837aee64', - }, + }), }), workflow: getFlatFieldMetadataMock({ id: '9973da2e-cc65-41b2-8f52-4130cfa31fc6', @@ -597,7 +597,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '384db7b5-3551-4774-9258-7082b26b502a', relationTargetObjectMetadataId: '664c19a5-0693-45d4-a4e5-76c3717db83c', uniqueIdentifier: '20202020-616c-4ad3-a2e9-c477c341e295', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '384db7b5-3551-4774-9258-7082b26b502a', standardId: '20202020-906e-486a-a798-131a5f081faf', objectMetadataId: '664c19a5-0693-45d4-a4e5-76c3717db83c', @@ -620,7 +620,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '9973da2e-cc65-41b2-8f52-4130cfa31fc6', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-906e-486a-a798-131a5f081faf', - }, + }), }), workflowVersion: getFlatFieldMetadataMock({ id: '7e5b7033-8c4f-4bdc-9156-6954c268fbb8', @@ -649,7 +649,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '767ab66d-f3d7-4bac-b0be-f738f8c6fda7', relationTargetObjectMetadataId: '99cf5f27-b41d-4f25-a23b-9e47d27dae9b', uniqueIdentifier: '20202020-74f1-4711-a129-e14ca0ecd744', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '767ab66d-f3d7-4bac-b0be-f738f8c6fda7', standardId: '20202020-fcb0-4695-b17e-3b43a421c633', objectMetadataId: '99cf5f27-b41d-4f25-a23b-9e47d27dae9b', @@ -672,7 +672,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '7e5b7033-8c4f-4bdc-9156-6954c268fbb8', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-fcb0-4695-b17e-3b43a421c633', - }, + }), }), workflowRun: getFlatFieldMetadataMock({ id: '1cd2b19c-f5c5-40b4-ad41-cc7aa3e955b2', @@ -701,7 +701,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'c17fe20f-fcd1-4b21-ac5c-c595473a3af8', relationTargetObjectMetadataId: '06d95e96-b050-443f-946e-dd276d291a2f', uniqueIdentifier: '20202020-96f0-401b-9186-a3a0759225ac', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'c17fe20f-fcd1-4b21-ac5c-c595473a3af8', standardId: '20202020-af4d-4eb0-babc-eb960a45b356', objectMetadataId: '06d95e96-b050-443f-946e-dd276d291a2f', @@ -724,7 +724,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '1cd2b19c-f5c5-40b4-ad41-cc7aa3e955b2', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-af4d-4eb0-babc-eb960a45b356', - }, + }), }), rocket: getFlatFieldMetadataMock({ id: 'eebb9590-817b-4a51-88f7-9792aa8e0a59', @@ -753,7 +753,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '53a223cc-a445-420d-8698-1a9137039448', relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a', uniqueIdentifier: '20202020-0be6-444e-88f0-12e0c64ac27d', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '53a223cc-a445-420d-8698-1a9137039448', standardId: '20202020-f1ef-4ba4-8f33-1a4577afa477', objectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a', @@ -776,7 +776,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'eebb9590-817b-4a51-88f7-9792aa8e0a59', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-f1ef-4ba4-8f33-1a4577afa477', - }, + }), }), pet: getFlatFieldMetadataMock({ id: '3cb86390-4ee7-42fa-bd1e-bd6326b47610', @@ -805,7 +805,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '4eb74f21-1cb4-46b5-b3bb-4e41108e70d9', relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f', uniqueIdentifier: '20202020-d88f-4020-8c85-d6c600903762', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: '4eb74f21-1cb4-46b5-b3bb-4e41108e70d9', standardId: '20202020-f1ef-4ba4-8f33-1a4577afa477', objectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f', @@ -828,7 +828,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '3cb86390-4ee7-42fa-bd1e-bd6326b47610', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-f1ef-4ba4-8f33-1a4577afa477', - }, + }), }), surveyResult: getFlatFieldMetadataMock({ id: '06010d88-dc3c-4172-92c9-8c73924f950d', @@ -857,7 +857,7 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: 'd544ccb4-b0df-43bb-b70c-57ae477838c4', relationTargetObjectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8', uniqueIdentifier: '20202020-d13a-4342-8df0-df48bd783787', - flatRelationTargetFieldMetadata: { + flatRelationTargetFieldMetadata: getFlatFieldMetadataMock({ id: 'd544ccb4-b0df-43bb-b70c-57ae477838c4', standardId: '20202020-f1ef-4ba4-8f33-1a4577afa477', objectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8', @@ -880,6 +880,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = { relationTargetFieldMetadataId: '06010d88-dc3c-4172-92c9-8c73924f950d', relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec', uniqueIdentifier: '20202020-f1ef-4ba4-8f33-1a4577afa477', - }, + }), }), } as const satisfies Record; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type.ts index f946cfa860..5f82164cfb 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type.ts @@ -16,10 +16,7 @@ export type FieldMetadataEntityRelationProperties = (typeof fieldMetadataRelationProperties)[number]; export type FlatFieldMetadata = - Omit< - FieldMetadataEntity, - FieldMetadataEntityRelationProperties | 'createdAt' | 'updatedAt' - > & { + Omit, FieldMetadataEntityRelationProperties> & { uniqueIdentifier: string; flatRelationTargetFieldMetadata: AssignTypeIfIsRelationFieldMetadataType< Omit< diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/from-delete-field-input-to-flat-field-metadatas-to-delete.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/from-delete-field-input-to-flat-field-metadatas-to-delete.util.ts index 98657c372f..d06aabfe54 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/from-delete-field-input-to-flat-field-metadatas-to-delete.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/from-delete-field-input-to-flat-field-metadatas-to-delete.util.ts @@ -10,6 +10,7 @@ import { FieldMetadataExceptionCode, } from 'src/engine/metadata-modules/field-metadata/field-metadata.exception'; import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type'; +import { getRelationFlatFieldMetadatasOrThrow } from 'src/engine/metadata-modules/flat-field-metadata/utils/get-relation-flat-field-metadatas-or-throw.util'; import { isFlatFieldMetadataEntityOfType } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-of-type.util'; import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type'; import { findFlatFieldMetadataInFlatObjectMetadataMapsWithOnlyFieldId } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/find-flat-field-metadata-in-flat-object-metadata-maps-with-field-id-only.util'; @@ -45,41 +46,16 @@ export const fromDeleteFieldInputToFlatFieldMetadatasToDelete = ({ isFlatFieldMetadataEntityOfType( flatFieldMetadataToDelete, FieldMetadataType.RELATION, - ) - ) { - const { relationTargetFieldMetadataId, relationTargetObjectMetadataId } = - flatFieldMetadataToDelete; - - const relatedFlatObjectMetadata = - existingFlatObjectMetadataMaps.byId[relationTargetObjectMetadataId]; - - if (!isDefined(relatedFlatObjectMetadata)) { - throw new FieldMetadataException( - `Deleted field metadata relation object metadata target not found`, - FieldMetadataExceptionCode.OBJECT_METADATA_NOT_FOUND, - ); - } - const relatedFlatFieldMetadata = - relatedFlatObjectMetadata.fieldsById[relationTargetFieldMetadataId]; - - if (!isDefined(relatedFlatFieldMetadata)) { - throw new FieldMetadataException( - `Deleted field metadata relation field metadata target not found`, - FieldMetadataExceptionCode.FIELD_METADATA_NOT_FOUND, - ); - } - - return [flatFieldMetadataToDelete, relatedFlatFieldMetadata]; - } - - if ( + ) || isFlatFieldMetadataEntityOfType( flatFieldMetadataToDelete, FieldMetadataType.MORPH_RELATION, ) ) { - // TODO prastoin - return [flatFieldMetadataToDelete]; + return getRelationFlatFieldMetadatasOrThrow({ + existingFlatObjectMetadataMaps, + flatFieldMetadata: flatFieldMetadataToDelete, + }); } return [flatFieldMetadataToDelete]; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/from-flat-field-metadata-to-field-metadata-dto.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/from-flat-field-metadata-to-field-metadata-dto.util.ts new file mode 100644 index 0000000000..e0d34cc43f --- /dev/null +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/from-flat-field-metadata-to-field-metadata-dto.util.ts @@ -0,0 +1,30 @@ +import { type FieldMetadataDTO } from 'src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto'; +import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type'; + +export const fromFlatFieldMetadataToFieldMetadataDto = ( + flatFieldMetadata: FlatFieldMetadata, +): FieldMetadataDTO => { + const { + createdAt, + updatedAt, + description, + icon, + standardOverrides, + isNullable, + isUnique, + settings, + ...rest + } = flatFieldMetadata; + + return { + ...rest, + createdAt: new Date(createdAt), + updatedAt: new Date(updatedAt), + description: description ?? undefined, + icon: icon ?? undefined, + standardOverrides: standardOverrides ?? undefined, + isNullable: isNullable ?? false, + isUnique: isUnique ?? false, + settings: settings ?? undefined, + }; +}; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/get-default-flat-field-metadata-from-create-field-input.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/get-default-flat-field-metadata-from-create-field-input.util.ts index 4e7a1dd10d..4a60f1f559 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/get-default-flat-field-metadata-from-create-field-input.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/get-default-flat-field-metadata-from-create-field-input.util.ts @@ -19,6 +19,8 @@ export const getDefaultFlatFieldMetadata = ({ ['defaultValue', 'settings'], ); + const createdAt = new Date(); + return { description: createFieldInput.description ?? null, id: fieldMetadataId, @@ -48,5 +50,7 @@ export const getDefaultFlatFieldMetadata = ({ options: null, defaultValue: defaultValue ?? null, settings: settings ?? null, + createdAt, + updatedAt: createdAt, } as const satisfies FlatFieldMetadata; }; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/get-relation-flat-field-metadatas-or-throw.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/get-relation-flat-field-metadatas-or-throw.util.ts new file mode 100644 index 0000000000..f519860170 --- /dev/null +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/get-relation-flat-field-metadatas-or-throw.util.ts @@ -0,0 +1,45 @@ +import { type FieldMetadataType } from 'twenty-shared/types'; +import { isDefined } from 'twenty-shared/utils'; + +import { + FieldMetadataException, + FieldMetadataExceptionCode, +} from 'src/engine/metadata-modules/field-metadata/field-metadata.exception'; +import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type'; +import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type'; + +type GetRelationFlatFieldMetadatasUtilArgs = { + existingFlatObjectMetadataMaps: FlatObjectMetadataMaps; + flatFieldMetadata: FlatFieldMetadata< + FieldMetadataType.RELATION | FieldMetadataType.MORPH_RELATION + >; +}; +// TODO prastoin handle morph relation +export const getRelationFlatFieldMetadatasOrThrow = ({ + existingFlatObjectMetadataMaps, + flatFieldMetadata, +}: GetRelationFlatFieldMetadatasUtilArgs): FlatFieldMetadata[] => { + const { relationTargetFieldMetadataId, relationTargetObjectMetadataId } = + flatFieldMetadata; + + const relatedFlatObjectMetadata = + existingFlatObjectMetadataMaps.byId[relationTargetObjectMetadataId]; + + if (!isDefined(relatedFlatObjectMetadata)) { + throw new FieldMetadataException( + `Deleted field metadata relation object metadata target not found`, + FieldMetadataExceptionCode.OBJECT_METADATA_NOT_FOUND, + ); + } + const relatedFlatFieldMetadata = + relatedFlatObjectMetadata.fieldsById[relationTargetFieldMetadataId]; + + if (!isDefined(relatedFlatFieldMetadata)) { + throw new FieldMetadataException( + `Deleted field metadata relation field metadata target not found`, + FieldMetadataExceptionCode.FIELD_METADATA_NOT_FOUND, + ); + } + + return [flatFieldMetadata, relatedFlatFieldMetadata]; +}; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/__mocks__/get-flat-object-metadata.mock.ts b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/__mocks__/get-flat-object-metadata.mock.ts index 2a4435fdfb..465b397a4b 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/__mocks__/get-flat-object-metadata.mock.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/__mocks__/get-flat-object-metadata.mock.ts @@ -9,6 +9,8 @@ type FlatObjectMetadataOverrides = Required< export const getFlatObjectMetadataMock = ( overrides: FlatObjectMetadataOverrides, ): FlatObjectMetadata => { + const createdAt = new Date(); + return { flatFieldMetadatas: [], flatIndexMetadatas: [], @@ -33,6 +35,9 @@ export const getFlatObjectMetadataMock = ( standardOverrides: null, targetTableName: '', workspaceId: faker.string.uuid(), + createdAt, + updatedAt: createdAt, + duplicateCriteria: null, ...overrides, }; }; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/services/flat-object-metadata-validator.service.ts b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/services/flat-object-metadata-validator.service.ts index 284db63896..abfb09462f 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/services/flat-object-metadata-validator.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/services/flat-object-metadata-validator.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@nestjs/common'; import { t } from '@lingui/core/macro'; +import { isDefined } from 'twenty-shared/utils'; import { FlatFieldMetadataValidatorService } from 'src/engine/metadata-modules/flat-field-metadata/services/flat-field-metadata-validator.service'; import { FailedFlatFieldMetadataValidationExceptions } from 'src/engine/metadata-modules/flat-field-metadata/types/failed-flat-field-metadata-validation.type'; @@ -31,6 +32,60 @@ export class FlatObjectMetadataValidatorService { private readonly flatFieldMetadataValidatorService: FlatFieldMetadataValidatorService, ) {} + public validateFlatObjectMetadataDeletion({ + existingFlatObjectMetadataMaps, + objectMetadataToDeleteId, + }: { + existingFlatObjectMetadataMaps: FlatObjectMetadataMaps; + objectMetadataToDeleteId: string; + }) { + const errors: FailedFlatObjectMetadataValidationExceptions[] = []; + + const flatObjectMetadataToDelete = + existingFlatObjectMetadataMaps.byId[objectMetadataToDeleteId]; + + if (!isDefined(flatObjectMetadataToDelete)) { + errors.push( + new ObjectMetadataException( + t`Object does not exist`, + ObjectMetadataExceptionCode.OBJECT_METADATA_NOT_FOUND, + ), + ); + } else { + if (flatObjectMetadataToDelete.isRemote) { + errors.push( + new ObjectMetadataException( + t`Remote objects are not supported yet`, + ObjectMetadataExceptionCode.INVALID_OBJECT_INPUT, + ), + ); + } + + if ( + flatObjectMetadataToDelete.standardId !== null && + !flatObjectMetadataToDelete.isCustom + ) { + errors.push( + new ObjectMetadataException( + t`Standard objects cannot be deleted`, + ObjectMetadataExceptionCode.INVALID_OBJECT_INPUT, + ), + ); + } + + if (flatObjectMetadataToDelete.isActive) { + errors.push( + new ObjectMetadataException( + t`Active objects cannot be deleted`, + ObjectMetadataExceptionCode.INVALID_OBJECT_INPUT, + ), + ); + } + } + + return errors; + } + public async validateFlatObjectMetadataCreation({ existingFlatObjectMetadataMaps, flatObjectMetadataToValidate, diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type.ts index 364cb628be..2250bb51d3 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type.ts @@ -20,11 +20,7 @@ type ObjectMetadataRelationProperties = ExtractRecordTypeOrmRelationProperties< export type FlatObjectMetadata = Omit< ObjectMetadataEntity, - | ObjectMetadataRelationProperties - | 'dataSourceId' - | 'createdAt' - | 'updatedAt' - | 'duplicateCriteria' + ObjectMetadataRelationProperties | 'dataSourceId' > & { uniqueIdentifier: string; flatIndexMetadatas: FlatIndexMetadata[]; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-create-object-input-to-flat-object-metadata.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-create-object-input-to-flat-object-metadata.util.ts index 9ff59e34e0..9cb03b8870 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-create-object-input-to-flat-object-metadata.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-create-object-input-to-flat-object-metadata.util.ts @@ -9,10 +9,10 @@ import { type CreateObjectInput } from 'src/engine/metadata-modules/object-metad import { buildDefaultFlatFieldMetadataForCustomObject } from 'src/engine/metadata-modules/object-metadata/utils/build-default-fields-for-custom-object.util'; export const fromCreateObjectInputToFlatObjectMetadata = ({ - objectMetadataInput: rawCreateObjectInput, + createObjectInput: rawCreateObjectInput, workspaceId, }: { - objectMetadataInput: Omit; + createObjectInput: Omit; workspaceId: string; }): FlatObjectMetadata => { const createObjectInput = @@ -36,7 +36,12 @@ export const fromCreateObjectInputToFlatObjectMetadata = ({ workspaceId, }); + const createdAt = new Date(); + return { + createdAt, + updatedAt: createdAt, + duplicateCriteria: null, description: createObjectInput.description ?? null, flatFieldMetadatas: Object.values(baseCustomFlatFieldMetadatas), flatIndexMetadatas: [], diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-delete-object-input-to-flat-field-metadatas-to-delete.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-delete-object-input-to-flat-field-metadatas-to-delete.util.ts new file mode 100644 index 0000000000..99a01258b9 --- /dev/null +++ b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-delete-object-input-to-flat-field-metadatas-to-delete.util.ts @@ -0,0 +1,75 @@ +import { FieldMetadataType } from 'twenty-shared/types'; +import { + isDefined, + trimAndRemoveDuplicatedWhitespacesFromObjectStringProperties, +} from 'twenty-shared/utils'; + +import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type'; +import { getRelationFlatFieldMetadatasOrThrow } from 'src/engine/metadata-modules/flat-field-metadata/utils/get-relation-flat-field-metadatas-or-throw.util'; +import { isFlatFieldMetadataEntityOfType } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-of-type.util'; +import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type'; +import { findFlatObjectMetadataInFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/find-flat-object-metadata-in-flat-object-metadata-maps.util'; +import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type'; +import { type DeleteOneObjectInput } from 'src/engine/metadata-modules/object-metadata/dtos/delete-object.input'; +import { + ObjectMetadataException, + ObjectMetadataExceptionCode, +} from 'src/engine/metadata-modules/object-metadata/object-metadata.exception'; + +export const fromDeleteObjectInputToFlatFieldMetadatasToDelete = ({ + deleteObjectInput: rawDeleteObjectInput, + existingFlatObjectMetadataMaps, +}: { + deleteObjectInput: DeleteOneObjectInput; + existingFlatObjectMetadataMaps: FlatObjectMetadataMaps; +}): { + flatFieldMetadatasToDelete: FlatFieldMetadata[]; + flatObjectMetadataToDelete: FlatObjectMetadata; +} => { + const { id: objectMetadataToDeleteId } = + trimAndRemoveDuplicatedWhitespacesFromObjectStringProperties( + rawDeleteObjectInput, + ['id'], + ); + + const flatObjectMetadataToDelete = + findFlatObjectMetadataInFlatObjectMetadataMaps({ + flatObjectMetadataMaps: existingFlatObjectMetadataMaps, + objectMetadataId: objectMetadataToDeleteId, + }); + + if (!isDefined(flatObjectMetadataToDelete)) { + throw new ObjectMetadataException( + 'Object to delete not found', + ObjectMetadataExceptionCode.OBJECT_METADATA_NOT_FOUND, + ); + } + + const flatFieldMetadatasToDelete = + flatObjectMetadataToDelete.flatFieldMetadatas.flatMap( + (flatFieldMetadata) => { + if ( + isFlatFieldMetadataEntityOfType( + flatFieldMetadata, + FieldMetadataType.RELATION, + ) || + isFlatFieldMetadataEntityOfType( + flatFieldMetadata, + FieldMetadataType.MORPH_RELATION, + ) + ) { + return getRelationFlatFieldMetadatasOrThrow({ + existingFlatObjectMetadataMaps, + flatFieldMetadata, + }); + } + + return flatFieldMetadata; + }, + ); + + return { + flatFieldMetadatasToDelete, + flatObjectMetadataToDelete, + }; +}; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-to-object-metadata-dto.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-to-object-metadata-dto.util.ts new file mode 100644 index 0000000000..65f2c14bb1 --- /dev/null +++ b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-to-object-metadata-dto.util.ts @@ -0,0 +1,28 @@ +import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type'; +import { type ObjectMetadataDTO } from 'src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto'; + +export const fromFlatObjectMetadataToObjectMetadataDto = ( + flatObjectMetadata: FlatObjectMetadata, +): ObjectMetadataDTO => { + const { + createdAt, + updatedAt, + description, + icon, + standardOverrides, + shortcut, + duplicateCriteria, + ...rest + } = flatObjectMetadata; + + return { + ...rest, + createdAt: new Date(createdAt), + updatedAt: new Date(updatedAt), + description: description ?? undefined, + icon: icon ?? undefined, + standardOverrides: standardOverrides ?? undefined, + shortcut: shortcut ?? undefined, + duplicateCriteria: duplicateCriteria ?? undefined, + }; +}; diff --git a/packages/twenty-server/src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto.ts b/packages/twenty-server/src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto.ts index a2f6e35999..c5bb93b636 100644 --- a/packages/twenty-server/src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto.ts +++ b/packages/twenty-server/src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto.ts @@ -35,9 +35,6 @@ export class ObjectMetadataDTO { @IDField(() => UUIDScalarType) id: string; - @Field(() => UUIDScalarType) - dataSourceId: string; - @Field() nameSingular: string; diff --git a/packages/twenty-server/src/engine/metadata-modules/object-metadata/object-metadata-v2.service.ts b/packages/twenty-server/src/engine/metadata-modules/object-metadata/object-metadata-v2.service.ts index 9637f901ca..b81da9debe 100644 --- a/packages/twenty-server/src/engine/metadata-modules/object-metadata/object-metadata-v2.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/object-metadata/object-metadata-v2.service.ts @@ -1,12 +1,21 @@ import { Injectable } from '@nestjs/common'; +import { isDefined } from 'twenty-shared/utils'; + import { MultipleMetadataValidationErrors } from 'src/engine/core-modules/error/multiple-metadata-validation-errors'; import { EMPTY_FLAT_OBJECT_METADATA_MAPS } from 'src/engine/metadata-modules/flat-object-metadata-maps/constant/empty-flat-object-metadata-maps.constant'; import { addFlatObjectMetadataToFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/add-flat-object-metadata-to-flat-object-metadata-maps-or-throw.util'; +import { deleteFieldFromFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/delete-field-from-flat-object-metadata-maps-or-throw.util'; +import { deleteObjectFromFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/delete-object-from-flat-object-metadata-maps-or-throw.util'; +import { getSubFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/get-sub-flat-object-metadata-maps-or-throw.util'; import { FlatObjectMetadataValidatorService } from 'src/engine/metadata-modules/flat-object-metadata/services/flat-object-metadata-validator.service'; import { FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type'; import { fromCreateObjectInputToFlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-create-object-input-to-flat-object-metadata.util'; +import { fromDeleteObjectInputToFlatFieldMetadatasToDelete } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-delete-object-input-to-flat-field-metadatas-to-delete.util'; +import { fromFlatObjectMetadataToObjectMetadataDto } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-to-object-metadata-dto.util'; import { CreateObjectInput } from 'src/engine/metadata-modules/object-metadata/dtos/create-object.input'; +import { DeleteOneObjectInput } from 'src/engine/metadata-modules/object-metadata/dtos/delete-object.input'; +import { ObjectMetadataDTO } from 'src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto'; import { ObjectMetadataException, ObjectMetadataExceptionCode, @@ -24,11 +33,99 @@ export class ObjectMetadataServiceV2 { private readonly flatObjectMetadataValidatorService: FlatObjectMetadataValidatorService, ) {} - async createOne({ - objectMetadataInput, + async deleteOne({ + deleteObjectInput, workspaceId, }: { - objectMetadataInput: Omit; + deleteObjectInput: DeleteOneObjectInput; + workspaceId: string; + }): Promise { + const { flatObjectMetadataMaps: existingFlatObjectMetadataMaps } = + await this.workspaceMetadataCacheService.getExistingOrRecomputeFlatObjectMetadataMaps( + { + workspaceId, + }, + ); + + const { flatFieldMetadatasToDelete, flatObjectMetadataToDelete } = + fromDeleteObjectInputToFlatFieldMetadatasToDelete({ + deleteObjectInput, + existingFlatObjectMetadataMaps, + }); + const { id: objectMetadataToDeleteId } = flatObjectMetadataToDelete; + + const flatObjectDeleteValidationErrors = + this.flatObjectMetadataValidatorService.validateFlatObjectMetadataDeletion( + { + existingFlatObjectMetadataMaps, + objectMetadataToDeleteId, + }, + ); + + if (flatObjectDeleteValidationErrors.length > 0) { + throw new MultipleMetadataValidationErrors( + flatObjectDeleteValidationErrors, + 'Multiple validation errors occurred while deleting object', + ); + } + + try { + const impactedObjectMetadataIds = Array.from( + new Set( + flatFieldMetadatasToDelete.map( + (flatFieldMetadata) => flatFieldMetadata.objectMetadataId, + ), + ), + ); + + const fromFlatObjectMetadataMaps = getSubFlatObjectMetadataMapsOrThrow({ + flatObjectMetadataMaps: existingFlatObjectMetadataMaps, + objectMetadataIds: impactedObjectMetadataIds, + }); + + const toFlatObjectMetadataMaps = flatFieldMetadatasToDelete + .filter( + (flatFieldMetadataToDelete) => + flatFieldMetadataToDelete.objectMetadataId !== + objectMetadataToDeleteId, + ) + .reduce( + (flatObjectMetadataMaps, flatFieldMetadata) => + deleteFieldFromFlatObjectMetadataMapsOrThrow({ + fieldMetadataId: flatFieldMetadata.id, + objectMetadataId: flatFieldMetadata.objectMetadataId, + flatObjectMetadataMaps, + }), + deleteObjectFromFlatObjectMetadataMapsOrThrow({ + flatObjectMetadataMaps: fromFlatObjectMetadataMaps, + objectMetadataId: objectMetadataToDeleteId, + }), + ); + const workspaceMigration = this.workspaceMigrationBuilderV2.build({ + fromFlatObjectMetadataMaps, + toFlatObjectMetadataMaps, + inferDeletionFromMissingObjectFieldIndex: true, + workspaceId, + }); + + await this.workspaceMigrationRunnerV2Service.run(workspaceMigration); + } catch { + throw new ObjectMetadataException( + 'Workspace migration failed to run', + ObjectMetadataExceptionCode.INTERNAL_SERVER_ERROR, + ); + } + + return fromFlatObjectMetadataToObjectMetadataDto( + flatObjectMetadataToDelete, + ); + } + + async createOne({ + createObjectInput, + workspaceId, + }: { + createObjectInput: Omit; workspaceId: string; }): Promise { const { flatObjectMetadataMaps: existingFlatObjectMetadataMaps } = @@ -40,7 +137,7 @@ export class ObjectMetadataServiceV2 { const flatObjectMetadataToCreate = fromCreateObjectInputToFlatObjectMetadata({ - objectMetadataInput, + createObjectInput, workspaceId, }); @@ -80,6 +177,23 @@ export class ObjectMetadataServiceV2 { ); } - return flatObjectMetadataToCreate; // TODO retrieve from cache + const { flatObjectMetadataMaps: recomputedFlatObjectMetadataMaps } = + await this.workspaceMetadataCacheService.getExistingOrRecomputeFlatObjectMetadataMaps( + { + workspaceId, + }, + ); + + const createdFlatObjectMetadata = + recomputedFlatObjectMetadataMaps.byId[flatObjectMetadataToCreate.id]; + + if (!isDefined(createdFlatObjectMetadata)) { + throw new ObjectMetadataException( + 'Fail to find just created object metadata', + ObjectMetadataExceptionCode.OBJECT_METADATA_NOT_FOUND, + ); + } + + return createdFlatObjectMetadata; } } diff --git a/packages/twenty-server/src/engine/metadata-modules/object-metadata/object-metadata.service.ts b/packages/twenty-server/src/engine/metadata-modules/object-metadata/object-metadata.service.ts index bbd6616be3..57946e28ac 100644 --- a/packages/twenty-server/src/engine/metadata-modules/object-metadata/object-metadata.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/object-metadata/object-metadata.service.ts @@ -96,18 +96,18 @@ export class ObjectMetadataService extends TypeOrmQueryService { const isWorkspaceMigrationV2Enabled = await this.featureFlagService.isFeatureEnabled( FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED, - objectMetadataInput.workspaceId, + createObjectInput.workspaceId, ); if (isWorkspaceMigrationV2Enabled) { const flatObjectMetadata = await this.objectMetadataServiceV2.createOne({ - objectMetadataInput, - workspaceId: objectMetadataInput.workspaceId, + createObjectInput, + workspaceId: createObjectInput.workspaceId, }); // Since V2 returns FlatObjectMetadata, we need to fetch the created entity @@ -115,7 +115,7 @@ export class ObjectMetadataService extends TypeOrmQueryService> { + const isWorkspaceMigrationV2Enabled = + await this.featureFlagService.isFeatureEnabled( + FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED, + workspaceId, + ); + + if (isWorkspaceMigrationV2Enabled) { + return await this.objectMetadataServiceV2.deleteOne({ + deleteObjectInput, + workspaceId, + }); + } + const mainDataSource = await this.workspaceDataSourceService.connectToMainDataSource(); const queryRunner = mainDataSource.createQueryRunner(); @@ -479,7 +487,7 @@ export class ObjectMetadataService extends TypeOrmQueryService { + const createdAt = new Date(); const idField: FlatFieldMetadata = { type: FieldMetadataType.UUID, id: v4(), @@ -144,6 +145,8 @@ export const buildDefaultFlatFieldMetadataForCustomObject = ({ isSystem: true, defaultValue: 'uuid', + createdAt, + updatedAt: createdAt, flatRelationTargetFieldMetadata: null, flatRelationTargetObjectMetadata: null, options: null, @@ -172,6 +175,8 @@ export const buildDefaultFlatFieldMetadataForCustomObject = ({ isSystem: false, defaultValue: "'Untitled'", + createdAt, + updatedAt: createdAt, flatRelationTargetFieldMetadata: null, flatRelationTargetObjectMetadata: null, options: null, @@ -200,6 +205,8 @@ export const buildDefaultFlatFieldMetadataForCustomObject = ({ isSystem: false, defaultValue: 'now', + createdAt, + updatedAt: createdAt, flatRelationTargetFieldMetadata: null, flatRelationTargetObjectMetadata: null, options: null, @@ -228,6 +235,8 @@ export const buildDefaultFlatFieldMetadataForCustomObject = ({ isSystem: false, defaultValue: 'now', + createdAt, + updatedAt: createdAt, flatRelationTargetFieldMetadata: null, flatRelationTargetObjectMetadata: null, options: null, @@ -256,6 +265,8 @@ export const buildDefaultFlatFieldMetadataForCustomObject = ({ isSystem: false, defaultValue: null, + createdAt, + updatedAt: createdAt, flatRelationTargetFieldMetadata: null, flatRelationTargetObjectMetadata: null, options: null, @@ -284,6 +295,8 @@ export const buildDefaultFlatFieldMetadataForCustomObject = ({ isSystem: false, defaultValue: { name: "''", source: "'MANUAL'" }, + createdAt, + updatedAt: createdAt, flatRelationTargetFieldMetadata: null, flatRelationTargetObjectMetadata: null, options: null, @@ -312,6 +325,8 @@ export const buildDefaultFlatFieldMetadataForCustomObject = ({ isSystem: true, defaultValue: 0, + createdAt, + updatedAt: createdAt, flatRelationTargetFieldMetadata: null, flatRelationTargetObjectMetadata: null, options: null, diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/__tests__/__snapshots__/workspace-migration-builder.spec.ts.snap b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/__tests__/__snapshots__/workspace-migration-builder.spec.ts.snap index 188c64a1bf..090c735763 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/__tests__/__snapshots__/workspace-migration-builder.spec.ts.snap +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/__tests__/__snapshots__/workspace-migration-builder.spec.ts.snap @@ -16,6 +16,7 @@ exports[`Workspace migration builder field actions test suite It should build an [ { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "default flat field metadata description", "flatRelationTargetFieldMetadata": null, @@ -39,6 +40,7 @@ exports[`Workspace migration builder field actions test suite It should build an "standardOverrides": null, "type": "TEXT", "uniqueIdentifier": "field-metadata-unique-identifier-1", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", @@ -50,9 +52,11 @@ exports[`Workspace migration builder field actions test suite It should build an [ { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "default flat field metadata description", "flatRelationTargetFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "default flat field metadata description", "flatRelationTargetFieldMetadata": null, @@ -76,10 +80,13 @@ exports[`Workspace migration builder field actions test suite It should build an "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "field-metadata-unique-identifier-2", + "updatedAt": Any, "workspaceId": Any, }, "flatRelationTargetObjectMetadata": { + "createdAt": Any, "description": "default flat object metadata description", + "duplicateCriteria": null, "flatFieldMetadatas": [], "flatIndexMetadatas": [], "icon": "icon", @@ -102,6 +109,7 @@ exports[`Workspace migration builder field actions test suite It should build an "standardOverrides": null, "targetTableName": "", "uniqueIdentifier": "object-metadata-unique-identifier-2", + "updatedAt": Any, "workspaceId": Any, }, "icon": "icon", @@ -123,6 +131,7 @@ exports[`Workspace migration builder field actions test suite It should build an "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "field-metadata-unique-identifier-1", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", @@ -253,6 +262,7 @@ exports[`Workspace migration builder object actions test suite It should build a "createFieldActions": [ { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": "uuid", "description": "Id", "flatRelationTargetFieldMetadata": null, @@ -276,12 +286,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "UUID", "uniqueIdentifier": "20202020-eda0-4cee-9577-3eb357e3c22b", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": "'Untitled'", "description": "Name", "flatRelationTargetFieldMetadata": null, @@ -305,12 +317,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "TEXT", "uniqueIdentifier": "20202020-ba07-4ffd-ba63-009491f5749c", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": "now", "description": "Creation date", "flatRelationTargetFieldMetadata": null, @@ -334,12 +348,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "DATE_TIME", "uniqueIdentifier": "20202020-66ac-4502-9975-e4d959c50311", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": "now", "description": "Last time the record was changed", "flatRelationTargetFieldMetadata": null, @@ -363,12 +379,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "DATE_TIME", "uniqueIdentifier": "20202020-d767-4622-bdcf-d8a084834d86", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "Deletion date", "flatRelationTargetFieldMetadata": null, @@ -392,12 +410,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "DATE_TIME", "uniqueIdentifier": "20202020-b9a7-48d8-8387-b9a3090a50ec", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": { "name": "''", "source": "'MANUAL'", @@ -424,12 +444,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "ACTOR", "uniqueIdentifier": "20202020-be0e-4971-865b-32ca87cbb315", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": 0, "description": "Position", "flatRelationTargetFieldMetadata": null, @@ -453,17 +475,22 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "POSITION", "uniqueIdentifier": "20202020-c2bd-4e16-bb9a-c8b0411bf49d", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "TimelineActivities tied to the Rocket", "flatRelationTargetFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "TimelineActivities Rocket", + "flatRelationTargetFieldMetadata": null, + "flatRelationTargetObjectMetadata": null, "icon": "IconBuildingSkyscraper", "id": Any, "isActive": true, @@ -487,6 +514,7 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-0be6-444e-88f0-12e0c64ac27d", + "updatedAt": Any, "workspaceId": Any, }, "flatRelationTargetObjectMetadata": null, @@ -511,17 +539,22 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-f1ef-4ba4-8f33-1a4577afa477", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "Favorites tied to the Rocket", "flatRelationTargetFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "Favorites Rocket", + "flatRelationTargetFieldMetadata": null, + "flatRelationTargetObjectMetadata": null, "icon": "IconBuildingSkyscraper", "id": Any, "isActive": true, @@ -545,6 +578,7 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-78f7-4d7d-86e9-7562ced0b381", + "updatedAt": Any, "workspaceId": Any, }, "flatRelationTargetObjectMetadata": null, @@ -569,17 +603,22 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-a4a7-4686-b296-1c6c3482ee21", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "Attachments tied to the Rocket", "flatRelationTargetFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "Attachments Rocket", + "flatRelationTargetFieldMetadata": null, + "flatRelationTargetObjectMetadata": null, "icon": "IconBuildingSkyscraper", "id": Any, "isActive": true, @@ -603,6 +642,7 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-ca2d-47c0-8253-9d0b662fb01a", + "updatedAt": Any, "workspaceId": Any, }, "flatRelationTargetObjectMetadata": null, @@ -627,17 +667,22 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-8d59-46ca-b7b2-73d167712134", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "NoteTargets tied to the Rocket", "flatRelationTargetFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "NoteTargets Rocket", + "flatRelationTargetFieldMetadata": null, + "flatRelationTargetObjectMetadata": null, "icon": "IconBuildingSkyscraper", "id": Any, "isActive": true, @@ -661,6 +706,7 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-52b6-4d5e-8f21-ed8b7c09c4a9", + "updatedAt": Any, "workspaceId": Any, }, "flatRelationTargetObjectMetadata": null, @@ -685,17 +731,22 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-01fd-4f37-99dc-9427a444018a", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "TaskTargets tied to the Rocket", "flatRelationTargetFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "TaskTargets Rocket", + "flatRelationTargetFieldMetadata": null, + "flatRelationTargetObjectMetadata": null, "icon": "IconBuildingSkyscraper", "id": Any, "isActive": true, @@ -719,6 +770,7 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-b98f-473d-85fb-8cebc40b9a50", + "updatedAt": Any, "workspaceId": Any, }, "flatRelationTargetObjectMetadata": null, @@ -743,12 +795,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-0860-4566-b865-bff3c626c303", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "Field used for full-text search", "flatRelationTargetFieldMetadata": null, @@ -772,13 +826,16 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "TS_VECTOR", "uniqueIdentifier": "70e56537-18ef-4811-b1c7-0a444006b815", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, ], "flatObjectMetadataWithoutFields": { + "createdAt": Any, "description": "A rocket", + "duplicateCriteria": null, "icon": "IconRocket", "id": Any, "imageIdentifierFieldMetadataId": null, @@ -799,6 +856,7 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "targetTableName": "DEPRECATED", "uniqueIdentifier": "d78ec657-74a4-4652-a350-1f44ff62970a", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_object", @@ -812,6 +870,7 @@ exports[`Workspace migration builder object actions test suite It should build a "createFieldActions": [ { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": "uuid", "description": "Id", "flatRelationTargetFieldMetadata": null, @@ -835,12 +894,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "UUID", "uniqueIdentifier": "20202020-eda0-4cee-9577-3eb357e3c22b", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": "'Untitled'", "description": "Name", "flatRelationTargetFieldMetadata": null, @@ -864,12 +925,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "TEXT", "uniqueIdentifier": "20202020-ba07-4ffd-ba63-009491f5749c", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": "now", "description": "Creation date", "flatRelationTargetFieldMetadata": null, @@ -893,12 +956,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "DATE_TIME", "uniqueIdentifier": "20202020-66ac-4502-9975-e4d959c50311", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": "now", "description": "Last time the record was changed", "flatRelationTargetFieldMetadata": null, @@ -922,12 +987,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "DATE_TIME", "uniqueIdentifier": "20202020-d767-4622-bdcf-d8a084834d86", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "Deletion date", "flatRelationTargetFieldMetadata": null, @@ -951,12 +1018,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "DATE_TIME", "uniqueIdentifier": "20202020-b9a7-48d8-8387-b9a3090a50ec", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": { "name": "''", "source": "'MANUAL'", @@ -983,12 +1052,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "ACTOR", "uniqueIdentifier": "20202020-be0e-4971-865b-32ca87cbb315", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": 0, "description": "Position", "flatRelationTargetFieldMetadata": null, @@ -1012,17 +1083,22 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "POSITION", "uniqueIdentifier": "20202020-c2bd-4e16-bb9a-c8b0411bf49d", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "TimelineActivities tied to the Rocket", "flatRelationTargetFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "TimelineActivities Rocket", + "flatRelationTargetFieldMetadata": null, + "flatRelationTargetObjectMetadata": null, "icon": "IconBuildingSkyscraper", "id": Any, "isActive": true, @@ -1046,6 +1122,7 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-0be6-444e-88f0-12e0c64ac27d", + "updatedAt": Any, "workspaceId": Any, }, "flatRelationTargetObjectMetadata": null, @@ -1070,17 +1147,22 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-f1ef-4ba4-8f33-1a4577afa477", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "Favorites tied to the Rocket", "flatRelationTargetFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "Favorites Rocket", + "flatRelationTargetFieldMetadata": null, + "flatRelationTargetObjectMetadata": null, "icon": "IconBuildingSkyscraper", "id": Any, "isActive": true, @@ -1104,6 +1186,7 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-78f7-4d7d-86e9-7562ced0b381", + "updatedAt": Any, "workspaceId": Any, }, "flatRelationTargetObjectMetadata": null, @@ -1128,17 +1211,22 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-a4a7-4686-b296-1c6c3482ee21", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "Attachments tied to the Rocket", "flatRelationTargetFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "Attachments Rocket", + "flatRelationTargetFieldMetadata": null, + "flatRelationTargetObjectMetadata": null, "icon": "IconBuildingSkyscraper", "id": Any, "isActive": true, @@ -1162,6 +1250,7 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-ca2d-47c0-8253-9d0b662fb01a", + "updatedAt": Any, "workspaceId": Any, }, "flatRelationTargetObjectMetadata": null, @@ -1186,17 +1275,22 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-8d59-46ca-b7b2-73d167712134", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "NoteTargets tied to the Rocket", "flatRelationTargetFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "NoteTargets Rocket", + "flatRelationTargetFieldMetadata": null, + "flatRelationTargetObjectMetadata": null, "icon": "IconBuildingSkyscraper", "id": Any, "isActive": true, @@ -1220,6 +1314,7 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-52b6-4d5e-8f21-ed8b7c09c4a9", + "updatedAt": Any, "workspaceId": Any, }, "flatRelationTargetObjectMetadata": null, @@ -1244,17 +1339,22 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-01fd-4f37-99dc-9427a444018a", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "TaskTargets tied to the Rocket", "flatRelationTargetFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "TaskTargets Rocket", + "flatRelationTargetFieldMetadata": null, + "flatRelationTargetObjectMetadata": null, "icon": "IconBuildingSkyscraper", "id": Any, "isActive": true, @@ -1278,6 +1378,7 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-b98f-473d-85fb-8cebc40b9a50", + "updatedAt": Any, "workspaceId": Any, }, "flatRelationTargetObjectMetadata": null, @@ -1302,12 +1403,14 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "RELATION", "uniqueIdentifier": "20202020-0860-4566-b865-bff3c626c303", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, { "flatFieldMetadata": { + "createdAt": Any, "defaultValue": null, "description": "Field used for full-text search", "flatRelationTargetFieldMetadata": null, @@ -1331,13 +1434,16 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "type": "TS_VECTOR", "uniqueIdentifier": "70e56537-18ef-4811-b1c7-0a444006b815", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_field", }, ], "flatObjectMetadataWithoutFields": { + "createdAt": Any, "description": "A rocket", + "duplicateCriteria": null, "icon": "IconRocket", "id": Any, "imageIdentifierFieldMetadataId": null, @@ -1358,6 +1464,7 @@ exports[`Workspace migration builder object actions test suite It should build a "standardOverrides": null, "targetTableName": "DEPRECATED", "uniqueIdentifier": "d78ec657-74a4-4652-a350-1f44ff62970a", + "updatedAt": Any, "workspaceId": Any, }, "type": "create_object", @@ -1384,145 +1491,145 @@ exports[`Workspace migration builder object actions test suite It should build a exports[`Workspace migration builder object actions test suite It should build a delete_object action 1`] = ` [ + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, + { + "fieldMetadataId": Any, + "objectMetadataId": Any, + "type": "delete_field", + }, { "objectMetadataId": Any, "type": "delete_object", }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, - { - "fieldMetadataId": Any, - "objectMetadataId": Any, - "type": "delete_field", - }, ] `; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/workspace-migration-builder-v2.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/workspace-migration-builder-v2.service.ts index 9634dbb5bb..4066244b0a 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/workspace-migration-builder-v2.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/workspace-migration-builder-v2.service.ts @@ -93,8 +93,8 @@ export class WorkspaceMigrationBuilderV2Service { return { workspaceId, actions: [ - ...objectWorkspaceMigrationActions, ...deletedObjectWorkspaceMigrationDeleteFieldActions, + ...objectWorkspaceMigrationActions, ...createdObjectMetadataCreateIndexActions, ...fieldWorkspaceMigrationActions, ...indexWorkspaceMigrationActions, diff --git a/packages/twenty-server/test/integration/graphql/suites/object-generated/objects.integration-spec.ts b/packages/twenty-server/test/integration/graphql/suites/object-generated/objects.integration-spec.ts index b7a8e82b2b..c68cd9a422 100644 --- a/packages/twenty-server/test/integration/graphql/suites/object-generated/objects.integration-spec.ts +++ b/packages/twenty-server/test/integration/graphql/suites/object-generated/objects.integration-spec.ts @@ -11,7 +11,6 @@ describe('objectsResolver (e2e)', () => { edges { node { id - dataSourceId nameSingular namePlural labelSingular