Standard index as code introduction + type refactor (#16426)

# Introduction
Related https://github.com/twentyhq/core-team-issues/issues/1995

In this PR we're introducing the standard index tools for their
declaration
Also adding a common typing in order to have a simily consistency across
standard builders

Will implement remaining standard index builder in an other PR
This commit is contained in:
Paul Rastoin
2025-12-09 14:52:25 +01:00
committed by GitHub
parent 4996f3dd28
commit e8d4f11d8e
44 changed files with 3673 additions and 1901 deletions
@@ -30,10 +30,12 @@ export class ComputeTwentyStandardWorkspaceMigrationCommand extends CommandRunne
// TODO: Implement migration logic here
const workspaceId = '20202020-ef6f-4118-953c-2b027324b54a';
const twentyStandardApplicationId = '20202020-5adb-4091-81b7-d5be86a8bdd2';
const twentyStandardAllFlatEntityMaps =
computeTwentyStandardApplicationAllFlatEntityMaps({
createdAt: new Date(),
now: new Date(),
workspaceId,
twentyStandardApplicationId,
});
writeFileSync(
@@ -48,6 +50,7 @@ export class ComputeTwentyStandardWorkspaceMigrationCommand extends CommandRunne
isSystemBuild: true,
},
fromToAllFlatEntityMaps: {
// Should be dynamic
flatObjectMetadataMaps: {
from: createEmptyFlatEntityMaps(),
to: twentyStandardAllFlatEntityMaps.flatObjectMetadataMaps,
@@ -56,6 +59,10 @@ export class ComputeTwentyStandardWorkspaceMigrationCommand extends CommandRunne
from: createEmptyFlatEntityMaps(),
to: twentyStandardAllFlatEntityMaps.flatFieldMetadataMaps,
},
flatIndexMaps: {
from: createEmptyFlatEntityMaps(),
to: twentyStandardAllFlatEntityMaps.flatIndexMaps,
},
},
workspaceId,
})
@@ -10,7 +10,7 @@ import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-m
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
import { generateDeterministicIndexNameV2 } from 'src/engine/metadata-modules/index-metadata/utils/generate-deterministic-index-name-v2';
type GenerateFlatIndexArgs = {
export type GenerateFlatIndexArgs = {
flatObjectMetadata: FlatObjectMetadata;
objectFlatFieldMetadatas: FlatFieldMetadata[];
flatIndex: Omit<FlatIndexMetadata, 'name'>;
@@ -70,6 +70,32 @@ export const STANDARD_OBJECTS = {
workflow: { universalIdentifier: ATTACHMENT_STANDARD_FIELD_IDS.workflow },
custom: { universalIdentifier: ATTACHMENT_STANDARD_FIELD_IDS.custom },
},
indexes: {
authorIdIndex: {
universalIdentifier: 'a7c3e8f2-9b14-4d6a-8e5f-1c2d3b4a5e6f',
},
taskIdIndex: {
universalIdentifier: 'b8d4f9a3-0c25-4e7b-9f6a-2d3e4c5b6f70',
},
noteIdIndex: {
universalIdentifier: 'c9e5a0b4-1d36-4f8c-0a7b-3e4f5d6c7a81',
},
personIdIndex: {
universalIdentifier: 'd0f6b1c5-2e47-4a9d-1b8c-4f5a6e7d8b92',
},
companyIdIndex: {
universalIdentifier: 'e1a7c2d6-3f58-4b0e-2c9d-5a6b7f8e9c03',
},
opportunityIdIndex: {
universalIdentifier: 'f2b8d3e7-4a69-4c1f-3d0e-6b7c8a9f0d14',
},
dashboardIdIndex: {
universalIdentifier: '03c9e4f8-5b70-4d2a-4e1f-7c8d9b0a1e25',
},
workflowIdIndex: {
universalIdentifier: '14d0f5a9-6c81-4e3b-5f2a-8d9e0c1b2f36',
},
},
views: {},
},
blocklist: {
@@ -90,6 +116,11 @@ export const STANDARD_OBJECTS = {
universalIdentifier: BLOCKLIST_STANDARD_FIELD_IDS.workspaceMember,
},
},
indexes: {
workspaceMemberIdIndex: {
universalIdentifier: '25e1a6b0-7d92-4f4c-6a3b-9e0f1d2c3a47',
},
},
views: {},
},
calendarChannelEventAssociation: {
@@ -124,6 +155,14 @@ export const STANDARD_OBJECTS = {
CALENDAR_CHANNEL_EVENT_ASSOCIATION_STANDARD_FIELD_IDS.recurringEventExternalId,
},
},
indexes: {
calendarChannelIdIndex: {
universalIdentifier: '36f2b7c1-8e03-4a5d-7b4c-0f1a2e3d4b58',
},
calendarEventIdIndex: {
universalIdentifier: '47a3c8d2-9f14-4b6e-8c5d-1a2b3f4e5c69',
},
},
views: {},
},
calendarChannel: {
@@ -185,6 +224,11 @@ export const STANDARD_OBJECTS = {
universalIdentifier: CALENDAR_CHANNEL_STANDARD_FIELD_IDS.syncedAt,
},
},
indexes: {
connectedAccountIdIndex: {
universalIdentifier: '58b4d9e3-0a25-4c7f-9d6e-2b3c4a5f6d70',
},
},
views: {},
},
calendarEventParticipant: {
@@ -231,6 +275,17 @@ export const STANDARD_OBJECTS = {
CALENDAR_EVENT_PARTICIPANT_STANDARD_FIELD_IDS.workspaceMember,
},
},
indexes: {
calendarEventIdIndex: {
universalIdentifier: '69c5e0f4-1b36-4d8a-0e7f-3c4d5b6a7e81',
},
personIdIndex: {
universalIdentifier: '70d6f1a5-2c47-4e9b-1f8a-4d5e6c7b8f92',
},
workspaceMemberIdIndex: {
universalIdentifier: '81e7a2b6-3d58-4f0c-2a9b-5e6f7d8c9003',
},
},
views: {},
},
calendarEvent: {
@@ -290,6 +345,7 @@ export const STANDARD_OBJECTS = {
CALENDAR_EVENT_STANDARD_FIELD_IDS.calendarEventParticipants,
},
},
indexes: {},
views: {
allCalendarEvents: {
universalIdentifier: '20202020-c001-4c01-8c01-ca1ebe0ca001',
@@ -380,6 +436,17 @@ export const STANDARD_OBJECTS = {
universalIdentifier: COMPANY_STANDARD_FIELD_IDS.searchVector,
},
},
indexes: {
accountOwnerIdIndex: {
universalIdentifier: '92f8b3c7-4e69-4a1d-3b0c-6f7a8e9d0114',
},
domainNameUniqueIndex: {
universalIdentifier: 'a3a9c4d8-5f70-4b2e-4c1d-7a8b9f0e1225',
},
searchVectorGinIndex: {
universalIdentifier: 'b4b0d5e9-6a81-4c3f-5d2e-8b9c0a1f2336',
},
},
views: {
allCompanies: {
universalIdentifier: '20202020-a001-4a01-8a01-c0aba11c0001',
@@ -470,6 +537,11 @@ export const STANDARD_OBJECTS = {
CONNECTED_ACCOUNT_STANDARD_FIELD_IDS.connectionParameters,
},
},
indexes: {
accountOwnerIdIndex: {
universalIdentifier: 'c5c1e6f0-7b92-4d4a-6e3f-9c0d1b2a3447',
},
},
views: {},
},
dashboard: {
@@ -506,6 +578,11 @@ export const STANDARD_OBJECTS = {
universalIdentifier: DASHBOARD_STANDARD_FIELD_IDS.searchVector,
},
},
indexes: {
searchVectorGinIndex: {
universalIdentifier: 'd6d2f7a1-8c03-4e5b-7f4a-0d1e2c3b4558',
},
},
views: {
allDashboards: {
universalIdentifier: '20202020-a012-4a12-8a12-da5ab0b0a001',
@@ -564,6 +641,41 @@ export const STANDARD_OBJECTS = {
},
dashboard: { universalIdentifier: FAVORITE_STANDARD_FIELD_IDS.dashboard },
},
indexes: {
forWorkspaceMemberIdIndex: {
universalIdentifier: 'e7e3a8b2-9d14-4f6c-8a5b-1e2f3d4c5669',
},
personIdIndex: {
universalIdentifier: 'f8f4b9c3-0e25-4a7d-9b6c-2f3a4e5d677a',
},
companyIdIndex: {
universalIdentifier: '0905c0d4-1f36-4b8e-0c7d-3a4b5f6e788b',
},
favoriteFolderIdIndex: {
universalIdentifier: '1016d1e5-2a47-4c9f-1d8e-4b5c6a7f899c',
},
opportunityIdIndex: {
universalIdentifier: '2127e2f6-3b58-4d0a-2e9f-5c6d7b80900d',
},
workflowIdIndex: {
universalIdentifier: '3238f3a7-4c69-4e1b-3f0a-6d7e8c91011e',
},
workflowVersionIdIndex: {
universalIdentifier: '4349a4b8-5d70-4f2c-4a1b-7e8f9d02122f',
},
workflowRunIdIndex: {
universalIdentifier: '5450b5c9-6e81-4a3d-5b2c-8f90ae132340',
},
taskIdIndex: {
universalIdentifier: '6561c6d0-7f92-4b4e-6c3d-90a1bf243451',
},
noteIdIndex: {
universalIdentifier: '7672d7e1-8003-4c5f-7d4e-01b2c0354562',
},
dashboardIdIndex: {
universalIdentifier: '8783e8f2-9114-4d6a-8e5f-12c3d1465673',
},
},
views: {},
},
favoriteFolder: {
@@ -587,6 +699,7 @@ export const STANDARD_OBJECTS = {
universalIdentifier: FAVORITE_FOLDER_STANDARD_FIELD_IDS.favorites,
},
},
indexes: {},
views: {},
},
messageChannelMessageAssociation: {
@@ -628,6 +741,17 @@ export const STANDARD_OBJECTS = {
universalIdentifier: '75c9b0f7-9e76-44d4-a2f9-47051e61eec7',
},
},
indexes: {
messageChannelIdIndex: {
universalIdentifier: '9894f9a3-0225-4e7b-9f6a-23d4e2576784',
},
messageIdIndex: {
universalIdentifier: '0905a0b4-1336-4f8c-0a7b-34e5f3687895',
},
messageChannelIdMessageIdUniqueIndex: {
universalIdentifier: '1a16b1c5-2447-4a9d-1b8c-45f6a47989a6',
},
},
views: {},
},
messageChannel: {
@@ -709,6 +833,11 @@ export const STANDARD_OBJECTS = {
MESSAGE_CHANNEL_STANDARD_FIELD_IDS.throttleFailureCount,
},
},
indexes: {
connectedAccountIdIndex: {
universalIdentifier: '2b27c2d6-3558-4b0e-2c9d-56a7b58a9ab7',
},
},
views: {},
},
messageFolder: {
@@ -748,6 +877,11 @@ export const STANDARD_OBJECTS = {
MESSAGE_FOLDER_STANDARD_FIELD_IDS.pendingSyncAction,
},
},
indexes: {
messageChannelIdIndex: {
universalIdentifier: '3c38d3e7-4669-4c1f-3d0e-67b8c69b0bc8',
},
},
views: {},
},
messageParticipant: {
@@ -783,6 +917,17 @@ export const STANDARD_OBJECTS = {
MESSAGE_PARTICIPANT_STANDARD_FIELD_IDS.workspaceMember,
},
},
indexes: {
messageIdIndex: {
universalIdentifier: '4d49e4f8-5770-4d2a-4e1f-78c9d70c1cd9',
},
personIdIndex: {
universalIdentifier: '5e50f5a9-6881-4e3b-5f2a-89d0e81d2de0',
},
workspaceMemberIdIndex: {
universalIdentifier: '6f61a6b0-7992-4f4c-6a3b-90e1f92e3ef1',
},
},
views: {},
},
messageThread: {
@@ -806,6 +951,7 @@ export const STANDARD_OBJECTS = {
MESSAGE_THREAD_STANDARD_FIELD_IDS.messageChannelMessageAssociations,
},
},
indexes: {},
views: {
allMessageThreads: {
universalIdentifier: '20202020-d002-4d02-8d02-ae55a9ba2002',
@@ -855,6 +1001,11 @@ export const STANDARD_OBJECTS = {
MESSAGE_STANDARD_FIELD_IDS.messageChannelMessageAssociations,
},
},
indexes: {
messageThreadIdIndex: {
universalIdentifier: '7072b7c1-8003-4a5d-7b4c-01f2a03f4f02',
},
},
views: {
allMessages: {
universalIdentifier: '20202020-d001-4d01-8d01-ae55a9e5a001',
@@ -912,6 +1063,11 @@ export const STANDARD_OBJECTS = {
universalIdentifier: NOTE_STANDARD_FIELD_IDS.searchVector,
},
},
indexes: {
searchVectorGinIndex: {
universalIdentifier: '8183c8d2-9114-4b6e-8c5d-12a3b14a5a13',
},
},
views: {
allNotes: {
universalIdentifier: '20202020-a005-4a05-8a05-a0be5a11a000',
@@ -956,6 +1112,20 @@ export const STANDARD_OBJECTS = {
},
custom: { universalIdentifier: NOTE_TARGET_STANDARD_FIELD_IDS.custom },
},
indexes: {
noteIdIndex: {
universalIdentifier: '9294d9e3-0225-4c7f-9d6e-23b4c25b6b24',
},
personIdIndex: {
universalIdentifier: '0305e0f4-1336-4d8a-0e7f-34c5d36c7c35',
},
companyIdIndex: {
universalIdentifier: '1416f1a5-2447-4e9b-1f8a-45d6e47d8d46',
},
opportunityIdIndex: {
universalIdentifier: '2527a2b6-3558-4f0c-2a9b-56e7f58e9e57',
},
},
views: {},
},
opportunity: {
@@ -1006,6 +1176,20 @@ export const STANDARD_OBJECTS = {
universalIdentifier: OPPORTUNITY_STANDARD_FIELD_IDS.searchVector,
},
},
indexes: {
pointOfContactIdIndex: {
universalIdentifier: '3638b3c7-4669-4a1d-3b0c-67f8a69f0f68',
},
companyIdIndex: {
universalIdentifier: '4749c4d8-5770-4b2e-4c1d-78a9b70a1a79',
},
stageIndex: {
universalIdentifier: '5850d5e9-6881-4c3f-5d2e-89b0c81b2b80',
},
searchVectorGinIndex: {
universalIdentifier: '6961e6f0-7992-4d4a-6e3f-90c1d92c3c91',
},
},
views: {
allOpportunities: {
universalIdentifier: '20202020-a003-4a03-8a03-0aa0b1ca1ba0',
@@ -1128,6 +1312,17 @@ export const STANDARD_OBJECTS = {
universalIdentifier: PERSON_STANDARD_FIELD_IDS.searchVector,
},
},
indexes: {
companyIdIndex: {
universalIdentifier: '7072f7a1-8003-4e5b-7f4a-01d2e03d4d02',
},
emailsUniqueIndex: {
universalIdentifier: '8183a8b2-9114-4f6c-8a5b-12e3f14e5e13',
},
searchVectorGinIndex: {
universalIdentifier: '9294b9c3-0225-4a7d-9b6c-23f4a25f6f24',
},
},
views: {
allPeople: {
universalIdentifier: '20202020-a002-4a02-8a02-ae0a1ea11a00',
@@ -1197,6 +1392,14 @@ export const STANDARD_OBJECTS = {
universalIdentifier: TASK_STANDARD_FIELD_IDS.searchVector,
},
},
indexes: {
assigneeIdIndex: {
universalIdentifier: '0305c0d4-1336-4b8e-0c7d-34a5b36a7a35',
},
searchVectorGinIndex: {
universalIdentifier: '1416d1e5-2447-4c9f-1d8e-45b6c47b8b46',
},
},
views: {
allTasks: {
universalIdentifier: '20202020-a006-4a06-8a06-ba5ca11a1ea0',
@@ -1326,6 +1529,20 @@ export const STANDARD_OBJECTS = {
},
custom: { universalIdentifier: TASK_TARGET_STANDARD_FIELD_IDS.custom },
},
indexes: {
taskIdIndex: {
universalIdentifier: '2527e2f6-3558-4d0a-2e9f-56c7d58c9c57',
},
personIdIndex: {
universalIdentifier: '3638f3a7-4669-4e1b-3f0a-67d8e69d0d68',
},
companyIdIndex: {
universalIdentifier: '4749a4b8-5770-4f2c-4a1b-78e9f70e1e79',
},
opportunityIdIndex: {
universalIdentifier: '5850b5c9-6881-4a3d-5b2c-89f0a81f2f80',
},
},
views: {},
},
timelineActivity: {
@@ -1392,6 +1609,38 @@ export const STANDARD_OBJECTS = {
TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.linkedObjectMetadataId,
},
},
indexes: {
workspaceMemberIdIndex: {
universalIdentifier: '6961c6d0-7992-4b4e-6c3d-90a1b92a3a91',
},
personIdIndex: {
universalIdentifier: '7072d7e1-8003-4c5f-7d4e-01b2c03b4b02',
},
companyIdIndex: {
universalIdentifier: '8183e8f2-9114-4d6a-8e5f-12c3d14c5c13',
},
opportunityIdIndex: {
universalIdentifier: '9294f9a3-0225-4e7b-9f6a-23d4e25d6d24',
},
noteIdIndex: {
universalIdentifier: '0305a0b4-1336-4f8c-0a7b-34e5f36e7e35',
},
taskIdIndex: {
universalIdentifier: '1416b1c5-2447-4a9d-1b8c-45f6a47f8f46',
},
workflowIdIndex: {
universalIdentifier: '2527c2d6-3558-4b0e-2c9d-56a7b58a9a57',
},
workflowVersionIdIndex: {
universalIdentifier: '3638d3e7-4669-4c1f-3d0e-67b8c69b0b68',
},
workflowRunIdIndex: {
universalIdentifier: '4749e4f8-5770-4d2a-4e1f-78c9d70c1c79',
},
dashboardIdIndex: {
universalIdentifier: '5850f5a9-6881-4e3b-5f2a-89d0e81d2d80',
},
},
views: {
allTimelineActivities: {
universalIdentifier: '20202020-b101-4b01-8b01-ba5cc01aa001',
@@ -1454,6 +1703,11 @@ export const STANDARD_OBJECTS = {
universalIdentifier: WORKFLOW_STANDARD_FIELD_IDS.searchVector,
},
},
indexes: {
searchVectorGinIndex: {
universalIdentifier: '6961a6b0-7992-4f4c-6a3b-90e1f92e3e91',
},
},
views: {
allWorkflows: {
universalIdentifier: '20202020-a009-4a09-8a09-a0bcf10aa11a',
@@ -1507,6 +1761,11 @@ export const STANDARD_OBJECTS = {
WORKFLOW_AUTOMATED_TRIGGER_STANDARD_FIELD_IDS.workflow,
},
},
indexes: {
workflowIdIndex: {
universalIdentifier: '7072b7c1-8003-4a5d-7b4c-01f2a03f4f03',
},
},
views: {},
},
workflowRun: {
@@ -1556,6 +1815,17 @@ export const STANDARD_OBJECTS = {
universalIdentifier: WORKFLOW_RUN_STANDARD_FIELD_IDS.searchVector,
},
},
indexes: {
workflowVersionIdIndex: {
universalIdentifier: '8183c8d2-9114-4b6e-8c5d-12a3b14a5a14',
},
workflowIdIndex: {
universalIdentifier: '9294d9e3-0225-4c7f-9d6e-23b4c25b6b25',
},
searchVectorGinIndex: {
universalIdentifier: '0305e0f4-1336-4d8a-0e7f-34c5d36c7c36',
},
},
views: {
allWorkflowRuns: {
universalIdentifier: '20202020-a011-4a11-8a11-a0bcf10abca5',
@@ -1621,6 +1891,14 @@ export const STANDARD_OBJECTS = {
universalIdentifier: WORKFLOW_VERSION_STANDARD_FIELD_IDS.searchVector,
},
},
indexes: {
workflowIdIndex: {
universalIdentifier: '1416f1a5-2447-4e9b-1f8a-45d6e47d8d47',
},
searchVectorGinIndex: {
universalIdentifier: '2527a2b6-3558-4f0c-2a9b-56e7f58e9e58',
},
},
views: {
allWorkflowVersions: {
universalIdentifier: '20202020-a010-4a10-8a10-a0bcf10aae15',
@@ -1729,6 +2007,14 @@ export const STANDARD_OBJECTS = {
universalIdentifier: WORKSPACE_MEMBER_STANDARD_FIELD_IDS.numberFormat,
},
},
indexes: {
userEmailUniqueIndex: {
universalIdentifier: '3638b3c7-4669-4a1d-3b0c-67f8a69f0f69',
},
searchVectorGinIndex: {
universalIdentifier: '4749c4d8-5770-4b2e-4c1d-78a9b70a1a7a',
},
},
views: {
allWorkspaceMembers: {
universalIdentifier: '20202020-e001-4e01-8e01-a0bcaeabe100',
@@ -1769,6 +2055,7 @@ export const STANDARD_OBJECTS = {
{
universalIdentifier: string;
fields: Record<string, { universalIdentifier: string }>;
indexes: Record<string, { universalIdentifier: string }>;
views: Record<
string,
{
@@ -0,0 +1,5 @@
import { type STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type';
export type AllStandardObjectIndexName<T extends AllStandardObjectName> =
keyof (typeof STANDARD_OBJECTS)[T]['indexes'];
@@ -0,0 +1,10 @@
import { type AllMetadataName } from 'twenty-shared/metadata';
import { type MetadataValidationRelatedFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/metadata-related-types.type';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import { type ComputeTwentyStandardApplicationAllFlatEntityMapsArgs } from 'src/engine/workspace-manager/twenty-standard-application/utils/twenty-standard-application-all-flat-entity-maps.constant';
export type StandardBuilderArgs<T extends AllMetadataName> = {
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
dependencyFlatEntityMaps: MetadataValidationRelatedFlatEntityMaps<T>;
} & ComputeTwentyStandardApplicationAllFlatEntityMapsArgs;
@@ -2,45 +2,39 @@ 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 FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type';
import { buildAttachmentStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-attachment-standard-flat-field-metadata.util';
import { buildBlocklistStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-blocklist-standard-flat-field-metadata.util';
import { buildCalendarChannelEventAssociationStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-calendar-channel-event-association-standard-flat-field-metadata.util';
import { buildCalendarChannelStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-calendar-channel-standard-flat-field-metadata.util';
import { buildCalendarEventParticipantStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-calendar-event-participant-standard-flat-field-metadata.util';
import { buildCalendarEventStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-calendar-event-standard-flat-field-metadata.util';
import { buildCompanyStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-company-standard-flat-field-metadata.util';
import { buildConnectedAccountStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-connected-account-standard-flat-field-metadata.util';
import { buildDashboardStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-dashboard-standard-flat-field-metadata.util';
import { buildFavoriteFolderStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-favorite-folder-standard-flat-field-metadata.util';
import { buildFavoriteStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-favorite-standard-flat-field-metadata.util';
import { buildMessageChannelMessageAssociationStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-message-channel-message-association-standard-flat-field-metadata.util';
import { buildMessageChannelStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-message-channel-standard-flat-field-metadata.util';
import { buildMessageFolderStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-message-folder-standard-flat-field-metadata.util';
import { buildMessageParticipantStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-message-participant-standard-flat-field-metadata.util';
import { buildMessageStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-message-standard-flat-field-metadata.util';
import { buildMessageThreadStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-message-thread-standard-flat-field-metadata.util';
import { buildNoteStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-note-standard-flat-field-metadata.util';
import { buildNoteTargetStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-note-target-standard-flat-field-metadata.util';
import { buildOpportunityStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-opportunity-standard-flat-field-metadata.util';
import { buildPersonStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-person-standard-flat-field-metadata.util';
import { buildTaskStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-task-standard-flat-field-metadata.util';
import { buildTaskTargetStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-task-target-standard-flat-field-metadata.util';
import { buildTimelineActivityStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-timeline-activity-standard-flat-field-metadata.util';
import { buildWorkflowAutomatedTriggerStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-workflow-automated-trigger-standard-flat-field-metadata.util';
import { buildWorkflowRunStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-workflow-run-standard-flat-field-metadata.util';
import { buildWorkflowStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-workflow-standard-flat-field-metadata.util';
import { buildWorkflowVersionStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-workflow-version-standard-flat-field-metadata.util';
import { buildWorkspaceMemberStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/compute-workspace-member-standard-flat-field-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import { buildAttachmentStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-attachment-standard-flat-field-metadata.util';
import { buildBlocklistStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-blocklist-standard-flat-field-metadata.util';
import { buildCalendarChannelEventAssociationStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-calendar-channel-event-association-standard-flat-field-metadata.util';
import { buildCalendarChannelStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-calendar-channel-standard-flat-field-metadata.util';
import { buildCalendarEventParticipantStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-calendar-event-participant-standard-flat-field-metadata.util';
import { buildCalendarEventStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-calendar-event-standard-flat-field-metadata.util';
import { buildCompanyStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-company-standard-flat-field-metadata.util';
import { buildConnectedAccountStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-connected-account-standard-flat-field-metadata.util';
import { buildDashboardStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-dashboard-standard-flat-field-metadata.util';
import { buildFavoriteFolderStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-favorite-folder-standard-flat-field-metadata.util';
import { buildFavoriteStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-favorite-standard-flat-field-metadata.util';
import { buildMessageChannelMessageAssociationStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-message-channel-message-association-standard-flat-field-metadata.util';
import { buildMessageChannelStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-message-channel-standard-flat-field-metadata.util';
import { buildMessageFolderStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-message-folder-standard-flat-field-metadata.util';
import { buildMessageParticipantStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-message-participant-standard-flat-field-metadata.util';
import { buildMessageStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-message-standard-flat-field-metadata.util';
import { buildMessageThreadStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-message-thread-standard-flat-field-metadata.util';
import { buildNoteStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-note-standard-flat-field-metadata.util';
import { buildNoteTargetStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-note-target-standard-flat-field-metadata.util';
import { buildOpportunityStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-opportunity-standard-flat-field-metadata.util';
import { buildPersonStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-person-standard-flat-field-metadata.util';
import { buildTaskStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-task-standard-flat-field-metadata.util';
import { buildTaskTargetStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-task-target-standard-flat-field-metadata.util';
import { buildTimelineActivityStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-timeline-activity-standard-flat-field-metadata.util';
import { buildWorkflowAutomatedTriggerStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-workflow-automated-trigger-standard-flat-field-metadata.util';
import { buildWorkflowRunStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-workflow-run-standard-flat-field-metadata.util';
import { buildWorkflowStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-workflow-standard-flat-field-metadata.util';
import { buildWorkflowVersionStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-workflow-version-standard-flat-field-metadata.util';
import { buildWorkspaceMemberStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-workspace-member-standard-flat-field-metadata.util';
import { type CreateStandardFieldArgs } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
type BuildStandardFlatFieldMetadataMapsArgs = {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
};
type StandardFlatFieldMetadataBuilder = (
args: BuildStandardFlatFieldMetadataMapsArgs,
type StandardFieldBuilder<P extends AllStandardObjectName> = (
args: Omit<CreateStandardFieldArgs<P>, 'context'>,
) => Record<string, FlatFieldMetadata>;
const STANDARD_FLAT_FIELD_METADATA_BUILDERS_BY_OBJECT_NAME = {
@@ -77,7 +71,9 @@ const STANDARD_FLAT_FIELD_METADATA_BUILDERS_BY_OBJECT_NAME = {
workflowRun: buildWorkflowRunStandardFlatFieldMetadatas,
workflowVersion: buildWorkflowVersionStandardFlatFieldMetadatas,
workspaceMember: buildWorkspaceMemberStandardFlatFieldMetadatas,
} satisfies Record<AllStandardObjectName, StandardFlatFieldMetadataBuilder>;
} satisfies {
[P in AllStandardObjectName]: StandardFieldBuilder<P>;
};
const createEmptyFlatFieldMetadataMaps =
(): FlatEntityMaps<FlatFieldMetadata> => ({
@@ -86,23 +82,25 @@ const createEmptyFlatFieldMetadataMaps =
universalIdentifiersByApplicationId: {},
});
export const buildStandardFlatFieldMetadataMaps = ({
createdAt,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: BuildStandardFlatFieldMetadataMapsArgs): FlatEntityMaps<FlatFieldMetadata> => {
const builderArgs = {
createdAt,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
};
export const buildStandardFlatFieldMetadataMaps = (
args: Omit<CreateStandardFieldArgs, 'context' | 'objectName'>,
): FlatEntityMaps<FlatFieldMetadata> => {
const allFieldMetadatas: FlatFieldMetadata[] = (
Object.keys(
STANDARD_FLAT_FIELD_METADATA_BUILDERS_BY_OBJECT_NAME,
) as (keyof typeof STANDARD_FLAT_FIELD_METADATA_BUILDERS_BY_OBJECT_NAME)[]
).flatMap((objectName) => {
const builder: StandardFieldBuilder<typeof objectName> =
STANDARD_FLAT_FIELD_METADATA_BUILDERS_BY_OBJECT_NAME[objectName];
// Collect all field metadatas from all standard objects
const allFieldMetadatas: FlatFieldMetadata[] = Object.values(
STANDARD_FLAT_FIELD_METADATA_BUILDERS_BY_OBJECT_NAME,
).flatMap((builder) => Object.values(builder(builderArgs)));
const result = builder({
...args,
objectName,
});
return Object.values(result);
});
// Build maps using addFlatEntityToFlatEntityMapsOrThrow to prevent duplicate IDs
let flatFieldMetadataMaps = createEmptyFlatFieldMetadataMaps();
for (const fieldMetadata of allFieldMetadatas) {
@@ -6,24 +6,28 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildAttachmentStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'attachment'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'attachment'>, 'context'>): Record<
AllStandardObjectFieldName<'attachment'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -33,14 +37,16 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +58,16 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -71,14 +79,16 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -89,58 +99,66 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Attachment-specific fields
name: createStandardFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'name',
type: FieldMetadataType.TEXT,
label: 'Name',
description: 'Attachment name',
icon: 'IconFileUpload',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
fullPath: createStandardFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'fullPath',
type: FieldMetadataType.TEXT,
label: 'Full path',
description: 'Attachment full path',
icon: 'IconLink',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
type: createStandardFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'type',
type: FieldMetadataType.TEXT,
label: 'Type (deprecated)',
description: 'Attachment type (deprecated - use fileCategory)',
icon: 'IconList',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
fileCategory: createStandardFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'fileCategory',
type: FieldMetadataType.SELECT,
label: 'File category',
@@ -173,14 +191,16 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
{ value: 'VIDEO', label: 'Video', position: 6, color: 'purple' },
{ value: 'OTHER', label: 'Other', position: 7, color: 'gray' },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdBy: createStandardFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdBy',
type: FieldMetadataType.ACTOR,
label: 'Created by',
@@ -188,22 +208,23 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
icon: 'IconCreativeCommonsSa',
isUIReadOnly: true,
isNullable: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
author: createStandardRelationFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'author',
label: 'Author',
description: 'Attachment author (deprecated - use createdBy)',
icon: 'IconCircleUser',
isNullable: true,
createdAt,
targetObjectName: 'workspaceMember',
targetFieldName: 'authoredAttachments',
settings: {
@@ -213,17 +234,19 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
activity: createStandardRelationFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'activity',
label: 'Activity',
description: 'Attachment activity',
icon: 'IconNotes',
isNullable: true,
createdAt,
// Activity is deprecated, pointing to a non-existent target
targetObjectName: 'note',
targetFieldName: 'attachments',
@@ -234,17 +257,19 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
task: createStandardRelationFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'task',
label: 'Task',
description: 'Attachment task',
icon: 'IconNotes',
isNullable: true,
createdAt,
targetObjectName: 'task',
targetFieldName: 'attachments',
settings: {
@@ -254,17 +279,19 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
note: createStandardRelationFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'note',
label: 'Note',
description: 'Attachment note',
icon: 'IconNotes',
isNullable: true,
createdAt,
targetObjectName: 'note',
targetFieldName: 'attachments',
settings: {
@@ -274,17 +301,19 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
person: createStandardRelationFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'person',
label: 'Person',
description: 'Attachment person',
icon: 'IconUser',
isNullable: true,
createdAt,
targetObjectName: 'person',
targetFieldName: 'attachments',
settings: {
@@ -294,17 +323,19 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
company: createStandardRelationFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'company',
label: 'Company',
description: 'Attachment company',
icon: 'IconBuildingSkyscraper',
isNullable: true,
createdAt,
targetObjectName: 'company',
targetFieldName: 'attachments',
settings: {
@@ -314,17 +345,19 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
opportunity: createStandardRelationFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'opportunity',
label: 'Opportunity',
description: 'Attachment opportunity',
icon: 'IconBuildingSkyscraper',
isNullable: true,
createdAt,
targetObjectName: 'opportunity',
targetFieldName: 'attachments',
settings: {
@@ -334,17 +367,19 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
dashboard: createStandardRelationFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'dashboard',
label: 'Dashboard',
description: 'Attachment dashboard',
icon: 'IconLayout',
isNullable: true,
createdAt,
targetObjectName: 'dashboard',
targetFieldName: 'attachments',
settings: {
@@ -354,17 +389,19 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflow: createStandardRelationFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workflow',
label: 'Workflow',
description: 'Attachment workflow',
icon: 'IconSettingsAutomation',
isNullable: true,
createdAt,
targetObjectName: 'workflow',
targetFieldName: 'attachments',
settings: {
@@ -374,17 +411,19 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
custom: createStandardRelationFieldFlatMetadata({
objectName: 'attachment',
objectName,
workspaceId,
options: {
context: {
fieldName: 'custom',
label: 'Custom',
description: 'Attachment custom object',
icon: 'IconBuildingSkyscraper',
isNullable: true,
createdAt,
// Custom is a dynamic relation, pointing to custom objects
targetObjectName: 'note',
targetFieldName: 'attachments',
@@ -395,5 +434,8 @@ export const buildAttachmentStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,24 +6,28 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildBlocklistStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'blocklist'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'blocklist'>, 'context'>): Record<
AllStandardObjectFieldName<'blocklist'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName: 'blocklist',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -33,14 +37,16 @@ export const buildBlocklistStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'blocklist',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +58,16 @@ export const buildBlocklistStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'blocklist',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -71,14 +79,16 @@ export const buildBlocklistStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'blocklist',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -89,38 +99,41 @@ export const buildBlocklistStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Blocklist-specific fields
handle: createStandardFieldFlatMetadata({
objectName: 'blocklist',
objectName,
workspaceId,
options: {
context: {
fieldName: 'handle',
type: FieldMetadataType.TEXT,
label: 'Handle',
description: 'Handle',
icon: 'IconAt',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
workspaceMember: createStandardRelationFieldFlatMetadata({
objectName: 'blocklist',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workspaceMember',
label: 'WorkspaceMember',
description: 'WorkspaceMember',
icon: 'IconCircleUser',
isNullable: false,
createdAt,
targetObjectName: 'workspaceMember',
targetFieldName: 'blocklist',
settings: {
@@ -130,5 +143,8 @@ export const buildBlocklistStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,26 +6,30 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildCalendarChannelEventAssociationStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<
CreateStandardFieldArgs<'calendarChannelEventAssociation'>,
'context'
>): Record<
AllStandardObjectFieldName<'calendarChannelEventAssociation'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'calendarChannelEventAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -35,14 +39,16 @@ export const buildCalendarChannelEventAssociationStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'calendarChannelEventAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +58,16 @@ export const buildCalendarChannelEventAssociationStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'calendarChannelEventAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -69,14 +77,16 @@ export const buildCalendarChannelEventAssociationStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'calendarChannelEventAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -85,48 +95,53 @@ export const buildCalendarChannelEventAssociationStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
eventExternalId: createStandardFieldFlatMetadata({
objectName: 'calendarChannelEventAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'eventExternalId',
type: FieldMetadataType.TEXT,
label: 'Event external ID',
description: 'Event external ID',
icon: 'IconCalendar',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
recurringEventExternalId: createStandardFieldFlatMetadata({
objectName: 'calendarChannelEventAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'recurringEventExternalId',
type: FieldMetadataType.TEXT,
label: 'Recurring Event ID',
description: 'Recurring Event ID',
icon: 'IconHistory',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
calendarChannel: createStandardRelationFieldFlatMetadata({
objectName: 'calendarChannelEventAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'calendarChannel',
label: 'Channel ID',
description: 'Channel ID',
icon: 'IconCalendar',
isNullable: false,
createdAt,
targetObjectName: 'calendarChannel',
targetFieldName: 'calendarChannelEventAssociations',
settings: {
@@ -136,17 +151,19 @@ export const buildCalendarChannelEventAssociationStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
calendarEvent: createStandardRelationFieldFlatMetadata({
objectName: 'calendarChannelEventAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'calendarEvent',
label: 'Event ID',
description: 'Event ID',
icon: 'IconCalendar',
isNullable: false,
createdAt,
targetObjectName: 'calendarEvent',
targetFieldName: 'calendarChannelEventAssociations',
settings: {
@@ -156,5 +173,8 @@ export const buildCalendarChannelEventAssociationStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,26 +6,27 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildCalendarChannelStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'calendarChannel'>, 'context'>): Record<
AllStandardObjectFieldName<'calendarChannel'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -35,14 +36,16 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +55,16 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -69,14 +74,16 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -85,28 +92,32 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
handle: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'handle',
type: FieldMetadataType.TEXT,
label: 'Handle',
description: 'Handle',
icon: 'IconAt',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
visibility: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'visibility',
type: FieldMetadataType.SELECT,
label: 'Visibility',
@@ -123,14 +134,16 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
color: 'orange',
},
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
isContactAutoCreationEnabled: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'isContactAutoCreationEnabled',
type: FieldMetadataType.BOOLEAN,
label: 'Is Contact Auto Creation Enabled',
@@ -138,14 +151,16 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
icon: 'IconUserCircle',
isNullable: false,
defaultValue: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
contactAutoCreationPolicy: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'contactAutoCreationPolicy',
type: FieldMetadataType.SELECT,
label: 'Contact auto creation policy',
@@ -175,14 +190,16 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
},
{ value: 'NONE', label: 'None', color: 'red', position: 3 },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
isSyncEnabled: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'isSyncEnabled',
type: FieldMetadataType.BOOLEAN,
label: 'Is Sync Enabled',
@@ -190,14 +207,16 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
icon: 'IconRefresh',
isNullable: false,
defaultValue: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
syncCursor: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'syncCursor',
type: FieldMetadataType.TEXT,
label: 'Sync Cursor',
@@ -205,14 +224,16 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
'Sync Cursor. Used for syncing events from the calendar provider',
icon: 'IconReload',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
syncStatus: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'syncStatus',
type: FieldMetadataType.SELECT,
label: 'Sync status',
@@ -241,14 +262,16 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
color: 'red',
},
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
syncStage: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'syncStage',
type: FieldMetadataType.SELECT,
label: 'Sync stage',
@@ -301,42 +324,48 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
color: 'gray',
},
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
syncStageStartedAt: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'syncStageStartedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Sync stage started at',
description: 'Sync stage started at',
icon: 'IconHistory',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
syncedAt: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'syncedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last sync date',
description: 'Last sync date',
icon: 'IconHistory',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
throttleFailureCount: createStandardFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'throttleFailureCount',
type: FieldMetadataType.NUMBER,
label: 'Throttle Failure Count',
@@ -344,20 +373,21 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
icon: 'IconX',
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
connectedAccount: createStandardRelationFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'connectedAccount',
label: 'Connected Account',
description: 'Connected Account',
icon: 'IconUserCircle',
isNullable: false,
createdAt,
targetObjectName: 'connectedAccount',
targetFieldName: 'calendarChannels',
settings: {
@@ -367,17 +397,19 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
calendarChannelEventAssociations: createStandardRelationFieldFlatMetadata({
objectName: 'calendarChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'calendarChannelEventAssociations',
label: 'Calendar Channel Event Associations',
description: 'Calendar Channel Event Associations',
icon: 'IconCalendar',
isNullable: false,
createdAt,
targetObjectName: 'calendarChannelEventAssociation',
targetFieldName: 'calendarChannel',
settings: {
@@ -385,5 +417,8 @@ export const buildCalendarChannelStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,26 +6,30 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildCalendarEventParticipantStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<
CreateStandardFieldArgs<'calendarEventParticipant'>,
'context'
>): Record<
AllStandardObjectFieldName<'calendarEventParticipant'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'calendarEventParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -35,14 +39,16 @@ export const buildCalendarEventParticipantStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'calendarEventParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +58,16 @@ export const buildCalendarEventParticipantStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'calendarEventParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -69,14 +77,16 @@ export const buildCalendarEventParticipantStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'calendarEventParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -85,42 +95,48 @@ export const buildCalendarEventParticipantStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
handle: createStandardFieldFlatMetadata({
objectName: 'calendarEventParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'handle',
type: FieldMetadataType.TEXT,
label: 'Handle',
description: 'Handle',
icon: 'IconMail',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
displayName: createStandardFieldFlatMetadata({
objectName: 'calendarEventParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'displayName',
type: FieldMetadataType.TEXT,
label: 'Display Name',
description: 'Display Name',
icon: 'IconUser',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
isOrganizer: createStandardFieldFlatMetadata({
objectName: 'calendarEventParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'isOrganizer',
type: FieldMetadataType.BOOLEAN,
label: 'Is Organizer',
@@ -128,14 +144,16 @@ export const buildCalendarEventParticipantStandardFlatFieldMetadatas = ({
icon: 'IconUser',
isNullable: false,
defaultValue: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
responseStatus: createStandardFieldFlatMetadata({
objectName: 'calendarEventParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'responseStatus',
type: FieldMetadataType.SELECT,
label: 'Response Status',
@@ -159,20 +177,21 @@ export const buildCalendarEventParticipantStandardFlatFieldMetadatas = ({
},
{ value: 'ACCEPTED', label: 'Accepted', position: 3, color: 'green' },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
calendarEvent: createStandardRelationFieldFlatMetadata({
objectName: 'calendarEventParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'calendarEvent',
label: 'Event ID',
description: 'Event ID',
icon: 'IconCalendar',
isNullable: false,
createdAt,
targetObjectName: 'calendarEvent',
targetFieldName: 'calendarEventParticipants',
settings: {
@@ -182,17 +201,19 @@ export const buildCalendarEventParticipantStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
person: createStandardRelationFieldFlatMetadata({
objectName: 'calendarEventParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'person',
label: 'Person',
description: 'Person',
icon: 'IconUser',
isNullable: true,
createdAt,
targetObjectName: 'person',
targetFieldName: 'calendarEventParticipants',
settings: {
@@ -202,17 +223,19 @@ export const buildCalendarEventParticipantStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workspaceMember: createStandardRelationFieldFlatMetadata({
objectName: 'calendarEventParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workspaceMember',
label: 'Workspace Member',
description: 'Workspace Member',
icon: 'IconUser',
isNullable: true,
createdAt,
targetObjectName: 'workspaceMember',
targetFieldName: 'calendarEventParticipants',
settings: {
@@ -222,5 +245,8 @@ export const buildCalendarEventParticipantStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -2,23 +2,27 @@ import { FieldMetadataType, RelationType } from 'twenty-shared/types';
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildCalendarEventStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'calendarEvent'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'calendarEvent'>, 'context'>): Record<
AllStandardObjectFieldName<'calendarEvent'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -28,14 +32,16 @@ export const buildCalendarEventStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -45,14 +51,16 @@ export const buildCalendarEventStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -62,14 +70,16 @@ export const buildCalendarEventStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -78,28 +88,32 @@ export const buildCalendarEventStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
title: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'title',
type: FieldMetadataType.TEXT,
label: 'Title',
description: 'Title',
icon: 'IconH1',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
isCanceled: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'isCanceled',
type: FieldMetadataType.BOOLEAN,
label: 'Is canceled',
@@ -107,14 +121,16 @@ export const buildCalendarEventStandardFlatFieldMetadatas = ({
icon: 'IconCalendarCancel',
isNullable: false,
defaultValue: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
isFullDay: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'isFullDay',
type: FieldMetadataType.BOOLEAN,
label: 'Is Full Day',
@@ -122,146 +138,165 @@ export const buildCalendarEventStandardFlatFieldMetadatas = ({
icon: 'IconHours24',
isNullable: false,
defaultValue: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
startsAt: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'startsAt',
type: FieldMetadataType.DATE_TIME,
label: 'Start Date',
description: 'Start Date',
icon: 'IconCalendarClock',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
endsAt: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'endsAt',
type: FieldMetadataType.DATE_TIME,
label: 'End Date',
description: 'End Date',
icon: 'IconCalendarClock',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
externalCreatedAt: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'externalCreatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation DateTime',
description: 'Creation DateTime',
icon: 'IconCalendarPlus',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
externalUpdatedAt: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'externalUpdatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Update DateTime',
description: 'Update DateTime',
icon: 'IconCalendarCog',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
description: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'description',
type: FieldMetadataType.TEXT,
label: 'Description',
description: 'Description',
icon: 'IconFileDescription',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
location: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'location',
type: FieldMetadataType.TEXT,
label: 'Location',
description: 'Location',
icon: 'IconMapPin',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
iCalUid: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'iCalUid',
type: FieldMetadataType.TEXT,
label: 'iCal UID',
description: 'iCal UID',
icon: 'IconKey',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
conferenceSolution: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'conferenceSolution',
type: FieldMetadataType.TEXT,
label: 'Conference Solution',
description: 'Conference Solution',
icon: 'IconScreenShare',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
conferenceLink: createStandardFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'conferenceLink',
type: FieldMetadataType.LINKS,
label: 'Meet Link',
description: 'Meet Link',
icon: 'IconLink',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
calendarChannelEventAssociations: createStandardRelationFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'calendarChannelEventAssociations',
label: 'Calendar Channel Event Associations',
description: 'Calendar Channel Event Associations',
icon: 'IconCalendar',
isNullable: false,
createdAt,
targetObjectName: 'calendarChannelEventAssociation',
targetFieldName: 'calendarEvent',
settings: {
@@ -269,17 +304,19 @@ export const buildCalendarEventStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
calendarEventParticipants: createStandardRelationFieldFlatMetadata({
objectName: 'calendarEvent',
objectName,
workspaceId,
options: {
context: {
fieldName: 'calendarEventParticipants',
label: 'Event Participants',
description: 'Event Participants',
icon: 'IconUserCircle',
isNullable: false,
createdAt,
targetObjectName: 'calendarEventParticipant',
targetFieldName: 'calendarEvent',
settings: {
@@ -287,5 +324,8 @@ export const buildCalendarEventStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,24 +6,28 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildCompanyStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'company'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'company'>, 'context'>): Record<
AllStandardObjectFieldName<'company'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -33,14 +37,16 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +58,16 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -71,14 +79,16 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -89,30 +99,34 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Company-specific fields
name: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'name',
type: FieldMetadataType.TEXT,
label: 'Name',
description: 'The company name',
icon: 'IconBuildingSkyscraper',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
domainName: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'domainName',
type: FieldMetadataType.LINKS,
label: 'Domain Name',
@@ -124,28 +138,32 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
settings: {
maxNumberOfValues: 1,
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
address: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'address',
type: FieldMetadataType.ADDRESS,
label: 'Address',
description: 'Address of the company',
icon: 'IconMap',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
addressOld: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'addressOld',
type: FieldMetadataType.TEXT,
label: 'Address (deprecated)',
@@ -153,56 +171,64 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
'Address of the company - deprecated in favor of new address field',
icon: 'IconMap',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
employees: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'employees',
type: FieldMetadataType.NUMBER,
label: 'Employees',
description: 'Number of employees in the company',
icon: 'IconUsers',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
linkedinLink: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'linkedinLink',
type: FieldMetadataType.LINKS,
label: 'Linkedin',
description: 'The company Linkedin account',
icon: 'IconBrandLinkedin',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
xLink: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'xLink',
type: FieldMetadataType.LINKS,
label: 'X',
description: 'The company Twitter/X account',
icon: 'IconBrandX',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
annualRecurringRevenue: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'annualRecurringRevenue',
type: FieldMetadataType.CURRENCY,
label: 'ARR',
@@ -210,14 +236,16 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
'Annual Recurring Revenue: The actual or estimated annual revenue of the company',
icon: 'IconMoneybag',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
idealCustomerProfile: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'idealCustomerProfile',
type: FieldMetadataType.BOOLEAN,
label: 'ICP',
@@ -226,14 +254,16 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
icon: 'IconTarget',
isNullable: false,
defaultValue: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
position: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'position',
type: FieldMetadataType.POSITION,
label: 'Position',
@@ -242,14 +272,16 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdBy: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdBy',
type: FieldMetadataType.ACTOR,
label: 'Created by',
@@ -257,14 +289,16 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
icon: 'IconCreativeCommonsSa',
isUIReadOnly: true,
isNullable: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
searchVector: createStandardFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'searchVector',
type: FieldMetadataType.TS_VECTOR,
label: 'Search vector',
@@ -272,22 +306,23 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
icon: 'IconUser',
isSystem: true,
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
people: createStandardRelationFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'people',
label: 'People',
description: 'People linked to the company.',
icon: 'IconUsers',
isNullable: true,
createdAt,
targetObjectName: 'person',
targetFieldName: 'company',
settings: {
@@ -295,18 +330,20 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
accountOwner: createStandardRelationFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'accountOwner',
label: 'Account Owner',
description:
'Your team member responsible for managing the company account',
icon: 'IconUserCircle',
isNullable: true,
createdAt,
targetObjectName: 'workspaceMember',
targetFieldName: 'accountOwnerForCompanies',
settings: {
@@ -316,18 +353,20 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
taskTargets: createStandardRelationFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'taskTargets',
label: 'Tasks',
description: 'Tasks tied to the company',
icon: 'IconCheckbox',
isUIReadOnly: true,
isNullable: true,
createdAt,
targetObjectName: 'taskTarget',
targetFieldName: 'company',
settings: {
@@ -335,18 +374,20 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
noteTargets: createStandardRelationFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'noteTargets',
label: 'Notes',
description: 'Notes tied to the company',
icon: 'IconNotes',
isUIReadOnly: true,
isNullable: true,
createdAt,
targetObjectName: 'noteTarget',
targetFieldName: 'company',
settings: {
@@ -354,17 +395,19 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
opportunities: createStandardRelationFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'opportunities',
label: 'Opportunities',
description: 'Opportunities linked to the company.',
icon: 'IconTargetArrow',
isNullable: true,
createdAt,
targetObjectName: 'opportunity',
targetFieldName: 'company',
settings: {
@@ -372,18 +415,20 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'favorites',
label: 'Favorites',
description: 'Favorites linked to the company',
icon: 'IconHeart',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'favorite',
targetFieldName: 'company',
settings: {
@@ -391,18 +436,20 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
attachments: createStandardRelationFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'attachments',
label: 'Attachments',
description: 'Attachments linked to the company',
icon: 'IconFileImport',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'attachment',
targetFieldName: 'company',
settings: {
@@ -410,18 +457,20 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timelineActivities: createStandardRelationFieldFlatMetadata({
objectName: 'company',
objectName,
workspaceId,
options: {
context: {
fieldName: 'timelineActivities',
label: 'Timeline Activities',
description: 'Timeline Activities linked to the company',
icon: 'IconIconTimelineEvent',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'timelineActivity',
targetFieldName: 'company',
settings: {
@@ -429,5 +478,8 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,26 +6,27 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildConnectedAccountStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'connectedAccount'>, 'context'>): Record<
AllStandardObjectFieldName<'connectedAccount'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -35,14 +36,16 @@ export const buildConnectedAccountStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +55,16 @@ export const buildConnectedAccountStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -69,14 +74,16 @@ export const buildConnectedAccountStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -85,28 +92,32 @@ export const buildConnectedAccountStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
handle: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'handle',
type: FieldMetadataType.TEXT,
label: 'handle',
description: 'The account handle (email, username, phone number, etc.)',
icon: 'IconMail',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
provider: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'provider',
type: FieldMetadataType.TEXT,
label: 'provider',
@@ -114,132 +125,149 @@ export const buildConnectedAccountStandardFlatFieldMetadatas = ({
icon: 'IconSettings',
isNullable: false,
defaultValue: "'google'",
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
accessToken: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'accessToken',
type: FieldMetadataType.TEXT,
label: 'Access Token',
description: 'Messaging provider access token',
icon: 'IconKey',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
refreshToken: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'refreshToken',
type: FieldMetadataType.TEXT,
label: 'Refresh Token',
description: 'Messaging provider refresh token',
icon: 'IconKey',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
lastSyncHistoryId: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'lastSyncHistoryId',
type: FieldMetadataType.TEXT,
label: 'Last sync history ID',
description: 'Last sync history ID',
icon: 'IconHistory',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
authFailedAt: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'authFailedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Auth failed at',
description: 'Auth failed at',
icon: 'IconX',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
lastCredentialsRefreshedAt: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'lastCredentialsRefreshedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last credentials refreshed at',
description: 'Last credentials refreshed at',
icon: 'IconHistory',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
handleAliases: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'handleAliases',
type: FieldMetadataType.TEXT,
label: 'Handle Aliases',
description: 'Handle Aliases',
icon: 'IconMail',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
scopes: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'scopes',
type: FieldMetadataType.ARRAY,
label: 'Scopes',
description: 'Scopes',
icon: 'IconSettings',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
connectionParameters: createStandardFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'connectionParameters',
type: FieldMetadataType.RAW_JSON,
label: 'Custom Connection Parameters',
description: 'JSON object containing custom connection parameters',
icon: 'IconSettings',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
accountOwner: createStandardRelationFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'accountOwner',
label: 'Account Owner',
description: 'Account Owner',
icon: 'IconUserCircle',
isNullable: false,
createdAt,
targetObjectName: 'workspaceMember',
targetFieldName: 'connectedAccounts',
settings: {
@@ -249,17 +277,19 @@ export const buildConnectedAccountStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageChannels: createStandardRelationFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageChannels',
label: 'Message Channels',
description: 'Message Channels',
icon: 'IconMessage',
isNullable: false,
createdAt,
targetObjectName: 'messageChannel',
targetFieldName: 'connectedAccount',
settings: {
@@ -267,17 +297,19 @@ export const buildConnectedAccountStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
calendarChannels: createStandardRelationFieldFlatMetadata({
objectName: 'connectedAccount',
objectName,
workspaceId,
options: {
context: {
fieldName: 'calendarChannels',
label: 'Calendar Channels',
description: 'Calendar Channels',
icon: 'IconCalendar',
isNullable: false,
createdAt,
targetObjectName: 'calendarChannel',
targetFieldName: 'connectedAccount',
settings: {
@@ -285,5 +317,8 @@ export const buildConnectedAccountStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -2,24 +2,28 @@ import { FieldMetadataType, RelationType } from 'twenty-shared/types';
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildDashboardStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'dashboard'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'dashboard'>, 'context'>): Record<
AllStandardObjectFieldName<'dashboard'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName: 'dashboard',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -29,14 +33,16 @@ export const buildDashboardStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'dashboard',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -46,14 +52,16 @@ export const buildDashboardStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'dashboard',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -63,14 +71,16 @@ export const buildDashboardStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'dashboard',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -79,30 +89,34 @@ export const buildDashboardStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Dashboard-specific fields
title: createStandardFieldFlatMetadata({
objectName: 'dashboard',
objectName,
workspaceId,
options: {
context: {
fieldName: 'title',
type: FieldMetadataType.TEXT,
label: 'Title',
description: 'Dashboard title',
icon: 'IconNotes',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
position: createStandardFieldFlatMetadata({
objectName: 'dashboard',
objectName,
workspaceId,
options: {
context: {
fieldName: 'position',
type: FieldMetadataType.POSITION,
label: 'Position',
@@ -111,14 +125,16 @@ export const buildDashboardStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
pageLayoutId: createStandardFieldFlatMetadata({
objectName: 'dashboard',
objectName,
workspaceId,
options: {
context: {
fieldName: 'pageLayoutId',
type: FieldMetadataType.UUID,
label: 'Page Layout ID',
@@ -126,14 +142,16 @@ export const buildDashboardStandardFlatFieldMetadatas = ({
icon: 'IconLayout',
isNullable: true,
isUIReadOnly: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdBy: createStandardFieldFlatMetadata({
objectName: 'dashboard',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdBy',
type: FieldMetadataType.ACTOR,
label: 'Created by',
@@ -141,14 +159,16 @@ export const buildDashboardStandardFlatFieldMetadatas = ({
icon: 'IconCreativeCommonsSa',
isUIReadOnly: true,
isNullable: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
searchVector: createStandardFieldFlatMetadata({
objectName: 'dashboard',
objectName,
workspaceId,
options: {
context: {
fieldName: 'searchVector',
type: FieldMetadataType.TS_VECTOR,
label: 'Search vector',
@@ -156,23 +176,24 @@ export const buildDashboardStandardFlatFieldMetadatas = ({
icon: 'IconUser',
isSystem: true,
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
timelineActivities: createStandardRelationFieldFlatMetadata({
objectName: 'dashboard',
objectName,
workspaceId,
options: {
context: {
fieldName: 'timelineActivities',
label: 'Timeline Activities',
description: 'Timeline activities linked to the dashboard',
icon: 'IconTimelineEvent',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'timelineActivity',
targetFieldName: 'dashboard',
settings: {
@@ -180,18 +201,20 @@ export const buildDashboardStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName: 'dashboard',
objectName,
workspaceId,
options: {
context: {
fieldName: 'favorites',
label: 'Favorites',
description: 'Favorites linked to the dashboard',
icon: 'IconHeart',
isSystem: true,
isNullable: false,
createdAt,
targetObjectName: 'favorite',
targetFieldName: 'dashboard',
settings: {
@@ -199,18 +222,20 @@ export const buildDashboardStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
attachments: createStandardRelationFieldFlatMetadata({
objectName: 'dashboard',
objectName,
workspaceId,
options: {
context: {
fieldName: 'attachments',
label: 'Attachments',
description: 'Attachments linked to the dashboard',
icon: 'IconFileImport',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'attachment',
targetFieldName: 'dashboard',
settings: {
@@ -218,5 +243,8 @@ export const buildDashboardStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -2,27 +2,28 @@ import { FieldMetadataType, RelationType } from 'twenty-shared/types';
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildFavoriteFolderStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'favoriteFolder'>, 'context'>): Record<
AllStandardObjectFieldName<'favoriteFolder'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName: 'favoriteFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -32,14 +33,16 @@ export const buildFavoriteFolderStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'favoriteFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -49,14 +52,16 @@ export const buildFavoriteFolderStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'favoriteFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -66,14 +71,16 @@ export const buildFavoriteFolderStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'favoriteFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -82,16 +89,18 @@ export const buildFavoriteFolderStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// FavoriteFolder-specific fields
position: createStandardFieldFlatMetadata({
objectName: 'favoriteFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'position',
type: FieldMetadataType.NUMBER,
label: 'Position',
@@ -100,36 +109,39 @@ export const buildFavoriteFolderStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
name: createStandardFieldFlatMetadata({
objectName: 'favoriteFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'name',
type: FieldMetadataType.TEXT,
label: 'Name',
description: 'Name of the favorite folder',
icon: 'IconText',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
favorites: createStandardRelationFieldFlatMetadata({
objectName: 'favoriteFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'favorites',
label: 'Favorites',
description: 'Favorites in this folder',
icon: 'IconHeart',
isNullable: false,
createdAt,
targetObjectName: 'favorite',
targetFieldName: 'favoriteFolder',
settings: {
@@ -137,5 +149,8 @@ export const buildFavoriteFolderStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,24 +6,28 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildFavoriteStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'favorite'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'favorite'>, 'context'>): Record<
AllStandardObjectFieldName<'favorite'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -33,14 +37,16 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -50,14 +56,16 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -67,14 +75,16 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -83,16 +93,18 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Favorite-specific fields
position: createStandardFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'position',
type: FieldMetadataType.NUMBER,
label: 'Position',
@@ -101,36 +113,39 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
view: createStandardFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'view',
type: FieldMetadataType.UUID,
label: 'ViewId',
description: 'ViewId',
icon: 'IconView',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
forWorkspaceMember: createStandardRelationFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'forWorkspaceMember',
label: 'Workspace Member',
description: 'Favorite workspace member',
icon: 'IconCircleUser',
isNullable: true,
createdAt,
targetObjectName: 'workspaceMember',
targetFieldName: 'favorites',
settings: {
@@ -140,17 +155,19 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
person: createStandardRelationFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'person',
label: 'Person',
description: 'Favorite person',
icon: 'IconUser',
isNullable: true,
createdAt,
targetObjectName: 'person',
targetFieldName: 'favorites',
settings: {
@@ -160,17 +177,19 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
company: createStandardRelationFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'company',
label: 'Company',
description: 'Favorite company',
icon: 'IconBuildingSkyscraper',
isNullable: true,
createdAt,
targetObjectName: 'company',
targetFieldName: 'favorites',
settings: {
@@ -180,17 +199,19 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
opportunity: createStandardRelationFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'opportunity',
label: 'Opportunity',
description: 'Favorite opportunity',
icon: 'IconTargetArrow',
isNullable: true,
createdAt,
targetObjectName: 'opportunity',
targetFieldName: 'favorites',
settings: {
@@ -200,17 +221,19 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflow: createStandardRelationFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workflow',
label: 'Workflow',
description: 'Favorite workflow',
icon: 'IconSettingsAutomation',
isNullable: true,
createdAt,
targetObjectName: 'workflow',
targetFieldName: 'favorites',
settings: {
@@ -220,17 +243,19 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflowVersion: createStandardRelationFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workflowVersion',
label: 'Workflow',
description: 'Favorite workflow version',
icon: 'IconSettingsAutomation',
isNullable: true,
createdAt,
targetObjectName: 'workflowVersion',
targetFieldName: 'favorites',
settings: {
@@ -240,17 +265,19 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflowRun: createStandardRelationFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workflowRun',
label: 'Workflow',
description: 'Favorite workflow run',
icon: 'IconSettingsAutomation',
isNullable: true,
createdAt,
targetObjectName: 'workflowRun',
targetFieldName: 'favorites',
settings: {
@@ -260,17 +287,19 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
task: createStandardRelationFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'task',
label: 'Task',
description: 'Favorite task',
icon: 'IconCheckbox',
isNullable: true,
createdAt,
targetObjectName: 'task',
targetFieldName: 'favorites',
settings: {
@@ -280,17 +309,19 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
note: createStandardRelationFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'note',
label: 'Note',
description: 'Favorite note',
icon: 'IconNotes',
isNullable: true,
createdAt,
targetObjectName: 'note',
targetFieldName: 'favorites',
settings: {
@@ -300,17 +331,19 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
dashboard: createStandardRelationFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'dashboard',
label: 'Dashboard',
description: 'Favorite dashboard',
icon: 'IconLayoutDashboard',
isNullable: true,
createdAt,
targetObjectName: 'dashboard',
targetFieldName: 'favorites',
settings: {
@@ -320,17 +353,19 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
favoriteFolder: createStandardRelationFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'favoriteFolder',
label: 'Favorite Folder',
description: 'The folder this favorite belongs to',
icon: 'IconFolder',
isNullable: true,
createdAt,
targetObjectName: 'favoriteFolder',
targetFieldName: 'favorites',
settings: {
@@ -340,17 +375,19 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
custom: createStandardRelationFieldFlatMetadata({
objectName: 'favorite',
objectName,
workspaceId,
options: {
context: {
fieldName: 'custom',
label: 'Custom',
description: 'Favorite custom object',
icon: 'IconHeart',
isNullable: true,
createdAt,
targetObjectName: 'note',
targetFieldName: 'favorites',
settings: {
@@ -360,5 +397,8 @@ export const buildFavoriteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,28 +6,32 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
import { MessageDirection } from 'src/modules/messaging/common/enums/message-direction.enum';
export const buildMessageChannelMessageAssociationStandardFlatFieldMetadatas =
({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<
CreateStandardFieldArgs<'messageChannelMessageAssociation'>,
'context'
>): Record<
AllStandardObjectFieldName<'messageChannelMessageAssociation'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'messageChannelMessageAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -37,14 +41,16 @@ export const buildMessageChannelMessageAssociationStandardFlatFieldMetadatas =
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'messageChannelMessageAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -54,14 +60,16 @@ export const buildMessageChannelMessageAssociationStandardFlatFieldMetadatas =
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'messageChannelMessageAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -71,14 +79,16 @@ export const buildMessageChannelMessageAssociationStandardFlatFieldMetadatas =
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'messageChannelMessageAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -87,42 +97,48 @@ export const buildMessageChannelMessageAssociationStandardFlatFieldMetadatas =
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageExternalId: createStandardFieldFlatMetadata({
objectName: 'messageChannelMessageAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageExternalId',
type: FieldMetadataType.TEXT,
label: 'Message External Id',
description: 'Message id from the messaging provider',
icon: 'IconHash',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageThreadExternalId: createStandardFieldFlatMetadata({
objectName: 'messageChannelMessageAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageThreadExternalId',
type: FieldMetadataType.TEXT,
label: 'Thread External Id',
description: 'Thread id from the messaging provider',
icon: 'IconHash',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
direction: createStandardFieldFlatMetadata({
objectName: 'messageChannelMessageAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'direction',
type: FieldMetadataType.SELECT,
label: 'Direction',
@@ -144,20 +160,21 @@ export const buildMessageChannelMessageAssociationStandardFlatFieldMetadatas =
color: 'blue',
},
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageChannel: createStandardRelationFieldFlatMetadata({
objectName: 'messageChannelMessageAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageChannel',
label: 'Message Channel Id',
description: 'Message Channel Id',
icon: 'IconHash',
isNullable: true,
createdAt,
targetObjectName: 'messageChannel',
targetFieldName: 'messageChannelMessageAssociations',
settings: {
@@ -167,17 +184,19 @@ export const buildMessageChannelMessageAssociationStandardFlatFieldMetadatas =
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageThread: createStandardRelationFieldFlatMetadata({
objectName: 'messageChannelMessageAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageThread',
label: 'Message Thread Id',
description: 'Message Thread Id',
icon: 'IconHash',
isNullable: true,
createdAt,
targetObjectName: 'messageThread',
targetFieldName: 'messageChannelMessageAssociations',
settings: {
@@ -187,17 +206,19 @@ export const buildMessageChannelMessageAssociationStandardFlatFieldMetadatas =
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
message: createStandardRelationFieldFlatMetadata({
objectName: 'messageChannelMessageAssociation',
objectName,
workspaceId,
options: {
context: {
fieldName: 'message',
label: 'Message Id',
description: 'Message Id',
icon: 'IconHash',
isNullable: true,
createdAt,
targetObjectName: 'message',
targetFieldName: 'messageChannelMessageAssociations',
settings: {
@@ -207,5 +228,8 @@ export const buildMessageChannelMessageAssociationStandardFlatFieldMetadatas =
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,27 +6,28 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
import { MessageChannelType } from 'src/modules/messaging/common/standard-objects/message-channel.workspace-entity';
export const buildMessageChannelStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'messageChannel'>, 'context'>): Record<
AllStandardObjectFieldName<'messageChannel'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -36,14 +37,16 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -53,14 +56,16 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -70,14 +75,16 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -86,14 +93,16 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
visibility: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'visibility',
type: FieldMetadataType.SELECT,
label: 'Visibility',
@@ -111,28 +120,32 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
color: 'orange',
},
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
handle: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'handle',
type: FieldMetadataType.TEXT,
label: 'Handle',
description: 'Handle',
icon: 'IconAt',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
type: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'type',
type: FieldMetadataType.SELECT,
label: 'Type',
@@ -154,14 +167,16 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
color: 'blue',
},
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
isContactAutoCreationEnabled: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'isContactAutoCreationEnabled',
type: FieldMetadataType.BOOLEAN,
label: 'Is Contact Auto Creation Enabled',
@@ -169,14 +184,16 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
icon: 'IconUserCircle',
isNullable: false,
defaultValue: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
contactAutoCreationPolicy: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'contactAutoCreationPolicy',
type: FieldMetadataType.SELECT,
label: 'Contact auto creation policy',
@@ -195,14 +212,16 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
{ value: 'SENT', label: 'Sent', position: 1, color: 'blue' },
{ value: 'NONE', label: 'None', position: 2, color: 'red' },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageFolderImportPolicy: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageFolderImportPolicy',
type: FieldMetadataType.SELECT,
label: 'Message folder import policy',
@@ -224,14 +243,16 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
color: 'blue',
},
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
excludeNonProfessionalEmails: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'excludeNonProfessionalEmails',
type: FieldMetadataType.BOOLEAN,
label: 'Exclude non professional emails',
@@ -239,14 +260,16 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
icon: 'IconBriefcase',
isNullable: false,
defaultValue: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
excludeGroupEmails: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'excludeGroupEmails',
type: FieldMetadataType.BOOLEAN,
label: 'Exclude group emails',
@@ -254,14 +277,16 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
icon: 'IconUsersGroup',
isNullable: false,
defaultValue: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
pendingGroupEmailsAction: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'pendingGroupEmailsAction',
type: FieldMetadataType.SELECT,
label: 'Pending group emails action',
@@ -284,14 +309,16 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
},
{ value: 'NONE', label: 'None', position: 2, color: 'blue' },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
isSyncEnabled: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'isSyncEnabled',
type: FieldMetadataType.BOOLEAN,
label: 'Is Sync Enabled',
@@ -299,42 +326,48 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
icon: 'IconRefresh',
isNullable: false,
defaultValue: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
syncCursor: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'syncCursor',
type: FieldMetadataType.TEXT,
label: 'Last sync cursor',
description: 'Last sync cursor',
icon: 'IconHistory',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
syncedAt: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'syncedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last sync date',
description: 'Last sync date',
icon: 'IconHistory',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
syncStatus: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'syncStatus',
type: FieldMetadataType.SELECT,
label: 'Sync status',
@@ -363,14 +396,16 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
color: 'red',
},
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
syncStage: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'syncStage',
type: FieldMetadataType.SELECT,
label: 'Sync stage',
@@ -423,28 +458,32 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
color: 'gray',
},
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
syncStageStartedAt: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'syncStageStartedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Sync stage started at',
description: 'Sync stage started at',
icon: 'IconHistory',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
throttleFailureCount: createStandardFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'throttleFailureCount',
type: FieldMetadataType.NUMBER,
label: 'Throttle Failure Count',
@@ -452,20 +491,21 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
icon: 'IconX',
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
connectedAccount: createStandardRelationFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'connectedAccount',
label: 'Connected Account',
description: 'Connected Account',
icon: 'IconUserCircle',
isNullable: false,
createdAt,
targetObjectName: 'connectedAccount',
targetFieldName: 'messageChannels',
settings: {
@@ -475,17 +515,19 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageChannelMessageAssociations: createStandardRelationFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageChannelMessageAssociations',
label: 'Message Channel Association',
description: 'Messages from the channel.',
icon: 'IconMessage',
isNullable: true,
createdAt,
targetObjectName: 'messageChannelMessageAssociation',
targetFieldName: 'messageChannel',
settings: {
@@ -493,17 +535,19 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageFolders: createStandardRelationFieldFlatMetadata({
objectName: 'messageChannel',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageFolders',
label: 'Message Folders',
description: 'Message Folders',
icon: 'IconFolder',
isNullable: true,
createdAt,
targetObjectName: 'messageFolder',
targetFieldName: 'messageChannel',
settings: {
@@ -511,5 +555,8 @@ export const buildMessageChannelStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,23 +6,27 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildMessageFolderStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'messageFolder'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'messageFolder'>, 'context'>): Record<
AllStandardObjectFieldName<'messageFolder'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'messageFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -32,14 +36,16 @@ export const buildMessageFolderStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'messageFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -49,14 +55,16 @@ export const buildMessageFolderStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'messageFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -66,14 +74,16 @@ export const buildMessageFolderStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'messageFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -82,42 +92,48 @@ export const buildMessageFolderStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
name: createStandardFieldFlatMetadata({
objectName: 'messageFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'name',
type: FieldMetadataType.TEXT,
label: 'Name',
description: 'Folder name',
icon: 'IconFolder',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
syncCursor: createStandardFieldFlatMetadata({
objectName: 'messageFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'syncCursor',
type: FieldMetadataType.TEXT,
label: 'Sync Cursor',
description: 'Sync Cursor',
icon: 'IconHash',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
isSentFolder: createStandardFieldFlatMetadata({
objectName: 'messageFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'isSentFolder',
type: FieldMetadataType.BOOLEAN,
label: 'Is Sent Folder',
@@ -125,14 +141,16 @@ export const buildMessageFolderStandardFlatFieldMetadatas = ({
icon: 'IconCheck',
isNullable: false,
defaultValue: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
isSynced: createStandardFieldFlatMetadata({
objectName: 'messageFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'isSynced',
type: FieldMetadataType.BOOLEAN,
label: 'Is Synced',
@@ -140,42 +158,48 @@ export const buildMessageFolderStandardFlatFieldMetadatas = ({
icon: 'IconCheck',
isNullable: false,
defaultValue: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
parentFolderId: createStandardFieldFlatMetadata({
objectName: 'messageFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'parentFolderId',
type: FieldMetadataType.TEXT,
label: 'Parent Folder ID',
description: 'Parent Folder ID',
icon: 'IconFolder',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
externalId: createStandardFieldFlatMetadata({
objectName: 'messageFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'externalId',
type: FieldMetadataType.TEXT,
label: 'External ID',
description: 'External ID',
icon: 'IconHash',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
pendingSyncAction: createStandardFieldFlatMetadata({
objectName: 'messageFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'pendingSyncAction',
type: FieldMetadataType.SELECT,
label: 'Pending Sync Action',
@@ -192,20 +216,21 @@ export const buildMessageFolderStandardFlatFieldMetadatas = ({
},
{ value: 'NONE', label: 'None', position: 1, color: 'blue' },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageChannel: createStandardRelationFieldFlatMetadata({
objectName: 'messageFolder',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageChannel',
label: 'Message Channel',
description: 'Message Channel',
icon: 'IconMessage',
isNullable: false,
createdAt,
targetObjectName: 'messageChannel',
targetFieldName: 'messageFolders',
settings: {
@@ -215,5 +240,8 @@ export const buildMessageFolderStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -7,26 +7,27 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildMessageParticipantStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'messageParticipant'>, 'context'>): Record<
AllStandardObjectFieldName<'messageParticipant'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'messageParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -36,14 +37,16 @@ export const buildMessageParticipantStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'messageParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -53,14 +56,16 @@ export const buildMessageParticipantStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'messageParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -70,14 +75,16 @@ export const buildMessageParticipantStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'messageParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -86,14 +93,16 @@ export const buildMessageParticipantStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
role: createStandardFieldFlatMetadata({
objectName: 'messageParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'role',
type: FieldMetadataType.SELECT,
label: 'Role',
@@ -127,48 +136,53 @@ export const buildMessageParticipantStandardFlatFieldMetadatas = ({
color: 'red',
},
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
handle: createStandardFieldFlatMetadata({
objectName: 'messageParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'handle',
type: FieldMetadataType.TEXT,
label: 'Handle',
description: 'Handle',
icon: 'IconAt',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
displayName: createStandardFieldFlatMetadata({
objectName: 'messageParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'displayName',
type: FieldMetadataType.TEXT,
label: 'Display Name',
description: 'Display Name',
icon: 'IconUser',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
message: createStandardRelationFieldFlatMetadata({
objectName: 'messageParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'message',
label: 'Message',
description: 'Message',
icon: 'IconMessage',
isNullable: false,
createdAt,
targetObjectName: 'message',
targetFieldName: 'messageParticipants',
settings: {
@@ -178,17 +192,19 @@ export const buildMessageParticipantStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
person: createStandardRelationFieldFlatMetadata({
objectName: 'messageParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'person',
label: 'Person',
description: 'Person',
icon: 'IconUser',
isNullable: true,
createdAt,
targetObjectName: 'person',
targetFieldName: 'messageParticipants',
settings: {
@@ -198,17 +214,19 @@ export const buildMessageParticipantStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workspaceMember: createStandardRelationFieldFlatMetadata({
objectName: 'messageParticipant',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workspaceMember',
label: 'Workspace Member',
description: 'Workspace member',
icon: 'IconCircleUser',
isNullable: true,
createdAt,
targetObjectName: 'workspaceMember',
targetFieldName: 'messageParticipants',
settings: {
@@ -218,5 +236,8 @@ export const buildMessageParticipantStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,23 +6,27 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildMessageStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'message'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'message'>, 'context'>): Record<
AllStandardObjectFieldName<'message'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'message',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -32,14 +36,16 @@ export const buildMessageStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'message',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -49,14 +55,16 @@ export const buildMessageStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'message',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -66,14 +74,16 @@ export const buildMessageStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'message',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -82,28 +92,32 @@ export const buildMessageStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
headerMessageId: createStandardFieldFlatMetadata({
objectName: 'message',
objectName,
workspaceId,
options: {
context: {
fieldName: 'headerMessageId',
type: FieldMetadataType.TEXT,
label: 'Header message Id',
description: 'Message id from the message header',
icon: 'IconHash',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
direction: createStandardFieldFlatMetadata({
objectName: 'message',
objectName,
workspaceId,
options: {
context: {
fieldName: 'direction',
type: FieldMetadataType.SELECT,
label: 'Direction',
@@ -115,62 +129,69 @@ export const buildMessageStandardFlatFieldMetadatas = ({
{ value: 'INCOMING', label: 'Incoming', position: 0, color: 'green' },
{ value: 'OUTGOING', label: 'Outgoing', position: 1, color: 'blue' },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
subject: createStandardFieldFlatMetadata({
objectName: 'message',
objectName,
workspaceId,
options: {
context: {
fieldName: 'subject',
type: FieldMetadataType.TEXT,
label: 'Subject',
description: 'Subject',
icon: 'IconMessage',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
text: createStandardFieldFlatMetadata({
objectName: 'message',
objectName,
workspaceId,
options: {
context: {
fieldName: 'text',
type: FieldMetadataType.TEXT,
label: 'Text',
description: 'Text',
icon: 'IconMessage',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
receivedAt: createStandardFieldFlatMetadata({
objectName: 'message',
objectName,
workspaceId,
options: {
context: {
fieldName: 'receivedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Received At',
description: 'The date the message was received',
icon: 'IconCalendar',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageThread: createStandardRelationFieldFlatMetadata({
objectName: 'message',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageThread',
label: 'Message Thread Id',
description: 'Message Thread Id',
icon: 'IconHash',
isNullable: true,
createdAt,
targetObjectName: 'messageThread',
targetFieldName: 'messages',
settings: {
@@ -180,17 +201,19 @@ export const buildMessageStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageParticipants: createStandardRelationFieldFlatMetadata({
objectName: 'message',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageParticipants',
label: 'Message Participants',
description: 'Message Participants',
icon: 'IconUserCircle',
isNullable: true,
createdAt,
targetObjectName: 'messageParticipant',
targetFieldName: 'message',
settings: {
@@ -198,17 +221,19 @@ export const buildMessageStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageChannelMessageAssociations: createStandardRelationFieldFlatMetadata({
objectName: 'message',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageChannelMessageAssociations',
label: 'Message Channel Association',
description: 'Messages from the channel.',
icon: 'IconMessage',
isNullable: true,
createdAt,
targetObjectName: 'messageChannelMessageAssociation',
targetFieldName: 'message',
settings: {
@@ -216,5 +241,8 @@ export const buildMessageStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -2,23 +2,27 @@ import { FieldMetadataType, RelationType } from 'twenty-shared/types';
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildMessageThreadStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'messageThread'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'messageThread'>, 'context'>): Record<
AllStandardObjectFieldName<'messageThread'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'messageThread',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -28,14 +32,16 @@ export const buildMessageThreadStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'messageThread',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -45,14 +51,16 @@ export const buildMessageThreadStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'messageThread',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -62,14 +70,16 @@ export const buildMessageThreadStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'messageThread',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -78,20 +88,21 @@ export const buildMessageThreadStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messages: createStandardRelationFieldFlatMetadata({
objectName: 'messageThread',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messages',
label: 'Messages',
description: 'Messages from the thread.',
icon: 'IconMessage',
isNullable: true,
createdAt,
targetObjectName: 'message',
targetFieldName: 'messageThread',
settings: {
@@ -99,17 +110,19 @@ export const buildMessageThreadStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageChannelMessageAssociations: createStandardRelationFieldFlatMetadata({
objectName: 'messageThread',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageChannelMessageAssociations',
label: 'Message Channel Association',
description: 'Messages from the channel.',
icon: 'IconMessage',
isNullable: true,
createdAt,
targetObjectName: 'messageChannelMessageAssociation',
targetFieldName: 'messageThread',
settings: {
@@ -117,5 +130,8 @@ export const buildMessageThreadStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -2,24 +2,28 @@ import { FieldMetadataType, RelationType } from 'twenty-shared/types';
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildNoteStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'note'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'note'>, 'context'>): Record<
AllStandardObjectFieldName<'note'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -29,14 +33,16 @@ export const buildNoteStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -48,14 +54,16 @@ export const buildNoteStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -67,14 +75,16 @@ export const buildNoteStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -85,16 +95,18 @@ export const buildNoteStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Note-specific fields
position: createStandardFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'position',
type: FieldMetadataType.POSITION,
label: 'Position',
@@ -103,56 +115,64 @@ export const buildNoteStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
title: createStandardFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'title',
type: FieldMetadataType.TEXT,
label: 'Title',
description: 'Note title',
icon: 'IconNotes',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
body: createStandardFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'body',
type: FieldMetadataType.TEXT,
label: 'Body (deprecated)',
description: 'Note body (deprecated - use bodyV2)',
icon: 'IconFilePencil',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
bodyV2: createStandardFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'bodyV2',
type: FieldMetadataType.RICH_TEXT_V2,
label: 'Body',
description: 'Note body',
icon: 'IconFilePencil',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdBy: createStandardFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdBy',
type: FieldMetadataType.ACTOR,
label: 'Created by',
@@ -160,14 +180,16 @@ export const buildNoteStandardFlatFieldMetadatas = ({
icon: 'IconCreativeCommonsSa',
isUIReadOnly: true,
isNullable: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
searchVector: createStandardFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'searchVector',
type: FieldMetadataType.TS_VECTOR,
label: 'Search vector',
@@ -175,23 +197,24 @@ export const buildNoteStandardFlatFieldMetadatas = ({
icon: 'IconUser',
isSystem: true,
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
noteTargets: createStandardRelationFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'noteTargets',
label: 'Relations',
description: 'Note targets',
icon: 'IconArrowUpRight',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'noteTarget',
targetFieldName: 'note',
settings: {
@@ -199,18 +222,20 @@ export const buildNoteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
attachments: createStandardRelationFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'attachments',
label: 'Attachments',
description: 'Note attachments',
icon: 'IconFileImport',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'attachment',
targetFieldName: 'note',
settings: {
@@ -218,18 +243,20 @@ export const buildNoteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timelineActivities: createStandardRelationFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'timelineActivities',
label: 'Timeline Activities',
description: 'Timeline Activities linked to the note.',
icon: 'IconTimelineEvent',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'timelineActivity',
targetFieldName: 'note',
settings: {
@@ -237,18 +264,20 @@ export const buildNoteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName: 'note',
objectName,
workspaceId,
options: {
context: {
fieldName: 'favorites',
label: 'Favorites',
description: 'Favorites linked to the note',
icon: 'IconHeart',
isSystem: true,
isNullable: false,
createdAt,
targetObjectName: 'favorite',
targetFieldName: 'note',
settings: {
@@ -256,5 +285,8 @@ export const buildNoteStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,24 +6,28 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildNoteTargetStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'noteTarget'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'noteTarget'>, 'context'>): Record<
AllStandardObjectFieldName<'noteTarget'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName: 'noteTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -33,14 +37,16 @@ export const buildNoteTargetStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'noteTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +58,16 @@ export const buildNoteTargetStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'noteTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -71,14 +79,16 @@ export const buildNoteTargetStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'noteTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -89,22 +99,23 @@ export const buildNoteTargetStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
note: createStandardRelationFieldFlatMetadata({
objectName: 'noteTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'note',
label: 'Note',
description: 'NoteTarget note',
icon: 'IconNotes',
isNullable: true,
createdAt,
targetObjectName: 'note',
targetFieldName: 'noteTargets',
settings: {
@@ -114,17 +125,19 @@ export const buildNoteTargetStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
person: createStandardRelationFieldFlatMetadata({
objectName: 'noteTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'person',
label: 'Person',
description: 'NoteTarget person',
icon: 'IconUser',
isNullable: true,
createdAt,
targetObjectName: 'person',
targetFieldName: 'noteTargets',
settings: {
@@ -134,17 +147,19 @@ export const buildNoteTargetStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
company: createStandardRelationFieldFlatMetadata({
objectName: 'noteTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'company',
label: 'Company',
description: 'NoteTarget company',
icon: 'IconBuildingSkyscraper',
isNullable: true,
createdAt,
targetObjectName: 'company',
targetFieldName: 'noteTargets',
settings: {
@@ -154,17 +169,19 @@ export const buildNoteTargetStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
opportunity: createStandardRelationFieldFlatMetadata({
objectName: 'noteTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'opportunity',
label: 'Opportunity',
description: 'NoteTarget opportunity',
icon: 'IconTargetArrow',
isNullable: true,
createdAt,
targetObjectName: 'opportunity',
targetFieldName: 'noteTargets',
settings: {
@@ -174,17 +191,19 @@ export const buildNoteTargetStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
custom: createStandardRelationFieldFlatMetadata({
objectName: 'noteTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'custom',
label: 'Custom',
description: 'NoteTarget custom object',
icon: 'IconBuildingSkyscraper',
isNullable: true,
createdAt,
// Custom is a dynamic relation
targetObjectName: 'note',
targetFieldName: 'noteTargets',
@@ -195,5 +214,8 @@ export const buildNoteTargetStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,24 +6,28 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildOpportunityStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'opportunity'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'opportunity'>, 'context'>): Record<
AllStandardObjectFieldName<'opportunity'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -33,14 +37,16 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +58,16 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -71,14 +79,16 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -89,58 +99,66 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Opportunity-specific fields
name: createStandardFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'name',
type: FieldMetadataType.TEXT,
label: 'Name',
description: 'The opportunity name',
icon: 'IconTargetArrow',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
amount: createStandardFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'amount',
type: FieldMetadataType.CURRENCY,
label: 'Amount',
description: 'Opportunity amount',
icon: 'IconCurrencyDollar',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
closeDate: createStandardFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'closeDate',
type: FieldMetadataType.DATE_TIME,
label: 'Close date',
description: 'Opportunity close date',
icon: 'IconCalendarEvent',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
stage: createStandardFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'stage',
type: FieldMetadataType.SELECT,
label: 'Stage',
@@ -165,14 +183,16 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
},
{ value: 'CUSTOMER', label: 'Customer', position: 4, color: 'yellow' },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
position: createStandardFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'position',
type: FieldMetadataType.POSITION,
label: 'Position',
@@ -181,14 +201,16 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdBy: createStandardFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdBy',
type: FieldMetadataType.ACTOR,
label: 'Created by',
@@ -196,14 +218,16 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
icon: 'IconCreativeCommonsSa',
isUIReadOnly: true,
isNullable: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
searchVector: createStandardFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'searchVector',
type: FieldMetadataType.TS_VECTOR,
label: 'Search vector',
@@ -211,22 +235,23 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
icon: 'IconUser',
isSystem: true,
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
pointOfContact: createStandardRelationFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'pointOfContact',
label: 'Point of Contact',
description: 'Opportunity point of contact',
icon: 'IconUser',
isNullable: true,
createdAt,
targetObjectName: 'person',
targetFieldName: 'pointOfContactForOpportunities',
settings: {
@@ -236,17 +261,19 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
company: createStandardRelationFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'company',
label: 'Company',
description: 'Opportunity company',
icon: 'IconBuildingSkyscraper',
isNullable: true,
createdAt,
targetObjectName: 'company',
targetFieldName: 'opportunities',
settings: {
@@ -256,18 +283,20 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'favorites',
label: 'Favorites',
description: 'Favorites linked to the opportunity',
icon: 'IconHeart',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'favorite',
targetFieldName: 'opportunity',
settings: {
@@ -275,18 +304,20 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
taskTargets: createStandardRelationFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'taskTargets',
label: 'Tasks',
description: 'Tasks tied to the opportunity',
icon: 'IconCheckbox',
isUIReadOnly: true,
isNullable: true,
createdAt,
targetObjectName: 'taskTarget',
targetFieldName: 'opportunity',
settings: {
@@ -294,18 +325,20 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
noteTargets: createStandardRelationFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'noteTargets',
label: 'Notes',
description: 'Notes tied to the opportunity',
icon: 'IconNotes',
isUIReadOnly: true,
isNullable: true,
createdAt,
targetObjectName: 'noteTarget',
targetFieldName: 'opportunity',
settings: {
@@ -313,18 +346,20 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
attachments: createStandardRelationFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'attachments',
label: 'Attachments',
description: 'Attachments linked to the opportunity',
icon: 'IconFileImport',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'attachment',
targetFieldName: 'opportunity',
settings: {
@@ -332,18 +367,20 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timelineActivities: createStandardRelationFieldFlatMetadata({
objectName: 'opportunity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'timelineActivities',
label: 'Timeline Activities',
description: 'Timeline Activities linked to the opportunity.',
icon: 'IconTimelineEvent',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'timelineActivity',
targetFieldName: 'opportunity',
settings: {
@@ -351,5 +388,8 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,24 +6,28 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildPersonStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'person'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'person'>, 'context'>): Record<
AllStandardObjectFieldName<'person'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -33,14 +37,16 @@ export const buildPersonStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +58,16 @@ export const buildPersonStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -71,14 +79,16 @@ export const buildPersonStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -89,44 +99,50 @@ export const buildPersonStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Person-specific fields
name: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'name',
type: FieldMetadataType.FULL_NAME,
label: 'Name',
description: "Contact's name",
icon: 'IconUser',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
email: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'email',
type: FieldMetadataType.TEXT,
label: 'Email',
description: "Contact's Email (deprecated)",
icon: 'IconMail',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
emails: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'emails',
type: FieldMetadataType.EMAILS,
label: 'Emails',
@@ -137,70 +153,80 @@ export const buildPersonStandardFlatFieldMetadatas = ({
settings: {
maxNumberOfValues: 1,
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
linkedinLink: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'linkedinLink',
type: FieldMetadataType.LINKS,
label: 'Linkedin',
description: "Contact's Linkedin account",
icon: 'IconBrandLinkedin',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
xLink: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'xLink',
type: FieldMetadataType.LINKS,
label: 'X',
description: "Contact's X/Twitter account",
icon: 'IconBrandX',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
jobTitle: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'jobTitle',
type: FieldMetadataType.TEXT,
label: 'Job Title',
description: "Contact's job title",
icon: 'IconBriefcase',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
phone: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'phone',
type: FieldMetadataType.TEXT,
label: 'Phone',
description: "Contact's phone number (deprecated)",
icon: 'IconPhone',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
phones: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'phones',
type: FieldMetadataType.PHONES,
label: 'Phones',
@@ -210,28 +236,32 @@ export const buildPersonStandardFlatFieldMetadatas = ({
settings: {
maxNumberOfValues: 1,
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
city: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'city',
type: FieldMetadataType.TEXT,
label: 'City',
description: "Contact's city",
icon: 'IconMap',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
avatarUrl: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'avatarUrl',
type: FieldMetadataType.TEXT,
label: 'Avatar',
@@ -239,14 +269,16 @@ export const buildPersonStandardFlatFieldMetadatas = ({
icon: 'IconFileUpload',
isSystem: true,
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
position: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'position',
type: FieldMetadataType.POSITION,
label: 'Position',
@@ -255,14 +287,16 @@ export const buildPersonStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdBy: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdBy',
type: FieldMetadataType.ACTOR,
label: 'Created by',
@@ -270,22 +304,23 @@ export const buildPersonStandardFlatFieldMetadatas = ({
icon: 'IconCreativeCommonsSa',
isUIReadOnly: true,
isNullable: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
company: createStandardRelationFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'company',
label: 'Company',
description: "Contact's company",
icon: 'IconBuildingSkyscraper',
isNullable: true,
createdAt,
targetObjectName: 'company',
targetFieldName: 'people',
settings: {
@@ -295,18 +330,20 @@ export const buildPersonStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
pointOfContactForOpportunities: createStandardRelationFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'pointOfContactForOpportunities',
label: 'Opportunities',
description:
'List of opportunities for which that person is the point of contact',
icon: 'IconTargetArrow',
isNullable: true,
createdAt,
targetObjectName: 'opportunity',
targetFieldName: 'pointOfContact',
settings: {
@@ -314,18 +351,20 @@ export const buildPersonStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
taskTargets: createStandardRelationFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'taskTargets',
label: 'Tasks',
description: 'Tasks tied to the contact',
icon: 'IconCheckbox',
isUIReadOnly: true,
isNullable: true,
createdAt,
targetObjectName: 'taskTarget',
targetFieldName: 'person',
settings: {
@@ -333,18 +372,20 @@ export const buildPersonStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
noteTargets: createStandardRelationFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'noteTargets',
label: 'Notes',
description: 'Notes tied to the contact',
icon: 'IconNotes',
isUIReadOnly: true,
isNullable: true,
createdAt,
targetObjectName: 'noteTarget',
targetFieldName: 'person',
settings: {
@@ -352,18 +393,20 @@ export const buildPersonStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'favorites',
label: 'Favorites',
description: 'Favorites linked to the contact',
icon: 'IconHeart',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'favorite',
targetFieldName: 'person',
settings: {
@@ -371,18 +414,20 @@ export const buildPersonStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
attachments: createStandardRelationFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'attachments',
label: 'Attachments',
description: 'Attachments linked to the contact.',
icon: 'IconFileImport',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'attachment',
targetFieldName: 'person',
settings: {
@@ -390,18 +435,20 @@ export const buildPersonStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageParticipants: createStandardRelationFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageParticipants',
label: 'Message Participants',
description: 'Message Participants',
icon: 'IconUserCircle',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'messageParticipant',
targetFieldName: 'person',
settings: {
@@ -409,18 +456,20 @@ export const buildPersonStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
calendarEventParticipants: createStandardRelationFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'calendarEventParticipants',
label: 'Calendar Event Participants',
description: 'Calendar Event Participants',
icon: 'IconCalendar',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'calendarEventParticipant',
targetFieldName: 'person',
settings: {
@@ -428,18 +477,20 @@ export const buildPersonStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timelineActivities: createStandardRelationFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'timelineActivities',
label: 'Events',
description: 'Events linked to the person',
icon: 'IconTimelineEvent',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'timelineActivity',
targetFieldName: 'person',
settings: {
@@ -447,11 +498,14 @@ export const buildPersonStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
searchVector: createStandardFieldFlatMetadata({
objectName: 'person',
objectName,
workspaceId,
options: {
context: {
fieldName: 'searchVector',
type: FieldMetadataType.TS_VECTOR,
label: 'Search vector',
@@ -459,8 +513,10 @@ export const buildPersonStandardFlatFieldMetadatas = ({
icon: 'IconUser',
isSystem: true,
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,24 +6,28 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildTaskStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'task'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'task'>, 'context'>): Record<
AllStandardObjectFieldName<'task'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -33,14 +37,16 @@ export const buildTaskStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +58,16 @@ export const buildTaskStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -71,14 +79,16 @@ export const buildTaskStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -89,16 +99,18 @@ export const buildTaskStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Task-specific fields
position: createStandardFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'position',
type: FieldMetadataType.POSITION,
label: 'Position',
@@ -107,70 +119,80 @@ export const buildTaskStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
title: createStandardFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'title',
type: FieldMetadataType.TEXT,
label: 'Title',
description: 'Task title',
icon: 'IconNotes',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
body: createStandardFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'body',
type: FieldMetadataType.TEXT,
label: 'Body (deprecated)',
description: 'Task body (deprecated - use bodyV2)',
icon: 'IconFilePencil',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
bodyV2: createStandardFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'bodyV2',
type: FieldMetadataType.RICH_TEXT_V2,
label: 'Body',
description: 'Task body',
icon: 'IconFilePencil',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
dueAt: createStandardFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'dueAt',
type: FieldMetadataType.DATE_TIME,
label: 'Due Date',
description: 'Task due date',
icon: 'IconCalendarEvent',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
status: createStandardFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'status',
type: FieldMetadataType.SELECT,
label: 'Status',
@@ -188,14 +210,16 @@ export const buildTaskStandardFlatFieldMetadatas = ({
},
{ value: 'DONE', label: 'Done', position: 2, color: 'green' },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdBy: createStandardFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdBy',
type: FieldMetadataType.ACTOR,
label: 'Created by',
@@ -203,14 +227,16 @@ export const buildTaskStandardFlatFieldMetadatas = ({
icon: 'IconCreativeCommonsSa',
isUIReadOnly: true,
isNullable: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
searchVector: createStandardFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'searchVector',
type: FieldMetadataType.TS_VECTOR,
label: 'Search vector',
@@ -218,23 +244,24 @@ export const buildTaskStandardFlatFieldMetadatas = ({
icon: 'IconUser',
isSystem: true,
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
taskTargets: createStandardRelationFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'taskTargets',
label: 'Relations',
description: 'Task targets',
icon: 'IconArrowUpRight',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'taskTarget',
targetFieldName: 'task',
settings: {
@@ -242,18 +269,20 @@ export const buildTaskStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
attachments: createStandardRelationFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'attachments',
label: 'Attachments',
description: 'Task attachments',
icon: 'IconFileImport',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'attachment',
targetFieldName: 'task',
settings: {
@@ -261,17 +290,19 @@ export const buildTaskStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
assignee: createStandardRelationFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'assignee',
label: 'Assignee',
description: 'Task assignee',
icon: 'IconUserCircle',
isNullable: true,
createdAt,
targetObjectName: 'workspaceMember',
targetFieldName: 'assignedTasks',
settings: {
@@ -281,18 +312,20 @@ export const buildTaskStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timelineActivities: createStandardRelationFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'timelineActivities',
label: 'Timeline Activities',
description: 'Timeline Activities linked to the task.',
icon: 'IconTimelineEvent',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'timelineActivity',
targetFieldName: 'task',
settings: {
@@ -300,18 +333,20 @@ export const buildTaskStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName: 'task',
objectName,
workspaceId,
options: {
context: {
fieldName: 'favorites',
label: 'Favorites',
description: 'Favorites linked to the task',
icon: 'IconHeart',
isSystem: true,
isNullable: false,
createdAt,
targetObjectName: 'favorite',
targetFieldName: 'task',
settings: {
@@ -319,5 +354,8 @@ export const buildTaskStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,24 +6,28 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildTaskTargetStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'taskTarget'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'taskTarget'>, 'context'>): Record<
AllStandardObjectFieldName<'taskTarget'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName: 'taskTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -33,14 +37,16 @@ export const buildTaskTargetStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'taskTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +58,16 @@ export const buildTaskTargetStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'taskTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -71,14 +79,16 @@ export const buildTaskTargetStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'taskTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -89,22 +99,23 @@ export const buildTaskTargetStandardFlatFieldMetadatas = ({
settings: {
displayFormat: 'RELATIVE',
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
task: createStandardRelationFieldFlatMetadata({
objectName: 'taskTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'task',
label: 'Task',
description: 'TaskTarget task',
icon: 'IconCheckbox',
isNullable: true,
createdAt,
targetObjectName: 'task',
targetFieldName: 'taskTargets',
settings: {
@@ -114,17 +125,19 @@ export const buildTaskTargetStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
person: createStandardRelationFieldFlatMetadata({
objectName: 'taskTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'person',
label: 'Person',
description: 'TaskTarget person',
icon: 'IconUser',
isNullable: true,
createdAt,
targetObjectName: 'person',
targetFieldName: 'taskTargets',
settings: {
@@ -134,17 +147,19 @@ export const buildTaskTargetStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
company: createStandardRelationFieldFlatMetadata({
objectName: 'taskTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'company',
label: 'Company',
description: 'TaskTarget company',
icon: 'IconBuildingSkyscraper',
isNullable: true,
createdAt,
targetObjectName: 'company',
targetFieldName: 'taskTargets',
settings: {
@@ -154,17 +169,19 @@ export const buildTaskTargetStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
opportunity: createStandardRelationFieldFlatMetadata({
objectName: 'taskTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'opportunity',
label: 'Opportunity',
description: 'TaskTarget opportunity',
icon: 'IconTargetArrow',
isNullable: true,
createdAt,
targetObjectName: 'opportunity',
targetFieldName: 'taskTargets',
settings: {
@@ -174,17 +191,19 @@ export const buildTaskTargetStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
custom: createStandardRelationFieldFlatMetadata({
objectName: 'taskTarget',
objectName,
workspaceId,
options: {
context: {
fieldName: 'custom',
label: 'Custom',
description: 'TaskTarget custom object',
icon: 'IconBuildingSkyscraper',
isNullable: true,
createdAt,
// Custom is a dynamic relation
targetObjectName: 'task',
targetFieldName: 'taskTargets',
@@ -195,5 +214,8 @@ export const buildTaskTargetStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,27 +6,28 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildTimelineActivityStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'timelineActivity'>, 'context'>): Record<
AllStandardObjectFieldName<'timelineActivity'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -36,14 +37,16 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -53,14 +56,16 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -70,14 +75,16 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -86,16 +93,18 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// TimelineActivity-specific fields
happensAt: createStandardFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'happensAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -103,92 +112,103 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
icon: 'IconCalendar',
isNullable: false,
defaultValue: 'now',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
name: createStandardFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'name',
type: FieldMetadataType.TEXT,
label: 'Event name',
description: 'Event name',
icon: 'IconAbc',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
properties: createStandardFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'properties',
type: FieldMetadataType.RAW_JSON,
label: 'Event details',
description: 'Json value for event details',
icon: 'IconListDetails',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
linkedRecordCachedName: createStandardFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'linkedRecordCachedName',
type: FieldMetadataType.TEXT,
label: 'Linked Record cached name',
description: 'Cached record name',
icon: 'IconAbc',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
linkedRecordId: createStandardFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'linkedRecordId',
type: FieldMetadataType.UUID,
label: 'Linked Record id',
description: 'Linked Record id',
icon: 'IconAbc',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
linkedObjectMetadataId: createStandardFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'linkedObjectMetadataId',
type: FieldMetadataType.UUID,
label: 'Linked Object Metadata Id',
description: 'Linked Object Metadata Id',
icon: 'IconAbc',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
workspaceMember: createStandardRelationFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workspaceMember',
label: 'Workspace Member',
description: 'Event workspace member',
icon: 'IconCircleUser',
isNullable: true,
createdAt,
targetObjectName: 'workspaceMember',
targetFieldName: 'timelineActivities',
settings: {
@@ -198,17 +218,19 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
person: createStandardRelationFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'person',
label: 'Person',
description: 'Event person',
icon: 'IconUser',
isNullable: true,
createdAt,
targetObjectName: 'person',
targetFieldName: 'timelineActivities',
settings: {
@@ -218,17 +240,19 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
company: createStandardRelationFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'company',
label: 'Company',
description: 'Event company',
icon: 'IconBuildingSkyscraper',
isNullable: true,
createdAt,
targetObjectName: 'company',
targetFieldName: 'timelineActivities',
settings: {
@@ -238,17 +262,19 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
opportunity: createStandardRelationFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'opportunity',
label: 'Opportunity',
description: 'Event opportunity',
icon: 'IconTargetArrow',
isNullable: true,
createdAt,
targetObjectName: 'opportunity',
targetFieldName: 'timelineActivities',
settings: {
@@ -258,17 +284,19 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
note: createStandardRelationFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'note',
label: 'Note',
description: 'Event note',
icon: 'IconTargetArrow',
isNullable: true,
createdAt,
targetObjectName: 'note',
targetFieldName: 'timelineActivities',
settings: {
@@ -278,17 +306,19 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
task: createStandardRelationFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'task',
label: 'Task',
description: 'Event task',
icon: 'IconTargetArrow',
isNullable: true,
createdAt,
targetObjectName: 'task',
targetFieldName: 'timelineActivities',
settings: {
@@ -298,17 +328,19 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflow: createStandardRelationFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workflow',
label: 'Workflow',
description: 'Event workflow',
icon: 'IconTargetArrow',
isNullable: true,
createdAt,
targetObjectName: 'workflow',
targetFieldName: 'timelineActivities',
settings: {
@@ -318,17 +350,19 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflowVersion: createStandardRelationFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workflowVersion',
label: 'WorkflowVersion',
description: 'Event workflow version',
icon: 'IconTargetArrow',
isNullable: true,
createdAt,
targetObjectName: 'workflowVersion',
targetFieldName: 'timelineActivities',
settings: {
@@ -338,17 +372,19 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflowRun: createStandardRelationFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workflowRun',
label: 'Workflow Run',
description: 'Event workflow run',
icon: 'IconTargetArrow',
isNullable: true,
createdAt,
targetObjectName: 'workflowRun',
targetFieldName: 'timelineActivities',
settings: {
@@ -358,17 +394,19 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
dashboard: createStandardRelationFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'dashboard',
label: 'Dashboard',
description: 'Event dashboard',
icon: 'IconTargetArrow',
isNullable: true,
createdAt,
targetObjectName: 'dashboard',
targetFieldName: 'timelineActivities',
settings: {
@@ -378,17 +416,19 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
custom: createStandardRelationFieldFlatMetadata({
objectName: 'timelineActivity',
objectName,
workspaceId,
options: {
context: {
fieldName: 'custom',
label: 'Custom',
description: 'Timeline Activity custom object',
icon: 'IconTimeline',
isNullable: true,
createdAt,
targetObjectName: 'note',
targetFieldName: 'timelineActivities',
settings: {
@@ -398,5 +438,8 @@ export const buildTimelineActivityStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,26 +6,30 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildWorkflowAutomatedTriggerStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<
CreateStandardFieldArgs<'workflowAutomatedTrigger'>,
'context'
>): Record<
AllStandardObjectFieldName<'workflowAutomatedTrigger'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'workflowAutomatedTrigger',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -35,14 +39,16 @@ export const buildWorkflowAutomatedTriggerStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'workflowAutomatedTrigger',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +58,16 @@ export const buildWorkflowAutomatedTriggerStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'workflowAutomatedTrigger',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -69,14 +77,16 @@ export const buildWorkflowAutomatedTriggerStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'workflowAutomatedTrigger',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -85,14 +95,16 @@ export const buildWorkflowAutomatedTriggerStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
type: createStandardFieldFlatMetadata({
objectName: 'workflowAutomatedTrigger',
objectName,
workspaceId,
options: {
context: {
fieldName: 'type',
type: FieldMetadataType.SELECT,
label: 'Automated Trigger Type',
@@ -108,34 +120,37 @@ export const buildWorkflowAutomatedTriggerStandardFlatFieldMetadatas = ({
},
{ value: 'CRON', label: 'Cron', position: 1, color: 'blue' },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
settings: createStandardFieldFlatMetadata({
objectName: 'workflowAutomatedTrigger',
objectName,
workspaceId,
options: {
context: {
fieldName: 'settings',
type: FieldMetadataType.RAW_JSON,
label: 'Settings',
description: 'The workflow automated trigger settings',
icon: 'IconSettings',
isNullable: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflow: createStandardRelationFieldFlatMetadata({
objectName: 'workflowAutomatedTrigger',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workflow',
label: 'Workflow',
description: 'WorkflowAutomatedTrigger workflow',
icon: 'IconSettingsAutomation',
isNullable: false,
createdAt,
targetObjectName: 'workflow',
targetFieldName: 'automatedTriggers',
settings: {
@@ -145,5 +160,8 @@ export const buildWorkflowAutomatedTriggerStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,23 +6,27 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildWorkflowRunStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'workflowRun'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'workflowRun'>, 'context'>): Record<
AllStandardObjectFieldName<'workflowRun'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -32,14 +36,16 @@ export const buildWorkflowRunStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -49,14 +55,16 @@ export const buildWorkflowRunStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -66,14 +74,16 @@ export const buildWorkflowRunStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -82,70 +92,80 @@ export const buildWorkflowRunStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
name: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'name',
type: FieldMetadataType.TEXT,
label: 'Name',
description: 'Name of the workflow run',
icon: 'IconSettingsAutomation',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
enqueuedAt: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'enqueuedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Workflow run enqueued at',
description: 'Workflow run enqueued at',
icon: 'IconHistory',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
startedAt: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'startedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Workflow run started at',
description: 'Workflow run started at',
icon: 'IconHistory',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
endedAt: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'endedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Workflow run ended at',
description: 'Workflow run ended at',
icon: 'IconHistory',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
status: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'status',
type: FieldMetadataType.SELECT,
label: 'Workflow run status',
@@ -167,70 +187,80 @@ export const buildWorkflowRunStandardFlatFieldMetadatas = ({
{ value: 'STOPPING', label: 'Stopping', position: 5, color: 'orange' },
{ value: 'STOPPED', label: 'Stopped', position: 6, color: 'gray' },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdBy: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdBy',
type: FieldMetadataType.ACTOR,
label: 'Executed by',
description: 'The executor of the workflow',
icon: 'IconCreativeCommonsSa',
isNullable: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
state: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'state',
type: FieldMetadataType.RAW_JSON,
label: 'State',
description: 'State of the workflow run',
icon: 'IconHierarchy2',
isNullable: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
context: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'context',
type: FieldMetadataType.RAW_JSON,
label: 'Context',
description: 'Context of the workflow run',
icon: 'IconHierarchy2',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
output: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'output',
type: FieldMetadataType.RAW_JSON,
label: 'Output',
description: 'Output of the workflow run',
icon: 'IconHierarchy2',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
position: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'position',
type: FieldMetadataType.POSITION,
label: 'Position',
@@ -239,14 +269,16 @@ export const buildWorkflowRunStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
searchVector: createStandardFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'searchVector',
type: FieldMetadataType.TS_VECTOR,
label: 'Search vector',
@@ -254,20 +286,21 @@ export const buildWorkflowRunStandardFlatFieldMetadatas = ({
icon: 'IconUser',
isSystem: true,
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflowVersion: createStandardRelationFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workflowVersion',
label: 'Workflow version',
description: 'Workflow version linked to the run.',
icon: 'IconVersions',
isNullable: false,
createdAt,
targetObjectName: 'workflowVersion',
targetFieldName: 'runs',
settings: {
@@ -277,17 +310,19 @@ export const buildWorkflowRunStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflow: createStandardRelationFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workflow',
label: 'Workflow',
description: 'Workflow linked to the run.',
icon: 'IconSettingsAutomation',
isNullable: false,
createdAt,
targetObjectName: 'workflow',
targetFieldName: 'runs',
settings: {
@@ -297,18 +332,20 @@ export const buildWorkflowRunStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'favorites',
label: 'Favorites',
description: 'Favorites linked to the workflow run',
icon: 'IconHeart',
isSystem: true,
isNullable: false,
createdAt,
targetObjectName: 'favorite',
targetFieldName: 'workflowRun',
settings: {
@@ -316,18 +353,20 @@ export const buildWorkflowRunStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timelineActivities: createStandardRelationFieldFlatMetadata({
objectName: 'workflowRun',
objectName,
workspaceId,
options: {
context: {
fieldName: 'timelineActivities',
label: 'Timeline Activities',
description: 'Timeline activities linked to the run',
icon: 'IconTimelineEvent',
isSystem: true,
isNullable: false,
createdAt,
targetObjectName: 'timelineActivity',
targetFieldName: 'workflowRun',
settings: {
@@ -335,5 +374,8 @@ export const buildWorkflowRunStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -2,23 +2,27 @@ import { FieldMetadataType, RelationType } from 'twenty-shared/types';
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildWorkflowStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<AllStandardObjectFieldName<'workflow'>, FlatFieldMetadata> => ({
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'workflow'>, 'context'>): Record<
AllStandardObjectFieldName<'workflow'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -28,14 +32,16 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -45,14 +51,16 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -62,14 +70,16 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -78,28 +88,32 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
name: createStandardFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'name',
type: FieldMetadataType.TEXT,
label: 'Name',
description: 'The workflow name',
icon: 'IconSettingsAutomation',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
lastPublishedVersionId: createStandardFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'lastPublishedVersionId',
type: FieldMetadataType.TEXT,
label: 'Last published Version Id',
@@ -107,14 +121,16 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
icon: 'IconVersions',
isNullable: true,
isUIReadOnly: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
statuses: createStandardFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'statuses',
type: FieldMetadataType.MULTI_SELECT,
label: 'Statuses',
@@ -132,14 +148,16 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
color: 'gray',
},
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
position: createStandardFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'position',
type: FieldMetadataType.POSITION,
label: 'Position',
@@ -148,14 +166,16 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdBy: createStandardFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdBy',
type: FieldMetadataType.ACTOR,
label: 'Created by',
@@ -163,14 +183,16 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
icon: 'IconCreativeCommonsSa',
isUIReadOnly: true,
isNullable: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
searchVector: createStandardFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'searchVector',
type: FieldMetadataType.TS_VECTOR,
label: 'Search vector',
@@ -178,21 +200,22 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
icon: 'IconUser',
isSystem: true,
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
versions: createStandardRelationFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'versions',
label: 'Versions',
description: 'Workflow versions linked to the workflow.',
icon: 'IconVersions',
isUIReadOnly: true,
isNullable: false,
createdAt,
targetObjectName: 'workflowVersion',
targetFieldName: 'workflow',
settings: {
@@ -200,18 +223,20 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
runs: createStandardRelationFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'runs',
label: 'Runs',
description: 'Workflow runs linked to the workflow.',
icon: 'IconRun',
isUIReadOnly: true,
isNullable: false,
createdAt,
targetObjectName: 'workflowRun',
targetFieldName: 'workflow',
settings: {
@@ -219,11 +244,14 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
eventListeners: createStandardRelationFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'eventListeners',
label: 'Event Listeners',
description: 'Workflow event listeners linked to the workflow.',
@@ -231,7 +259,6 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
isSystem: true,
isUIReadOnly: true,
isNullable: false,
createdAt,
targetObjectName: 'workflowAutomatedTrigger',
targetFieldName: 'workflow',
settings: {
@@ -239,11 +266,14 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
automatedTriggers: createStandardRelationFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'automatedTriggers',
label: 'Automated Triggers',
description: 'Workflow automated triggers linked to the workflow.',
@@ -251,7 +281,6 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
isSystem: true,
isUIReadOnly: true,
isNullable: false,
createdAt,
targetObjectName: 'workflowAutomatedTrigger',
targetFieldName: 'workflow',
settings: {
@@ -259,18 +288,20 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'favorites',
label: 'Favorites',
description: 'Favorites linked to the workflow',
icon: 'IconHeart',
isSystem: true,
isNullable: false,
createdAt,
targetObjectName: 'favorite',
targetFieldName: 'workflow',
settings: {
@@ -278,18 +309,20 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timelineActivities: createStandardRelationFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'timelineActivities',
label: 'Timeline Activities',
description: 'Timeline activities linked to the workflow',
icon: 'IconTimelineEvent',
isSystem: true,
isNullable: false,
createdAt,
targetObjectName: 'timelineActivity',
targetFieldName: 'workflow',
settings: {
@@ -297,18 +330,20 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
attachments: createStandardRelationFieldFlatMetadata({
objectName: 'workflow',
objectName,
workspaceId,
options: {
context: {
fieldName: 'attachments',
label: 'Attachments',
description: 'Attachments linked to the workflow',
icon: 'IconFileUpload',
isSystem: true,
isNullable: false,
createdAt,
targetObjectName: 'attachment',
targetFieldName: 'workflow',
settings: {
@@ -316,5 +351,8 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,26 +6,27 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
export const buildWorkflowVersionStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'workflowVersion'>, 'context'>): Record<
AllStandardObjectFieldName<'workflowVersion'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -35,14 +36,16 @@ export const buildWorkflowVersionStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -52,14 +55,16 @@ export const buildWorkflowVersionStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -69,14 +74,16 @@ export const buildWorkflowVersionStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -85,56 +92,64 @@ export const buildWorkflowVersionStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
name: createStandardFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'name',
type: FieldMetadataType.TEXT,
label: 'Name',
description: 'The workflow version name',
icon: 'IconSettingsAutomation',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
trigger: createStandardFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'trigger',
type: FieldMetadataType.RAW_JSON,
label: 'Version trigger',
description: 'Json object to provide trigger',
icon: 'IconSettingsAutomation',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
steps: createStandardFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'steps',
type: FieldMetadataType.RAW_JSON,
label: 'Version steps',
description: 'Json object to provide steps',
icon: 'IconSettingsAutomation',
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
status: createStandardFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'status',
type: FieldMetadataType.SELECT,
label: 'Version status',
@@ -153,14 +168,16 @@ export const buildWorkflowVersionStandardFlatFieldMetadatas = ({
},
{ value: 'ARCHIVED', label: 'Archived', position: 3, color: 'gray' },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
position: createStandardFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'position',
type: FieldMetadataType.POSITION,
label: 'Position',
@@ -169,14 +186,16 @@ export const buildWorkflowVersionStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
searchVector: createStandardFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'searchVector',
type: FieldMetadataType.TS_VECTOR,
label: 'Search vector',
@@ -184,20 +203,21 @@ export const buildWorkflowVersionStandardFlatFieldMetadatas = ({
icon: 'IconUser',
isSystem: true,
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflow: createStandardRelationFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'workflow',
label: 'Workflow',
description: 'WorkflowVersion workflow',
icon: 'IconSettingsAutomation',
isNullable: true,
createdAt,
targetObjectName: 'workflow',
targetFieldName: 'versions',
settings: {
@@ -207,17 +227,19 @@ export const buildWorkflowVersionStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
runs: createStandardRelationFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'runs',
label: 'Runs',
description: 'Workflow runs linked to the version.',
icon: 'IconRun',
isNullable: true,
createdAt,
targetObjectName: 'workflowRun',
targetFieldName: 'workflowVersion',
settings: {
@@ -225,18 +247,20 @@ export const buildWorkflowVersionStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'favorites',
label: 'Favorites',
description: 'Favorites linked to the workflow version',
icon: 'IconHeart',
isSystem: true,
isNullable: false,
createdAt,
targetObjectName: 'favorite',
targetFieldName: 'workflowVersion',
settings: {
@@ -244,18 +268,20 @@ export const buildWorkflowVersionStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timelineActivities: createStandardRelationFieldFlatMetadata({
objectName: 'workflowVersion',
objectName,
workspaceId,
options: {
context: {
fieldName: 'timelineActivities',
label: 'Timeline Activities',
description: 'Timeline activities linked to the version',
icon: 'IconTimelineEvent',
isSystem: true,
isNullable: false,
createdAt,
targetObjectName: 'timelineActivity',
targetFieldName: 'workflowVersion',
settings: {
@@ -263,5 +289,8 @@ export const buildWorkflowVersionStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -6,27 +6,28 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { createStandardFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-relation-field-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import {
type CreateStandardFieldArgs,
createStandardFieldFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-field-flat-metadata.util';
import { createStandardRelationFieldFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/create-standard-relation-field-flat-metadata.util';
import { WorkspaceMemberNumberFormatEnum } from 'src/modules/workspace-member/standard-objects/workspace-member.workspace-entity';
export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
createdAt,
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): Record<
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardFieldArgs<'workspaceMember'>, 'context'>): Record<
AllStandardObjectFieldName<'workspaceMember'>,
FlatFieldMetadata
> => ({
id: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: 'Id',
@@ -36,14 +37,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
@@ -53,14 +56,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Last update',
@@ -70,14 +75,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: 'Deleted at',
@@ -86,14 +93,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: 'RELATIVE' },
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
position: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'position',
type: FieldMetadataType.POSITION,
label: 'Position',
@@ -102,28 +111,32 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: 0,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
name: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'name',
type: FieldMetadataType.FULL_NAME,
label: 'Name',
description: 'Workspace member name',
icon: 'IconCircleUser',
isNullable: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
colorScheme: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'colorScheme',
type: FieldMetadataType.TEXT,
label: 'Color Scheme',
@@ -132,14 +145,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: "'System'",
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
locale: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'locale',
type: FieldMetadataType.TEXT,
label: 'Language',
@@ -148,14 +163,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: "'en'",
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
avatarUrl: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'avatarUrl',
type: FieldMetadataType.TEXT,
label: 'Avatar Url',
@@ -163,14 +180,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
icon: 'IconFileUpload',
isSystem: true,
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
userEmail: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'userEmail',
type: FieldMetadataType.TEXT,
label: 'User Email',
@@ -179,14 +198,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: true,
isUnique: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
calendarStartDay: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'calendarStartDay',
type: FieldMetadataType.NUMBER,
label: 'Start of the week',
@@ -198,14 +219,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
settings: {
dataType: NumberDataType.INT,
},
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
userId: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'userId',
type: FieldMetadataType.UUID,
label: 'User Id',
@@ -213,14 +236,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
icon: 'IconCircleUsers',
isSystem: true,
isNullable: false,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timeZone: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'timeZone',
type: FieldMetadataType.TEXT,
label: 'Time zone',
@@ -229,14 +254,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
isSystem: true,
isNullable: false,
defaultValue: "'system'",
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
dateFormat: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'dateFormat',
type: FieldMetadataType.SELECT,
label: 'Date format',
@@ -261,14 +288,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
},
{ value: 'YEAR_FIRST', label: 'Year First', position: 3, color: 'sky' },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timeFormat: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'timeFormat',
type: FieldMetadataType.SELECT,
label: 'Time format',
@@ -282,14 +311,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
{ value: 'HOUR_24', label: '24HRS', position: 1, color: 'red' },
{ value: 'HOUR_12', label: '12HRS', position: 2, color: 'purple' },
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
numberFormat: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'numberFormat',
type: FieldMetadataType.SELECT,
label: 'Number format',
@@ -330,14 +361,16 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
color: 'purple',
},
],
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
searchVector: createStandardFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'searchVector',
type: FieldMetadataType.TS_VECTOR,
label: 'Search vector',
@@ -345,20 +378,21 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
icon: 'IconUser',
isSystem: true,
isNullable: true,
createdAt,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
assignedTasks: createStandardRelationFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'assignedTasks',
label: 'Assigned tasks',
description: 'Tasks assigned to the workspace member',
icon: 'IconCheckbox',
isNullable: false,
createdAt,
targetObjectName: 'task',
targetFieldName: 'assignee',
settings: {
@@ -366,17 +400,19 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'favorites',
label: 'Favorites',
description: 'Favorites linked to the workspace member',
icon: 'IconHeart',
isNullable: false,
createdAt,
targetObjectName: 'favorite',
targetFieldName: 'forWorkspaceMember',
settings: {
@@ -384,17 +420,19 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
accountOwnerForCompanies: createStandardRelationFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'accountOwnerForCompanies',
label: 'Account Owner For Companies',
description: 'Account owner for companies',
icon: 'IconBriefcase',
isNullable: false,
createdAt,
targetObjectName: 'company',
targetFieldName: 'accountOwner',
settings: {
@@ -402,18 +440,20 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
authoredAttachments: createStandardRelationFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'authoredAttachments',
label: 'Authored attachments',
description: 'Attachments created by the workspace member',
icon: 'IconFileImport',
isSystem: true,
isNullable: false,
createdAt,
targetObjectName: 'attachment',
targetFieldName: 'author',
settings: {
@@ -421,17 +461,19 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
connectedAccounts: createStandardRelationFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'connectedAccounts',
label: 'Connected accounts',
description: 'Connected accounts',
icon: 'IconAt',
isNullable: false,
createdAt,
targetObjectName: 'connectedAccount',
targetFieldName: 'accountOwner',
settings: {
@@ -439,17 +481,19 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
messageParticipants: createStandardRelationFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'messageParticipants',
label: 'Message Participants',
description: 'Message Participants',
icon: 'IconUserCircle',
isNullable: false,
createdAt,
targetObjectName: 'messageParticipant',
targetFieldName: 'workspaceMember',
settings: {
@@ -457,17 +501,19 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
blocklist: createStandardRelationFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'blocklist',
label: 'Blocklist',
description: 'Blocklisted handles',
icon: 'IconForbid2',
isNullable: false,
createdAt,
targetObjectName: 'blocklist',
targetFieldName: 'workspaceMember',
settings: {
@@ -475,17 +521,19 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
calendarEventParticipants: createStandardRelationFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'calendarEventParticipants',
label: 'Calendar Event Participants',
description: 'Calendar Event Participants',
icon: 'IconCalendar',
isNullable: false,
createdAt,
targetObjectName: 'calendarEventParticipant',
targetFieldName: 'workspaceMember',
settings: {
@@ -493,18 +541,20 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timelineActivities: createStandardRelationFieldFlatMetadata({
objectName: 'workspaceMember',
objectName,
workspaceId,
options: {
context: {
fieldName: 'timelineActivities',
label: 'Events',
description: 'Events linked to the workspace member',
icon: 'IconTimelineEvent',
isSystem: true,
isNullable: true,
createdAt,
targetObjectName: 'timelineActivity',
targetFieldName: 'workspaceMember',
settings: {
@@ -512,5 +562,8 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
},
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -8,35 +8,31 @@ import { v4 } from 'uuid';
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
import { TWENTY_STANDARD_APPLICATION } from 'src/engine/workspace-manager/twenty-standard-application/constants/twenty-standard-applications';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import { type StandardBuilderArgs } from 'src/engine/workspace-manager/twenty-standard-application/types/metadata-standard-buillder-args.type';
const TWENTY_STANDARD_APPLICATION_ID =
TWENTY_STANDARD_APPLICATION.universalIdentifier;
export type CreateStandardFieldOptions<O extends AllStandardObjectName> = {
fieldName: AllStandardObjectFieldName<O>;
type: Exclude<FieldMetadataType, typeof FieldMetadataType.RELATION>;
label: string;
description: string;
icon: string;
isSystem?: boolean;
isNullable?: boolean;
isUnique?: boolean;
isUIReadOnly?: boolean;
defaultValue?: FieldMetadataDefaultValueForAnyType;
settings?: Record<string, unknown> | null;
options?: FieldMetadataDefaultOption[] | FieldMetadataComplexOption[] | null;
createdAt: Date;
};
export type CreateStandardFieldArgs<O extends AllStandardObjectName> = {
export type CreateStandardFieldArgs<
O extends AllStandardObjectName = AllStandardObjectName,
> = StandardBuilderArgs<'fieldMetadata'> & {
objectName: O;
workspaceId: string;
options: CreateStandardFieldOptions<O>;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
context: {
fieldName: AllStandardObjectFieldName<O>;
type: Exclude<FieldMetadataType, typeof FieldMetadataType.RELATION>;
label: string;
description: string;
icon: string;
isSystem?: boolean;
isNullable?: boolean;
isUnique?: boolean;
isUIReadOnly?: boolean;
defaultValue?: FieldMetadataDefaultValueForAnyType;
settings?: Record<string, unknown> | null;
options?:
| FieldMetadataDefaultOption[]
| FieldMetadataComplexOption[]
| null;
};
};
export const createStandardFieldFlatMetadata = <
@@ -44,10 +40,7 @@ export const createStandardFieldFlatMetadata = <
>({
objectName,
workspaceId,
options,
standardFieldMetadataIdByObjectAndFieldName,
}: CreateStandardFieldArgs<O>): FlatFieldMetadata => {
const {
context: {
fieldName,
type,
label,
@@ -60,9 +53,11 @@ export const createStandardFieldFlatMetadata = <
defaultValue = null,
settings = null,
options: fieldOptions = null,
createdAt,
} = options;
},
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}: CreateStandardFieldArgs<O>): FlatFieldMetadata => {
const objectFields = STANDARD_OBJECTS[objectName].fields;
const fieldDefinition = objectFields[fieldName as keyof typeof objectFields];
const fieldIds =
@@ -74,7 +69,7 @@ export const createStandardFieldFlatMetadata = <
id: fieldIds[fieldName],
universalIdentifier: fieldDefinition.universalIdentifier,
standardId: null,
applicationId: TWENTY_STANDARD_APPLICATION_ID,
applicationId: twentyStandardApplicationId,
workspaceId,
objectMetadataId:
standardFieldMetadataIdByObjectAndFieldName[objectName].id,
@@ -102,7 +97,7 @@ export const createStandardFieldFlatMetadata = <
kanbanAggregateOperationViewIds: [],
calendarViewIds: [],
mainGroupByFieldMetadataViewIds: [],
createdAt,
updatedAt: createdAt,
createdAt: now,
updatedAt: now,
};
};
@@ -8,15 +8,11 @@ import {
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
import { TWENTY_STANDARD_APPLICATION } from 'src/engine/workspace-manager/twenty-standard-application/constants/twenty-standard-applications';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import { type StandardBuilderArgs } from 'src/engine/workspace-manager/twenty-standard-application/types/metadata-standard-buillder-args.type';
const TWENTY_STANDARD_APPLICATION_ID =
TWENTY_STANDARD_APPLICATION.universalIdentifier;
export type CreateStandardRelationFieldOptions<
export type CreateStandardRelationFieldContext<
O extends AllStandardObjectName,
T extends AllStandardObjectName,
> = {
@@ -32,17 +28,14 @@ export type CreateStandardRelationFieldOptions<
defaultValue?: FieldMetadataDefaultValueForAnyType;
settings: FieldMetadataSettings<FieldMetadataType.RELATION>;
options?: FieldMetadataDefaultOption[] | FieldMetadataComplexOption[] | null;
createdAt: Date;
};
export type CreateStandardRelationFieldArgs<
O extends AllStandardObjectName,
T extends AllStandardObjectName,
> = {
> = StandardBuilderArgs<'fieldMetadata'> & {
objectName: O;
workspaceId: string;
options: CreateStandardRelationFieldOptions<O, T>;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
context: CreateStandardRelationFieldContext<O, T>;
};
export const createStandardRelationFieldFlatMetadata = <
@@ -51,10 +44,7 @@ export const createStandardRelationFieldFlatMetadata = <
>({
objectName,
workspaceId,
options,
standardFieldMetadataIdByObjectAndFieldName,
}: CreateStandardRelationFieldArgs<O, T>): FlatFieldMetadata => {
const {
context: {
fieldName,
label,
description,
@@ -67,9 +57,11 @@ export const createStandardRelationFieldFlatMetadata = <
defaultValue = null,
settings,
options: fieldOptions = null,
createdAt,
} = options;
},
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}: CreateStandardRelationFieldArgs<O, T>): FlatFieldMetadata => {
const objectFields = STANDARD_OBJECTS[objectName].fields;
const fieldDefinition = objectFields[fieldName as keyof typeof objectFields];
const fieldIds =
@@ -82,7 +74,7 @@ export const createStandardRelationFieldFlatMetadata = <
id: fieldIds[fieldName as keyof typeof fieldIds],
universalIdentifier: fieldDefinition.universalIdentifier,
standardId: null,
applicationId: TWENTY_STANDARD_APPLICATION_ID,
applicationId: twentyStandardApplicationId,
workspaceId,
objectMetadataId:
standardFieldMetadataIdByObjectAndFieldName[objectName].id,
@@ -111,7 +103,7 @@ export const createStandardRelationFieldFlatMetadata = <
kanbanAggregateOperationViewIds: [],
calendarViewIds: [],
mainGroupByFieldMetadataViewIds: [],
createdAt,
updatedAt: createdAt,
createdAt: now,
updatedAt: now,
};
};
@@ -0,0 +1,80 @@
import { type FlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-maps.type';
import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-maps-or-throw.util';
import { type 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 { buildCompanyStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-company-standard-flat-index-metadata.util';
import { type CreateStandardIndexArgs } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util';
const STANDARD_FLAT_INDEX_METADATA_BUILDERS_BY_OBJECT_NAME = {
// attachment: buildAttachmentStandardFlatIndexMetadatas,
// blocklist: buildBlocklistStandardFlatIndexMetadatas,
// calendarChannelEventAssociation: buildCalendarChannelEventAssociationStandardFlatIndexMetadatas,
// calendarChannel: buildCalendarChannelStandardFlatIndexMetadatas,
// calendarEventParticipant: buildCalendarEventParticipantStandardFlatIndexMetadatas,
// calendarEvent: buildCalendarEventStandardFlatIndexMetadatas,
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,
} satisfies {
[P in AllStandardObjectName]?: (
args: CreateStandardIndexArgs<P>,
) => Record<string, FlatIndexMetadata>;
};
const createEmptyFlatIndexMetadataMaps =
(): FlatEntityMaps<FlatIndexMetadata> => ({
byId: {},
idByUniversalIdentifier: {},
universalIdentifiersByApplicationId: {},
});
export const buildStandardFlatIndexMetadataMaps = (
args: Omit<CreateStandardIndexArgs, 'context' | 'objectName'>,
): FlatEntityMaps<FlatIndexMetadata> => {
const allIndexMetadatas: FlatIndexMetadata[] = (
Object.keys(
STANDARD_FLAT_INDEX_METADATA_BUILDERS_BY_OBJECT_NAME,
) as (keyof typeof STANDARD_FLAT_INDEX_METADATA_BUILDERS_BY_OBJECT_NAME)[]
).flatMap((objectName) => {
const builder =
STANDARD_FLAT_INDEX_METADATA_BUILDERS_BY_OBJECT_NAME[objectName];
const result = builder({
...args,
objectName,
});
return Object.values(result);
});
let flatIndexMetadataMaps = createEmptyFlatIndexMetadataMaps();
for (const indexMetadata of allIndexMetadatas) {
flatIndexMetadataMaps = addFlatEntityToFlatEntityMapsOrThrow({
flatEntity: indexMetadata,
flatEntityMaps: flatIndexMetadataMaps,
});
}
return flatIndexMetadataMaps;
};
@@ -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 buildCompanyStandardFlatIndexMetadatas = ({
now,
objectName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardIndexArgs<'company'>, 'context'>): Record<
AllStandardObjectIndexName<'company'>,
FlatIndexMetadata
> => ({
accountOwnerIdIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'accountOwnerIdIndex',
relatedFieldNames: ['accountOwner'],
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
domainNameUniqueIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'domainNameUniqueIndex',
relatedFieldNames: ['domainName'],
isUnique: true,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
searchVectorGinIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'searchVectorGinIndex',
relatedFieldNames: ['searchVector'],
indexType: IndexType.GIN,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -0,0 +1,106 @@
import { isDefined } from 'twenty-shared/utils';
import { v4 } from 'uuid';
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
import { findManyFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-many-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
import {
type FlatIndexFieldMetadata,
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 { generateFlatIndexMetadataWithNameOrThrow } from 'src/engine/metadata-modules/index-metadata/utils/generate-flat-index.util';
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type';
import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type';
import { type StandardBuilderArgs } from 'src/engine/workspace-manager/twenty-standard-application/types/metadata-standard-buillder-args.type';
export type CreateStandardIndexOptions<O extends AllStandardObjectName> = {
indexName: AllStandardObjectIndexName<O>;
relatedFieldNames: AllStandardObjectFieldName<O>[];
} & Partial<
Pick<FlatIndexMetadata, 'indexType' | 'indexWhereClause' | 'isUnique'>
>;
export type CreateStandardIndexArgs<
O extends AllStandardObjectName = AllStandardObjectName,
> = StandardBuilderArgs<'index'> & {
objectName: O;
context: CreateStandardIndexOptions<O>;
};
export const createStandardIndexFlatMetadata = <
O extends AllStandardObjectName,
>({
workspaceId,
objectName,
context: {
indexName,
relatedFieldNames,
indexType = IndexType.BTREE,
indexWhereClause = null,
isUnique = false,
},
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps: { flatFieldMetadataMaps, flatObjectMetadataMaps },
twentyStandardApplicationId,
now,
}: CreateStandardIndexArgs<O>): FlatIndexMetadata => {
const objectIndexes = STANDARD_OBJECTS[objectName].indexes;
if (!isDefined(objectIndexes)) {
throw new Error(
`Invalid index configuration ${objectName} ${indexName.toString()}`,
);
}
// @ts-expect-error ignore
const indexDefinition = objectIndexes[indexName] as unknown as {
universalIdentifier: string;
};
const objectMetadataId =
standardFieldMetadataIdByObjectAndFieldName[objectName].id;
const flatObjectMetadata = findFlatEntityByIdInFlatEntityMapsOrThrow({
flatEntityId: objectMetadataId,
flatEntityMaps: flatObjectMetadataMaps,
});
const relatedFieldIds = relatedFieldNames.map(
(fieldName) =>
standardFieldMetadataIdByObjectAndFieldName[objectName].fields[fieldName],
);
const flatFieldMetadatas = findManyFlatEntityByIdInFlatEntityMapsOrThrow({
flatEntityIds: relatedFieldIds,
flatEntityMaps: flatFieldMetadataMaps,
});
const indexId = v4();
return generateFlatIndexMetadataWithNameOrThrow({
flatIndex: {
createdAt: now,
applicationId: twentyStandardApplicationId,
indexType,
indexWhereClause,
isCustom: false,
isUnique,
objectMetadataId,
universalIdentifier: indexDefinition.universalIdentifier,
updatedAt: now,
workspaceId,
id: indexId,
flatIndexFieldMetadatas: flatFieldMetadatas.map<FlatIndexFieldMetadata>(
({ id: fieldMetadataId }, index) => ({
createdAt: now,
fieldMetadataId,
id: v4(),
indexMetadataId: indexId,
order: index,
updatedAt: now,
}),
),
},
flatObjectMetadata,
objectFlatFieldMetadatas: flatFieldMetadatas,
});
};
@@ -1,10 +1,8 @@
import { type FlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-maps.type';
import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-maps-or-throw.util';
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
import {
type BuildStandardFlatObjectMetadatasArgs,
STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-flat-object-metadata.util';
import { STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME } from 'src/engine/workspace-manager/twenty-standard-application/utils/object-metadata/create-standard-flat-object-metadata.util';
import { type CreateStandardObjectArgs } from 'src/engine/workspace-manager/twenty-standard-application/utils/object-metadata/create-standard-object-flat-metadata.util';
const createEmptyFlatObjectMetadataMaps =
(): FlatEntityMaps<FlatObjectMetadata> => ({
@@ -14,7 +12,7 @@ const createEmptyFlatObjectMetadataMaps =
});
export const buildStandardFlatObjectMetadataMaps = (
args: BuildStandardFlatObjectMetadatasArgs,
args: Omit<CreateStandardObjectArgs, 'context' | 'objectName'>,
): FlatEntityMaps<FlatObjectMetadata> => {
// Collect all object metadatas from all standard objects
const allObjectMetadatas: FlatObjectMetadata[] = Object.values(
@@ -1,23 +1,23 @@
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type';
import { createStandardObjectFlatMetadata } from 'src/engine/workspace-manager/twenty-standard-application/utils/create-standard-object-flat-metadata.util';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
export type BuildStandardFlatObjectMetadatasArgs = {
createdAt: Date;
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
};
export type StandardFlatObjectMetadataBuilder = (
args: BuildStandardFlatObjectMetadatasArgs,
) => FlatObjectMetadata;
import {
type CreateStandardObjectArgs,
createStandardObjectFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/object-metadata/create-standard-object-flat-metadata.util';
export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
attachment: (args: BuildStandardFlatObjectMetadatasArgs) =>
attachment: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'attachment'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'attachment',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.attachment.universalIdentifier,
standardId: STANDARD_OBJECTS.attachment.universalIdentifier,
nameSingular: 'attachment',
@@ -27,16 +27,24 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
description: 'An attachment',
icon: 'IconFileImport',
isSystem: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'name',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
blocklist: (args: BuildStandardFlatObjectMetadatasArgs) =>
blocklist: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'blocklist'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'blocklist',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.blocklist.universalIdentifier,
standardId: STANDARD_OBJECTS.blocklist.universalIdentifier,
nameSingular: 'blocklist',
@@ -46,18 +54,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
description: 'Blocklist',
icon: 'IconForbid2',
isSystem: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'handle',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
calendarChannelEventAssociation: (
args: BuildStandardFlatObjectMetadatasArgs,
) =>
calendarChannelEventAssociation: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'calendarChannelEventAssociation'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'calendarChannelEventAssociation',
dependencyFlatEntityMaps,
context: {
universalIdentifier:
STANDARD_OBJECTS.calendarChannelEventAssociation.universalIdentifier,
standardId:
@@ -70,16 +87,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconCalendar',
isSystem: true,
isAuditLogged: false,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'id',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
calendarChannel: (args: BuildStandardFlatObjectMetadatasArgs) =>
calendarChannel: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'calendarChannel'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'calendarChannel',
dependencyFlatEntityMaps,
context: {
universalIdentifier:
STANDARD_OBJECTS.calendarChannel.universalIdentifier,
standardId: STANDARD_OBJECTS.calendarChannel.universalIdentifier,
@@ -91,16 +119,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconCalendar',
isSystem: true,
isAuditLogged: false,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'handle',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
calendarEventParticipant: (args: BuildStandardFlatObjectMetadatasArgs) =>
calendarEventParticipant: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'calendarEventParticipant'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'calendarEventParticipant',
dependencyFlatEntityMaps,
context: {
universalIdentifier:
STANDARD_OBJECTS.calendarEventParticipant.universalIdentifier,
standardId:
@@ -113,16 +152,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconCalendar',
isSystem: true,
isAuditLogged: false,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'handle',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
calendarEvent: (args: BuildStandardFlatObjectMetadatasArgs) =>
calendarEvent: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'calendarEvent'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'calendarEvent',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.calendarEvent.universalIdentifier,
standardId: STANDARD_OBJECTS.calendarEvent.universalIdentifier,
nameSingular: 'calendarEvent',
@@ -134,16 +184,24 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
isSystem: true,
isAuditLogged: false,
isUIReadOnly: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'title',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
company: (args: BuildStandardFlatObjectMetadatasArgs) =>
company: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'company'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'company',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.company.universalIdentifier,
standardId: STANDARD_OBJECTS.company.universalIdentifier,
nameSingular: 'company',
@@ -154,16 +212,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconBuildingSkyscraper',
isSearchable: true,
shortcut: 'C',
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'name',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
connectedAccount: (args: BuildStandardFlatObjectMetadatasArgs) =>
connectedAccount: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'connectedAccount'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'connectedAccount',
dependencyFlatEntityMaps,
context: {
universalIdentifier:
STANDARD_OBJECTS.connectedAccount.universalIdentifier,
standardId: STANDARD_OBJECTS.connectedAccount.universalIdentifier,
@@ -175,16 +244,24 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconAt',
isSystem: true,
isAuditLogged: false,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'handle',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
dashboard: (args: BuildStandardFlatObjectMetadatasArgs) =>
dashboard: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'dashboard'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'dashboard',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.dashboard.universalIdentifier,
standardId: STANDARD_OBJECTS.dashboard.universalIdentifier,
nameSingular: 'dashboard',
@@ -195,16 +272,24 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconLayoutDashboard',
isSearchable: true,
shortcut: 'D',
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'title',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
favorite: (args: BuildStandardFlatObjectMetadatasArgs) =>
favorite: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'favorite'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'favorite',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.favorite.universalIdentifier,
standardId: STANDARD_OBJECTS.favorite.universalIdentifier,
nameSingular: 'favorite',
@@ -214,16 +299,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
description: 'A favorite',
icon: 'IconHeart',
isSystem: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'id',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
favoriteFolder: (args: BuildStandardFlatObjectMetadatasArgs) =>
favoriteFolder: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'favoriteFolder'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'favoriteFolder',
dependencyFlatEntityMaps,
context: {
universalIdentifier:
STANDARD_OBJECTS.favoriteFolder.universalIdentifier,
standardId: STANDARD_OBJECTS.favoriteFolder.universalIdentifier,
@@ -234,18 +330,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
description: 'A favorite folder',
icon: 'IconFolder',
isSystem: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'id',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
messageChannelMessageAssociation: (
args: BuildStandardFlatObjectMetadatasArgs,
) =>
messageChannelMessageAssociation: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'messageChannelMessageAssociation'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'messageChannelMessageAssociation',
dependencyFlatEntityMaps,
context: {
universalIdentifier:
STANDARD_OBJECTS.messageChannelMessageAssociation.universalIdentifier,
standardId:
@@ -258,16 +363,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconMessage',
isSystem: true,
isAuditLogged: false,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'id',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
messageChannel: (args: BuildStandardFlatObjectMetadatasArgs) =>
messageChannel: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'messageChannel'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'messageChannel',
dependencyFlatEntityMaps,
context: {
universalIdentifier:
STANDARD_OBJECTS.messageChannel.universalIdentifier,
standardId: STANDARD_OBJECTS.messageChannel.universalIdentifier,
@@ -279,16 +395,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconMessage',
isSystem: true,
isAuditLogged: false,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'handle',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
messageFolder: (args: BuildStandardFlatObjectMetadatasArgs) =>
messageFolder: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'messageFolder'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'messageFolder',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.messageFolder.universalIdentifier,
standardId: STANDARD_OBJECTS.messageFolder.universalIdentifier,
nameSingular: 'messageFolder',
@@ -299,16 +426,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconFolder',
isSystem: true,
isAuditLogged: false,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'id',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
messageParticipant: (args: BuildStandardFlatObjectMetadatasArgs) =>
messageParticipant: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'messageParticipant'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'messageParticipant',
dependencyFlatEntityMaps,
context: {
universalIdentifier:
STANDARD_OBJECTS.messageParticipant.universalIdentifier,
standardId: STANDARD_OBJECTS.messageParticipant.universalIdentifier,
@@ -320,16 +458,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconUserCircle',
isSystem: true,
isAuditLogged: false,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'handle',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
messageThread: (args: BuildStandardFlatObjectMetadatasArgs) =>
messageThread: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'messageThread'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'messageThread',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.messageThread.universalIdentifier,
standardId: STANDARD_OBJECTS.messageThread.universalIdentifier,
nameSingular: 'messageThread',
@@ -341,16 +490,24 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
isSystem: true,
isAuditLogged: false,
isUIReadOnly: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'id',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
message: (args: BuildStandardFlatObjectMetadatasArgs) =>
message: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'message'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'message',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.message.universalIdentifier,
standardId: STANDARD_OBJECTS.message.universalIdentifier,
nameSingular: 'message',
@@ -362,16 +519,24 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
isSystem: true,
isAuditLogged: false,
isUIReadOnly: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'subject',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
note: (args: BuildStandardFlatObjectMetadatasArgs) =>
note: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'note'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'note',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.note.universalIdentifier,
standardId: STANDARD_OBJECTS.note.universalIdentifier,
nameSingular: 'note',
@@ -382,16 +547,24 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconNotes',
isSearchable: true,
shortcut: 'N',
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'title',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
noteTarget: (args: BuildStandardFlatObjectMetadatasArgs) =>
noteTarget: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'noteTarget'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'noteTarget',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.noteTarget.universalIdentifier,
standardId: STANDARD_OBJECTS.noteTarget.universalIdentifier,
nameSingular: 'noteTarget',
@@ -401,16 +574,24 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
description: 'A note target',
icon: 'IconCheckbox',
isSystem: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'id',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
opportunity: (args: BuildStandardFlatObjectMetadatasArgs) =>
opportunity: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'opportunity'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'opportunity',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.opportunity.universalIdentifier,
standardId: STANDARD_OBJECTS.opportunity.universalIdentifier,
nameSingular: 'opportunity',
@@ -421,16 +602,24 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconTargetArrow',
isSearchable: true,
shortcut: 'O',
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'name',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
person: (args: BuildStandardFlatObjectMetadatasArgs) =>
person: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'person'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'person',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.person.universalIdentifier,
standardId: STANDARD_OBJECTS.person.universalIdentifier,
nameSingular: 'person',
@@ -441,16 +630,24 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconUser',
isSearchable: true,
shortcut: 'P',
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'name',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
task: (args: BuildStandardFlatObjectMetadatasArgs) =>
task: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'task'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'task',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.task.universalIdentifier,
standardId: STANDARD_OBJECTS.task.universalIdentifier,
nameSingular: 'task',
@@ -461,16 +658,24 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconCheckbox',
isSearchable: true,
shortcut: 'T',
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'title',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
taskTarget: (args: BuildStandardFlatObjectMetadatasArgs) =>
taskTarget: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'taskTarget'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'taskTarget',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.taskTarget.universalIdentifier,
standardId: STANDARD_OBJECTS.taskTarget.universalIdentifier,
nameSingular: 'taskTarget',
@@ -480,16 +685,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
description: 'A task target',
icon: 'IconCheckbox',
isSystem: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'id',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
timelineActivity: (args: BuildStandardFlatObjectMetadatasArgs) =>
timelineActivity: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'timelineActivity'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'timelineActivity',
dependencyFlatEntityMaps,
context: {
universalIdentifier:
STANDARD_OBJECTS.timelineActivity.universalIdentifier,
standardId: STANDARD_OBJECTS.timelineActivity.universalIdentifier,
@@ -501,16 +717,24 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
'Aggregated / filtered event to be displayed on the timeline',
icon: 'IconTimelineEvent',
isSystem: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'name',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
workflow: (args: BuildStandardFlatObjectMetadatasArgs) =>
workflow: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'workflow'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'workflow',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.workflow.universalIdentifier,
standardId: STANDARD_OBJECTS.workflow.universalIdentifier,
nameSingular: 'workflow',
@@ -521,16 +745,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
icon: 'IconSettingsAutomation',
isSearchable: true,
shortcut: 'W',
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'name',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
workflowAutomatedTrigger: (args: BuildStandardFlatObjectMetadatasArgs) =>
workflowAutomatedTrigger: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'workflowAutomatedTrigger'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'workflowAutomatedTrigger',
dependencyFlatEntityMaps,
context: {
universalIdentifier:
STANDARD_OBJECTS.workflowAutomatedTrigger.universalIdentifier,
standardId:
@@ -542,16 +777,24 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
description: 'A workflow automated trigger',
icon: 'IconSettingsAutomation',
isSystem: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'id',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
workflowRun: (args: BuildStandardFlatObjectMetadatasArgs) =>
workflowRun: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'workflowRun'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'workflowRun',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.workflowRun.universalIdentifier,
standardId: STANDARD_OBJECTS.workflowRun.universalIdentifier,
nameSingular: 'workflowRun',
@@ -561,16 +804,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
description: 'A workflow run',
icon: 'IconHistoryToggle',
isSearchable: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'name',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
workflowVersion: (args: BuildStandardFlatObjectMetadatasArgs) =>
workflowVersion: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'workflowVersion'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'workflowVersion',
dependencyFlatEntityMaps,
context: {
universalIdentifier:
STANDARD_OBJECTS.workflowVersion.universalIdentifier,
standardId: STANDARD_OBJECTS.workflowVersion.universalIdentifier,
@@ -581,16 +835,27 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
description: 'A workflow version',
icon: 'IconVersions',
isSearchable: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'name',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
workspaceMember: (args: BuildStandardFlatObjectMetadatasArgs) =>
workspaceMember: ({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'workspaceMember'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
options: {
objectName: 'workspaceMember',
dependencyFlatEntityMaps,
context: {
universalIdentifier:
STANDARD_OBJECTS.workspaceMember.universalIdentifier,
standardId: STANDARD_OBJECTS.workspaceMember.universalIdentifier,
@@ -601,11 +866,15 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
description: 'A workspace member',
icon: 'IconUserCircle',
isSystem: true,
createdAt: args.createdAt,
labelIdentifierFieldMetadataName: 'name',
},
workspaceId: args.workspaceId,
standardFieldMetadataIdByObjectAndFieldName:
args.standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
twentyStandardApplicationId,
now,
}),
} satisfies Record<AllStandardObjectName, StandardFlatObjectMetadataBuilder>;
} satisfies {
[P in AllStandardObjectName]: (
args: Omit<CreateStandardObjectArgs<P>, 'context' | 'objectName'>,
) => FlatObjectMetadata;
};
@@ -1,16 +1,36 @@
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
import { TWENTY_STANDARD_APPLICATION } from 'src/engine/workspace-manager/twenty-standard-application/constants/twenty-standard-applications';
import { type AllStandardObjectFieldName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-field-name.type';
import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type';
import { type StandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import { type StandardBuilderArgs } from 'src/engine/workspace-manager/twenty-standard-application/types/metadata-standard-buillder-args.type';
const TWENTY_STANDARD_APPLICATION_ID =
TWENTY_STANDARD_APPLICATION.universalIdentifier;
export type CreateStandardObjectContext<O extends AllStandardObjectName> = {
universalIdentifier: string;
standardId: string;
nameSingular: O;
namePlural: string;
labelSingular: string;
labelPlural: string;
description: string;
icon: string;
isSystem?: boolean;
isSearchable?: boolean;
isAuditLogged?: boolean;
isUIReadOnly?: boolean;
shortcut?: string | null;
labelIdentifierFieldMetadataName: AllStandardObjectFieldName<O>;
};
export type CreateStandardObjectArgs<
O extends AllStandardObjectName = AllStandardObjectName,
> = StandardBuilderArgs<'objectMetadata'> & {
objectName: O;
context: CreateStandardObjectContext<O>;
};
export const createStandardObjectFlatMetadata = <
T extends AllStandardObjectName,
O extends AllStandardObjectName,
>({
options: {
context: {
universalIdentifier,
standardId,
nameSingular,
@@ -24,35 +44,16 @@ export const createStandardObjectFlatMetadata = <
isAuditLogged = true,
isUIReadOnly = false,
shortcut = null,
createdAt,
labelIdentifierFieldMetadataName,
},
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
}: {
options: {
universalIdentifier: string;
standardId: string;
nameSingular: T;
namePlural: string;
labelSingular: string;
labelPlural: string;
description: string;
icon: string;
isSystem?: boolean;
isSearchable?: boolean;
isAuditLogged?: boolean;
isUIReadOnly?: boolean;
shortcut?: string | null;
createdAt: Date;
labelIdentifierFieldMetadataName: AllStandardObjectFieldName<T>;
};
workspaceId: string;
standardFieldMetadataIdByObjectAndFieldName: StandardFieldMetadataIdByObjectAndFieldName;
}): FlatObjectMetadata => ({
twentyStandardApplicationId,
now,
}: CreateStandardObjectArgs<O>): FlatObjectMetadata => ({
universalIdentifier,
standardId,
applicationId: TWENTY_STANDARD_APPLICATION_ID,
applicationId: twentyStandardApplicationId,
workspaceId,
nameSingular,
namePlural,
@@ -80,7 +81,7 @@ export const createStandardObjectFlatMetadata = <
fieldMetadataIds: [],
indexMetadataIds: [],
viewIds: [],
createdAt,
updatedAt: createdAt,
createdAt: now,
updatedAt: now,
id: standardFieldMetadataIdByObjectAndFieldName[nameSingular].id,
});
@@ -1,30 +1,54 @@
import { createEmptyFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/constant/create-empty-flat-entity-maps.constant';
import { type AllFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/all-flat-entity-maps.type';
import { buildStandardFlatFieldMetadataMaps } from 'src/engine/workspace-manager/twenty-standard-application/utils/build-standard-flat-field-metadata-maps.util';
import { buildStandardFlatObjectMetadataMaps } from 'src/engine/workspace-manager/twenty-standard-application/utils/build-standard-flat-object-metadata-maps.util';
import { buildStandardFlatFieldMetadataMaps } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/build-standard-flat-field-metadata-maps.util';
import { getStandardFieldMetadataIdByObjectAndFieldName } from 'src/engine/workspace-manager/twenty-standard-application/utils/get-standard-field-metadata-id-by-object-and-field-name.util';
import { buildStandardFlatIndexMetadataMaps } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/build-standard-flat-index-metadata-maps.util';
import { buildStandardFlatObjectMetadataMaps } from 'src/engine/workspace-manager/twenty-standard-application/utils/object-metadata/build-standard-flat-object-metadata-maps.util';
export type ComputeTwentyStandardApplicationAllFlatEntityMapsArgs = {
now: Date;
workspaceId: string;
twentyStandardApplicationId: string;
};
export const computeTwentyStandardApplicationAllFlatEntityMaps = ({
createdAt,
now,
workspaceId,
}: {
createdAt: Date;
workspaceId: string;
}): AllFlatEntityMaps => {
twentyStandardApplicationId,
}: ComputeTwentyStandardApplicationAllFlatEntityMapsArgs): AllFlatEntityMaps => {
const standardFieldMetadataIdByObjectAndFieldName =
getStandardFieldMetadataIdByObjectAndFieldName();
const builderArgs = {
createdAt,
const flatObjectMetadataMaps = buildStandardFlatObjectMetadataMaps({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
};
twentyStandardApplicationId,
dependencyFlatEntityMaps: {
flatFieldMetadataMaps: createEmptyFlatEntityMaps(),
},
});
// Build object metadata maps using addFlatEntityToFlatEntityMapsOrThrow to prevent duplicate IDs
const flatObjectMetadataMaps =
buildStandardFlatObjectMetadataMaps(builderArgs);
const flatFieldMetadataMaps = buildStandardFlatFieldMetadataMaps({
now,
workspaceId,
standardFieldMetadataIdByObjectAndFieldName,
dependencyFlatEntityMaps: {
flatObjectMetadataMaps,
},
twentyStandardApplicationId,
});
// Build field metadata maps using addFlatEntityToFlatEntityMapsOrThrow to prevent duplicate IDs
const flatFieldMetadataMaps = buildStandardFlatFieldMetadataMaps(builderArgs);
const flatIndexMaps = buildStandardFlatIndexMetadataMaps({
dependencyFlatEntityMaps: {
flatFieldMetadataMaps,
flatObjectMetadataMaps,
},
now,
standardFieldMetadataIdByObjectAndFieldName,
workspaceId,
twentyStandardApplicationId,
});
return {
flatAgentMaps: {
@@ -43,11 +67,7 @@ export const computeTwentyStandardApplicationAllFlatEntityMaps = ({
universalIdentifiersByApplicationId: {},
},
flatFieldMetadataMaps,
flatIndexMaps: {
byId: {},
idByUniversalIdentifier: {},
universalIdentifiersByApplicationId: {},
},
flatIndexMaps,
flatObjectMetadataMaps,
flatRoleMaps: {
byId: {},