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
@@ -35,7 +35,6 @@ import { WorkspaceCleanerModule } from 'src/engine/workspace-manager/workspace-c
import { CalendarEventParticipantManagerModule } from 'src/modules/calendar/calendar-event-participant-manager/calendar-event-participant-manager.module';
import { CalendarModule } from 'src/modules/calendar/calendar.module';
import { AutoCompaniesAndContactsCreationJobModule } from 'src/modules/contact-creation-manager/jobs/auto-companies-and-contacts-creation-job.module';
import { FavoriteModule } from 'src/modules/favorite/favorite.module';
import { MessagingModule } from 'src/modules/messaging/messaging.module';
import { TimelineJobModule } from 'src/modules/timeline/jobs/timeline-job.module';
import { TimelineActivityModule } from 'src/modules/timeline/timeline-activity.module';
@@ -62,7 +61,6 @@ import { WorkflowModule } from 'src/modules/workflow/workflow.module';
TimelineJobModule,
WebhookJobModule,
WorkflowModule,
FavoriteModule,
NavigationMenuItemModule,
SdkClientModule,
WorkspaceCleanerModule,
@@ -26,7 +26,6 @@ import {
import { ToolCategory } from 'twenty-shared/ai';
import { type ToolDescriptor } from 'src/engine/core-modules/tool-provider/types/tool-descriptor.type';
import { type ToolIndexEntry } from 'src/engine/core-modules/tool-provider/types/tool-index-entry.type';
import { isFavoriteRelatedObject } from 'src/engine/metadata-modules/ai/ai-agent/utils/is-favorite-related-object.util';
import { isWorkflowRelatedObject } from 'src/engine/metadata-modules/ai/ai-agent/utils/is-workflow-related-object.util';
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/metadata-modules/flat-entity/services/workspace-many-or-all-flat-entity-maps-cache.service';
import { computePermissionIntersection } from 'src/engine/twenty-orm/utils/compute-permission-intersection.util';
@@ -81,10 +80,7 @@ export class DatabaseToolProvider implements ToolProvider {
.filter((obj) => obj.isActive);
for (const flatObject of allFlatObjects) {
if (
isWorkflowRelatedObject(flatObject) ||
isFavoriteRelatedObject(flatObject)
) {
if (isWorkflowRelatedObject(flatObject)) {
continue;
}
@@ -1,14 +0,0 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
const FAVORITE_STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS = [
STANDARD_OBJECTS.favorite.universalIdentifier,
STANDARD_OBJECTS.favoriteFolder.universalIdentifier,
] as const;
export const isFavoriteRelatedObject = (objectMetadata: {
universalIdentifier: string;
}): boolean => {
return FAVORITE_STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.includes(
objectMetadata.universalIdentifier as (typeof FAVORITE_STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS)[number],
);
};
@@ -503,29 +503,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
universalIdentifier: '20202020-add3-4658-8e23-d70dccb6d0ec',
}),
favorites: getFlatFieldMetadataMock({
id: '72415216-fed4-450b-aa00-691e37718b01',
objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
type: FieldMetadataType.RELATION,
name: 'favorites',
label: 'Favorites',
defaultValue: null,
description: 'Favorites linked to the company',
icon: 'IconHeart',
standardOverrides: null,
options: null,
settings: { relationType: RelationType.ONE_TO_MANY },
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: '9a11532c-6839-46ed-a2f5-ed03f88b86f6',
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
universalIdentifier: '20202020-4d1d-41ac-b13b-621631298d55',
}),
attachments: getFlatFieldMetadataMock({
id: '44a572c5-d620-47f5-943a-346ae967e99e',
objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
@@ -1,506 +0,0 @@
import {
FieldMetadataType,
DateDisplayFormat,
RelationOnDeleteAction,
} from 'twenty-shared/types';
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
import { getFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock';
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
export const FAVORITE_FLAT_FIELDS_MOCK = {
position: getFlatFieldMetadataMock({
id: '64dbf3ef-a352-44bb-9055-f95822f18d0a',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.NUMBER,
name: 'position',
label: 'Position',
defaultValue: 0,
description: 'Favorite position',
icon: 'IconList',
standardOverrides: null,
options: null,
settings: null,
isCustom: false,
isActive: true,
isSystem: true,
isNullable: false,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: null,
relationTargetObjectMetadataId: null,
universalIdentifier: '20202020-dd26-42c6-8c3c-2a7598c204f6',
}),
id: getFlatFieldMetadataMock({
id: '49f58497-4e7c-49e6-b3bc-c91d4b8a8ddc',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.UUID,
name: 'id',
label: 'Id',
defaultValue: 'uuid',
description: 'Id',
icon: 'Icon123',
standardOverrides: null,
options: null,
settings: null,
isCustom: false,
isActive: true,
isSystem: true,
isNullable: false,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: null,
relationTargetObjectMetadataId: null,
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
}),
createdAt: getFlatFieldMetadataMock({
id: '0606a76c-8a72-48ca-90c6-526c729c25eb',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.DATE_TIME,
name: 'createdAt',
label: 'Creation date',
defaultValue: 'now',
description: 'Creation date',
icon: 'IconCalendar',
standardOverrides: null,
options: null,
settings: { displayFormat: DateDisplayFormat.RELATIVE },
isCustom: false,
isActive: true,
isSystem: false,
isNullable: false,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: false,
relationTargetFieldMetadataId: null,
relationTargetObjectMetadataId: null,
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
}),
updatedAt: getFlatFieldMetadataMock({
id: 'fb202982-0c8e-4917-8dda-acb8248be749',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.DATE_TIME,
name: 'updatedAt',
label: 'Last update',
defaultValue: 'now',
description: 'Last time the record was changed',
icon: 'IconCalendarClock',
standardOverrides: null,
options: null,
settings: { displayFormat: DateDisplayFormat.RELATIVE },
isCustom: false,
isActive: true,
isSystem: false,
isNullable: false,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: false,
relationTargetFieldMetadataId: null,
relationTargetObjectMetadataId: null,
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
}),
deletedAt: getFlatFieldMetadataMock({
id: 'ef52e151-a974-470f-bbe7-f345fd4eca65',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.DATE_TIME,
name: 'deletedAt',
label: 'Deleted at',
defaultValue: null,
description: 'Date when the record was deleted',
icon: 'IconCalendarMinus',
standardOverrides: null,
options: null,
settings: { displayFormat: DateDisplayFormat.RELATIVE },
isCustom: false,
isActive: true,
isSystem: false,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: null,
relationTargetObjectMetadataId: null,
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
}),
forWorkspaceMember: getFlatFieldMetadataMock({
id: '07f2c3ba-63d1-4e44-bac4-bc4591e51bac',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'forWorkspaceMember',
label: 'Workspace Member',
defaultValue: null,
description: 'Favorite workspace member',
icon: 'IconCircleUser',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.CASCADE,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'forWorkspaceMemberId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: false,
relationTargetFieldMetadataId: 'a15a4b41-1849-4dea-aa43-f53caad016be',
relationTargetObjectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840',
universalIdentifier: '20202020-ce63-49cb-9676-fdc0c45892cd',
}),
person: getFlatFieldMetadataMock({
id: '013cec20-e9cc-42db-b9b9-ff6bd0f52abd',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'person',
label: 'Person',
defaultValue: null,
description: 'Favorite person',
icon: 'IconUser',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.CASCADE,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'personId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: 'a1a72bee-1c15-4598-ba23-67ba8e3e505d',
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
universalIdentifier: '20202020-c428-4f40-b6f3-86091511c41c',
}),
company: getFlatFieldMetadataMock({
id: '9a11532c-6839-46ed-a2f5-ed03f88b86f6',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'company',
label: 'Company',
defaultValue: null,
description: 'Favorite company',
icon: 'IconBuildingSkyscraper',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.CASCADE,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'companyId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: '72415216-fed4-450b-aa00-691e37718b01',
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
universalIdentifier: '20202020-cff5-4682-8bf9-069169e08279',
}),
favoriteFolder: getFlatFieldMetadataMock({
id: 'fabbe669-b8fc-49fe-8010-f13d01eb61f1',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'favoriteFolder',
label: 'Favorite Folder',
defaultValue: null,
description: 'The folder this favorite belongs to',
icon: 'IconFolder',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.SET_NULL,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'favoriteFolderId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: '71b95076-6b8d-45c9-9a7c-ab981b81bd1b',
relationTargetObjectMetadataId: '35763b74-1abe-4c4b-9eab-27693f0ee06d',
universalIdentifier: '20202020-f658-4d12-8b4d-248356aa4bd9',
}),
opportunity: getFlatFieldMetadataMock({
id: '6380cf8e-4327-4d1e-ad21-1826ce4ecf05',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'opportunity',
label: 'Opportunity',
defaultValue: null,
description: 'Favorite opportunity',
icon: 'IconTargetArrow',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.CASCADE,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'opportunityId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: '87bb9924-a1cc-4357-9c8a-52141dabf266',
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
universalIdentifier: '20202020-dabc-48e1-8318-2781a2b32aa2',
}),
workflow: getFlatFieldMetadataMock({
id: '12c20527-9b1d-4922-9650-00cc31b26387',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'workflow',
label: 'Workflow',
defaultValue: null,
description: 'Favorite workflow',
icon: 'IconSettingsAutomation',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.CASCADE,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'workflowId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: 'b848abe8-276b-46c9-9eab-baf34d2a0583',
relationTargetObjectMetadataId: '664c19a5-0693-45d4-a4e5-76c3717db83c',
universalIdentifier: '20202020-b11b-4dc8-999a-6bd0a947b463',
}),
workflowVersion: getFlatFieldMetadataMock({
id: '5cb92f25-c067-4e19-afb3-c7cc038ed1a4',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'workflowVersion',
label: 'Workflow',
defaultValue: null,
description: 'Favorite workflow version',
icon: 'IconSettingsAutomation',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.CASCADE,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'workflowVersionId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: false,
relationTargetFieldMetadataId: 'ea6b6bda-6ba7-4549-b81a-1f3ced0d4b25',
relationTargetObjectMetadataId: '99cf5f27-b41d-4f25-a23b-9e47d27dae9b',
universalIdentifier: '20202020-e1b8-4caf-b55a-3ab4d4cbcd21',
}),
workflowRun: getFlatFieldMetadataMock({
id: 'a4bdd0d8-c36f-4519-812b-be4800ab14b0',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'workflowRun',
label: 'Workflow',
defaultValue: null,
description: 'Favorite workflow run',
icon: 'IconSettingsAutomation',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.CASCADE,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'workflowRunId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: false,
relationTargetFieldMetadataId: '444a6e9e-443d-4f04-a60d-32f76f17049c',
relationTargetObjectMetadataId: '06d95e96-b050-443f-946e-dd276d291a2f',
universalIdentifier: '20202020-db5a-4fe4-9a13-9afa22b1e762',
}),
task: getFlatFieldMetadataMock({
id: 'db16ab78-ea3f-4b67-93e3-6ad9ab1b7273',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'task',
label: 'Task',
defaultValue: null,
description: 'Favorite task',
icon: 'IconCheckbox',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.CASCADE,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'taskId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: '33e4eff0-ff0f-4530-802a-cd630481ee84',
relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0',
universalIdentifier: '20202020-1b1b-4b3b-8b1b-7f8d6a1d7d5c',
}),
note: getFlatFieldMetadataMock({
id: 'a61baf0f-2d43-4fda-9baf-efb000c17ecd',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'note',
label: 'Note',
defaultValue: null,
description: 'Favorite note',
icon: 'IconNotes',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.CASCADE,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'noteId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: '065a1ede-f773-48ca-84bf-70f61d838396',
relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c',
universalIdentifier: '20202020-1f25-43fe-8b00-af212fdde824',
}),
view: getFlatFieldMetadataMock({
id: 'accd216c-790e-4bd2-83bb-0700e06d0e5c',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'view',
label: 'View',
defaultValue: null,
description: 'Favorite view',
icon: 'IconLayoutCollage',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.CASCADE,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'viewId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: '90a103ec-7dce-4bd4-aed4-e2c9d46ecf32',
relationTargetObjectMetadataId: '8377fc0d-ec1c-4fb5-b6ae-9381d9b22a95',
universalIdentifier: '20202020-5a93-4fa9-acce-e73481a0bbdf',
}),
rocket: getFlatFieldMetadataMock({
id: '9448627d-725d-499e-a071-90fd5cfcf0ea',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'rocket',
label: 'Rocket',
defaultValue: null,
description: 'Favorites Rocket',
icon: 'IconBuildingSkyscraper',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.CASCADE,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'rocketId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: false,
relationTargetFieldMetadataId: '14010360-f3c2-442e-b05f-43c30158f246',
relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
universalIdentifier: '20202020-78f7-4d7d-86e9-7562ced0b381',
}),
pet: getFlatFieldMetadataMock({
id: 'd34b4048-bf0c-4c61-8ffe-59f1838a2cc4',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'pet',
label: 'Pet',
defaultValue: null,
description: 'Favorites Pet',
icon: 'IconBuildingSkyscraper',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.CASCADE,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'petId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: false,
relationTargetFieldMetadataId: '80bc4e7a-6bd1-4f2b-98b1-6333c631cc1a',
relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
universalIdentifier: '20202020-1bd7-4d10-80dc-968b9f5d1a8a',
}),
surveyResult: getFlatFieldMetadataMock({
id: '9cdfb5a1-bb9c-4a59-811d-f5a1034a8f8b',
objectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
type: FieldMetadataType.RELATION,
name: 'surveyResult',
label: 'Survey result',
defaultValue: null,
description: 'Favorites Survey result',
icon: 'IconBuildingSkyscraper',
standardOverrides: null,
options: null,
settings: {
onDelete: RelationOnDeleteAction.CASCADE,
relationType: RelationType.MANY_TO_ONE,
joinColumnName: 'surveyResultId',
},
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: false,
relationTargetFieldMetadataId: '8e11aced-3a20-4551-baa1-b38b98a74e1c',
relationTargetObjectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8',
universalIdentifier: '20202020-d049-4912-80ee-43b09fe3b0ac',
}),
} as const satisfies Record<string, FlatFieldMetadata>;
@@ -1,170 +0,0 @@
import { FieldMetadataType, DateDisplayFormat } from 'twenty-shared/types';
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
import { getFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock';
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
export const FAVORITE_FOLDER_FLAT_FIELDS_MOCK = {
position: getFlatFieldMetadataMock({
id: '5894ab56-99b7-49e8-98be-dd6524250df5',
objectMetadataId: '35763b74-1abe-4c4b-9eab-27693f0ee06d',
type: FieldMetadataType.NUMBER,
name: 'position',
label: 'Position',
defaultValue: 0,
description: 'Favorite folder position',
icon: 'IconList',
standardOverrides: null,
options: null,
settings: null,
isCustom: false,
isActive: true,
isSystem: true,
isNullable: false,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: null,
relationTargetObjectMetadataId: null,
universalIdentifier: '20202020-5278-4bde-8909-2cec74d43744',
}),
name: getFlatFieldMetadataMock({
id: '1502abe0-b2f8-43a7-ae55-91c826b34ffe',
objectMetadataId: '35763b74-1abe-4c4b-9eab-27693f0ee06d',
type: FieldMetadataType.TEXT,
name: 'name',
label: 'Name',
defaultValue: "''",
description: 'Name of the favorite folder',
icon: 'IconText',
standardOverrides: null,
options: null,
settings: null,
isCustom: false,
isActive: true,
isSystem: false,
isNullable: false,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: null,
relationTargetObjectMetadataId: null,
universalIdentifier: '20202020-82a3-4537-8ff0-dbce7eec35d6',
}),
id: getFlatFieldMetadataMock({
id: '85ab1864-0a92-4682-8583-82e8b696410b',
objectMetadataId: '35763b74-1abe-4c4b-9eab-27693f0ee06d',
type: FieldMetadataType.UUID,
name: 'id',
label: 'Id',
defaultValue: 'uuid',
description: 'Id',
icon: 'Icon123',
standardOverrides: null,
options: null,
settings: null,
isCustom: false,
isActive: true,
isSystem: true,
isNullable: false,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: null,
relationTargetObjectMetadataId: null,
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
}),
createdAt: getFlatFieldMetadataMock({
id: 'a92b4b66-c2de-483e-8973-6f12bf36ac1a',
objectMetadataId: '35763b74-1abe-4c4b-9eab-27693f0ee06d',
type: FieldMetadataType.DATE_TIME,
name: 'createdAt',
label: 'Creation date',
defaultValue: 'now',
description: 'Creation date',
icon: 'IconCalendar',
standardOverrides: null,
options: null,
settings: { displayFormat: DateDisplayFormat.RELATIVE },
isCustom: false,
isActive: true,
isSystem: false,
isNullable: false,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: false,
relationTargetFieldMetadataId: null,
relationTargetObjectMetadataId: null,
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
}),
updatedAt: getFlatFieldMetadataMock({
id: '3907fc24-3bf0-4f0b-88be-f9635e473145',
objectMetadataId: '35763b74-1abe-4c4b-9eab-27693f0ee06d',
type: FieldMetadataType.DATE_TIME,
name: 'updatedAt',
label: 'Last update',
defaultValue: 'now',
description: 'Last time the record was changed',
icon: 'IconCalendarClock',
standardOverrides: null,
options: null,
settings: { displayFormat: DateDisplayFormat.RELATIVE },
isCustom: false,
isActive: true,
isSystem: false,
isNullable: false,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: false,
relationTargetFieldMetadataId: null,
relationTargetObjectMetadataId: null,
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
}),
deletedAt: getFlatFieldMetadataMock({
id: '52dcb335-5ce1-4165-a30b-4a61e84af21f',
objectMetadataId: '35763b74-1abe-4c4b-9eab-27693f0ee06d',
type: FieldMetadataType.DATE_TIME,
name: 'deletedAt',
label: 'Deleted at',
defaultValue: null,
description: 'Date when the record was deleted',
icon: 'IconCalendarMinus',
standardOverrides: null,
options: null,
settings: { displayFormat: DateDisplayFormat.RELATIVE },
isCustom: false,
isActive: true,
isSystem: false,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: null,
relationTargetObjectMetadataId: null,
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
}),
favorites: getFlatFieldMetadataMock({
id: '71b95076-6b8d-45c9-9a7c-ab981b81bd1b',
objectMetadataId: '35763b74-1abe-4c4b-9eab-27693f0ee06d',
type: FieldMetadataType.RELATION,
name: 'favorites',
label: 'Favorites',
defaultValue: null,
description: 'Favorites in this folder',
icon: 'IconHeart',
standardOverrides: null,
options: null,
settings: { relationType: RelationType.ONE_TO_MANY },
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: 'fabbe669-b8fc-49fe-8010-f13d01eb61f1',
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
universalIdentifier: '20202020-b5e3-4b42-8af2-03cd4fd2e4d2',
}),
} as const satisfies Record<string, FlatFieldMetadata>;
@@ -286,27 +286,4 @@ export const NOTE_FLAT_FIELDS_MOCK = {
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
universalIdentifier: '20202020-7030-42f8-929c-1a57b25d6bce',
}),
favorites: getFlatFieldMetadataMock({
id: '065a1ede-f773-48ca-84bf-70f61d838396',
objectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c',
type: FieldMetadataType.RELATION,
name: 'favorites',
label: 'Favorites',
defaultValue: null,
description: 'Favorites linked to the note',
icon: 'IconHeart',
standardOverrides: null,
options: null,
settings: { relationType: RelationType.ONE_TO_MANY },
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: 'a61baf0f-2d43-4fda-9baf-efb000c17ecd',
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
universalIdentifier: '20202020-4d1d-41ac-b13b-621631298d67',
}),
} as const satisfies Record<string, FlatFieldMetadata>;
@@ -357,29 +357,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
universalIdentifier: '20202020-cbac-457e-b565-adece5fc815f',
}),
favorites: getFlatFieldMetadataMock({
id: '87bb9924-a1cc-4357-9c8a-52141dabf266',
objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
type: FieldMetadataType.RELATION,
name: 'favorites',
label: 'Favorites',
defaultValue: null,
description: 'Favorites linked to the opportunity',
icon: 'IconHeart',
standardOverrides: null,
options: null,
settings: { relationType: RelationType.ONE_TO_MANY },
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: '6380cf8e-4327-4d1e-ad21-1826ce4ecf05',
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
universalIdentifier: '20202020-a1c2-4500-aaae-83ba8a0e827a',
}),
taskTargets: getFlatFieldMetadataMock({
id: 'c0c9f9ac-0d40-4206-90e5-0d1e14f8a09f',
objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
@@ -469,29 +469,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
universalIdentifier: '20202020-c8fc-4258-8250-15905d3fcfec',
}),
favorites: getFlatFieldMetadataMock({
id: 'a1a72bee-1c15-4598-ba23-67ba8e3e505d',
objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
type: FieldMetadataType.RELATION,
name: 'favorites',
label: 'Favorites',
defaultValue: null,
description: 'Favorites linked to the contact',
icon: 'IconHeart',
standardOverrides: null,
options: null,
settings: { relationType: RelationType.ONE_TO_MANY },
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: '013cec20-e9cc-42db-b9b9-ff6bd0f52abd',
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
universalIdentifier: '20202020-4073-4117-9cf1-203bcdc91cbd',
}),
attachments: getFlatFieldMetadataMock({
id: '367ad117-de09-466c-94f8-ce99d951b5ce',
objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
@@ -213,29 +213,6 @@ export const PET_FLAT_FIELDS_MOCK = {
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
universalIdentifier: '20202020-f1ef-4ba4-8f33-1a4577afa477',
}),
favorites: getFlatFieldMetadataMock({
id: '80bc4e7a-6bd1-4f2b-98b1-6333c631cc1a',
objectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
type: FieldMetadataType.RELATION,
name: 'favorites',
label: 'Favorites',
defaultValue: null,
description: 'Favorites tied to the Pet',
icon: 'IconHeart',
standardOverrides: null,
options: null,
settings: { relationType: RelationType.ONE_TO_MANY },
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: false,
relationTargetFieldMetadataId: 'd34b4048-bf0c-4c61-8ffe-59f1838a2cc4',
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
universalIdentifier: '20202020-a4a7-4686-b296-1c6c3482ee21',
}),
attachments: getFlatFieldMetadataMock({
id: '231903d0-3b14-47ed-9a88-fbf11031c451',
objectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
@@ -190,29 +190,6 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
universalIdentifier: '20202020-f1ef-4ba4-8f33-1a4577afa477',
}),
favorites: getFlatFieldMetadataMock({
id: '14010360-f3c2-442e-b05f-43c30158f246',
objectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
type: FieldMetadataType.RELATION,
name: 'favorites',
label: 'Favorites',
defaultValue: null,
description: 'Favorites tied to the Rocket',
icon: 'IconHeart',
standardOverrides: null,
options: null,
settings: { relationType: RelationType.ONE_TO_MANY },
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: false,
relationTargetFieldMetadataId: '9448627d-725d-499e-a071-90fd5cfcf0ea',
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
universalIdentifier: '20202020-a4a7-4686-b296-1c6c3482ee21',
}),
attachments: getFlatFieldMetadataMock({
id: 'f5984acf-5128-42ac-840f-9d2888423699',
objectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
@@ -385,27 +385,4 @@ export const TASK_FLAT_FIELDS_MOCK = {
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
universalIdentifier: '20202020-c778-4278-99ee-23a2837aee64',
}),
favorites: getFlatFieldMetadataMock({
id: '33e4eff0-ff0f-4530-802a-cd630481ee84',
objectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0',
type: FieldMetadataType.RELATION,
name: 'favorites',
label: 'Favorites',
defaultValue: null,
description: 'Favorites linked to the task',
icon: 'IconHeart',
standardOverrides: null,
options: null,
settings: { relationType: RelationType.ONE_TO_MANY },
isCustom: false,
isActive: true,
isSystem: true,
isNullable: true,
isUnique: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
isLabelSyncedWithName: true,
relationTargetFieldMetadataId: 'db16ab78-ea3f-4b67-93e3-6ad9ab1b7273',
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
universalIdentifier: '20202020-4d1d-41ac-b13b-621631298d65',
}),
} as const satisfies Record<string, FlatFieldMetadata>;
@@ -1,7 +1,5 @@
import { ATTACHMENT_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/attachment-flat-object.mock';
import { COMPANY_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/company-flat-object.mock';
import { FAVORITE_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/favorite-flat-object.mock';
import { FAVORITE_FOLDER_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/favorite-folder-flat-object.mock';
import { NOTE_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/note-flat-object.mock';
import { NOTE_TARGET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/note-target-flat-object.mock';
import { OPPORTUNITY_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/opportunity-flat-object.mock';
@@ -24,6 +22,4 @@ export const ALL_FLAT_OBJECT_METADATA_MOCKS = [
NOTE_FLAT_OBJECT_MOCK,
COMPANY_FLAT_OBJECT_MOCK,
ATTACHMENT_FLAT_OBJECT_MOCK,
FAVORITE_FLAT_OBJECT_MOCK,
FAVORITE_FOLDER_FLAT_OBJECT_MOCK,
] as const;
@@ -1,25 +0,0 @@
import { getFlatObjectMetadataMock } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/get-flat-object-metadata.mock';
export const FAVORITE_FLAT_OBJECT_MOCK = getFlatObjectMetadataMock({
id: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
nameSingular: 'favorite',
namePlural: 'favorites',
labelSingular: 'Favorite',
labelPlural: 'Favorites',
description: 'A favorite that can be accessed from the left menu',
icon: 'IconHeart',
standardOverrides: null,
targetTableName: 'DEPRECATED',
isCustom: false,
isRemote: false,
isActive: true,
isSystem: true,
isAuditLogged: true,
isSearchable: false,
shortcut: null,
labelIdentifierFieldMetadataId: '49f58497-4e7c-49e6-b3bc-c91d4b8a8ddc',
imageIdentifierFieldMetadataId: null,
isLabelSyncedWithName: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
universalIdentifier: '20202020-ab56-4e05-92a3-e2414a499860',
});
@@ -1,25 +0,0 @@
import { getFlatObjectMetadataMock } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/get-flat-object-metadata.mock';
export const FAVORITE_FOLDER_FLAT_OBJECT_MOCK = getFlatObjectMetadataMock({
id: '35763b74-1abe-4c4b-9eab-27693f0ee06d',
nameSingular: 'favoriteFolder',
namePlural: 'favoriteFolders',
labelSingular: 'Favorite Folder',
labelPlural: 'Favorite Folders',
description: 'A Folder of favorites',
icon: 'IconFolder',
standardOverrides: null,
targetTableName: 'DEPRECATED',
isCustom: false,
isRemote: false,
isActive: true,
isSystem: true,
isAuditLogged: true,
isSearchable: false,
shortcut: null,
labelIdentifierFieldMetadataId: '85ab1864-0a92-4682-8583-82e8b696410b',
imageIdentifierFieldMetadataId: null,
isLabelSyncedWithName: false,
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
universalIdentifier: '20202020-7cf8-401f-8211-a9587d27fd2d',
});
@@ -1,6 +1,4 @@
import { ATTACHMENT_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/attachment-flat-object.mock';
import { FAVORITE_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/favorite-flat-object.mock';
import { FAVORITE_FOLDER_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/favorite-folder-flat-object.mock';
import { NOTE_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/note-flat-object.mock';
import { NOTE_TARGET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/note-target-flat-object.mock';
import { TASK_TARGET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/task-target-flat-object.mock';
@@ -10,8 +8,6 @@ export const STANDARD_RELATION_TARGET_FLAT_OBJECT_METADATA_MOCKS = [
NOTE_FLAT_OBJECT_MOCK,
TIMELINE_ACTIVITY_FLAT_OBJECT_MOCK,
NOTE_TARGET_FLAT_OBJECT_MOCK,
FAVORITE_FLAT_OBJECT_MOCK,
ATTACHMENT_FLAT_OBJECT_MOCK,
TASK_TARGET_FLAT_OBJECT_MOCK,
FAVORITE_FOLDER_FLAT_OBJECT_MOCK,
] as const;
@@ -24,7 +24,6 @@ import { type UniversalFlatObjectMetadata } from 'src/engine/workspace-manager/w
const morphIdByRelationObjectNameSingular = {
timelineActivity:
STANDARD_OBJECTS.timelineActivity.morphIds.targetMorphId.morphId,
favorite: null,
attachment: STANDARD_OBJECTS.attachment.morphIds.targetMorphId.morphId,
noteTarget: STANDARD_OBJECTS.noteTarget.morphIds.targetMorphId.morphId,
taskTarget: STANDARD_OBJECTS.taskTarget.morphIds.targetMorphId.morphId,
@@ -4,7 +4,6 @@ import { DEFAULT_LABEL_IDENTIFIER_FIELD_NAME } from 'src/engine/metadata-modules
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
import { type FieldTypeAndNameMetadata } from 'src/engine/workspace-manager/utils/get-ts-vector-column-expression.util';
import { type AttachmentWorkspaceEntity } from 'src/modules/attachment/standard-objects/attachment.workspace-entity';
import { type FavoriteWorkspaceEntity } from 'src/modules/favorite/standard-objects/favorite.workspace-entity';
import { type NoteTargetWorkspaceEntity } from 'src/modules/note/standard-objects/note-target.workspace-entity';
import { type TaskTargetWorkspaceEntity } from 'src/modules/task/standard-objects/task-target.workspace-entity';
import { type TimelineActivityWorkspaceEntity } from 'src/modules/timeline/standard-objects/timeline-activity.workspace-entity';
@@ -22,7 +21,6 @@ export class CustomWorkspaceEntity extends BaseWorkspaceEntity {
updatedBy: ActorMetadata;
noteTargets: NoteTargetWorkspaceEntity[];
taskTargets: TaskTargetWorkspaceEntity[];
favorites: FavoriteWorkspaceEntity[];
attachments: AttachmentWorkspaceEntity[];
timelineActivities: TimelineActivityWorkspaceEntity[];
searchVector: string;
@@ -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',