Centralize metadata relations constant + simplification (#16901)

# Introduction
As we introduced a new grain on relation extraction thanks to low level
`SyncableEntity` and `WorkspaceRelatedEntity` we're able to strictly
typesafe extract metadata entity

The new constant centralizes both many to one and one to many constants
metadata entity constants in a more strictly typesafe way. Remains only
the flatEntityForeignKey aggregator which has to be chosen manually
across all available targeted flat entity ids properties
This commit is contained in:
Paul Rastoin
2026-01-02 16:49:06 +01:00
committed by GitHub
parent 3cab1bf80b
commit 42c9ae1ebc
30 changed files with 569 additions and 409 deletions
@@ -2,7 +2,7 @@ import { type FieldMetadataType } from 'twenty-shared/types';
import { removePropertiesFromRecord } from 'twenty-shared/utils';
import { type FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { ALL_METADATA_RELATION_PROPERTIES } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-relations-properties.constant';
import { getMetadataEntityRelationProperties } from 'src/engine/metadata-modules/flat-entity/utils/get-metadata-entity-relation-properties.util';
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
export const fromFieldMetadataEntityToFlatFieldMetadata = <
@@ -13,9 +13,7 @@ export const fromFieldMetadataEntityToFlatFieldMetadata = <
): FlatFieldMetadata => {
const fieldMetadataWithoutRelations = removePropertiesFromRecord(
fieldMetadataEntity,
Object.keys(
ALL_METADATA_RELATION_PROPERTIES.fieldMetadata,
) as (keyof typeof ALL_METADATA_RELATION_PROPERTIES.fieldMetadata)[],
getMetadataEntityRelationProperties('fieldMetadata'),
);
return {