Remove Favorite and FavoriteFolder from workspace schema (#19536)

## Summary

- Removes all workspace schema definitions for `Favorite` and
`FavoriteFolder` entities, which have been fully migrated to
`NavigationMenuItems`
- Deletes 26 standalone files including workspace entities, NestJS
modules, services, listeners, jobs, standard application builders (field
metadata, views, view fields, view field groups, indexes, page layouts),
mocks, and integration tests
- Cleans up ~40 modified files: removes `favorites` relation from 10
workspace entities and their field metadata utils, removes entries from
all builder maps, shared constants (`STANDARD_OBJECTS`,
`CoreObjectNameSingular`, `DEFAULT_RELATIONS_OBJECTS_STANDARD_IDS`), SDK
default relations, AI tool filtering, and standard object icons
This commit is contained in:
Charles Bochet
2026-04-10 12:47:06 +02:00
committed by GitHub
parent 34a903b4fa
commit b284c8323c
117 changed files with 24640 additions and 32339 deletions
@@ -6,8 +6,6 @@ import {
STANDARD_COMPANY_PAGE_LAYOUT_CONFIG,
STANDARD_CONNECTED_ACCOUNT_PAGE_LAYOUT_CONFIG,
STANDARD_DASHBOARD_PAGE_LAYOUT_CONFIG,
STANDARD_FAVORITE_FOLDER_PAGE_LAYOUT_CONFIG,
STANDARD_FAVORITE_PAGE_LAYOUT_CONFIG,
STANDARD_MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_MESSAGE_FOLDER_PAGE_LAYOUT_CONFIG,
STANDARD_MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_PAGE_LAYOUT_CONFIG,
STANDARD_MESSAGE_CHANNEL_PAGE_LAYOUT_CONFIG,
@@ -35,8 +33,6 @@ export const STANDARD_PAGE_LAYOUTS = {
STANDARD_CALENDAR_EVENT_PARTICIPANT_PAGE_LAYOUT_CONFIG,
companyRecordPage: STANDARD_COMPANY_PAGE_LAYOUT_CONFIG,
connectedAccountRecordPage: STANDARD_CONNECTED_ACCOUNT_PAGE_LAYOUT_CONFIG,
favoriteRecordPage: STANDARD_FAVORITE_PAGE_LAYOUT_CONFIG,
favoriteFolderRecordPage: STANDARD_FAVORITE_FOLDER_PAGE_LAYOUT_CONFIG,
messageChannelRecordPage: STANDARD_MESSAGE_CHANNEL_PAGE_LAYOUT_CONFIG,
messageChannelMessageAssociationRecordPage:
STANDARD_MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_PAGE_LAYOUT_CONFIG,
@@ -174,91 +174,7 @@ exports[`getStandardPageLayoutMetadataRelatedEntityIds should return standard pa
},
},
},
"favoriteFolderRecordPage": {
"id": "00000000-0000-0000-0000-000000000058",
"tabs": {
"home": {
"id": "00000000-0000-0000-0000-000000000059",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000060",
},
},
},
"timeline": {
"id": "00000000-0000-0000-0000-000000000061",
"widgets": {
"timeline": {
"id": "00000000-0000-0000-0000-000000000062",
},
},
},
},
},
"favoriteRecordPage": {
"id": "00000000-0000-0000-0000-000000000053",
"tabs": {
"home": {
"id": "00000000-0000-0000-0000-000000000054",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000055",
},
},
},
"timeline": {
"id": "00000000-0000-0000-0000-000000000056",
"widgets": {
"timeline": {
"id": "00000000-0000-0000-0000-000000000057",
},
},
},
},
},
"messageChannelMessageAssociationMessageFolderRecordPage": {
"id": "00000000-0000-0000-0000-000000000073",
"tabs": {
"home": {
"id": "00000000-0000-0000-0000-000000000074",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000075",
},
},
},
"timeline": {
"id": "00000000-0000-0000-0000-000000000076",
"widgets": {
"timeline": {
"id": "00000000-0000-0000-0000-000000000077",
},
},
},
},
},
"messageChannelMessageAssociationRecordPage": {
"id": "00000000-0000-0000-0000-000000000068",
"tabs": {
"home": {
"id": "00000000-0000-0000-0000-000000000069",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000070",
},
},
},
"timeline": {
"id": "00000000-0000-0000-0000-000000000071",
"widgets": {
"timeline": {
"id": "00000000-0000-0000-0000-000000000072",
},
},
},
},
},
"messageChannelRecordPage": {
"id": "00000000-0000-0000-0000-000000000063",
"tabs": {
"home": {
@@ -279,56 +195,98 @@ exports[`getStandardPageLayoutMetadataRelatedEntityIds should return standard pa
},
},
},
"messageFolderRecordPage": {
"id": "00000000-0000-0000-0000-000000000078",
"messageChannelMessageAssociationRecordPage": {
"id": "00000000-0000-0000-0000-000000000058",
"tabs": {
"home": {
"id": "00000000-0000-0000-0000-000000000079",
"id": "00000000-0000-0000-0000-000000000059",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000080",
"id": "00000000-0000-0000-0000-000000000060",
},
},
},
"timeline": {
"id": "00000000-0000-0000-0000-000000000081",
"id": "00000000-0000-0000-0000-000000000061",
"widgets": {
"timeline": {
"id": "00000000-0000-0000-0000-000000000082",
"id": "00000000-0000-0000-0000-000000000062",
},
},
},
},
},
"messageChannelRecordPage": {
"id": "00000000-0000-0000-0000-000000000053",
"tabs": {
"home": {
"id": "00000000-0000-0000-0000-000000000054",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000055",
},
},
},
"timeline": {
"id": "00000000-0000-0000-0000-000000000056",
"widgets": {
"timeline": {
"id": "00000000-0000-0000-0000-000000000057",
},
},
},
},
},
"messageFolderRecordPage": {
"id": "00000000-0000-0000-0000-000000000068",
"tabs": {
"home": {
"id": "00000000-0000-0000-0000-000000000069",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000070",
},
},
},
"timeline": {
"id": "00000000-0000-0000-0000-000000000071",
"widgets": {
"timeline": {
"id": "00000000-0000-0000-0000-000000000072",
},
},
},
},
},
"messageParticipantRecordPage": {
"id": "00000000-0000-0000-0000-000000000083",
"id": "00000000-0000-0000-0000-000000000073",
"tabs": {
"home": {
"id": "00000000-0000-0000-0000-000000000084",
"id": "00000000-0000-0000-0000-000000000074",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000085",
"id": "00000000-0000-0000-0000-000000000075",
},
},
},
"timeline": {
"id": "00000000-0000-0000-0000-000000000086",
"id": "00000000-0000-0000-0000-000000000076",
"widgets": {
"timeline": {
"id": "00000000-0000-0000-0000-000000000087",
"id": "00000000-0000-0000-0000-000000000077",
},
},
},
},
},
"messageThreadRecordPage": {
"id": "00000000-0000-0000-0000-000000000088",
"id": "00000000-0000-0000-0000-000000000078",
"tabs": {
"home": {
"id": "00000000-0000-0000-0000-000000000089",
"id": "00000000-0000-0000-0000-000000000079",
"widgets": {
"emailThread": {
"id": "00000000-0000-0000-0000-000000000090",
"id": "00000000-0000-0000-0000-000000000080",
},
},
},
@@ -369,32 +327,102 @@ exports[`getStandardPageLayoutMetadataRelatedEntityIds should return standard pa
},
},
"noteRecordPage": {
"id": "00000000-0000-0000-0000-000000000091",
"id": "00000000-0000-0000-0000-000000000081",
"tabs": {
"files": {
"id": "00000000-0000-0000-0000-000000000099",
"id": "00000000-0000-0000-0000-000000000089",
"widgets": {
"files": {
"id": "00000000-0000-0000-0000-000000000100",
"id": "00000000-0000-0000-0000-000000000090",
},
},
},
"home": {
"id": "00000000-0000-0000-0000-000000000082",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000083",
},
"noteRichText": {
"id": "00000000-0000-0000-0000-000000000084",
},
},
},
"note": {
"id": "00000000-0000-0000-0000-000000000085",
"widgets": {
"noteRichText": {
"id": "00000000-0000-0000-0000-000000000086",
},
},
},
"timeline": {
"id": "00000000-0000-0000-0000-000000000087",
"widgets": {
"timeline": {
"id": "00000000-0000-0000-0000-000000000088",
},
},
},
},
},
"opportunityRecordPage": {
"id": "00000000-0000-0000-0000-000000000091",
"tabs": {
"calendar": {
"id": "00000000-0000-0000-0000-000000000107",
"widgets": {
"calendar": {
"id": "00000000-0000-0000-0000-000000000108",
},
},
},
"emails": {
"id": "00000000-0000-0000-0000-000000000105",
"widgets": {
"emails": {
"id": "00000000-0000-0000-0000-000000000106",
},
},
},
"files": {
"id": "00000000-0000-0000-0000-000000000103",
"widgets": {
"files": {
"id": "00000000-0000-0000-0000-000000000104",
},
},
},
"home": {
"id": "00000000-0000-0000-0000-000000000092",
"widgets": {
"company": {
"id": "00000000-0000-0000-0000-000000000095",
},
"fields": {
"id": "00000000-0000-0000-0000-000000000093",
},
"noteRichText": {
"owner": {
"id": "00000000-0000-0000-0000-000000000096",
},
"pointOfContact": {
"id": "00000000-0000-0000-0000-000000000094",
},
},
},
"note": {
"id": "00000000-0000-0000-0000-000000000095",
"notes": {
"id": "00000000-0000-0000-0000-000000000101",
"widgets": {
"noteRichText": {
"id": "00000000-0000-0000-0000-000000000096",
"notes": {
"id": "00000000-0000-0000-0000-000000000102",
},
},
},
"tasks": {
"id": "00000000-0000-0000-0000-000000000099",
"widgets": {
"tasks": {
"id": "00000000-0000-0000-0000-000000000100",
},
},
},
@@ -408,169 +436,120 @@ exports[`getStandardPageLayoutMetadataRelatedEntityIds should return standard pa
},
},
},
"opportunityRecordPage": {
"id": "00000000-0000-0000-0000-000000000101",
"tabs": {
"calendar": {
"id": "00000000-0000-0000-0000-000000000117",
"widgets": {
"calendar": {
"id": "00000000-0000-0000-0000-000000000118",
},
},
},
"emails": {
"id": "00000000-0000-0000-0000-000000000115",
"widgets": {
"emails": {
"id": "00000000-0000-0000-0000-000000000116",
},
},
},
"files": {
"id": "00000000-0000-0000-0000-000000000113",
"widgets": {
"files": {
"id": "00000000-0000-0000-0000-000000000114",
},
},
},
"home": {
"id": "00000000-0000-0000-0000-000000000102",
"widgets": {
"company": {
"id": "00000000-0000-0000-0000-000000000105",
},
"fields": {
"id": "00000000-0000-0000-0000-000000000103",
},
"owner": {
"id": "00000000-0000-0000-0000-000000000106",
},
"pointOfContact": {
"id": "00000000-0000-0000-0000-000000000104",
},
},
},
"notes": {
"id": "00000000-0000-0000-0000-000000000111",
"widgets": {
"notes": {
"id": "00000000-0000-0000-0000-000000000112",
},
},
},
"tasks": {
"id": "00000000-0000-0000-0000-000000000109",
"widgets": {
"tasks": {
"id": "00000000-0000-0000-0000-000000000110",
},
},
},
"timeline": {
"id": "00000000-0000-0000-0000-000000000107",
"widgets": {
"timeline": {
"id": "00000000-0000-0000-0000-000000000108",
},
},
},
},
},
"personRecordPage": {
"id": "00000000-0000-0000-0000-000000000119",
"id": "00000000-0000-0000-0000-000000000109",
"tabs": {
"calendar": {
"id": "00000000-0000-0000-0000-000000000134",
"id": "00000000-0000-0000-0000-000000000124",
"widgets": {
"calendar": {
"id": "00000000-0000-0000-0000-000000000135",
"id": "00000000-0000-0000-0000-000000000125",
},
},
},
"emails": {
"id": "00000000-0000-0000-0000-000000000132",
"id": "00000000-0000-0000-0000-000000000122",
"widgets": {
"emails": {
"id": "00000000-0000-0000-0000-000000000133",
},
},
},
"files": {
"id": "00000000-0000-0000-0000-000000000130",
"widgets": {
"files": {
"id": "00000000-0000-0000-0000-000000000131",
},
},
},
"home": {
"id": "00000000-0000-0000-0000-000000000120",
"widgets": {
"company": {
"id": "00000000-0000-0000-0000-000000000122",
},
"fields": {
"id": "00000000-0000-0000-0000-000000000121",
},
"pointOfContactForOpportunities": {
"id": "00000000-0000-0000-0000-000000000123",
},
},
},
"files": {
"id": "00000000-0000-0000-0000-000000000120",
"widgets": {
"files": {
"id": "00000000-0000-0000-0000-000000000121",
},
},
},
"home": {
"id": "00000000-0000-0000-0000-000000000110",
"widgets": {
"company": {
"id": "00000000-0000-0000-0000-000000000112",
},
"fields": {
"id": "00000000-0000-0000-0000-000000000111",
},
"pointOfContactForOpportunities": {
"id": "00000000-0000-0000-0000-000000000113",
},
},
},
"notes": {
"id": "00000000-0000-0000-0000-000000000128",
"id": "00000000-0000-0000-0000-000000000118",
"widgets": {
"notes": {
"id": "00000000-0000-0000-0000-000000000129",
"id": "00000000-0000-0000-0000-000000000119",
},
},
},
"tasks": {
"id": "00000000-0000-0000-0000-000000000126",
"id": "00000000-0000-0000-0000-000000000116",
"widgets": {
"tasks": {
"id": "00000000-0000-0000-0000-000000000127",
"id": "00000000-0000-0000-0000-000000000117",
},
},
},
"timeline": {
"id": "00000000-0000-0000-0000-000000000124",
"id": "00000000-0000-0000-0000-000000000114",
"widgets": {
"timeline": {
"id": "00000000-0000-0000-0000-000000000125",
"id": "00000000-0000-0000-0000-000000000115",
},
},
},
},
},
"taskRecordPage": {
"id": "00000000-0000-0000-0000-000000000136",
"id": "00000000-0000-0000-0000-000000000126",
"tabs": {
"files": {
"id": "00000000-0000-0000-0000-000000000144",
"id": "00000000-0000-0000-0000-000000000134",
"widgets": {
"files": {
"id": "00000000-0000-0000-0000-000000000145",
"id": "00000000-0000-0000-0000-000000000135",
},
},
},
"home": {
"id": "00000000-0000-0000-0000-000000000137",
"id": "00000000-0000-0000-0000-000000000127",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000138",
"id": "00000000-0000-0000-0000-000000000128",
},
"taskRichText": {
"id": "00000000-0000-0000-0000-000000000139",
"id": "00000000-0000-0000-0000-000000000129",
},
},
},
"note": {
"id": "00000000-0000-0000-0000-000000000140",
"id": "00000000-0000-0000-0000-000000000130",
"widgets": {
"taskRichText": {
"id": "00000000-0000-0000-0000-000000000131",
},
},
},
"timeline": {
"id": "00000000-0000-0000-0000-000000000132",
"widgets": {
"timeline": {
"id": "00000000-0000-0000-0000-000000000133",
},
},
},
},
},
"workflowAutomatedTriggerRecordPage": {
"id": "00000000-0000-0000-0000-000000000139",
"tabs": {
"home": {
"id": "00000000-0000-0000-0000-000000000140",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000141",
},
},
@@ -585,83 +564,62 @@ exports[`getStandardPageLayoutMetadataRelatedEntityIds should return standard pa
},
},
},
"workflowAutomatedTriggerRecordPage": {
"id": "00000000-0000-0000-0000-000000000149",
"tabs": {
"home": {
"id": "00000000-0000-0000-0000-000000000150",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000151",
},
},
},
"timeline": {
"id": "00000000-0000-0000-0000-000000000152",
"widgets": {
"timeline": {
"id": "00000000-0000-0000-0000-000000000153",
},
},
},
},
},
"workflowRecordPage": {
"id": "00000000-0000-0000-0000-000000000146",
"id": "00000000-0000-0000-0000-000000000136",
"tabs": {
"flow": {
"id": "00000000-0000-0000-0000-000000000147",
"id": "00000000-0000-0000-0000-000000000137",
"widgets": {
"workflow": {
"id": "00000000-0000-0000-0000-000000000148",
"id": "00000000-0000-0000-0000-000000000138",
},
},
},
},
},
"workflowRunRecordPage": {
"id": "00000000-0000-0000-0000-000000000160",
"id": "00000000-0000-0000-0000-000000000150",
"tabs": {
"flow": {
"id": "00000000-0000-0000-0000-000000000164",
"id": "00000000-0000-0000-0000-000000000154",
"widgets": {
"workflowRun": {
"id": "00000000-0000-0000-0000-000000000165",
"id": "00000000-0000-0000-0000-000000000155",
},
},
},
"home": {
"id": "00000000-0000-0000-0000-000000000161",
"id": "00000000-0000-0000-0000-000000000151",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000162",
"id": "00000000-0000-0000-0000-000000000152",
},
"workflow": {
"id": "00000000-0000-0000-0000-000000000163",
"id": "00000000-0000-0000-0000-000000000153",
},
},
},
},
},
"workflowVersionRecordPage": {
"id": "00000000-0000-0000-0000-000000000154",
"id": "00000000-0000-0000-0000-000000000144",
"tabs": {
"flow": {
"id": "00000000-0000-0000-0000-000000000158",
"id": "00000000-0000-0000-0000-000000000148",
"widgets": {
"workflowVersion": {
"id": "00000000-0000-0000-0000-000000000159",
"id": "00000000-0000-0000-0000-000000000149",
},
},
},
"home": {
"id": "00000000-0000-0000-0000-000000000155",
"id": "00000000-0000-0000-0000-000000000145",
"widgets": {
"fields": {
"id": "00000000-0000-0000-0000-000000000156",
"id": "00000000-0000-0000-0000-000000000146",
},
"workflow": {
"id": "00000000-0000-0000-0000-000000000157",
"id": "00000000-0000-0000-0000-000000000147",
},
},
},
@@ -14,8 +14,6 @@ import { buildCalendarEventStandardFlatFieldMetadatas } from 'src/engine/workspa
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 { buildMessageChannelMessageAssociationMessageFolderStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-message-channel-message-association-message-folder-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 { buildMessageChannelMessageAssociationStandardFlatFieldMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/field-metadata/compute-message-channel-message-association-standard-flat-field-metadata.util';
@@ -53,8 +51,6 @@ const STANDARD_FLAT_FIELD_METADATA_BUILDERS_BY_OBJECT_NAME = {
company: buildCompanyStandardFlatFieldMetadatas,
connectedAccount: buildConnectedAccountStandardFlatFieldMetadatas,
dashboard: buildDashboardStandardFlatFieldMetadatas,
favorite: buildFavoriteStandardFlatFieldMetadatas,
favoriteFolder: buildFavoriteFolderStandardFlatFieldMetadatas,
message: buildMessageStandardFlatFieldMetadatas,
messageChannel: buildMessageChannelStandardFlatFieldMetadatas,
messageChannelMessageAssociation:
@@ -461,28 +461,6 @@ export const buildCompanyStandardFlatFieldMetadatas = ({
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'favorites',
label: i18nLabel(msg`Favorites`),
description: i18nLabel(msg`Favorites linked to the company`),
icon: 'IconHeart',
isNullable: true,
targetObjectName: 'favorite',
targetFieldName: 'company',
settings: {
relationType: RelationType.ONE_TO_MANY,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
attachments: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
@@ -254,28 +254,6 @@ export const buildDashboardStandardFlatFieldMetadatas = ({
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'favorites',
label: i18nLabel(msg`Favorites`),
description: i18nLabel(msg`Favorites linked to the dashboard`),
icon: 'IconHeart',
isNullable: false,
targetObjectName: 'favorite',
targetFieldName: 'dashboard',
settings: {
relationType: RelationType.ONE_TO_MANY,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
attachments: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
@@ -1,246 +0,0 @@
import { msg } from '@lingui/core/macro';
import { i18nLabel } from 'src/engine/workspace-manager/twenty-standard-application/utils/i18n-label.util';
import {
DateDisplayFormat,
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 {
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 { getTsVectorColumnExpressionFromFields } from 'src/engine/workspace-manager/utils/get-ts-vector-column-expression.util';
import { SEARCH_FIELDS_FOR_FAVORITE_FOLDER } from 'src/modules/favorite-folder/standard-objects/favorite-folder.workspace-entity';
export const buildFavoriteFolderStandardFlatFieldMetadatas = ({
now,
objectName,
workspaceId,
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<
CreateStandardFieldArgs<'favoriteFolder', FieldMetadataType>,
'context'
>): Record<
AllStandardObjectFieldName<'favoriteFolder'>,
FlatFieldMetadata
> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: i18nLabel(msg`Id`),
description: i18nLabel(msg`Id`),
icon: 'Icon123',
isSystem: true,
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: i18nLabel(msg`Creation date`),
description: i18nLabel(msg`Creation date`),
icon: 'IconCalendar',
isSystem: true,
isNullable: false,
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: DateDisplayFormat.RELATIVE },
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: i18nLabel(msg`Last update`),
description: i18nLabel(msg`Last time the record was changed`),
icon: 'IconCalendarClock',
isSystem: true,
isNullable: false,
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: DateDisplayFormat.RELATIVE },
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: i18nLabel(msg`Deleted at`),
description: i18nLabel(msg`Date when the record was deleted`),
icon: 'IconCalendarMinus',
isSystem: true,
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: DateDisplayFormat.RELATIVE },
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdBy: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'createdBy',
type: FieldMetadataType.ACTOR,
label: i18nLabel(msg`Created by`),
description: i18nLabel(msg`The creator of the record`),
icon: 'IconCreativeCommonsSa',
isSystem: true,
isUIReadOnly: true,
isNullable: false,
defaultValue: {
source: "'MANUAL'",
name: "'System'",
workspaceMemberId: null,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedBy: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'updatedBy',
type: FieldMetadataType.ACTOR,
label: i18nLabel(msg`Updated by`),
description: i18nLabel(
msg`The workspace member who last updated the record`,
),
icon: 'IconUserCircle',
isSystem: true,
isUIReadOnly: true,
isNullable: false,
defaultValue: {
source: "'MANUAL'",
name: "'System'",
workspaceMemberId: null,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// FavoriteFolder-specific fields
position: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'position',
type: FieldMetadataType.POSITION,
label: i18nLabel(msg`Position`),
description: i18nLabel(msg`Favorite folder position`),
icon: 'IconHierarchy2',
isSystem: true,
isNullable: false,
isUIReadOnly: true,
defaultValue: 0,
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
searchVector: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'searchVector',
type: FieldMetadataType.TS_VECTOR,
label: i18nLabel(msg`Search vector`),
description: i18nLabel(msg`Field used for full-text search`),
icon: 'IconUser',
isSystem: true,
isNullable: true,
settings: {
generatedType: 'STORED',
asExpression: getTsVectorColumnExpressionFromFields(
SEARCH_FIELDS_FOR_FAVORITE_FOLDER,
),
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
name: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'name',
type: FieldMetadataType.TEXT,
label: i18nLabel(msg`Name`),
description: i18nLabel(msg`Name of the favorite folder`),
icon: 'IconText',
isNullable: true,
isUIReadOnly: true,
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
favorites: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'favorites',
label: i18nLabel(msg`Favorites`),
description: i18nLabel(msg`Favorites in this folder`),
icon: 'IconHeart',
isNullable: false,
isUIReadOnly: true,
targetObjectName: 'favorite',
targetFieldName: 'favoriteFolder',
settings: {
relationType: RelationType.ONE_TO_MANY,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -1,495 +0,0 @@
import { msg } from '@lingui/core/macro';
import { i18nLabel } from 'src/engine/workspace-manager/twenty-standard-application/utils/i18n-label.util';
import {
DateDisplayFormat,
FieldMetadataType,
RelationOnDeleteAction,
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 {
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 { getTsVectorColumnExpressionFromFields } from 'src/engine/workspace-manager/utils/get-ts-vector-column-expression.util';
export const buildFavoriteStandardFlatFieldMetadatas = ({
now,
objectName,
workspaceId,
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<
CreateStandardFieldArgs<'favorite', FieldMetadataType>,
'context'
>): Record<AllStandardObjectFieldName<'favorite'>, FlatFieldMetadata> => ({
// Base fields from BaseWorkspaceEntity
id: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'id',
type: FieldMetadataType.UUID,
label: i18nLabel(msg`Id`),
description: i18nLabel(msg`Id`),
icon: 'Icon123',
isSystem: true,
isNullable: false,
isUIReadOnly: true,
defaultValue: 'uuid',
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdAt: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'createdAt',
type: FieldMetadataType.DATE_TIME,
label: i18nLabel(msg`Creation date`),
description: i18nLabel(msg`Creation date`),
icon: 'IconCalendar',
isSystem: true,
isNullable: false,
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: DateDisplayFormat.RELATIVE },
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedAt: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'updatedAt',
type: FieldMetadataType.DATE_TIME,
label: i18nLabel(msg`Last update`),
description: i18nLabel(msg`Last time the record was changed`),
icon: 'IconCalendarClock',
isSystem: true,
isNullable: false,
isUIReadOnly: true,
defaultValue: 'now',
settings: { displayFormat: DateDisplayFormat.RELATIVE },
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
deletedAt: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'deletedAt',
type: FieldMetadataType.DATE_TIME,
label: i18nLabel(msg`Deleted at`),
description: i18nLabel(msg`Date when the record was deleted`),
icon: 'IconCalendarMinus',
isSystem: true,
isNullable: true,
isUIReadOnly: true,
settings: { displayFormat: DateDisplayFormat.RELATIVE },
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
createdBy: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'createdBy',
type: FieldMetadataType.ACTOR,
label: i18nLabel(msg`Created by`),
description: i18nLabel(msg`The creator of the record`),
icon: 'IconCreativeCommonsSa',
isSystem: true,
isUIReadOnly: true,
isNullable: false,
defaultValue: {
source: "'MANUAL'",
name: "'System'",
workspaceMemberId: null,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
updatedBy: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'updatedBy',
type: FieldMetadataType.ACTOR,
label: i18nLabel(msg`Updated by`),
description: i18nLabel(
msg`The workspace member who last updated the record`,
),
icon: 'IconUserCircle',
isSystem: true,
isUIReadOnly: true,
isNullable: false,
defaultValue: {
source: "'MANUAL'",
name: "'System'",
workspaceMemberId: null,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Favorite-specific fields
position: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'position',
type: FieldMetadataType.POSITION,
label: i18nLabel(msg`Position`),
description: i18nLabel(msg`Favorite position`),
icon: 'IconHierarchy2',
isSystem: true,
isNullable: false,
isUIReadOnly: true,
defaultValue: 0,
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
searchVector: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'searchVector',
type: FieldMetadataType.TS_VECTOR,
label: i18nLabel(msg`Search vector`),
description: i18nLabel(msg`Field used for full-text search`),
icon: 'IconUser',
isSystem: true,
isNullable: true,
settings: {
generatedType: 'STORED',
asExpression: getTsVectorColumnExpressionFromFields([
{ name: 'id', type: FieldMetadataType.UUID },
]),
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
viewId: createStandardFieldFlatMetadata({
objectName,
workspaceId,
context: {
fieldName: 'viewId',
type: FieldMetadataType.UUID,
label: i18nLabel(msg`ViewId`),
description: i18nLabel(msg`ViewId`),
icon: 'IconView',
isNullable: true,
isUIReadOnly: true,
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
// Relation fields
forWorkspaceMember: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'forWorkspaceMember',
label: i18nLabel(msg`Workspace Member`),
description: i18nLabel(msg`Favorite workspace member`),
icon: 'IconCircleUser',
isNullable: true,
isUIReadOnly: true,
targetObjectName: 'workspaceMember',
targetFieldName: 'favorites',
settings: {
relationType: RelationType.MANY_TO_ONE,
onDelete: RelationOnDeleteAction.CASCADE,
joinColumnName: 'forWorkspaceMemberId',
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
person: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'person',
label: i18nLabel(msg`Person`),
description: i18nLabel(msg`Favorite person`),
icon: 'IconUser',
isNullable: true,
isUIReadOnly: true,
targetObjectName: 'person',
targetFieldName: 'favorites',
settings: {
relationType: RelationType.MANY_TO_ONE,
onDelete: RelationOnDeleteAction.CASCADE,
joinColumnName: 'personId',
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
company: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'company',
label: i18nLabel(msg`Company`),
description: i18nLabel(msg`Favorite company`),
icon: 'IconBuildingSkyscraper',
isNullable: true,
isUIReadOnly: true,
targetObjectName: 'company',
targetFieldName: 'favorites',
settings: {
relationType: RelationType.MANY_TO_ONE,
onDelete: RelationOnDeleteAction.CASCADE,
joinColumnName: 'companyId',
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
opportunity: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'opportunity',
label: i18nLabel(msg`Opportunity`),
description: i18nLabel(msg`Favorite opportunity`),
icon: 'IconTargetArrow',
isNullable: true,
isUIReadOnly: true,
targetObjectName: 'opportunity',
targetFieldName: 'favorites',
settings: {
relationType: RelationType.MANY_TO_ONE,
onDelete: RelationOnDeleteAction.CASCADE,
joinColumnName: 'opportunityId',
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflow: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'workflow',
label: i18nLabel(msg`Workflow`),
description: i18nLabel(msg`Favorite workflow`),
icon: 'IconSettingsAutomation',
isNullable: true,
isUIReadOnly: true,
targetObjectName: 'workflow',
targetFieldName: 'favorites',
settings: {
relationType: RelationType.MANY_TO_ONE,
onDelete: RelationOnDeleteAction.CASCADE,
joinColumnName: 'workflowId',
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflowVersion: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'workflowVersion',
label: i18nLabel(msg`Workflow`),
description: i18nLabel(msg`Favorite workflow version`),
icon: 'IconSettingsAutomation',
isNullable: true,
isUIReadOnly: true,
targetObjectName: 'workflowVersion',
targetFieldName: 'favorites',
settings: {
relationType: RelationType.MANY_TO_ONE,
onDelete: RelationOnDeleteAction.CASCADE,
joinColumnName: 'workflowVersionId',
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflowRun: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'workflowRun',
label: i18nLabel(msg`Workflow`),
description: i18nLabel(msg`Favorite workflow run`),
icon: 'IconSettingsAutomation',
isNullable: true,
isUIReadOnly: true,
targetObjectName: 'workflowRun',
targetFieldName: 'favorites',
settings: {
relationType: RelationType.MANY_TO_ONE,
onDelete: RelationOnDeleteAction.CASCADE,
joinColumnName: 'workflowRunId',
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
task: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'task',
label: i18nLabel(msg`Task`),
description: i18nLabel(msg`Favorite task`),
icon: 'IconCheckbox',
isNullable: true,
isUIReadOnly: true,
targetObjectName: 'task',
targetFieldName: 'favorites',
settings: {
relationType: RelationType.MANY_TO_ONE,
onDelete: RelationOnDeleteAction.CASCADE,
joinColumnName: 'taskId',
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
note: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'note',
label: i18nLabel(msg`Note`),
description: i18nLabel(msg`Favorite note`),
icon: 'IconNotes',
isNullable: true,
isUIReadOnly: true,
targetObjectName: 'note',
targetFieldName: 'favorites',
settings: {
relationType: RelationType.MANY_TO_ONE,
onDelete: RelationOnDeleteAction.CASCADE,
joinColumnName: 'noteId',
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
dashboard: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'dashboard',
label: i18nLabel(msg`Dashboard`),
description: i18nLabel(msg`Favorite dashboard`),
icon: 'IconLayoutDashboard',
isNullable: true,
isUIReadOnly: true,
targetObjectName: 'dashboard',
targetFieldName: 'favorites',
settings: {
relationType: RelationType.MANY_TO_ONE,
onDelete: RelationOnDeleteAction.CASCADE,
joinColumnName: 'dashboardId',
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
favoriteFolder: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'favoriteFolder',
label: i18nLabel(msg`Favorite Folder`),
description: i18nLabel(msg`The folder this favorite belongs to`),
icon: 'IconFolder',
isNullable: true,
isUIReadOnly: true,
targetObjectName: 'favoriteFolder',
targetFieldName: 'favorites',
settings: {
relationType: RelationType.MANY_TO_ONE,
onDelete: RelationOnDeleteAction.SET_NULL,
joinColumnName: 'favoriteFolderId',
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -303,26 +303,4 @@ export const buildNoteStandardFlatFieldMetadatas = ({
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'favorites',
label: i18nLabel(msg`Favorites`),
description: i18nLabel(msg`Favorites linked to the note`),
icon: 'IconHeart',
isNullable: false,
targetObjectName: 'favorite',
targetFieldName: 'note',
settings: {
relationType: RelationType.ONE_TO_MANY,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -356,28 +356,6 @@ export const buildOpportunityStandardFlatFieldMetadatas = ({
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'favorites',
label: i18nLabel(msg`Favorites`),
description: i18nLabel(msg`Favorites linked to the opportunity`),
icon: 'IconHeart',
isNullable: true,
targetObjectName: 'favorite',
targetFieldName: 'opportunity',
settings: {
relationType: RelationType.ONE_TO_MANY,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
taskTargets: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
@@ -434,28 +434,6 @@ export const buildPersonStandardFlatFieldMetadatas = ({
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'favorites',
label: i18nLabel(msg`Favorites`),
description: i18nLabel(msg`Favorites linked to the contact`),
icon: 'IconHeart',
isNullable: true,
targetObjectName: 'favorite',
targetFieldName: 'person',
settings: {
relationType: RelationType.ONE_TO_MANY,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
attachments: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
@@ -384,26 +384,4 @@ export const buildTaskStandardFlatFieldMetadatas = ({
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'favorites',
label: i18nLabel(msg`Favorites`),
description: i18nLabel(msg`Favorites linked to the task`),
icon: 'IconHeart',
isNullable: false,
targetObjectName: 'favorite',
targetFieldName: 'task',
settings: {
relationType: RelationType.ONE_TO_MANY,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -401,29 +401,6 @@ export const buildWorkflowRunStandardFlatFieldMetadatas = ({
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'favorites',
label: i18nLabel(msg`Favorites`),
description: i18nLabel(msg`Favorites linked to the workflow run`),
icon: 'IconHeart',
isNullable: false,
isUIReadOnly: true,
targetObjectName: 'favorite',
targetFieldName: 'workflowRun',
settings: {
relationType: RelationType.ONE_TO_MANY,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timelineActivities: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
@@ -340,28 +340,6 @@ export const buildWorkflowStandardFlatFieldMetadatas = ({
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'favorites',
label: i18nLabel(msg`Favorites`),
description: i18nLabel(msg`Favorites linked to the workflow`),
icon: 'IconHeart',
isNullable: false,
targetObjectName: 'favorite',
targetFieldName: 'workflow',
settings: {
relationType: RelationType.ONE_TO_MANY,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timelineActivities: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
@@ -347,29 +347,6 @@ export const buildWorkflowVersionStandardFlatFieldMetadatas = ({
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'favorites',
label: i18nLabel(msg`Favorites`),
description: i18nLabel(msg`Favorites linked to the workflow version`),
icon: 'IconHeart',
isNullable: false,
isUIReadOnly: true,
targetObjectName: 'favorite',
targetFieldName: 'workflowVersion',
settings: {
relationType: RelationType.ONE_TO_MANY,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
timelineActivities: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
@@ -476,29 +476,6 @@ export const buildWorkspaceMemberStandardFlatFieldMetadatas = ({
twentyStandardApplicationId,
now,
}),
favorites: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
context: {
type: FieldMetadataType.RELATION,
morphId: null,
fieldName: 'favorites',
label: i18nLabel(msg`Favorites`),
description: i18nLabel(msg`Favorites linked to the workspace member`),
icon: 'IconHeart',
isNullable: false,
isUIReadOnly: true,
targetObjectName: 'favorite',
targetFieldName: 'forWorkspaceMember',
settings: {
relationType: RelationType.ONE_TO_MANY,
},
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
accountOwnerForCompanies: createStandardRelationFieldFlatMetadata({
objectName,
workspaceId,
@@ -11,7 +11,6 @@ import { buildCalendarEventParticipantStandardFlatIndexMetadatas } from 'src/eng
import { buildCompanyStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-company-standard-flat-index-metadata.util';
import { buildConnectedAccountStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-connected-account-standard-flat-index-metadata.util';
import { buildDashboardStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-dashboard-standard-flat-index-metadata.util';
import { buildFavoriteStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-favorite-standard-flat-index-metadata.util';
import { buildMessageChannelMessageAssociationMessageFolderStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-channel-message-association-message-folder-standard-flat-index-metadata.util';
import { buildMessageChannelMessageAssociationStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-channel-message-association-standard-flat-index-metadata.util';
import { buildMessageChannelStandardFlatIndexMetadatas } from 'src/engine/workspace-manager/twenty-standard-application/utils/index/compute-message-channel-standard-flat-index-metadata.util';
@@ -47,7 +46,6 @@ const STANDARD_FLAT_INDEX_METADATA_BUILDERS_BY_OBJECT_NAME = {
company: buildCompanyStandardFlatIndexMetadatas,
connectedAccount: buildConnectedAccountStandardFlatIndexMetadatas,
dashboard: buildDashboardStandardFlatIndexMetadatas,
favorite: buildFavoriteStandardFlatIndexMetadatas,
message: buildMessageStandardFlatIndexMetadatas,
messageChannel: buildMessageChannelStandardFlatIndexMetadatas,
messageChannelMessageAssociation:
@@ -1,151 +0,0 @@
import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type';
import { type AllStandardObjectIndexName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-index-name.type';
import {
type CreateStandardIndexArgs,
createStandardIndexFlatMetadata,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/index/create-standard-index-flat-metadata.util';
export const buildFavoriteStandardFlatIndexMetadatas = ({
now,
objectName,
workspaceId,
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
}: Omit<CreateStandardIndexArgs<'favorite'>, 'context'>): Record<
AllStandardObjectIndexName<'favorite'>,
FlatIndexMetadata
> => ({
forWorkspaceMemberIdIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'forWorkspaceMemberIdIndex',
relatedFieldNames: ['forWorkspaceMember'],
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
personIdIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'personIdIndex',
relatedFieldNames: ['person'],
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
companyIdIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'companyIdIndex',
relatedFieldNames: ['company'],
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
favoriteFolderIdIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'favoriteFolderIdIndex',
relatedFieldNames: ['favoriteFolder'],
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
opportunityIdIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'opportunityIdIndex',
relatedFieldNames: ['opportunity'],
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflowIdIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'workflowIdIndex',
relatedFieldNames: ['workflow'],
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflowVersionIdIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'workflowVersionIdIndex',
relatedFieldNames: ['workflowVersion'],
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
workflowRunIdIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'workflowRunIdIndex',
relatedFieldNames: ['workflowRun'],
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
taskIdIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'taskIdIndex',
relatedFieldNames: ['task'],
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
noteIdIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'noteIdIndex',
relatedFieldNames: ['note'],
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
dashboardIdIndex: createStandardIndexFlatMetadata({
objectName,
workspaceId,
context: {
indexName: 'dashboardIdIndex',
relatedFieldNames: ['dashboard'],
},
standardObjectMetadataRelatedEntityIds,
dependencyFlatEntityMaps,
twentyStandardApplicationId,
now,
}),
});
@@ -270,62 +270,6 @@ export const STANDARD_FLAT_OBJECT_METADATA_BUILDERS_BY_OBJECT_NAME = {
twentyStandardApplicationId,
now,
}),
favorite: ({
now,
workspaceId,
standardObjectMetadataRelatedEntityIds,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<CreateStandardObjectArgs<'favorite'>, 'context' | 'objectName'>) =>
createStandardObjectFlatMetadata({
objectName: 'favorite',
dependencyFlatEntityMaps,
context: {
universalIdentifier: STANDARD_OBJECTS.favorite.universalIdentifier,
nameSingular: 'favorite',
namePlural: 'favorites',
labelSingular: i18nLabel(msg`Favorite`),
labelPlural: i18nLabel(msg`Favorites`),
description: i18nLabel(msg`A favorite`),
icon: 'IconHeart',
isSystem: true,
labelIdentifierFieldMetadataName: 'id',
},
workspaceId,
standardObjectMetadataRelatedEntityIds,
twentyStandardApplicationId,
now,
}),
favoriteFolder: ({
now,
workspaceId,
standardObjectMetadataRelatedEntityIds,
twentyStandardApplicationId,
dependencyFlatEntityMaps,
}: Omit<
CreateStandardObjectArgs<'favoriteFolder'>,
'context' | 'objectName'
>) =>
createStandardObjectFlatMetadata({
objectName: 'favoriteFolder',
dependencyFlatEntityMaps,
context: {
universalIdentifier:
STANDARD_OBJECTS.favoriteFolder.universalIdentifier,
nameSingular: 'favoriteFolder',
namePlural: 'favoriteFolders',
labelSingular: i18nLabel(msg`Favorite Folder`),
labelPlural: i18nLabel(msg`Favorite Folders`),
description: i18nLabel(msg`A favorite folder`),
icon: 'IconFolder',
isSystem: true,
labelIdentifierFieldMetadataName: 'id',
},
workspaceId,
standardObjectMetadataRelatedEntityIds,
twentyStandardApplicationId,
now,
}),
messageChannelMessageAssociation: ({
now,
workspaceId,
@@ -5,8 +5,6 @@ export { STANDARD_CALENDAR_EVENT_PARTICIPANT_PAGE_LAYOUT_CONFIG } from './standa
export { STANDARD_COMPANY_PAGE_LAYOUT_CONFIG } from './standard-company-page-layout.config';
export { STANDARD_CONNECTED_ACCOUNT_PAGE_LAYOUT_CONFIG } from './standard-connected-account-page-layout.config';
export { STANDARD_DASHBOARD_PAGE_LAYOUT_CONFIG } from './standard-dashboard-page-layout.config';
export { STANDARD_FAVORITE_FOLDER_PAGE_LAYOUT_CONFIG } from './standard-favorite-folder-page-layout.config';
export { STANDARD_FAVORITE_PAGE_LAYOUT_CONFIG } from './standard-favorite-page-layout.config';
export { STANDARD_MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_MESSAGE_FOLDER_PAGE_LAYOUT_CONFIG } from './standard-message-channel-message-association-message-folder-page-layout.config';
export { STANDARD_MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_PAGE_LAYOUT_CONFIG } from './standard-message-channel-message-association-page-layout.config';
export { STANDARD_MESSAGE_CHANNEL_PAGE_LAYOUT_CONFIG } from './standard-message-channel-page-layout.config';
@@ -1,44 +0,0 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
import {
TAB_PROPS,
WIDGET_PROPS,
} from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-page-layout-tabs.template';
import {
type StandardPageLayoutConfig,
type StandardPageLayoutTabConfig,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/page-layout-config/standard-page-layout-config.type';
const FAVORITE_FOLDER_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab0f-400f-800f-fa0efd0f0f01',
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac0f-400f-800f-fa0efd0f0f11',
...WIDGET_PROPS.fields,
},
},
},
timeline: {
universalIdentifier: '20202020-ab0f-400f-800f-fa0efd0f0f02',
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac0f-400f-800f-fa0efd0f0f21',
...WIDGET_PROPS.timeline,
},
},
},
} as const satisfies Record<string, StandardPageLayoutTabConfig>;
export const STANDARD_FAVORITE_FOLDER_PAGE_LAYOUT_CONFIG = {
name: 'Default Favorite Folder Layout',
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier:
STANDARD_OBJECTS.favoriteFolder.universalIdentifier,
universalIdentifier: '20202020-a10f-400f-800f-fa0efd0f0001',
defaultTabUniversalIdentifier: null,
tabs: FAVORITE_FOLDER_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,43 +0,0 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
import {
TAB_PROPS,
WIDGET_PROPS,
} from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-page-layout-tabs.template';
import {
type StandardPageLayoutConfig,
type StandardPageLayoutTabConfig,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/page-layout-config/standard-page-layout-config.type';
const FAVORITE_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab0e-400e-800e-fa0e0b1e0e01',
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac0e-400e-800e-fa0e0b1e0e11',
...WIDGET_PROPS.fields,
},
},
},
timeline: {
universalIdentifier: '20202020-ab0e-400e-800e-fa0e0b1e0e02',
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac0e-400e-800e-fa0e0b1e0e21',
...WIDGET_PROPS.timeline,
},
},
},
} as const satisfies Record<string, StandardPageLayoutTabConfig>;
export const STANDARD_FAVORITE_PAGE_LAYOUT_CONFIG = {
name: 'Default Favorite Layout',
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier: STANDARD_OBJECTS.favorite.universalIdentifier,
universalIdentifier: '20202020-a10e-400e-800e-fa0e0b1e0001',
defaultTabUniversalIdentifier: null,
tabs: FAVORITE_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -74,8 +74,6 @@ const RECORD_PAGE_FIELDS_VIEW_NAME_BY_OBJECT: Partial<
calendarEventParticipant: 'calendarEventParticipantRecordPageFields',
company: 'companyRecordPageFields',
connectedAccount: 'connectedAccountRecordPageFields',
favorite: 'favoriteRecordPageFields',
favoriteFolder: 'favoriteFolderRecordPageFields',
messageChannel: 'messageChannelRecordPageFields',
messageChannelMessageAssociation:
'messageChannelMessageAssociationRecordPageFields',
@@ -9,8 +9,6 @@ import { computeStandardCalendarChannelEventAssociationViewFieldGroups } from 's
import { computeStandardCalendarEventParticipantViewFieldGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-calendar-event-participant-view-field-groups.util';
import { computeStandardCompanyViewFieldGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-company-view-field-groups.util';
import { computeStandardConnectedAccountViewFieldGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-connected-account-view-field-groups.util';
import { computeStandardFavoriteViewFieldGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-favorite-view-field-groups.util';
import { computeStandardFavoriteFolderViewFieldGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-favorite-folder-view-field-groups.util';
import { computeStandardMessageChannelViewFieldGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-message-channel-view-field-groups.util';
import { computeStandardMessageChannelMessageAssociationViewFieldGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-message-channel-message-association-view-field-groups.util';
import { computeStandardMessageChannelMessageAssociationMessageFolderViewFieldGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/compute-standard-message-channel-message-association-message-folder-view-field-groups.util';
@@ -38,8 +36,6 @@ const STANDARD_FLAT_VIEW_FIELD_GROUP_METADATA_BUILDERS_BY_OBJECT_NAME = {
computeStandardCalendarEventParticipantViewFieldGroups,
company: computeStandardCompanyViewFieldGroups,
connectedAccount: computeStandardConnectedAccountViewFieldGroups,
favorite: computeStandardFavoriteViewFieldGroups,
favoriteFolder: computeStandardFavoriteFolderViewFieldGroups,
messageChannel: computeStandardMessageChannelViewFieldGroups,
messageChannelMessageAssociation:
computeStandardMessageChannelMessageAssociationViewFieldGroups,
@@ -1,36 +0,0 @@
import { type FlatViewFieldGroup } from 'src/engine/metadata-modules/flat-view-field-group/types/flat-view-field-group.type';
import {
createStandardViewFieldGroupFlatMetadata,
type CreateStandardViewFieldGroupArgs,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/create-standard-view-field-group-flat-metadata.util';
export const computeStandardFavoriteFolderViewFieldGroups = (
args: Omit<CreateStandardViewFieldGroupArgs<'favoriteFolder'>, 'context'>,
): Record<string, FlatViewFieldGroup> => {
return {
favoriteFolderRecordPageFieldsGeneral:
createStandardViewFieldGroupFlatMetadata({
...args,
objectName: 'favoriteFolder',
context: {
viewName: 'favoriteFolderRecordPageFields',
viewFieldGroupName: 'general',
name: 'General',
position: 0,
isVisible: true,
},
}),
favoriteFolderRecordPageFieldsSystem:
createStandardViewFieldGroupFlatMetadata({
...args,
objectName: 'favoriteFolder',
context: {
viewName: 'favoriteFolderRecordPageFields',
viewFieldGroupName: 'system',
name: 'System',
position: 1,
isVisible: true,
},
}),
};
};
@@ -1,34 +0,0 @@
import { type FlatViewFieldGroup } from 'src/engine/metadata-modules/flat-view-field-group/types/flat-view-field-group.type';
import {
createStandardViewFieldGroupFlatMetadata,
type CreateStandardViewFieldGroupArgs,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field-group/create-standard-view-field-group-flat-metadata.util';
export const computeStandardFavoriteViewFieldGroups = (
args: Omit<CreateStandardViewFieldGroupArgs<'favorite'>, 'context'>,
): Record<string, FlatViewFieldGroup> => {
return {
favoriteRecordPageFieldsGeneral: createStandardViewFieldGroupFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'favoriteRecordPageFields',
viewFieldGroupName: 'general',
name: 'General',
position: 0,
isVisible: true,
},
}),
favoriteRecordPageFieldsSystem: createStandardViewFieldGroupFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'favoriteRecordPageFields',
viewFieldGroupName: 'system',
name: 'System',
position: 1,
isVisible: true,
},
}),
};
};
@@ -14,8 +14,6 @@ import { computeStandardCalendarEventViewFields } from 'src/engine/workspace-man
import { computeStandardCompanyViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-company-view-fields.util';
import { computeStandardConnectedAccountViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-connected-account-view-fields.util';
import { computeStandardDashboardViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-dashboard-view-fields.util';
import { computeStandardFavoriteFolderViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-favorite-folder-view-fields.util';
import { computeStandardFavoriteViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-favorite-view-fields.util';
import { computeStandardMessageChannelMessageAssociationMessageFolderViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-message-channel-message-association-message-folder-view-fields.util';
import { computeStandardMessageChannelMessageAssociationViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-message-channel-message-association-view-fields.util';
import { computeStandardMessageChannelViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-message-channel-view-fields.util';
@@ -52,8 +50,6 @@ const STANDARD_FLAT_VIEW_FIELD_METADATA_BUILDERS_BY_OBJECT_NAME = {
company: computeStandardCompanyViewFields,
connectedAccount: computeStandardConnectedAccountViewFields,
dashboard: computeStandardDashboardViewFields,
favorite: computeStandardFavoriteViewFields,
favoriteFolder: computeStandardFavoriteFolderViewFields,
message: computeStandardMessageViewFields,
messageChannel: computeStandardMessageChannelViewFields,
messageChannelMessageAssociation:
@@ -191,19 +191,6 @@ export const computeStandardCompanyViewFields = (
viewFieldGroupName: 'general',
},
}),
companyRecordPageFieldsFavorites: createStandardViewFieldFlatMetadata({
...args,
objectName: 'company',
context: {
viewName: 'companyRecordPageFields',
viewFieldName: 'favorites',
fieldName: 'favorites',
position: 6,
isVisible: false,
size: 150,
viewFieldGroupName: 'general',
},
}),
companyRecordPageFieldsAttachments: createStandardViewFieldFlatMetadata({
...args,
objectName: 'company',
@@ -1,65 +0,0 @@
import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type';
import {
createStandardViewFieldFlatMetadata,
type CreateStandardViewFieldArgs,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util';
export const computeStandardFavoriteFolderViewFields = (
args: Omit<CreateStandardViewFieldArgs<'favoriteFolder'>, 'context'>,
): Record<string, FlatViewField> => {
return {
allFavoriteFoldersName: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favoriteFolder',
context: {
viewName: 'allFavoriteFolders',
viewFieldName: 'name',
fieldName: 'name',
position: 0,
isVisible: true,
size: 150,
},
}),
allFavoriteFoldersCreatedAt: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favoriteFolder',
context: {
viewName: 'allFavoriteFolders',
viewFieldName: 'createdAt',
fieldName: 'createdAt',
position: 1,
isVisible: true,
size: 150,
},
}),
favoriteFolderRecordPageFieldsCreatedAt:
createStandardViewFieldFlatMetadata({
...args,
objectName: 'favoriteFolder',
context: {
viewName: 'favoriteFolderRecordPageFields',
viewFieldName: 'createdAt',
fieldName: 'createdAt',
position: 0,
isVisible: true,
size: 150,
viewFieldGroupName: 'system',
},
}),
favoriteFolderRecordPageFieldsCreatedBy:
createStandardViewFieldFlatMetadata({
...args,
objectName: 'favoriteFolder',
context: {
viewName: 'favoriteFolderRecordPageFields',
viewFieldName: 'createdBy',
fieldName: 'createdBy',
position: 1,
isVisible: true,
size: 150,
viewFieldGroupName: 'system',
},
}),
};
};
@@ -1,254 +0,0 @@
import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type';
import {
createStandardViewFieldFlatMetadata,
type CreateStandardViewFieldArgs,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util';
export const computeStandardFavoriteViewFields = (
args: Omit<CreateStandardViewFieldArgs<'favorite'>, 'context'>,
): Record<string, FlatViewField> => {
return {
allFavoritesForWorkspaceMember: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'allFavorites',
viewFieldName: 'forWorkspaceMember',
fieldName: 'forWorkspaceMember',
position: 0,
isVisible: true,
size: 150,
},
}),
allFavoritesPerson: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'allFavorites',
viewFieldName: 'person',
fieldName: 'person',
position: 1,
isVisible: true,
size: 150,
},
}),
allFavoritesCompany: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'allFavorites',
viewFieldName: 'company',
fieldName: 'company',
position: 2,
isVisible: true,
size: 150,
},
}),
allFavoritesOpportunity: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'allFavorites',
viewFieldName: 'opportunity',
fieldName: 'opportunity',
position: 3,
isVisible: true,
size: 150,
},
}),
allFavoritesTask: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'allFavorites',
viewFieldName: 'task',
fieldName: 'task',
position: 4,
isVisible: true,
size: 150,
},
}),
allFavoritesNote: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'allFavorites',
viewFieldName: 'note',
fieldName: 'note',
position: 5,
isVisible: true,
size: 150,
},
}),
allFavoritesDashboard: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'allFavorites',
viewFieldName: 'dashboard',
fieldName: 'dashboard',
position: 6,
isVisible: true,
size: 150,
},
}),
allFavoritesFavoriteFolder: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'allFavorites',
viewFieldName: 'favoriteFolder',
fieldName: 'favoriteFolder',
position: 7,
isVisible: true,
size: 150,
},
}),
allFavoritesCreatedAt: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'allFavorites',
viewFieldName: 'createdAt',
fieldName: 'createdAt',
position: 8,
isVisible: true,
size: 150,
},
}),
favoriteRecordPageFieldsForWorkspaceMember:
createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'favoriteRecordPageFields',
viewFieldName: 'forWorkspaceMember',
fieldName: 'forWorkspaceMember',
position: 0,
isVisible: true,
size: 150,
viewFieldGroupName: 'general',
},
}),
favoriteRecordPageFieldsPerson: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'favoriteRecordPageFields',
viewFieldName: 'person',
fieldName: 'person',
position: 1,
isVisible: true,
size: 150,
viewFieldGroupName: 'general',
},
}),
favoriteRecordPageFieldsCompany: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'favoriteRecordPageFields',
viewFieldName: 'company',
fieldName: 'company',
position: 2,
isVisible: true,
size: 150,
viewFieldGroupName: 'general',
},
}),
favoriteRecordPageFieldsOpportunity: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'favoriteRecordPageFields',
viewFieldName: 'opportunity',
fieldName: 'opportunity',
position: 3,
isVisible: true,
size: 150,
viewFieldGroupName: 'general',
},
}),
favoriteRecordPageFieldsTask: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'favoriteRecordPageFields',
viewFieldName: 'task',
fieldName: 'task',
position: 4,
isVisible: true,
size: 150,
viewFieldGroupName: 'general',
},
}),
favoriteRecordPageFieldsNote: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'favoriteRecordPageFields',
viewFieldName: 'note',
fieldName: 'note',
position: 5,
isVisible: true,
size: 150,
viewFieldGroupName: 'general',
},
}),
favoriteRecordPageFieldsDashboard: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'favoriteRecordPageFields',
viewFieldName: 'dashboard',
fieldName: 'dashboard',
position: 6,
isVisible: true,
size: 150,
viewFieldGroupName: 'general',
},
}),
favoriteRecordPageFieldsFavoriteFolder: createStandardViewFieldFlatMetadata(
{
...args,
objectName: 'favorite',
context: {
viewName: 'favoriteRecordPageFields',
viewFieldName: 'favoriteFolder',
fieldName: 'favoriteFolder',
position: 7,
isVisible: true,
size: 150,
viewFieldGroupName: 'general',
},
},
),
favoriteRecordPageFieldsCreatedAt: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'favoriteRecordPageFields',
viewFieldName: 'createdAt',
fieldName: 'createdAt',
position: 0,
isVisible: true,
size: 150,
viewFieldGroupName: 'system',
},
}),
favoriteRecordPageFieldsCreatedBy: createStandardViewFieldFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'favoriteRecordPageFields',
viewFieldName: 'createdBy',
fieldName: 'createdBy',
position: 1,
isVisible: true,
size: 150,
viewFieldGroupName: 'system',
},
}),
};
};
@@ -125,19 +125,6 @@ export const computeStandardNoteViewFields = (
},
},
),
noteRecordPageFieldsFavorites: createStandardViewFieldFlatMetadata({
...args,
objectName: 'note',
context: {
viewName: 'noteRecordPageFields',
viewFieldName: 'favorites',
fieldName: 'favorites',
position: 4,
isVisible: false,
size: 150,
viewFieldGroupName: 'general',
},
}),
// System group
noteRecordPageFieldsCreatedAt: createStandardViewFieldFlatMetadata({
...args,
@@ -201,19 +201,6 @@ export const computeStandardOpportunityViewFields = (
viewFieldGroupName: 'deal',
},
}),
opportunityRecordPageFieldsFavorites: createStandardViewFieldFlatMetadata({
...args,
objectName: 'opportunity',
context: {
viewName: 'opportunityRecordPageFields',
viewFieldName: 'favorites',
fieldName: 'favorites',
position: 3,
isVisible: false,
size: 150,
viewFieldGroupName: 'deal',
},
}),
opportunityRecordPageFieldsTaskTargets: createStandardViewFieldFlatMetadata(
{
...args,
@@ -216,19 +216,6 @@ export const computeStandardPersonViewFields = (
viewFieldGroupName: 'general',
},
}),
personRecordPageFieldsFavorites: createStandardViewFieldFlatMetadata({
...args,
objectName: 'person',
context: {
viewName: 'personRecordPageFields',
viewFieldName: 'favorites',
fieldName: 'favorites',
position: 6,
isVisible: false,
size: 150,
viewFieldGroupName: 'general',
},
}),
personRecordPageFieldsAttachments: createStandardViewFieldFlatMetadata({
...args,
objectName: 'person',
@@ -349,19 +349,6 @@ export const computeStandardTaskViewFields = (
},
},
),
taskRecordPageFieldsFavorites: createStandardViewFieldFlatMetadata({
...args,
objectName: 'task',
context: {
viewName: 'taskRecordPageFields',
viewFieldName: 'favorites',
fieldName: 'favorites',
position: 7,
isVisible: false,
size: 150,
viewFieldGroupName: 'general',
},
}),
// System group
taskRecordPageFieldsCreatedAt: createStandardViewFieldFlatMetadata({
...args,
@@ -190,19 +190,6 @@ export const computeStandardWorkflowRunViewFields = (
viewFieldGroupName: 'system',
},
}),
workflowRunRecordPageFieldsFavorites: createStandardViewFieldFlatMetadata({
...args,
objectName: 'workflowRun',
context: {
viewName: 'workflowRunRecordPageFields',
viewFieldName: 'favorites',
fieldName: 'favorites',
position: 7,
isVisible: false,
size: 150,
viewFieldGroupName: 'general',
},
}),
workflowRunRecordPageFieldsTimelineActivities:
createStandardViewFieldFlatMetadata({
...args,
@@ -194,20 +194,6 @@ export const computeStandardWorkflowVersionViewFields = (
viewFieldGroupName: 'general',
},
}),
workflowVersionRecordPageFieldsFavorites:
createStandardViewFieldFlatMetadata({
...args,
objectName: 'workflowVersion',
context: {
viewName: 'workflowVersionRecordPageFields',
viewFieldName: 'favorites',
fieldName: 'favorites',
position: 5,
isVisible: false,
size: 150,
viewFieldGroupName: 'general',
},
}),
workflowVersionRecordPageFieldsTimelineActivities:
createStandardViewFieldFlatMetadata({
...args,
@@ -14,8 +14,6 @@ import { computeStandardCalendarEventViews } from 'src/engine/workspace-manager/
import { computeStandardCompanyViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-company-views.util';
import { computeStandardConnectedAccountViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-connected-account-views.util';
import { computeStandardDashboardViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-dashboard-views.util';
import { computeStandardFavoriteFolderViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-favorite-folder-views.util';
import { computeStandardFavoriteViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-favorite-views.util';
import { computeStandardMessageChannelMessageAssociationMessageFolderViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-message-channel-message-association-message-folder-views.util';
import { computeStandardMessageChannelMessageAssociationViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-message-channel-message-association-views.util';
import { computeStandardMessageChannelViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-message-channel-views.util';
@@ -52,8 +50,6 @@ const STANDARD_FLAT_VIEW_METADATA_BUILDERS_BY_OBJECT_NAME = {
company: computeStandardCompanyViews,
connectedAccount: computeStandardConnectedAccountViews,
dashboard: computeStandardDashboardViews,
favorite: computeStandardFavoriteViews,
favoriteFolder: computeStandardFavoriteFolderViews,
message: computeStandardMessageViews,
messageChannel: computeStandardMessageChannelViews,
messageChannelMessageAssociation:
@@ -1,38 +0,0 @@
import { ViewType, ViewKey } from 'twenty-shared/types';
import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type';
import {
createStandardViewFlatMetadata,
type CreateStandardViewArgs,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/view/create-standard-view-flat-metadata.util';
export const computeStandardFavoriteFolderViews = (
args: Omit<CreateStandardViewArgs<'favoriteFolder'>, 'context'>,
): Record<string, FlatView> => {
return {
allFavoriteFolders: createStandardViewFlatMetadata({
...args,
objectName: 'favoriteFolder',
context: {
viewName: 'allFavoriteFolders',
name: 'All {objectLabelPlural}',
type: ViewType.TABLE,
key: ViewKey.INDEX,
position: 0,
icon: 'IconList',
},
}),
favoriteFolderRecordPageFields: createStandardViewFlatMetadata({
...args,
objectName: 'favoriteFolder',
context: {
viewName: 'favoriteFolderRecordPageFields',
name: 'Favorite Folder Record Page Fields',
type: ViewType.FIELDS_WIDGET,
key: null,
position: 0,
icon: 'IconList',
},
}),
};
};
@@ -1,38 +0,0 @@
import { ViewType, ViewKey } from 'twenty-shared/types';
import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type';
import {
createStandardViewFlatMetadata,
type CreateStandardViewArgs,
} from 'src/engine/workspace-manager/twenty-standard-application/utils/view/create-standard-view-flat-metadata.util';
export const computeStandardFavoriteViews = (
args: Omit<CreateStandardViewArgs<'favorite'>, 'context'>,
): Record<string, FlatView> => {
return {
allFavorites: createStandardViewFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'allFavorites',
name: 'All {objectLabelPlural}',
type: ViewType.TABLE,
key: ViewKey.INDEX,
position: 0,
icon: 'IconList',
},
}),
favoriteRecordPageFields: createStandardViewFlatMetadata({
...args,
objectName: 'favorite',
context: {
viewName: 'favoriteRecordPageFields',
name: 'Favorite Record Page Fields',
type: ViewType.FIELDS_WIDGET,
key: null,
position: 0,
icon: 'IconList',
},
}),
};
};
@@ -13,7 +13,6 @@ export const STANDARD_OBJECT_ICONS = {
company: 'IconBuildingSkyscraper',
connectedAccount: 'IconAt',
dashboard: 'IconLayoutDashboard',
favorite: 'IconHeart',
auditLog: 'IconTimelineEvent',
messageChannelMessageAssociation: 'IconMessage',
messageChannel: 'IconMessage',