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,
+ }),
+});