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
@@ -5,9 +5,9 @@ import { Repository } from 'typeorm';
import { WorkspaceCacheProvider } from 'src/engine/workspace-cache/interfaces/workspace-cache-provider.service';
import { type FlatSkillMaps } from 'src/engine/metadata-modules/flat-skill/types/flat-skill-maps.type';
import { transformSkillEntityToFlatSkill } from 'src/engine/metadata-modules/flat-skill/utils/transform-skill-entity-to-flat-skill.util';
import { createEmptyFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/constant/create-empty-flat-entity-maps.constant';
import { type FlatSkillMaps } from 'src/engine/metadata-modules/flat-skill/types/flat-skill-maps.type';
import { fromSkillEntityToFlatSkill } from 'src/engine/metadata-modules/flat-skill/utils/from-skill-entity-to-flat-skill.util';
import { SkillEntity } from 'src/engine/metadata-modules/skill/entities/skill.entity';
import { WorkspaceCache } from 'src/engine/workspace-cache/decorators/workspace-cache.decorator';
import { addFlatEntityToFlatEntityMapsThroughMutationOrThrow } from 'src/engine/workspace-manager/workspace-migration-v2/utils/add-flat-entity-to-flat-entity-maps-through-mutation-or-throw.util';
@@ -31,7 +31,7 @@ export class WorkspaceFlatSkillMapCacheService extends WorkspaceCacheProvider<Fl
const flatSkillMaps = createEmptyFlatEntityMaps();
for (const skillEntity of skills) {
const flatSkill = transformSkillEntityToFlatSkill(skillEntity);
const flatSkill = fromSkillEntityToFlatSkill(skillEntity);
addFlatEntityToFlatEntityMapsThroughMutationOrThrow({
flatEntity: flatSkill,
@@ -1,7 +1,7 @@
import { type SkillEntity } from 'src/engine/metadata-modules/skill/entities/skill.entity';
import { type FlatSkill } from 'src/engine/metadata-modules/flat-skill/types/flat-skill.type';
import { type SkillEntity } from 'src/engine/metadata-modules/skill/entities/skill.entity';
export const transformSkillEntityToFlatSkill = (
export const fromSkillEntityToFlatSkill = (
skillEntity: SkillEntity,
): FlatSkill => {
return {