Add MorphId column to MORPH_RELATION field metadata (#14285)
close https://github.com/twentyhq/core-team-issues/issues/1426
This commit is contained in:
+3
-1
@@ -4,6 +4,7 @@ import {
|
||||
computeMorphRelationFieldJoinColumnName,
|
||||
isDefined,
|
||||
} from 'twenty-shared/utils';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
|
||||
import { FieldMetadataExceptionCode } from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
@@ -64,7 +65,7 @@ export const fromMorphRelationCreateFieldInputToFlatFieldMetadatas = async ({
|
||||
|
||||
const morphRelationCreationPayload =
|
||||
morphRelationCreationPayloadValidation.result;
|
||||
|
||||
const morphId = v4();
|
||||
const flatFieldMetadatas = morphRelationCreationPayload.flatMap(
|
||||
({ relationCreationPayload, targetFlatObjectMetadata }) => {
|
||||
const sourceFlatObjectMetadataJoinColumnName =
|
||||
@@ -83,6 +84,7 @@ export const fromMorphRelationCreateFieldInputToFlatFieldMetadatas = async ({
|
||||
sourceFlatObjectMetadata,
|
||||
targetFlatObjectMetadata,
|
||||
workspaceId,
|
||||
morphId,
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
+3
@@ -40,6 +40,7 @@ type GenerateMorphOrRelationFlatFieldMetadataPairArgs = {
|
||||
Pick<CreateFieldInput, 'relationCreationPayload' | 'type' | 'name'>
|
||||
> & { type: MorphOrRelationFieldMetadataType };
|
||||
workspaceId: string;
|
||||
morphId?: string | null;
|
||||
};
|
||||
export const generateMorphOrRelationFlatFieldMetadataPair = ({
|
||||
createFieldInput,
|
||||
@@ -47,6 +48,7 @@ export const generateMorphOrRelationFlatFieldMetadataPair = ({
|
||||
targetFlatObjectMetadata,
|
||||
workspaceId,
|
||||
sourceFlatObjectMetadataJoinColumnName,
|
||||
morphId = null,
|
||||
}: GenerateMorphOrRelationFlatFieldMetadataPairArgs): FlatFieldMetadata<MorphOrRelationFieldMetadataType>[] => {
|
||||
const { relationCreationPayload } = createFieldInput;
|
||||
|
||||
@@ -66,6 +68,7 @@ export const generateMorphOrRelationFlatFieldMetadataPair = ({
|
||||
workspaceId,
|
||||
fieldMetadataId: sourceRelationTargetFieldMetadataId,
|
||||
}),
|
||||
morphId,
|
||||
objectMetadataId: sourceFlatObjectMetadata.id,
|
||||
icon: createFieldInput.icon ?? 'IconRelationOneToMany',
|
||||
type: createFieldInput.type,
|
||||
|
||||
+1
@@ -54,5 +54,6 @@ export const getDefaultFlatFieldMetadata = ({
|
||||
createdAt,
|
||||
updatedAt: createdAt,
|
||||
isUIReadOnly: createFieldInput.isUIReadOnly ?? false,
|
||||
morphId: null,
|
||||
} as const satisfies FlatFieldMetadata;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user