Add relations in database event trigger output data (#11820)

## Done
- add relations in dropdown variables
- add relations in worklfow run inputs
- use objectMetadataMaps in workflow folder

## To do
- does not work with rest api calls, will be fixed after
https://github.com/twentyhq/twenty/pull/11349 is merged
- waiting for crud action relation fields
https://github.com/twentyhq/core-team-issues/issues/509
This commit is contained in:
martmull
2025-05-27 20:46:15 +02:00
committed by GitHub
parent 01b40e173b
commit 196d8c97a4
30 changed files with 568 additions and 302 deletions

View File

@ -3,10 +3,8 @@ import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataDefaultValue } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-default-value.interface';
import { FieldMetadataOptions } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-options.interface';
import { FieldMetadataSettings } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-settings.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
import { RelationMetadataEntity } from 'src/engine/metadata-modules/relation-metadata/relation-metadata.entity';
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
import { RelationMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-metadata.interface';
export interface FieldMetadataInterface<
T extends FieldMetadataType = FieldMetadataType,
@ -21,14 +19,15 @@ export interface FieldMetadataInterface<
objectMetadataId: string;
workspaceId?: string;
description?: string;
icon?: string;
isNullable?: boolean;
isUnique?: boolean;
fromRelationMetadata?: RelationMetadataEntity;
toRelationMetadata?: RelationMetadataEntity;
fromRelationMetadata?: RelationMetadataInterface;
toRelationMetadata?: RelationMetadataInterface;
relationTargetFieldMetadataId?: string;
relationTargetFieldMetadata?: FieldMetadataEntity;
relationTargetFieldMetadata?: FieldMetadataInterface;
relationTargetObjectMetadataId?: string;
relationTargetObjectMetadata?: ObjectMetadataEntity;
relationTargetObjectMetadata?: ObjectMetadataInterface;
isCustom?: boolean;
isSystem?: boolean;
isActive?: boolean;

View File

@ -14,6 +14,7 @@ export interface ObjectMetadataInterface {
labelSingular: string;
labelPlural: string;
description?: string;
icon?: string;
targetTableName: string;
fromRelations: RelationMetadataInterface[];
toRelations: RelationMetadataInterface[];

View File

@ -7,4 +7,8 @@ import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/typ
export const removeFieldMapsFromObjectMetadata = (
objectMetadata: ObjectMetadataItemWithFieldMaps,
): ObjectMetadataInterface =>
omit(objectMetadata, ['fieldsById', 'fieldsByName']);
omit(objectMetadata, [
'fieldsById',
'fieldsByName',
'fieldsByJoinColumnName',
]);