From e758f78caf64124ca2e9d79c0a5928fdbd97756d Mon Sep 17 00:00:00 2001 From: Paul Rastoin <45004772+prastoin@users.noreply.github.com> Date: Tue, 9 Dec 2025 15:05:27 +0100 Subject: [PATCH] Finalize standard index as code declaration (#16429) # Introduction Following https://github.com/twentyhq/twenty/pull/16426 Related https://github.com/twentyhq/core-team-issues/issues/1995 --- ...-standard-flat-index-metadata-maps.util.ts | 92 +++++++---- ...hment-standard-flat-index-metadata.util.ts | 115 +++++++++++++ ...klist-standard-flat-index-metadata.util.ts | 31 ++++ ...ation-standard-flat-index-metadata.util.ts | 46 ++++++ ...annel-standard-flat-index-metadata.util.ts | 31 ++++ ...ipant-standard-flat-index-metadata.util.ts | 58 +++++++ ...count-standard-flat-index-metadata.util.ts | 31 ++++ ...board-standard-flat-index-metadata.util.ts | 33 ++++ ...orite-standard-flat-index-metadata.util.ts | 151 ++++++++++++++++++ ...ation-standard-flat-index-metadata.util.ts | 60 +++++++ ...annel-standard-flat-index-metadata.util.ts | 31 ++++ ...older-standard-flat-index-metadata.util.ts | 31 ++++ ...ipant-standard-flat-index-metadata.util.ts | 55 +++++++ ...ssage-standard-flat-index-metadata.util.ts | 31 ++++ ...-note-standard-flat-index-metadata.util.ts | 33 ++++ ...arget-standard-flat-index-metadata.util.ts | 67 ++++++++ ...unity-standard-flat-index-metadata.util.ts | 69 ++++++++ ...erson-standard-flat-index-metadata.util.ts | 58 +++++++ ...-task-standard-flat-index-metadata.util.ts | 45 ++++++ ...arget-standard-flat-index-metadata.util.ts | 67 ++++++++ ...ivity-standard-flat-index-metadata.util.ts | 139 ++++++++++++++++ ...igger-standard-flat-index-metadata.util.ts | 34 ++++ ...w-run-standard-flat-index-metadata.util.ts | 57 +++++++ ...kflow-standard-flat-index-metadata.util.ts | 33 ++++ ...rsion-standard-flat-index-metadata.util.ts | 45 ++++++ ...ember-standard-flat-index-metadata.util.ts | 46 ++++++ 26 files changed, 1457 insertions(+), 32 deletions(-) create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-attachment-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-blocklist-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-channel-event-association-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-channel-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-event-participant-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-connected-account-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-dashboard-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-favorite-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-channel-message-association-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-channel-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-folder-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-participant-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-note-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-note-target-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-opportunity-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-person-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-task-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-task-target-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-timeline-activity-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-automated-trigger-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-run-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-version-standard-flat-index-metadata.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workspace-member-standard-flat-index-metadata.util.ts diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/build-standard-flat-index-metadata-maps.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/build-standard-flat-index-metadata-maps.util.ts index 52ed0e8b87..168470e9ff 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/build-standard-flat-index-metadata-maps.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/build-standard-flat-index-metadata-maps.util.ts @@ -2,43 +2,71 @@ import { type FlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/typ import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-maps-or-throw.util'; import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type'; +import { buildAttachmentStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-attachment-standard-flat-index-metadata.util'; +import { buildBlocklistStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-blocklist-standard-flat-index-metadata.util'; +import { buildCalendarChannelEventAssociationStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-channel-event-association-standard-flat-index-metadata.util'; +import { buildCalendarChannelStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-channel-standard-flat-index-metadata.util'; +import { buildCalendarEventParticipantStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-event-participant-standard-flat-index-metadata.util'; import { buildCompanyStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-company-standard-flat-index-metadata.util'; +import { buildConnectedAccountStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-connected-account-standard-flat-index-metadata.util'; +import { buildDashboardStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-dashboard-standard-flat-index-metadata.util'; +import { buildFavoriteStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-favorite-standard-flat-index-metadata.util'; +import { buildMessageChannelMessageAssociationStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-channel-message-association-standard-flat-index-metadata.util'; +import { buildMessageChannelStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-channel-standard-flat-index-metadata.util'; +import { buildMessageFolderStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-folder-standard-flat-index-metadata.util'; +import { buildMessageParticipantStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-participant-standard-flat-index-metadata.util'; +import { buildMessageStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-standard-flat-index-metadata.util'; +import { buildNoteStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-note-standard-flat-index-metadata.util'; +import { buildNoteTargetStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-note-target-standard-flat-index-metadata.util'; +import { buildOpportunityStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-opportunity-standard-flat-index-metadata.util'; +import { buildPersonStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-person-standard-flat-index-metadata.util'; +import { buildTaskStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-task-standard-flat-index-metadata.util'; +import { buildTaskTargetStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-task-target-standard-flat-index-metadata.util'; +import { buildTimelineActivityStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-timeline-activity-standard-flat-index-metadata.util'; +import { buildWorkflowAutomatedTriggerStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-automated-trigger-standard-flat-index-metadata.util'; +import { buildWorkflowRunStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-run-standard-flat-index-metadata.util'; +import { buildWorkflowStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-standard-flat-index-metadata.util'; +import { buildWorkflowVersionStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-version-standard-flat-index-metadata.util'; +import { buildWorkspaceMemberStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workspace-member-standard-flat-index-metadata.util'; import { type CreateStandardIndexArgs } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; +type StandardIndexBuilder

= ( + args: Omit, 'context'>, +) => Record; + const STANDARD_FLAT_INDEX_METADATA_BUILDERS_BY_OBJECT_NAME = { - // attachment: buildAttachmentStandardFlatIndexMetadatas, - // blocklist: buildBlocklistStandardFlatIndexMetadatas, - // calendarChannelEventAssociation: buildCalendarChannelEventAssociationStandardFlatIndexMetadatas, - // calendarChannel: buildCalendarChannelStandardFlatIndexMetadatas, - // calendarEventParticipant: buildCalendarEventParticipantStandardFlatIndexMetadatas, - // calendarEvent: buildCalendarEventStandardFlatIndexMetadatas, + attachment: buildAttachmentStandardFlatIndexMetadatas, + blocklist: buildBlocklistStandardFlatIndexMetadatas, + calendarChannelEventAssociation: + buildCalendarChannelEventAssociationStandardFlatIndexMetadatas, + calendarChannel: buildCalendarChannelStandardFlatIndexMetadatas, + calendarEventParticipant: + buildCalendarEventParticipantStandardFlatIndexMetadatas, company: buildCompanyStandardFlatIndexMetadatas, - // connectedAccount: buildConnectedAccountStandardFlatIndexMetadatas, - // dashboard: buildDashboardStandardFlatIndexMetadatas, - // favorite: buildFavoriteStandardFlatIndexMetadatas, - // favoriteFolder: buildFavoriteFolderStandardFlatIndexMetadatas, - // message: buildMessageStandardFlatIndexMetadatas, - // messageChannel: buildMessageChannelStandardFlatIndexMetadatas, - // messageChannelMessageAssociation: buildMessageChannelMessageAssociationStandardFlatIndexMetadatas, - // messageFolder: buildMessageFolderStandardFlatIndexMetadatas, - // messageParticipant: buildMessageParticipantStandardFlatIndexMetadatas, - // messageThread: buildMessageThreadStandardFlatIndexMetadatas, - // note: buildNoteStandardFlatIndexMetadatas, - // noteTarget: buildNoteTargetStandardFlatIndexMetadatas, - // opportunity: buildOpportunityStandardFlatIndexMetadatas, - // person: buildPersonStandardFlatIndexMetadatas, - // task: buildTaskStandardFlatIndexMetadatas, - // taskTarget: buildTaskTargetStandardFlatIndexMetadatas, - // timelineActivity: buildTimelineActivityStandardFlatIndexMetadatas, - // workflow: buildWorkflowStandardFlatIndexMetadatas, - // workflowAutomatedTrigger: buildWorkflowAutomatedTriggerStandardFlatIndexMetadatas, - // workflowRun: buildWorkflowRunStandardFlatIndexMetadatas, - // workflowVersion: buildWorkflowVersionStandardFlatIndexMetadatas, - // workspaceMember: buildWorkspaceMemberStandardFlatIndexMetadatas, + connectedAccount: buildConnectedAccountStandardFlatIndexMetadatas, + dashboard: buildDashboardStandardFlatIndexMetadatas, + favorite: buildFavoriteStandardFlatIndexMetadatas, + message: buildMessageStandardFlatIndexMetadatas, + messageChannel: buildMessageChannelStandardFlatIndexMetadatas, + messageChannelMessageAssociation: + buildMessageChannelMessageAssociationStandardFlatIndexMetadatas, + messageFolder: buildMessageFolderStandardFlatIndexMetadatas, + messageParticipant: buildMessageParticipantStandardFlatIndexMetadatas, + note: buildNoteStandardFlatIndexMetadatas, + noteTarget: buildNoteTargetStandardFlatIndexMetadatas, + opportunity: buildOpportunityStandardFlatIndexMetadatas, + person: buildPersonStandardFlatIndexMetadatas, + task: buildTaskStandardFlatIndexMetadatas, + taskTarget: buildTaskTargetStandardFlatIndexMetadatas, + timelineActivity: buildTimelineActivityStandardFlatIndexMetadatas, + workflow: buildWorkflowStandardFlatIndexMetadatas, + workflowAutomatedTrigger: + buildWorkflowAutomatedTriggerStandardFlatIndexMetadatas, + workflowRun: buildWorkflowRunStandardFlatIndexMetadatas, + workflowVersion: buildWorkflowVersionStandardFlatIndexMetadatas, + workspaceMember: buildWorkspaceMemberStandardFlatIndexMetadatas, } satisfies { - [P in AllStandardObjectName]?: ( - args: CreateStandardIndexArgs

, - ) => Record; + [P in AllStandardObjectName]?: StandardIndexBuilder

; }; const createEmptyFlatIndexMetadataMaps = @@ -56,7 +84,7 @@ export const buildStandardFlatIndexMetadataMaps = ( STANDARD_FLAT_INDEX_METADATA_BUILDERS_BY_OBJECT_NAME, ) as (keyof typeof STANDARD_FLAT_INDEX_METADATA_BUILDERS_BY_OBJECT_NAME)[] ).flatMap((objectName) => { - const builder = + const builder: StandardIndexBuilder = STANDARD_FLAT_INDEX_METADATA_BUILDERS_BY_OBJECT_NAME[objectName]; const result = builder({ diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-attachment-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-attachment-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..bc5047592a --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-attachment-standard-flat-index-metadata.util.ts @@ -0,0 +1,115 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildAttachmentStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'attachment'>, + FlatIndexMetadata +> => ({ + authorIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'authorIdIndex', + relatedFieldNames: ['author'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + taskIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'taskIdIndex', + relatedFieldNames: ['task'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + noteIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'noteIdIndex', + relatedFieldNames: ['note'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + personIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'personIdIndex', + relatedFieldNames: ['person'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + companyIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'companyIdIndex', + relatedFieldNames: ['company'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + opportunityIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'opportunityIdIndex', + relatedFieldNames: ['opportunity'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + dashboardIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'dashboardIdIndex', + relatedFieldNames: ['dashboard'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + workflowIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workflowIdIndex', + relatedFieldNames: ['workflow'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-blocklist-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-blocklist-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..3557f2f7e0 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-blocklist-standard-flat-index-metadata.util.ts @@ -0,0 +1,31 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildBlocklistStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'blocklist'>, + FlatIndexMetadata +> => ({ + workspaceMemberIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workspaceMemberIdIndex', + relatedFieldNames: ['workspaceMember'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-channel-event-association-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-channel-event-association-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..ad774db9d1 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-channel-event-association-standard-flat-index-metadata.util.ts @@ -0,0 +1,46 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildCalendarChannelEventAssociationStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit< + CreateStandardIndexArgs<'calendarChannelEventAssociation'>, + 'context' +>): Record< + AllStandardObjectIndexName<'calendarChannelEventAssociation'>, + FlatIndexMetadata +> => ({ + calendarChannelIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'calendarChannelIdIndex', + relatedFieldNames: ['calendarChannel'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + calendarEventIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'calendarEventIdIndex', + relatedFieldNames: ['calendarEvent'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-channel-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-channel-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..00cc078993 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-channel-standard-flat-index-metadata.util.ts @@ -0,0 +1,31 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildCalendarChannelStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'calendarChannel'>, + FlatIndexMetadata +> => ({ + connectedAccountIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'connectedAccountIdIndex', + relatedFieldNames: ['connectedAccount'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-event-participant-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-event-participant-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..86f25102d8 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-calendar-event-participant-standard-flat-index-metadata.util.ts @@ -0,0 +1,58 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildCalendarEventParticipantStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit< + CreateStandardIndexArgs<'calendarEventParticipant'>, + 'context' +>): Record< + AllStandardObjectIndexName<'calendarEventParticipant'>, + FlatIndexMetadata +> => ({ + calendarEventIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'calendarEventIdIndex', + relatedFieldNames: ['calendarEvent'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + personIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'personIdIndex', + relatedFieldNames: ['person'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + workspaceMemberIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workspaceMemberIdIndex', + relatedFieldNames: ['workspaceMember'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-connected-account-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-connected-account-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..d6fb860f9b --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-connected-account-standard-flat-index-metadata.util.ts @@ -0,0 +1,31 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildConnectedAccountStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'connectedAccount'>, + FlatIndexMetadata +> => ({ + accountOwnerIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'accountOwnerIdIndex', + relatedFieldNames: ['accountOwner'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-dashboard-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-dashboard-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..7b456ba201 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-dashboard-standard-flat-index-metadata.util.ts @@ -0,0 +1,33 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { IndexType } from 'src/engine/metadata-modules/index-metadata/types/indexType.types'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildDashboardStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'dashboard'>, + FlatIndexMetadata +> => ({ + searchVectorGinIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'searchVectorGinIndex', + relatedFieldNames: ['searchVector'], + indexType: IndexType.GIN, + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-favorite-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-favorite-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..4f0d03abb9 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-favorite-standard-flat-index-metadata.util.ts @@ -0,0 +1,151 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildFavoriteStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'favorite'>, + FlatIndexMetadata +> => ({ + forWorkspaceMemberIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'forWorkspaceMemberIdIndex', + relatedFieldNames: ['forWorkspaceMember'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + personIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'personIdIndex', + relatedFieldNames: ['person'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + companyIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'companyIdIndex', + relatedFieldNames: ['company'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + favoriteFolderIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'favoriteFolderIdIndex', + relatedFieldNames: ['favoriteFolder'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + opportunityIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'opportunityIdIndex', + relatedFieldNames: ['opportunity'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + workflowIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workflowIdIndex', + relatedFieldNames: ['workflow'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + workflowVersionIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workflowVersionIdIndex', + relatedFieldNames: ['workflowVersion'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + workflowRunIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workflowRunIdIndex', + relatedFieldNames: ['workflowRun'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + taskIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'taskIdIndex', + relatedFieldNames: ['task'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + noteIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'noteIdIndex', + relatedFieldNames: ['note'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + dashboardIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'dashboardIdIndex', + relatedFieldNames: ['dashboard'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-channel-message-association-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-channel-message-association-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..6924d4a898 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-channel-message-association-standard-flat-index-metadata.util.ts @@ -0,0 +1,60 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildMessageChannelMessageAssociationStandardFlatIndexMetadatas = + ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + }: Omit< + CreateStandardIndexArgs<'messageChannelMessageAssociation'>, + 'context' + >): Record< + AllStandardObjectIndexName<'messageChannelMessageAssociation'>, + FlatIndexMetadata + > => ({ + messageChannelIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'messageChannelIdIndex', + relatedFieldNames: ['messageChannel'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + messageIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'messageIdIndex', + relatedFieldNames: ['message'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + messageChannelIdMessageIdUniqueIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'messageChannelIdMessageIdUniqueIndex', + relatedFieldNames: ['messageChannel', 'message'], + isUnique: true, + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + }); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-channel-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-channel-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..797da5572b --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-channel-standard-flat-index-metadata.util.ts @@ -0,0 +1,31 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildMessageChannelStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'messageChannel'>, + FlatIndexMetadata +> => ({ + connectedAccountIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'connectedAccountIdIndex', + relatedFieldNames: ['connectedAccount'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-folder-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-folder-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..f824960dbd --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-folder-standard-flat-index-metadata.util.ts @@ -0,0 +1,31 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildMessageFolderStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'messageFolder'>, + FlatIndexMetadata +> => ({ + messageChannelIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'messageChannelIdIndex', + relatedFieldNames: ['messageChannel'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-participant-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-participant-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..10a5a29841 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-participant-standard-flat-index-metadata.util.ts @@ -0,0 +1,55 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildMessageParticipantStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'messageParticipant'>, + FlatIndexMetadata +> => ({ + messageIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'messageIdIndex', + relatedFieldNames: ['message'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + personIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'personIdIndex', + relatedFieldNames: ['person'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + workspaceMemberIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workspaceMemberIdIndex', + relatedFieldNames: ['workspaceMember'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..2503758c51 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-standard-flat-index-metadata.util.ts @@ -0,0 +1,31 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildMessageStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'message'>, + FlatIndexMetadata +> => ({ + messageThreadIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'messageThreadIdIndex', + relatedFieldNames: ['messageThread'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-note-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-note-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..5a4652fb77 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-note-standard-flat-index-metadata.util.ts @@ -0,0 +1,33 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { IndexType } from 'src/engine/metadata-modules/index-metadata/types/indexType.types'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildNoteStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'note'>, + FlatIndexMetadata +> => ({ + searchVectorGinIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'searchVectorGinIndex', + relatedFieldNames: ['searchVector'], + indexType: IndexType.GIN, + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-note-target-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-note-target-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..75f7d9078a --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-note-target-standard-flat-index-metadata.util.ts @@ -0,0 +1,67 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildNoteTargetStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'noteTarget'>, + FlatIndexMetadata +> => ({ + noteIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'noteIdIndex', + relatedFieldNames: ['note'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + personIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'personIdIndex', + relatedFieldNames: ['person'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + companyIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'companyIdIndex', + relatedFieldNames: ['company'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + opportunityIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'opportunityIdIndex', + relatedFieldNames: ['opportunity'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-opportunity-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-opportunity-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..ad6b470dd9 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-opportunity-standard-flat-index-metadata.util.ts @@ -0,0 +1,69 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { IndexType } from 'src/engine/metadata-modules/index-metadata/types/indexType.types'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildOpportunityStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'opportunity'>, + FlatIndexMetadata +> => ({ + pointOfContactIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'pointOfContactIdIndex', + relatedFieldNames: ['pointOfContact'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + companyIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'companyIdIndex', + relatedFieldNames: ['company'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + stageIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'stageIndex', + relatedFieldNames: ['stage'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + searchVectorGinIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'searchVectorGinIndex', + relatedFieldNames: ['searchVector'], + indexType: IndexType.GIN, + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-person-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-person-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..7c81134151 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-person-standard-flat-index-metadata.util.ts @@ -0,0 +1,58 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { IndexType } from 'src/engine/metadata-modules/index-metadata/types/indexType.types'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildPersonStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'person'>, + FlatIndexMetadata +> => ({ + companyIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'companyIdIndex', + relatedFieldNames: ['company'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + emailsUniqueIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'emailsUniqueIndex', + relatedFieldNames: ['emails'], + isUnique: true, + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + searchVectorGinIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'searchVectorGinIndex', + relatedFieldNames: ['searchVector'], + indexType: IndexType.GIN, + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-task-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-task-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..52042ab4ba --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-task-standard-flat-index-metadata.util.ts @@ -0,0 +1,45 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { IndexType } from 'src/engine/metadata-modules/index-metadata/types/indexType.types'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildTaskStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'task'>, + FlatIndexMetadata +> => ({ + assigneeIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'assigneeIdIndex', + relatedFieldNames: ['assignee'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + searchVectorGinIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'searchVectorGinIndex', + relatedFieldNames: ['searchVector'], + indexType: IndexType.GIN, + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-task-target-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-task-target-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..b051a8777a --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-task-target-standard-flat-index-metadata.util.ts @@ -0,0 +1,67 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildTaskTargetStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'taskTarget'>, + FlatIndexMetadata +> => ({ + taskIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'taskIdIndex', + relatedFieldNames: ['task'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + personIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'personIdIndex', + relatedFieldNames: ['person'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + companyIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'companyIdIndex', + relatedFieldNames: ['company'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + opportunityIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'opportunityIdIndex', + relatedFieldNames: ['opportunity'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-timeline-activity-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-timeline-activity-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..41a5475660 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-timeline-activity-standard-flat-index-metadata.util.ts @@ -0,0 +1,139 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildTimelineActivityStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'timelineActivity'>, + FlatIndexMetadata +> => ({ + workspaceMemberIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workspaceMemberIdIndex', + relatedFieldNames: ['workspaceMember'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + personIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'personIdIndex', + relatedFieldNames: ['person'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + companyIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'companyIdIndex', + relatedFieldNames: ['company'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + opportunityIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'opportunityIdIndex', + relatedFieldNames: ['opportunity'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + noteIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'noteIdIndex', + relatedFieldNames: ['note'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + taskIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'taskIdIndex', + relatedFieldNames: ['task'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + workflowIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workflowIdIndex', + relatedFieldNames: ['workflow'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + workflowVersionIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workflowVersionIdIndex', + relatedFieldNames: ['workflowVersion'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + workflowRunIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workflowRunIdIndex', + relatedFieldNames: ['workflowRun'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + dashboardIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'dashboardIdIndex', + relatedFieldNames: ['dashboard'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-automated-trigger-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-automated-trigger-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..2f8de7f345 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-automated-trigger-standard-flat-index-metadata.util.ts @@ -0,0 +1,34 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildWorkflowAutomatedTriggerStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit< + CreateStandardIndexArgs<'workflowAutomatedTrigger'>, + 'context' +>): Record< + AllStandardObjectIndexName<'workflowAutomatedTrigger'>, + FlatIndexMetadata +> => ({ + workflowIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workflowIdIndex', + relatedFieldNames: ['workflow'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-run-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-run-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..09c2120e3a --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-run-standard-flat-index-metadata.util.ts @@ -0,0 +1,57 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { IndexType } from 'src/engine/metadata-modules/index-metadata/types/indexType.types'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildWorkflowRunStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'workflowRun'>, + FlatIndexMetadata +> => ({ + workflowVersionIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workflowVersionIdIndex', + relatedFieldNames: ['workflowVersion'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + workflowIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workflowIdIndex', + relatedFieldNames: ['workflow'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + searchVectorGinIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'searchVectorGinIndex', + relatedFieldNames: ['searchVector'], + indexType: IndexType.GIN, + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..4f28649579 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-standard-flat-index-metadata.util.ts @@ -0,0 +1,33 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { IndexType } from 'src/engine/metadata-modules/index-metadata/types/indexType.types'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildWorkflowStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'workflow'>, + FlatIndexMetadata +> => ({ + searchVectorGinIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'searchVectorGinIndex', + relatedFieldNames: ['searchVector'], + indexType: IndexType.GIN, + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-version-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-version-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..e258e1b0bf --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workflow-version-standard-flat-index-metadata.util.ts @@ -0,0 +1,45 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { IndexType } from 'src/engine/metadata-modules/index-metadata/types/indexType.types'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildWorkflowVersionStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'workflowVersion'>, + FlatIndexMetadata +> => ({ + workflowIdIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'workflowIdIndex', + relatedFieldNames: ['workflow'], + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + searchVectorGinIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'searchVectorGinIndex', + relatedFieldNames: ['searchVector'], + indexType: IndexType.GIN, + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +}); diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workspace-member-standard-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workspace-member-standard-flat-index-metadata.util.ts new file mode 100644 index 0000000000..ee25143304 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/index/compute-workspace-member-standard-flat-index-metadata.util.ts @@ -0,0 +1,46 @@ +import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type'; +import { IndexType } from 'src/engine/metadata-modules/index-metadata/types/indexType.types'; +import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type'; +import { + type CreateStandardIndexArgs, + createStandardIndexFlatMetadata, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util'; + +export const buildWorkspaceMemberStandardFlatIndexMetadatas = ({ + now, + objectName, + workspaceId, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, +}: Omit, 'context'>): Record< + AllStandardObjectIndexName<'workspaceMember'>, + FlatIndexMetadata +> => ({ + userEmailUniqueIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'userEmailUniqueIndex', + relatedFieldNames: ['userEmail'], + isUnique: true, + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), + searchVectorGinIndex: createStandardIndexFlatMetadata({ + objectName, + workspaceId, + context: { + indexName: 'searchVectorGinIndex', + relatedFieldNames: ['searchVector'], + indexType: IndexType.GIN, + }, + standardFieldMetadataIdByObjectAndFieldName, + dependencyFlatEntityMaps, + twentyStandardApplicationId, + now, + }), +});