Extract field metadata build out of object metadata build (#14763)
# Introduction Extracting the legacy fields build and dispatch out of the object one to follow the generic flat entity build, also update caches entries for object ## Main tasks - flat field map cache - flat field builder - refactored the dispatch matrix to return flat entity maps instead of flat entity arrays - orchestrator aggregator - removing legacy code - making universal identifier aka standardId of standard field for custom object deterministically dynamic - perfs debug logs for v2 ## TODO - [x] Refactor the generic entity builder to be dependency flat maps in order to main foreign keys list in flat parent - [x] Refactor the flat object metadata to contain the array of related fields and avoid costy find object fields - [ ] Improve the create field handler to handle multiple field at once - [ ] Refactor the dispatch to embbed the comparison - [ ] Improve perf by extracting from elements out of existing - [ ] Fix the labelIdentifierId validators on object before field creation ( integ tests are in failing mode ) ## Debug logs snippet ```ts [EntityBuilder fieldMetadata] matrix computation: 0.027ms [EntityBuilder fieldMetadata] creation validation: 0.001ms [EntityBuilder fieldMetadata] deletion validation: 0.293ms [EntityBuilder fieldMetadata] update validation: 0.006ms [EntityBuilder fieldMetadata] entity processing: 0.363ms [EntityBuilder fieldMetadata] validateAndBuild: 0.455ms [EntityBuilder index] matrix computation: 0.005ms [EntityBuilder index] creation validation: 0.001ms [EntityBuilder index] deletion validation: 0.146ms [EntityBuilder index] update validation: 0.004ms [EntityBuilder index] entity processing: 0.199ms [EntityBuilder index] validateAndBuild: 0.228ms [Runner] Initial cache retrieval: 0.549ms [BaseWorkspaceMigrationRunnerActionHandlerService] delete_index executeForWorkspaceSchema: 11.665ms [BaseWorkspaceMigrationRunnerActionHandlerService] delete_index executeForMetadata: 12.864ms [BaseWorkspaceMigrationRunnerActionHandlerService] delete_field executeForWorkspaceSchema: 1.476ms [BaseWorkspaceMigrationRunnerActionHandlerService] delete_field executeForMetadata: 6.816ms [BaseWorkspaceMigrationRunnerActionHandlerService] delete_field executeForWorkspaceSchema: 0.062ms [BaseWorkspaceMigrationRunnerActionHandlerService] delete_field executeForMetadata: 0.889ms [Runner] Transaction execution: 23.434ms [Runner] Cache invalidation: 316.662ms [Runner] Total execution: 340.767ms ``` As you can see cache invalidation is way to long, we could replace the cache by the optimistic in the end
This commit is contained in:
+6
-5
@@ -15,14 +15,13 @@ import {
|
||||
ServerlessFunctionManifest,
|
||||
ServerlessFunctionTriggerManifest,
|
||||
} from 'src/engine/core-modules/application/types/application.types';
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service.';
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service';
|
||||
import { AgentService } from 'src/engine/metadata-modules/agent/agent.service';
|
||||
import { CronTriggerV2Service } from 'src/engine/metadata-modules/cron-trigger/services/cron-trigger-v2.service';
|
||||
import { FlatCronTrigger } from 'src/engine/metadata-modules/cron-trigger/types/flat-cron-trigger.type';
|
||||
import { DataSourceService } from 'src/engine/metadata-modules/data-source/data-source.service';
|
||||
import { DatabaseEventTriggerV2Service } from 'src/engine/metadata-modules/database-event-trigger/services/database-event-trigger-v2.service';
|
||||
import { FlatDatabaseEventTrigger } from 'src/engine/metadata-modules/database-event-trigger/types/flat-database-event-trigger.type';
|
||||
import { CronTriggerV2Service } from 'src/engine/metadata-modules/cron-trigger/services/cron-trigger-v2.service';
|
||||
import { FlatCronTrigger } from 'src/engine/metadata-modules/cron-trigger/types/flat-cron-trigger.type';
|
||||
import type { FlatObjectMetadataWithFlatFieldMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-with-flat-field-metadata-maps.type';
|
||||
import { ObjectMetadataServiceV2 } from 'src/engine/metadata-modules/object-metadata/object-metadata-v2.service';
|
||||
import { ServerlessFunctionLayerService } from 'src/engine/metadata-modules/serverless-function-layer/serverless-function-layer.service';
|
||||
import { ServerlessFunctionV2Service } from 'src/engine/metadata-modules/serverless-function/services/serverless-function-v2.service';
|
||||
@@ -196,7 +195,9 @@ export class ApplicationSyncService {
|
||||
existingFlatObjectMetadataMaps.byId,
|
||||
).filter(
|
||||
(obj) => isDefined(obj) && obj.applicationId === applicationId,
|
||||
) as FlatObjectMetadataWithFlatFieldMaps[];
|
||||
// TODO handle when migrating to trinite usage
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
) as any[];
|
||||
|
||||
const objectsToSyncStandardIds = objectsToSync.map((obj) => obj.standardId);
|
||||
|
||||
|
||||
+1
@@ -8,4 +8,5 @@ export const ALL_FLAT_ENTITY_MAPS_PROPERTIES = [
|
||||
'flatServerlessFunctionMaps',
|
||||
'flatDatabaseEventTriggerMaps',
|
||||
'flatCronTriggerMaps',
|
||||
'flatFieldMetadataMaps',
|
||||
] as const satisfies (keyof AllFlatEntityMaps)[];
|
||||
|
||||
+2
-4
@@ -2,10 +2,8 @@ import { EMPTY_FLAT_ENTITY_MAPS } from 'src/engine/core-modules/common/constant/
|
||||
import { type AllFlatEntityMaps } from 'src/engine/core-modules/common/types/all-flat-entity-maps.type';
|
||||
|
||||
export const EMPTY_ALL_FLAT_ENTITY_MAPS = {
|
||||
flatObjectMetadataMaps: {
|
||||
...EMPTY_FLAT_ENTITY_MAPS,
|
||||
idByNameSingular: {},
|
||||
},
|
||||
flatObjectMetadataMaps: EMPTY_FLAT_ENTITY_MAPS,
|
||||
flatFieldMetadataMaps: EMPTY_FLAT_ENTITY_MAPS,
|
||||
flatIndexMaps: EMPTY_FLAT_ENTITY_MAPS,
|
||||
flatViewFieldMaps: EMPTY_FLAT_ENTITY_MAPS,
|
||||
flatViewMaps: EMPTY_FLAT_ENTITY_MAPS,
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service.';
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service';
|
||||
import { WorkspaceFlatMapCacheModule } from 'src/engine/workspace-flat-map-cache/workspace-flat-map-cache.module';
|
||||
|
||||
@Module({
|
||||
|
||||
+2
-1
@@ -2,12 +2,13 @@ import { type FlatViewField } from 'src/engine/core-modules/view/flat-view/types
|
||||
import { type FlatView } from 'src/engine/core-modules/view/flat-view/types/flat-view.type';
|
||||
import { type FlatCronTrigger } from 'src/engine/metadata-modules/cron-trigger/types/flat-cron-trigger.type';
|
||||
import { type FlatDatabaseEventTrigger } from 'src/engine/metadata-modules/database-event-trigger/types/flat-database-event-trigger.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
import { type FlatServerlessFunction } from 'src/engine/metadata-modules/serverless-function/types/flat-serverless-function.type';
|
||||
|
||||
export type AllFlatEntitiesByMetadataEngineName = {
|
||||
// flatFieldMetadata: FlatFieldMetadata;
|
||||
fieldMetadata: FlatFieldMetadata;
|
||||
objectMetadata: FlatObjectMetadata;
|
||||
view: FlatView;
|
||||
viewField: FlatViewField;
|
||||
|
||||
+5
-10
@@ -1,14 +1,9 @@
|
||||
import { type AllFlatEntitiesByMetadataEngineName } from 'src/engine/core-modules/common/types/all-flat-entities-by-metadata-engine-name.type';
|
||||
import { type FlatEntityMaps } from 'src/engine/core-modules/common/types/flat-entity-maps.type';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { type FromMetadataEngineNameToFlatEntityMapsKey } from 'src/engine/core-modules/common/types/from-metadata-engine-name-to-flat-entity-maps-key.type';
|
||||
|
||||
export type AllFlatEntityMaps = Omit<
|
||||
{
|
||||
[P in keyof AllFlatEntitiesByMetadataEngineName as `flat${Capitalize<P>}Maps`]: FlatEntityMaps<
|
||||
AllFlatEntitiesByMetadataEngineName[P]
|
||||
>;
|
||||
},
|
||||
'flatObjectMetadataMaps'
|
||||
> & {
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
export type AllFlatEntityMaps = {
|
||||
[P in keyof AllFlatEntitiesByMetadataEngineName as FromMetadataEngineNameToFlatEntityMapsKey<P>]: FlatEntityMaps<
|
||||
AllFlatEntitiesByMetadataEngineName[P]
|
||||
>;
|
||||
};
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import { type AllFlatEntitiesByMetadataEngineName } from 'src/engine/core-modules/common/types/all-flat-entities-by-metadata-engine-name.type';
|
||||
|
||||
export type FromMetadataEngineNameToFlatEntityMapsKey<
|
||||
P extends keyof AllFlatEntitiesByMetadataEngineName,
|
||||
> = `flat${Capitalize<P>}Maps`;
|
||||
@@ -1,4 +1,5 @@
|
||||
import {
|
||||
ConsoleLogger,
|
||||
Inject,
|
||||
Injectable,
|
||||
type LogLevel,
|
||||
@@ -7,9 +8,15 @@ import {
|
||||
|
||||
import { LOGGER_DRIVER } from 'src/engine/core-modules/logger/logger.constants';
|
||||
|
||||
type LoggerDriverType = ConsoleLogger & {
|
||||
options?: {
|
||||
logLevels?: LogLevel[];
|
||||
};
|
||||
};
|
||||
|
||||
@Injectable()
|
||||
export class LoggerService implements LoggerServiceInterface {
|
||||
constructor(@Inject(LOGGER_DRIVER) private driver: LoggerServiceInterface) {}
|
||||
constructor(@Inject(LOGGER_DRIVER) private driver: LoggerDriverType) {}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
log(message: any, category: string, ...optionalParams: any[]) {
|
||||
@@ -51,4 +58,18 @@ export class LoggerService implements LoggerServiceInterface {
|
||||
setLogLevels(levels: LogLevel[]) {
|
||||
this.driver.setLogLevels?.apply(this.driver, [levels]);
|
||||
}
|
||||
|
||||
time(category: string, label: string) {
|
||||
if (this.driver.options.logLevels?.includes('debug')) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.time(`[${category}] ${label}`);
|
||||
}
|
||||
}
|
||||
|
||||
timeEnd(category: string, label: string) {
|
||||
if (this.driver.options.logLevels?.includes('debug')) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.timeEnd(`[${category}] ${label}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service.';
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service';
|
||||
import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/add-flat-entity-to-flat-entity-maps-or-throw.util';
|
||||
import { deleteFlatEntityFromFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/delete-flat-entity-from-flat-entity-maps-or-throw.util';
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
@@ -35,16 +35,16 @@ export class ViewFieldV2Service {
|
||||
workspaceId: string;
|
||||
}): Promise<ViewFieldDTO> {
|
||||
const {
|
||||
flatObjectMetadataMaps,
|
||||
flatViewFieldMaps: existingFlatViewFieldMaps,
|
||||
flatViewMaps: existingFlatViewMaps,
|
||||
flatViewMaps,
|
||||
flatFieldMetadataMaps,
|
||||
} = await this.flatEntityMapsCacheService.getOrRecomputeManyOrAllFlatEntityMaps(
|
||||
{
|
||||
workspaceId,
|
||||
flatEntities: [
|
||||
'flatObjectMetadataMaps',
|
||||
'flatViewFieldMaps',
|
||||
'flatViewMaps',
|
||||
'flatFieldMetadataMaps',
|
||||
],
|
||||
},
|
||||
);
|
||||
@@ -70,8 +70,8 @@ export class ViewFieldV2Service {
|
||||
},
|
||||
},
|
||||
dependencyAllFlatEntityMaps: {
|
||||
flatObjectMetadataMaps,
|
||||
flatViewMaps: existingFlatViewMaps,
|
||||
flatFieldMetadataMaps,
|
||||
flatViewMaps,
|
||||
},
|
||||
buildOptions: {
|
||||
isSystemBuild: false,
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service.';
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service';
|
||||
import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/add-flat-entity-to-flat-entity-maps-or-throw.util';
|
||||
import { deleteFlatEntityFromFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/delete-flat-entity-from-flat-entity-maps-or-throw.util';
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheModule } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.module';
|
||||
import { DataloaderService } from 'src/engine/dataloaders/dataloader.service';
|
||||
import { FieldMetadataModule } from 'src/engine/metadata-modules/field-metadata/field-metadata.module';
|
||||
import { WorkspaceMetadataCacheModule } from 'src/engine/metadata-modules/workspace-metadata-cache/workspace-metadata-cache.module';
|
||||
|
||||
@Module({
|
||||
imports: [FieldMetadataModule, WorkspaceMetadataCacheModule],
|
||||
imports: [
|
||||
FieldMetadataModule,
|
||||
WorkspaceMetadataCacheModule,
|
||||
WorkspaceManyOrAllFlatEntityMapsCacheModule,
|
||||
],
|
||||
providers: [DataloaderService],
|
||||
exports: [DataloaderService],
|
||||
})
|
||||
|
||||
@@ -7,6 +7,8 @@ import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { type IndexMetadataInterface } from 'src/engine/metadata-modules/index-metadata/interfaces/index-metadata.interface';
|
||||
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service';
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
import { I18nService } from 'src/engine/core-modules/i18n/i18n.service';
|
||||
import { type IDataloaders } from 'src/engine/dataloaders/dataloader.interface';
|
||||
import { filterMorphRelationDuplicateFields } from 'src/engine/dataloaders/utils/filter-morph-relation-duplicate-fields.util';
|
||||
@@ -16,11 +18,11 @@ import { RelationDTO } from 'src/engine/metadata-modules/field-metadata/dtos/rel
|
||||
import { type FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
||||
import { resolveFieldMetadataStandardOverride } from 'src/engine/metadata-modules/field-metadata/utils/resolve-field-metadata-standard-override.util';
|
||||
import { findAllOthersMorphRelationFlatFieldMetadatasOrThrow } from 'src/engine/metadata-modules/flat-field-metadata/utils/find-all-others-morph-relation-flat-field-metadatas-or-throw.util';
|
||||
import { findObjectFieldsInFlatFieldMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-field-metadata/utils/find-object-fields-in-flat-field-metadata-maps-or-throw.util';
|
||||
import { fromFlatFieldMetadataToFieldMetadataDto } from 'src/engine/metadata-modules/flat-field-metadata/utils/from-flat-field-metadata-to-field-metadata-dto.util';
|
||||
import { fromMorphOrRelationFlatFieldMetadataToRelationDto } from 'src/engine/metadata-modules/flat-field-metadata/utils/from-morph-or-relation-flat-field-metadata-to-relation-dto.util';
|
||||
import { isFlatFieldMetadataOfType } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-of-type.util';
|
||||
import { findFlatFieldMetadataInFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/find-flat-field-metadata-in-flat-object-metadata-maps-or-throw.util';
|
||||
import { findFlatObjectMetadataInFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/find-flat-object-metadata-in-flat-object-metadata-maps-or-throw.util';
|
||||
import { isMorphOrRelationFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-morph-or-relation-flat-field-metadata.util';
|
||||
import { type IndexFieldMetadataDTO } from 'src/engine/metadata-modules/index-metadata/dtos/index-field-metadata.dto';
|
||||
import { type IndexMetadataDTO } from 'src/engine/metadata-modules/index-metadata/dtos/index-metadata.dto';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
@@ -70,6 +72,7 @@ export type ObjectMetadataLoaderPayload = {
|
||||
export class DataloaderService {
|
||||
constructor(
|
||||
private readonly i18nService: I18nService,
|
||||
private readonly flatEntityMapsCacheService: WorkspaceManyOrAllFlatEntityMapsCacheService,
|
||||
private readonly workspaceMetadataCacheService: WorkspaceMetadataCacheService,
|
||||
) {}
|
||||
|
||||
@@ -96,19 +99,19 @@ export class DataloaderService {
|
||||
async (dataLoaderParams: RelationLoaderPayload[]) => {
|
||||
const relationDtos: Array<RelationDTO | null> = [];
|
||||
const workspaceId = dataLoaderParams[0].workspaceId;
|
||||
const { flatObjectMetadataMaps: existingFlatObjectMetadataMaps } =
|
||||
await this.workspaceMetadataCacheService.getExistingOrRecomputeFlatObjectMetadataMaps(
|
||||
const { flatFieldMetadataMaps, flatObjectMetadataMaps } =
|
||||
await this.flatEntityMapsCacheService.getOrRecomputeManyOrAllFlatEntityMaps(
|
||||
{
|
||||
workspaceId,
|
||||
flatEntities: ['flatFieldMetadataMaps', 'flatObjectMetadataMaps'],
|
||||
},
|
||||
);
|
||||
|
||||
for (const { fieldMetadataId, objectMetadataId } of dataLoaderParams) {
|
||||
for (const { fieldMetadataId } of dataLoaderParams) {
|
||||
const sourceFlatFieldMetadata =
|
||||
findFlatFieldMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
fieldMetadataId,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
objectMetadataId,
|
||||
findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityId: fieldMetadataId,
|
||||
flatEntityMaps: flatFieldMetadataMaps,
|
||||
});
|
||||
|
||||
if (
|
||||
@@ -122,32 +125,48 @@ export class DataloaderService {
|
||||
}
|
||||
|
||||
const sourceFlatObjectMetadata =
|
||||
findFlatObjectMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
objectMetadataId: sourceFlatFieldMetadata.objectMetadataId,
|
||||
findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityId: sourceFlatFieldMetadata.objectMetadataId,
|
||||
flatEntityMaps: flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
const targetFlatFieldMetadata =
|
||||
findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityId:
|
||||
sourceFlatFieldMetadata.relationTargetFieldMetadataId,
|
||||
flatEntityMaps: flatFieldMetadataMaps,
|
||||
});
|
||||
|
||||
if (!isMorphOrRelationFlatFieldMetadata(targetFlatFieldMetadata)) {
|
||||
relationDtos.push(null);
|
||||
continue;
|
||||
}
|
||||
|
||||
const targetFlatObjectMetadata =
|
||||
findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityId: targetFlatFieldMetadata.objectMetadataId,
|
||||
flatEntityMaps: flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
if (
|
||||
isFlatFieldMetadataOfType(
|
||||
sourceFlatFieldMetadata.flatRelationTargetFieldMetadata,
|
||||
targetFlatFieldMetadata,
|
||||
FieldMetadataType.MORPH_RELATION,
|
||||
)
|
||||
) {
|
||||
const allMorphFlatFieldMetadatas =
|
||||
findAllOthersMorphRelationFlatFieldMetadatasOrThrow({
|
||||
flatFieldMetadata:
|
||||
sourceFlatFieldMetadata.flatRelationTargetFieldMetadata,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
flatFieldMetadata: targetFlatFieldMetadata,
|
||||
flatFieldMetadataMaps,
|
||||
flatObjectMetadata: targetFlatObjectMetadata,
|
||||
}).sort((a, b) => (a.id > b.id ? 1 : -1));
|
||||
|
||||
relationDtos.push(
|
||||
fromMorphOrRelationFlatFieldMetadataToRelationDto({
|
||||
flatFieldMetadata: {
|
||||
...sourceFlatFieldMetadata,
|
||||
flatRelationTargetFieldMetadata:
|
||||
allMorphFlatFieldMetadatas[0],
|
||||
},
|
||||
sourceFlatFieldMetadata,
|
||||
sourceFlatObjectMetadata,
|
||||
targetFlatFieldMetadata: allMorphFlatFieldMetadatas[0],
|
||||
targetFlatObjectMetadata,
|
||||
}),
|
||||
);
|
||||
continue;
|
||||
@@ -155,7 +174,9 @@ export class DataloaderService {
|
||||
|
||||
relationDtos.push(
|
||||
fromMorphOrRelationFlatFieldMetadataToRelationDto({
|
||||
flatFieldMetadata: sourceFlatFieldMetadata,
|
||||
sourceFlatFieldMetadata,
|
||||
targetFlatFieldMetadata,
|
||||
targetFlatObjectMetadata,
|
||||
sourceFlatObjectMetadata,
|
||||
}),
|
||||
);
|
||||
@@ -170,20 +191,20 @@ export class DataloaderService {
|
||||
return new DataLoader<MorphRelationLoaderPayload, RelationDTO[] | null>(
|
||||
async (dataLoaderParams: MorphRelationLoaderPayload[]) => {
|
||||
const workspaceId = dataLoaderParams[0].workspaceId;
|
||||
const { flatObjectMetadataMaps: existingFlatObjectMetadataMaps } =
|
||||
await this.workspaceMetadataCacheService.getExistingOrRecomputeFlatObjectMetadataMaps(
|
||||
const { flatFieldMetadataMaps, flatObjectMetadataMaps } =
|
||||
await this.flatEntityMapsCacheService.getOrRecomputeManyOrAllFlatEntityMaps(
|
||||
{
|
||||
workspaceId,
|
||||
flatEntities: ['flatFieldMetadataMaps', 'flatObjectMetadataMaps'],
|
||||
},
|
||||
);
|
||||
const relationDtos: Array<RelationDTO[] | null> = [];
|
||||
|
||||
for (const { fieldMetadataId, objectMetadataId } of dataLoaderParams) {
|
||||
for (const { fieldMetadataId } of dataLoaderParams) {
|
||||
const morphFlatFieldMetadata =
|
||||
findFlatFieldMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
fieldMetadataId,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
objectMetadataId,
|
||||
findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityId: fieldMetadataId,
|
||||
flatEntityMaps: flatFieldMetadataMaps,
|
||||
});
|
||||
|
||||
if (
|
||||
@@ -197,15 +218,16 @@ export class DataloaderService {
|
||||
}
|
||||
|
||||
const sourceFlatObjectMetadata =
|
||||
findFlatObjectMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
objectMetadataId: morphFlatFieldMetadata.objectMetadataId,
|
||||
findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityMaps: flatObjectMetadataMaps,
|
||||
flatEntityId: morphFlatFieldMetadata.objectMetadataId,
|
||||
});
|
||||
|
||||
const relatedMorphFlatFieldMetadatas =
|
||||
findAllOthersMorphRelationFlatFieldMetadatasOrThrow({
|
||||
flatFieldMetadata: morphFlatFieldMetadata,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps,
|
||||
flatObjectMetadata: sourceFlatObjectMetadata,
|
||||
});
|
||||
const allMorphFlatFieldMetadatas = [
|
||||
morphFlatFieldMetadata,
|
||||
@@ -213,12 +235,34 @@ export class DataloaderService {
|
||||
];
|
||||
|
||||
relationDtos.push(
|
||||
allMorphFlatFieldMetadatas.map((flatFieldMetadata) =>
|
||||
fromMorphOrRelationFlatFieldMetadataToRelationDto({
|
||||
flatFieldMetadata,
|
||||
allMorphFlatFieldMetadatas.flatMap((sourceFlatFieldMetadata) => {
|
||||
const targetFlatFieldMetadata =
|
||||
findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityId:
|
||||
sourceFlatFieldMetadata.relationTargetFieldMetadataId,
|
||||
flatEntityMaps: flatFieldMetadataMaps,
|
||||
});
|
||||
|
||||
if (
|
||||
!isMorphOrRelationFlatFieldMetadata(targetFlatFieldMetadata)
|
||||
) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const targetFlatObjectMetadata =
|
||||
findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityId:
|
||||
sourceFlatFieldMetadata.relationTargetObjectMetadataId,
|
||||
flatEntityMaps: flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
return fromMorphOrRelationFlatFieldMetadataToRelationDto({
|
||||
sourceFlatFieldMetadata,
|
||||
targetFlatFieldMetadata,
|
||||
targetFlatObjectMetadata,
|
||||
sourceFlatObjectMetadata,
|
||||
}),
|
||||
),
|
||||
});
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -279,22 +323,29 @@ export class DataloaderService {
|
||||
(dataLoaderParam) => dataLoaderParam.objectMetadata.id,
|
||||
);
|
||||
|
||||
const { flatObjectMetadataMaps: existingFlatObjectMetadataMaps } =
|
||||
await this.workspaceMetadataCacheService.getExistingOrRecomputeFlatObjectMetadataMaps(
|
||||
{ workspaceId },
|
||||
const { flatFieldMetadataMaps, flatObjectMetadataMaps } =
|
||||
await this.flatEntityMapsCacheService.getOrRecomputeManyOrAllFlatEntityMaps(
|
||||
{
|
||||
workspaceId,
|
||||
flatEntities: ['flatFieldMetadataMaps', 'flatObjectMetadataMaps'],
|
||||
},
|
||||
);
|
||||
|
||||
const fieldMetadataCollection = objectMetadataIds.map((id) => {
|
||||
const flatObjectMetadataWithFlatFieldMaps =
|
||||
existingFlatObjectMetadataMaps.byId[id];
|
||||
const fieldMetadataCollection = objectMetadataIds.map(
|
||||
(objectMetadataId) => {
|
||||
const flatObjectMetadata =
|
||||
findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityId: objectMetadataId,
|
||||
flatEntityMaps: flatObjectMetadataMaps,
|
||||
});
|
||||
const { objectFlatFieldMetadatas } =
|
||||
findObjectFieldsInFlatFieldMetadataMapsOrThrow({
|
||||
flatFieldMetadataMaps: flatFieldMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
});
|
||||
|
||||
if (!isDefined(flatObjectMetadataWithFlatFieldMaps)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const overriddenFieldMetadataEntities =
|
||||
flatObjectMetadataWithFlatFieldMaps.flatFieldMetadatas.map(
|
||||
(flatFieldMetadata) => {
|
||||
const overriddenFieldMetadataEntities =
|
||||
objectFlatFieldMetadatas.map((flatFieldMetadata) => {
|
||||
return FIELD_METADATA_STANDARD_OVERRIDES_PROPERTIES.reduce(
|
||||
(acc, property) => ({
|
||||
...acc,
|
||||
@@ -314,16 +365,18 @@ export class DataloaderService {
|
||||
}),
|
||||
flatFieldMetadata,
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
const filteredFieldMetadataEntities =
|
||||
filterMorphRelationDuplicateFields(
|
||||
overriddenFieldMetadataEntities,
|
||||
);
|
||||
|
||||
return filteredFieldMetadataEntities.map(
|
||||
fromFlatFieldMetadataToFieldMetadataDto,
|
||||
);
|
||||
|
||||
const filteredFieldMetadataEntities =
|
||||
filterMorphRelationDuplicateFields(overriddenFieldMetadataEntities);
|
||||
|
||||
return filteredFieldMetadataEntities.map(
|
||||
fromFlatFieldMetadataToFieldMetadataDto,
|
||||
);
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
return fieldMetadataCollection;
|
||||
},
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service.';
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service';
|
||||
import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/add-flat-entity-to-flat-entity-maps-or-throw.util';
|
||||
import { deleteFlatEntityFromFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/delete-flat-entity-from-flat-entity-maps-or-throw.util';
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service.';
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service';
|
||||
import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/add-flat-entity-to-flat-entity-maps-or-throw.util';
|
||||
import { deleteFlatEntityFromFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/delete-flat-entity-from-flat-entity-maps-or-throw.util';
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
|
||||
+101
-102
@@ -4,9 +4,11 @@ import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { In, Repository } from 'typeorm';
|
||||
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service.';
|
||||
import { EMPTY_FLAT_ENTITY_MAPS } from 'src/engine/core-modules/common/constant/empty-flat-entity-maps.constant';
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service';
|
||||
import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/add-flat-entity-to-flat-entity-maps-or-throw.util';
|
||||
import { deleteFlatEntityFromFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/delete-flat-entity-from-flat-entity-maps-or-throw.util';
|
||||
import { getSubFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/get-sub-flat-entity-maps-or-throw.util';
|
||||
import { replaceFlatEntityInFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/replace-flat-entity-in-flat-entity-maps-or-throw.util';
|
||||
import { type CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
|
||||
import { type DeleteOneFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/delete-field.input';
|
||||
@@ -22,10 +24,6 @@ import { fromDeleteFieldInputToFlatFieldMetadatasToDelete } from 'src/engine/met
|
||||
import { fromFlatFieldMetadataToFieldMetadataDto } from 'src/engine/metadata-modules/flat-field-metadata/utils/from-flat-field-metadata-to-field-metadata-dto.util';
|
||||
import { fromUpdateFieldInputToFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/from-update-field-input-to-flat-field-metadata.util';
|
||||
import { throwOnFieldInputTranspilationsError } from 'src/engine/metadata-modules/flat-field-metadata/utils/throw-on-field-input-transpilations-error.util';
|
||||
import { addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/add-flat-field-metadata-in-flat-object-metadata-maps-or-throw.util';
|
||||
import { deleteFieldFromFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/delete-field-from-flat-object-metadata-maps-or-throw.util';
|
||||
import { getSubFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/get-sub-flat-object-metadata-maps-or-throw.util';
|
||||
import { replaceFlatFieldMetadataInFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/replace-flat-field-metadata-in-flat-object-metadata-maps-or-throw.util';
|
||||
import { WorkspaceMigrationBuilderExceptionV2 } from 'src/engine/workspace-manager/workspace-migration-v2/exceptions/workspace-migration-builder-exception-v2';
|
||||
import { WorkspaceMigrationValidateBuildAndRunService } from 'src/engine/workspace-manager/workspace-migration-v2/services/workspace-migration-validate-build-and-run-service';
|
||||
|
||||
@@ -70,13 +68,17 @@ export class FieldMetadataServiceV2 {
|
||||
const {
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
flatIndexMaps: existingFlatIndexMaps,
|
||||
} =
|
||||
await this.flatEntityMapsCacheService.getOrRecomputeManyOrAllFlatEntityMaps(
|
||||
{
|
||||
workspaceId,
|
||||
flatEntities: ['flatObjectMetadataMaps', 'flatIndexMaps'],
|
||||
},
|
||||
);
|
||||
flatFieldMetadataMaps: existingFlatFieldMetadataMaps,
|
||||
} = await this.flatEntityMapsCacheService.getOrRecomputeManyOrAllFlatEntityMaps(
|
||||
{
|
||||
workspaceId,
|
||||
flatEntities: [
|
||||
'flatObjectMetadataMaps',
|
||||
'flatIndexMaps',
|
||||
'flatFieldMetadataMaps',
|
||||
],
|
||||
},
|
||||
);
|
||||
|
||||
const {
|
||||
flatFieldMetadatasToDelete,
|
||||
@@ -84,39 +86,40 @@ export class FieldMetadataServiceV2 {
|
||||
flatIndexesToUpdate,
|
||||
} = fromDeleteFieldInputToFlatFieldMetadatasToDelete({
|
||||
deleteOneFieldInput,
|
||||
existingFlatObjectMetadataMaps,
|
||||
existingFlatIndexMaps,
|
||||
flatFieldMetadataMaps: existingFlatFieldMetadataMaps,
|
||||
flatIndexMaps: existingFlatIndexMaps,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
const fromFlatObjectMetadataMaps = getSubFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
objectMetadataIds: [
|
||||
...new Set(
|
||||
flatFieldMetadatasToDelete.map(
|
||||
(flatFieldMetadataToDelete) =>
|
||||
flatFieldMetadataToDelete.objectMetadataId,
|
||||
),
|
||||
),
|
||||
const fromFlatFieldMetadataMaps = getSubFlatEntityMapsOrThrow({
|
||||
flatEntityMaps: existingFlatFieldMetadataMaps,
|
||||
flatEntityIds: [
|
||||
...new Set(flatFieldMetadatasToDelete.map((flatField) => flatField.id)),
|
||||
],
|
||||
});
|
||||
|
||||
const toFlatObjectMetadataMaps = flatFieldMetadatasToDelete.reduce(
|
||||
(flatObjectMetadataMaps, flatFieldMetadataToDelete) =>
|
||||
deleteFieldFromFlatObjectMetadataMapsOrThrow({
|
||||
fieldMetadataId: flatFieldMetadataToDelete.id,
|
||||
flatObjectMetadataMaps,
|
||||
objectMetadataId: flatFieldMetadataToDelete.objectMetadataId,
|
||||
const toFlatFieldMetadataMaps = flatFieldMetadatasToDelete.reduce(
|
||||
(flatFieldMetadataMaps, flatFieldMetadataToDelete) =>
|
||||
deleteFlatEntityFromFlatEntityMapsOrThrow({
|
||||
entityToDeleteId: flatFieldMetadataToDelete.id,
|
||||
flatEntityMaps: flatFieldMetadataMaps,
|
||||
}),
|
||||
fromFlatObjectMetadataMaps,
|
||||
fromFlatFieldMetadataMaps,
|
||||
);
|
||||
|
||||
const fromFlatIndexMaps = getSubFlatEntityMapsOrThrow({
|
||||
flatEntityIds: [...flatIndexesToUpdate, ...flatIndexesToDelete].map(
|
||||
({ id }) => id,
|
||||
),
|
||||
flatEntityMaps: existingFlatIndexMaps,
|
||||
});
|
||||
const toFlatIndexMapsWithUpdatedFlatIndex = flatIndexesToUpdate.reduce(
|
||||
(flatIndexMaps, flatIndex) =>
|
||||
replaceFlatEntityInFlatEntityMapsOrThrow({
|
||||
flatEntity: flatIndex,
|
||||
flatEntityMaps: flatIndexMaps,
|
||||
}),
|
||||
existingFlatIndexMaps,
|
||||
fromFlatIndexMaps,
|
||||
);
|
||||
const toFlatIndexMaps = flatIndexesToDelete.reduce(
|
||||
(flatIndexMaps, flatIndex) =>
|
||||
@@ -130,17 +133,20 @@ export class FieldMetadataServiceV2 {
|
||||
const validateAndBuildResult =
|
||||
await this.workspaceMigrationValidateBuildAndRunService.validateBuildAndRunWorkspaceMigration(
|
||||
{
|
||||
dependencyAllFlatEntityMaps: {
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
},
|
||||
buildOptions: {
|
||||
isSystemBuild: false,
|
||||
inferDeletionFromMissingEntities: true,
|
||||
},
|
||||
fromToAllFlatEntityMaps: {
|
||||
flatObjectMetadataMaps: {
|
||||
from: fromFlatObjectMetadataMaps,
|
||||
to: toFlatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps: {
|
||||
from: fromFlatFieldMetadataMaps,
|
||||
to: toFlatFieldMetadataMaps,
|
||||
},
|
||||
flatIndexMaps: {
|
||||
from: existingFlatIndexMaps,
|
||||
from: fromFlatIndexMaps,
|
||||
to: toFlatIndexMaps,
|
||||
},
|
||||
},
|
||||
@@ -170,15 +176,20 @@ export class FieldMetadataServiceV2 {
|
||||
const {
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
flatIndexMaps: existingFlatIndexMaps,
|
||||
} =
|
||||
await this.flatEntityMapsCacheService.getOrRecomputeManyOrAllFlatEntityMaps(
|
||||
{
|
||||
workspaceId,
|
||||
flatEntities: ['flatObjectMetadataMaps', 'flatIndexMaps'],
|
||||
},
|
||||
);
|
||||
flatFieldMetadataMaps: existingFlatFieldMetadataMaps,
|
||||
} = await this.flatEntityMapsCacheService.getOrRecomputeManyOrAllFlatEntityMaps(
|
||||
{
|
||||
workspaceId,
|
||||
flatEntities: [
|
||||
'flatObjectMetadataMaps',
|
||||
'flatIndexMaps',
|
||||
'flatFieldMetadataMaps',
|
||||
],
|
||||
},
|
||||
);
|
||||
|
||||
const inputTranspilationResult = fromUpdateFieldInputToFlatFieldMetadata({
|
||||
flatFieldMetadataMaps: existingFlatFieldMetadataMaps,
|
||||
flatIndexMaps: existingFlatIndexMaps,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
updateFieldInput,
|
||||
@@ -193,29 +204,19 @@ export class FieldMetadataServiceV2 {
|
||||
flatIndexMetadatasToUpdate,
|
||||
} = inputTranspilationResult.result;
|
||||
|
||||
const objectMetadataIdWithRelatedObjectMetadataIds = [
|
||||
...new Set(
|
||||
optimisticallyUpdatedFlatFieldMetadatas.flatMap(
|
||||
({ objectMetadataId, relationTargetObjectMetadataId }) =>
|
||||
isDefined(relationTargetObjectMetadataId)
|
||||
? [objectMetadataId, relationTargetObjectMetadataId]
|
||||
: [objectMetadataId],
|
||||
),
|
||||
),
|
||||
];
|
||||
const fromFlatObjectMetadataMaps = getSubFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
objectMetadataIds: objectMetadataIdWithRelatedObjectMetadataIds,
|
||||
});
|
||||
|
||||
const toFlatObjectMetadataMaps =
|
||||
const toFlatFieldMetadataMaps =
|
||||
optimisticallyUpdatedFlatFieldMetadatas.reduce(
|
||||
(flatObjectMetadataMaps, flatFieldMetadata) =>
|
||||
replaceFlatFieldMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadataMaps,
|
||||
flatFieldMetadata,
|
||||
(flatFieldMaps, flatFieldMetadata) =>
|
||||
replaceFlatEntityInFlatEntityMapsOrThrow({
|
||||
flatEntityMaps: flatFieldMaps,
|
||||
flatEntity: flatFieldMetadata,
|
||||
}),
|
||||
fromFlatObjectMetadataMaps,
|
||||
getSubFlatEntityMapsOrThrow({
|
||||
flatEntityIds: optimisticallyUpdatedFlatFieldMetadatas.map(
|
||||
({ id }) => id,
|
||||
),
|
||||
flatEntityMaps: existingFlatFieldMetadataMaps,
|
||||
}),
|
||||
);
|
||||
|
||||
const toFlatIndexMaps = flatIndexMetadatasToUpdate.reduce(
|
||||
@@ -224,16 +225,22 @@ export class FieldMetadataServiceV2 {
|
||||
flatEntity: flatIndexMetadata,
|
||||
flatEntityMaps: flatIndexMaps,
|
||||
}),
|
||||
existingFlatIndexMaps,
|
||||
getSubFlatEntityMapsOrThrow({
|
||||
flatEntityIds: flatIndexMetadatasToUpdate.map(({ id }) => id),
|
||||
flatEntityMaps: existingFlatIndexMaps,
|
||||
}),
|
||||
);
|
||||
|
||||
const validateAndBuildResult =
|
||||
await this.workspaceMigrationValidateBuildAndRunService.validateBuildAndRunWorkspaceMigration(
|
||||
{
|
||||
dependencyAllFlatEntityMaps: {
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
},
|
||||
fromToAllFlatEntityMaps: {
|
||||
flatObjectMetadataMaps: {
|
||||
from: fromFlatObjectMetadataMaps,
|
||||
to: toFlatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps: {
|
||||
from: existingFlatFieldMetadataMaps,
|
||||
to: toFlatFieldMetadataMaps,
|
||||
},
|
||||
flatIndexMaps: {
|
||||
from: existingFlatIndexMaps,
|
||||
@@ -277,24 +284,28 @@ export class FieldMetadataServiceV2 {
|
||||
const {
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
flatIndexMaps: existingFlatIndexMaps,
|
||||
} =
|
||||
await this.flatEntityMapsCacheService.getOrRecomputeManyOrAllFlatEntityMaps(
|
||||
{
|
||||
workspaceId,
|
||||
flatEntities: ['flatObjectMetadataMaps', 'flatIndexMaps'],
|
||||
},
|
||||
);
|
||||
flatFieldMetadataMaps: existingFlatFieldMetadataMaps,
|
||||
} = await this.flatEntityMapsCacheService.getOrRecomputeManyOrAllFlatEntityMaps(
|
||||
{
|
||||
workspaceId,
|
||||
flatEntities: [
|
||||
'flatObjectMetadataMaps',
|
||||
'flatIndexMaps',
|
||||
'flatFieldMetadataMaps',
|
||||
],
|
||||
},
|
||||
);
|
||||
|
||||
const allTranspiledTranspilationInputs: Awaited<
|
||||
ReturnType<typeof fromCreateFieldInputToFlatFieldMetadatasToCreate>
|
||||
>[] = [];
|
||||
|
||||
for (const createInput of createFieldInputs) {
|
||||
for (const createFieldInput of createFieldInputs) {
|
||||
allTranspiledTranspilationInputs.push(
|
||||
await fromCreateFieldInputToFlatFieldMetadatasToCreate({
|
||||
existingFlatObjectMetadataMaps,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
createFieldInput,
|
||||
workspaceId,
|
||||
rawCreateFieldInput: createInput,
|
||||
}),
|
||||
);
|
||||
}
|
||||
@@ -318,28 +329,13 @@ export class FieldMetadataServiceV2 {
|
||||
{ flatFieldMetadatas: [], indexMetadatas: [] },
|
||||
);
|
||||
|
||||
const impactedObjectMetadataIds = Array.from(
|
||||
new Set(
|
||||
flatFieldMetadatasToCreate.map(
|
||||
(flatFieldMetadata) => flatFieldMetadata.objectMetadataId,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
const fromFlatObjectMetadataMaps = getSubFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
objectMetadataIds: impactedObjectMetadataIds,
|
||||
});
|
||||
const toFlatObjectMetadataMaps = flatFieldMetadatasToCreate.reduce(
|
||||
(flatObjectMetadataMaps, flatFieldMetadataToCreate) =>
|
||||
addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatFieldMetadata: flatFieldMetadataToCreate,
|
||||
flatObjectMetadataMaps,
|
||||
const toFlatFieldMetadataMaps = flatFieldMetadatasToCreate.reduce(
|
||||
(flatFieldMaps, flatFieldMetadataToCreate) =>
|
||||
addFlatEntityToFlatEntityMapsOrThrow({
|
||||
flatEntity: flatFieldMetadataToCreate,
|
||||
flatEntityMaps: flatFieldMaps,
|
||||
}),
|
||||
getSubFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
objectMetadataIds: impactedObjectMetadataIds,
|
||||
}),
|
||||
EMPTY_FLAT_ENTITY_MAPS,
|
||||
);
|
||||
|
||||
const toFlatIndexMaps = flatIndexMetadatasToCreate.reduce(
|
||||
@@ -348,16 +344,19 @@ export class FieldMetadataServiceV2 {
|
||||
flatEntity: flatIndex,
|
||||
flatEntityMaps: flatIndexMaps,
|
||||
}),
|
||||
existingFlatIndexMaps,
|
||||
EMPTY_FLAT_ENTITY_MAPS,
|
||||
);
|
||||
|
||||
const validateAndBuildResult =
|
||||
await this.workspaceMigrationValidateBuildAndRunService.validateBuildAndRunWorkspaceMigration(
|
||||
{
|
||||
dependencyAllFlatEntityMaps: {
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
},
|
||||
fromToAllFlatEntityMaps: {
|
||||
flatObjectMetadataMaps: {
|
||||
from: fromFlatObjectMetadataMaps,
|
||||
to: toFlatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps: {
|
||||
from: existingFlatFieldMetadataMaps,
|
||||
to: toFlatFieldMetadataMaps,
|
||||
},
|
||||
flatIndexMaps: {
|
||||
from: existingFlatIndexMaps,
|
||||
|
||||
+18
@@ -15,6 +15,7 @@ import {
|
||||
|
||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||
|
||||
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/core-modules/common/services/workspace-many-or-all-flat-entity-maps-cache.service';
|
||||
import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum';
|
||||
import { FeatureFlagService } from 'src/engine/core-modules/feature-flag/services/feature-flag.service';
|
||||
import { compositeTypeDefinitions } from 'src/engine/metadata-modules/field-metadata/composite-types';
|
||||
@@ -101,6 +102,7 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
|
||||
private readonly fieldMetadataRelationService: FieldMetadataRelationService,
|
||||
private readonly fieldMetadataServiceV2: FieldMetadataServiceV2,
|
||||
private readonly indexMetadataService: IndexMetadataService,
|
||||
private readonly flatEntityMapsCacheService: WorkspaceManyOrAllFlatEntityMapsCacheService,
|
||||
) {
|
||||
super(fieldMetadataRepository);
|
||||
}
|
||||
@@ -141,6 +143,7 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
|
||||
await this.workspaceMetadataCacheService.getExistingOrRecomputeMetadataMaps(
|
||||
{ workspaceId: fieldMetadataInput.workspaceId },
|
||||
);
|
||||
const { workspaceId } = fieldMetadataInput;
|
||||
|
||||
let existingFieldMetadata: FieldMetadataEntity | undefined;
|
||||
|
||||
@@ -397,6 +400,11 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
|
||||
fieldMetadataInput.workspaceId,
|
||||
);
|
||||
|
||||
await this.flatEntityMapsCacheService.invalidateFlatEntityMaps({
|
||||
workspaceId,
|
||||
flatEntities: ['flatFieldMetadataMaps'],
|
||||
});
|
||||
|
||||
return updatedFieldMetadata;
|
||||
} catch (error) {
|
||||
if (queryRunner.isTransactionActive) {
|
||||
@@ -580,6 +588,11 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
|
||||
workspaceId,
|
||||
);
|
||||
|
||||
await this.flatEntityMapsCacheService.invalidateFlatEntityMaps({
|
||||
workspaceId,
|
||||
flatEntities: ['flatObjectMetadataMaps', 'flatFieldMetadataMaps'],
|
||||
});
|
||||
|
||||
return fieldMetadata;
|
||||
} catch (error) {
|
||||
if (queryRunner.isTransactionActive) {
|
||||
@@ -771,6 +784,11 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
|
||||
workspaceId,
|
||||
);
|
||||
|
||||
await this.flatEntityMapsCacheService.invalidateFlatEntityMaps({
|
||||
workspaceId,
|
||||
flatEntities: ['flatObjectMetadataMaps', 'flatFieldMetadataMaps'],
|
||||
});
|
||||
|
||||
return createdFieldMetadatas;
|
||||
} catch (error) {
|
||||
if (queryRunner.isTransactionActive) {
|
||||
|
||||
-224
@@ -4,7 +4,6 @@ import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/in
|
||||
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 { getRelationTargetFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-morph-or-relation-target-flat-field-metadata-mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
@@ -32,7 +31,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-87a5-48f8-bbf7-ade388825a57',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
fullPath: getFlatFieldMetadataMock({
|
||||
id: '38207e43-a958-4058-bc32-36f838d102d3',
|
||||
@@ -57,7 +55,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-0d19-453d-8e8d-fbcda8ca3747',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
type: getFlatFieldMetadataMock({
|
||||
id: '840360e7-efa6-4ca2-a0d6-113b79474b98',
|
||||
@@ -82,7 +79,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-a417-49b8-a40b-f6a7874caa0d',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
id: getFlatFieldMetadataMock({
|
||||
id: '8662ced6-5e48-4576-993f-1be479dba176',
|
||||
@@ -107,7 +103,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdAt: getFlatFieldMetadataMock({
|
||||
id: '367923d5-658b-4b7b-9381-6f8e6cf84c85',
|
||||
@@ -132,7 +127,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
updatedAt: getFlatFieldMetadataMock({
|
||||
id: 'b81f8f1b-4173-4176-bc3c-fe1b6a45a0dc',
|
||||
@@ -157,7 +151,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
deletedAt: getFlatFieldMetadataMock({
|
||||
id: 'eab57da6-41ae-45e8-a5ee-014cfcab450f',
|
||||
@@ -182,7 +175,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
author: getFlatFieldMetadataMock({
|
||||
id: '99724bb6-7a84-4b54-9b3f-dab730ab445a',
|
||||
@@ -211,30 +203,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '958b82d0-a290-4e10-898d-3d858fbf684f',
|
||||
relationTargetObjectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840',
|
||||
universalIdentifier: '20202020-6501-4ac5-a4ef-b2f8522ef6cd',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '958b82d0-a290-4e10-898d-3d858fbf684f',
|
||||
standardId: '20202020-000f-4947-917f-1b09851024fe',
|
||||
objectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'authoredAttachments',
|
||||
label: 'Authored attachments',
|
||||
defaultValue: null,
|
||||
description: 'Attachments created by the workspace member',
|
||||
icon: 'IconFileImport',
|
||||
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: '99724bb6-7a84-4b54-9b3f-dab730ab445a',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-000f-4947-917f-1b09851024fe',
|
||||
}),
|
||||
}),
|
||||
task: getFlatFieldMetadataMock({
|
||||
id: 'bd823f17-f923-4f0d-8533-51d7bc062975',
|
||||
@@ -263,30 +231,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '00fd339a-6431-465d-9524-09b5c804f497',
|
||||
relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0',
|
||||
universalIdentifier: '20202020-51e5-4621-9cf8-215487951c4b',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '00fd339a-6431-465d-9524-09b5c804f497',
|
||||
standardId: '20202020-794d-4783-a8ff-cecdb15be139',
|
||||
objectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'attachments',
|
||||
label: 'Attachments',
|
||||
defaultValue: null,
|
||||
description: 'Task attachments',
|
||||
icon: 'IconFileImport',
|
||||
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: 'bd823f17-f923-4f0d-8533-51d7bc062975',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-794d-4783-a8ff-cecdb15be139',
|
||||
}),
|
||||
}),
|
||||
note: getFlatFieldMetadataMock({
|
||||
id: '5a98eb2b-1120-42e3-afd3-09d7da642fba',
|
||||
@@ -315,30 +259,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '4d4b3225-ddd2-4d76-a4d6-bcdd43a256e8',
|
||||
relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c',
|
||||
universalIdentifier: '20202020-4f4b-4503-a6fc-6b982f3dffb5',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '4d4b3225-ddd2-4d76-a4d6-bcdd43a256e8',
|
||||
standardId: '20202020-4986-4c92-bf19-39934b149b16',
|
||||
objectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'attachments',
|
||||
label: 'Attachments',
|
||||
defaultValue: null,
|
||||
description: 'Note attachments',
|
||||
icon: 'IconFileImport',
|
||||
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: '5a98eb2b-1120-42e3-afd3-09d7da642fba',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-4986-4c92-bf19-39934b149b16',
|
||||
}),
|
||||
}),
|
||||
person: getFlatFieldMetadataMock({
|
||||
id: '6938c2ec-ebcc-4f30-8d38-2c9c40228c53',
|
||||
@@ -367,30 +287,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '367ad117-de09-466c-94f8-ce99d951b5ce',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-0158-4aa2-965c-5cdafe21ffa2',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '367ad117-de09-466c-94f8-ce99d951b5ce',
|
||||
standardId: '20202020-cd97-451f-87fa-bcb789bdbf3a',
|
||||
objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'attachments',
|
||||
label: 'Attachments',
|
||||
defaultValue: null,
|
||||
description: 'Attachments linked to the contact.',
|
||||
icon: 'IconFileImport',
|
||||
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: '6938c2ec-ebcc-4f30-8d38-2c9c40228c53',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-cd97-451f-87fa-bcb789bdbf3a',
|
||||
}),
|
||||
}),
|
||||
company: getFlatFieldMetadataMock({
|
||||
id: '0bacf73b-f45b-4683-85b4-3e812e6228bf',
|
||||
@@ -419,30 +315,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '44a572c5-d620-47f5-943a-346ae967e99e',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: '20202020-ceab-4a28-b546-73b06b4c08d5',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '44a572c5-d620-47f5-943a-346ae967e99e',
|
||||
standardId: '20202020-c1b5-4120-b0f0-987ca401ed53',
|
||||
objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'attachments',
|
||||
label: 'Attachments',
|
||||
defaultValue: null,
|
||||
description: 'Attachments linked to the company',
|
||||
icon: 'IconFileImport',
|
||||
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: '0bacf73b-f45b-4683-85b4-3e812e6228bf',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-c1b5-4120-b0f0-987ca401ed53',
|
||||
}),
|
||||
}),
|
||||
opportunity: getFlatFieldMetadataMock({
|
||||
id: 'da72fbe2-a5aa-42b5-b6bd-482a3919eb20',
|
||||
@@ -471,30 +343,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '16515578-a6ce-48af-a303-2005bb8492f0',
|
||||
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
universalIdentifier: '20202020-7374-499d-bea3-9354890755b5',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '16515578-a6ce-48af-a303-2005bb8492f0',
|
||||
standardId: '20202020-87c7-4118-83d6-2f4031005209',
|
||||
objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'attachments',
|
||||
label: 'Attachments',
|
||||
defaultValue: null,
|
||||
description: 'Attachments linked to the opportunity',
|
||||
icon: 'IconFileImport',
|
||||
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: 'da72fbe2-a5aa-42b5-b6bd-482a3919eb20',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-87c7-4118-83d6-2f4031005209',
|
||||
}),
|
||||
}),
|
||||
rocket: getFlatFieldMetadataMock({
|
||||
id: 'ba23019c-7f25-42c3-8138-622e61c42968',
|
||||
@@ -523,30 +371,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'f5984acf-5128-42ac-840f-9d2888423699',
|
||||
relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
|
||||
universalIdentifier: '20202020-ca2d-47c0-8253-9d0b662fb01a',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'f5984acf-5128-42ac-840f-9d2888423699',
|
||||
standardId: '20202020-8d59-46ca-b7b2-73d167712134',
|
||||
objectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'attachments',
|
||||
label: 'Attachments',
|
||||
defaultValue: null,
|
||||
description: 'Attachments tied to the Rocket',
|
||||
icon: 'IconFileImport',
|
||||
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: 'ba23019c-7f25-42c3-8138-622e61c42968',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-8d59-46ca-b7b2-73d167712134',
|
||||
}),
|
||||
}),
|
||||
pet: getFlatFieldMetadataMock({
|
||||
id: '317a33ef-117e-4953-86d4-c4a9670a2ce3',
|
||||
@@ -575,30 +399,6 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '231903d0-3b14-47ed-9a88-fbf11031c451',
|
||||
relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
|
||||
universalIdentifier: '20202020-b715-4658-8b6a-5359824dbddd',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '231903d0-3b14-47ed-9a88-fbf11031c451',
|
||||
standardId: '20202020-8d59-46ca-b7b2-73d167712134',
|
||||
objectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'attachments',
|
||||
label: 'Attachments',
|
||||
defaultValue: null,
|
||||
description: 'Attachments tied to the Pet',
|
||||
icon: 'IconFileImport',
|
||||
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: '317a33ef-117e-4953-86d4-c4a9670a2ce3',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-8d59-46ca-b7b2-73d167712134',
|
||||
}),
|
||||
}),
|
||||
surveyResult: getFlatFieldMetadataMock({
|
||||
id: 'a09463e6-5e56-4965-bc8a-2faa23a64672',
|
||||
@@ -627,29 +427,5 @@ export const ATTACHMENT_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '3347ffcc-43d0-4697-a9ce-6fb9b0e677e1',
|
||||
relationTargetObjectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8',
|
||||
universalIdentifier: '20202020-58b5-4f6c-8402-06b2bf3ea064',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '3347ffcc-43d0-4697-a9ce-6fb9b0e677e1',
|
||||
standardId: '20202020-8d59-46ca-b7b2-73d167712134',
|
||||
objectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'attachments',
|
||||
label: 'Attachments',
|
||||
defaultValue: null,
|
||||
description: 'Attachments tied to the Survey result',
|
||||
icon: 'IconFileImport',
|
||||
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: 'a09463e6-5e56-4965-bc8a-2faa23a64672',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-8d59-46ca-b7b2-73d167712134',
|
||||
}),
|
||||
}),
|
||||
} as const satisfies Record<string, FlatFieldMetadata>;
|
||||
|
||||
-240
@@ -4,7 +4,6 @@ import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/in
|
||||
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 { getRelationTargetFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-morph-or-relation-target-flat-field-metadata-mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
@@ -32,7 +31,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-4d99-4e2e-a84c-4a27837b1ece',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
domainName: getFlatFieldMetadataMock({
|
||||
id: 'f4b67402-1686-491f-a3c7-f70ac9b021cf',
|
||||
@@ -62,7 +60,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-0c28-43d8-8ba5-3659924d3489',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
employees: getFlatFieldMetadataMock({
|
||||
id: '721d26f0-238d-4d55-a1a2-62f915631c4d',
|
||||
@@ -87,7 +84,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-8965-464a-8a75-74bafc152a0b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
linkedinLink: getFlatFieldMetadataMock({
|
||||
id: '6acb80a0-dab8-4d97-a0c8-15e4a495fb54',
|
||||
@@ -116,7 +112,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-ebeb-4beb-b9ad-6848036fb451',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
xLink: getFlatFieldMetadataMock({
|
||||
id: 'fc630bbb-aa2c-4554-aa4f-9afc0b0567f9',
|
||||
@@ -145,7 +140,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-6f64-4fd9-9580-9c1991c7d8c3',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
annualRecurringRevenue: getFlatFieldMetadataMock({
|
||||
id: '1e34d871-3e1a-4903-850e-1e4bc6b1d72b',
|
||||
@@ -171,7 +165,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-602a-495c-9776-f5d5b11d227b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
address: getFlatFieldMetadataMock({
|
||||
id: '1bd4dc61-e644-4a9e-8899-cacdf43571a1',
|
||||
@@ -205,7 +198,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-c5ce-4adc-b7b6-9c0979fc55e7',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
idealCustomerProfile: getFlatFieldMetadataMock({
|
||||
id: '8b75a4f1-dc7d-4fa3-b778-616ab9128c31',
|
||||
@@ -231,7 +223,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-ba6b-438a-8213-2c5ba28d76a2',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
position: getFlatFieldMetadataMock({
|
||||
id: 'ed081dac-ff61-4fe1-bc2c-073644b61c28',
|
||||
@@ -256,7 +247,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-9b4e-462b-991d-a0ee33326454',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdBy: getFlatFieldMetadataMock({
|
||||
id: 'dbbddd40-a72b-47fe-9ecf-9bdd4282369a',
|
||||
@@ -285,7 +275,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-fabc-451d-ab7d-412170916baa',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
searchVector: getFlatFieldMetadataMock({
|
||||
id: 'b2850ac5-d368-44ab-bc79-b1bf7212e5fb',
|
||||
@@ -310,7 +299,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '85c71601-72f9-4b7b-b343-d46100b2c74d',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
id: getFlatFieldMetadataMock({
|
||||
id: '982dff40-66c9-4b9b-b3ec-8fa7076ea3a6',
|
||||
@@ -335,7 +323,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdAt: getFlatFieldMetadataMock({
|
||||
id: 'e2f65a26-0210-4f22-954b-7d448abbdb28',
|
||||
@@ -360,7 +347,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
updatedAt: getFlatFieldMetadataMock({
|
||||
id: '26518091-a31b-4716-8627-4e2d25bc0e60',
|
||||
@@ -385,7 +371,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
deletedAt: getFlatFieldMetadataMock({
|
||||
id: '29ba1ee7-fc21-441c-8acc-45d9e56751e3',
|
||||
@@ -410,7 +395,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
people: getFlatFieldMetadataMock({
|
||||
id: 'b0563539-f027-40c5-a14c-ee7a25ff6fd9',
|
||||
@@ -435,34 +419,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'ee247ca6-fdaa-4a56-87a2-730cf84f5f29',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-3213-4ddf-9494-6422bcff8d7c',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'ee247ca6-fdaa-4a56-87a2-730cf84f5f29',
|
||||
standardId: '20202020-e2f3-448e-b34c-2d625f0025fd',
|
||||
objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'company',
|
||||
label: 'Company',
|
||||
defaultValue: null,
|
||||
description: 'Contact’s company',
|
||||
icon: 'IconBuildingSkyscraper',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: {
|
||||
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||
relationType: RelationType.MANY_TO_ONE,
|
||||
joinColumnName: 'companyId',
|
||||
},
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
isSystem: false,
|
||||
isNullable: true,
|
||||
isUnique: false,
|
||||
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
|
||||
isLabelSyncedWithName: true,
|
||||
relationTargetFieldMetadataId: 'b0563539-f027-40c5-a14c-ee7a25ff6fd9',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: '20202020-e2f3-448e-b34c-2d625f0025fd',
|
||||
}),
|
||||
}),
|
||||
accountOwner: getFlatFieldMetadataMock({
|
||||
id: '86c6692b-bed5-4ef1-bad0-657e56a85eba',
|
||||
@@ -492,30 +448,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '1fe5453f-6042-4370-b388-c9a198bd0ab4',
|
||||
relationTargetObjectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840',
|
||||
universalIdentifier: '20202020-95b8-4e10-9881-edb5d4765f9d',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '1fe5453f-6042-4370-b388-c9a198bd0ab4',
|
||||
standardId: '20202020-dc29-4bd4-a3c1-29eafa324bee',
|
||||
objectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'accountOwnerForCompanies',
|
||||
label: 'Account Owner For Companies',
|
||||
defaultValue: null,
|
||||
description: 'Account owner for companies',
|
||||
icon: 'IconBriefcase',
|
||||
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: '86c6692b-bed5-4ef1-bad0-657e56a85eba',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: '20202020-dc29-4bd4-a3c1-29eafa324bee',
|
||||
}),
|
||||
}),
|
||||
taskTargets: getFlatFieldMetadataMock({
|
||||
id: '4f9138da-cd36-4df4-98f9-ebabe036b141',
|
||||
@@ -540,34 +472,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'ec11b025-1476-4e84-81c5-cf5b5c776edc',
|
||||
relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
universalIdentifier: '20202020-cb17-4a61-8f8f-3be6730480de',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'ec11b025-1476-4e84-81c5-cf5b5c776edc',
|
||||
standardId: '20202020-4703-4a4e-948c-487b0c60a92c',
|
||||
objectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'company',
|
||||
label: 'Company',
|
||||
defaultValue: null,
|
||||
description: 'TaskTarget 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: '4f9138da-cd36-4df4-98f9-ebabe036b141',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: '20202020-4703-4a4e-948c-487b0c60a92c',
|
||||
}),
|
||||
}),
|
||||
noteTargets: getFlatFieldMetadataMock({
|
||||
id: '56b9dc8a-0379-42cf-ab31-8db7061f5a2a',
|
||||
@@ -592,34 +496,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'd1d3f9eb-1447-4adb-bc2b-f133bc58ac35',
|
||||
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
universalIdentifier: '20202020-bae0-4556-a74a-a9c686f77a88',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'd1d3f9eb-1447-4adb-bc2b-f133bc58ac35',
|
||||
standardId: 'c500fbc0-d6f2-4982-a959-5a755431696c',
|
||||
objectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'company',
|
||||
label: 'Company',
|
||||
defaultValue: null,
|
||||
description: 'NoteTarget 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: '56b9dc8a-0379-42cf-ab31-8db7061f5a2a',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: 'c500fbc0-d6f2-4982-a959-5a755431696c',
|
||||
}),
|
||||
}),
|
||||
opportunities: getFlatFieldMetadataMock({
|
||||
id: '3eda8c8e-74e4-401f-bb0e-470db5b267e6',
|
||||
@@ -644,34 +520,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '512890f1-4da0-4b96-bb71-5ccabefb82e7',
|
||||
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
universalIdentifier: '20202020-add3-4658-8e23-d70dccb6d0ec',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '512890f1-4da0-4b96-bb71-5ccabefb82e7',
|
||||
standardId: '20202020-cbac-457e-b565-adece5fc815f',
|
||||
objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'company',
|
||||
label: 'Company',
|
||||
defaultValue: null,
|
||||
description: 'Opportunity company',
|
||||
icon: 'IconBuildingSkyscraper',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: {
|
||||
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||
relationType: RelationType.MANY_TO_ONE,
|
||||
joinColumnName: 'companyId',
|
||||
},
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
isSystem: false,
|
||||
isNullable: true,
|
||||
isUnique: false,
|
||||
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
|
||||
isLabelSyncedWithName: true,
|
||||
relationTargetFieldMetadataId: '3eda8c8e-74e4-401f-bb0e-470db5b267e6',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: '20202020-cbac-457e-b565-adece5fc815f',
|
||||
}),
|
||||
}),
|
||||
favorites: getFlatFieldMetadataMock({
|
||||
id: '72415216-fed4-450b-aa00-691e37718b01',
|
||||
@@ -696,34 +544,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '9a11532c-6839-46ed-a2f5-ed03f88b86f6',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-4d1d-41ac-b13b-621631298d55',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '9a11532c-6839-46ed-a2f5-ed03f88b86f6',
|
||||
standardId: '20202020-cff5-4682-8bf9-069169e08279',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
attachments: getFlatFieldMetadataMock({
|
||||
id: '44a572c5-d620-47f5-943a-346ae967e99e',
|
||||
@@ -748,34 +568,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '0bacf73b-f45b-4683-85b4-3e812e6228bf',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-c1b5-4120-b0f0-987ca401ed53',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '0bacf73b-f45b-4683-85b4-3e812e6228bf',
|
||||
standardId: '20202020-ceab-4a28-b546-73b06b4c08d5',
|
||||
objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'company',
|
||||
label: 'Company',
|
||||
defaultValue: null,
|
||||
description: 'Attachment 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: '44a572c5-d620-47f5-943a-346ae967e99e',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: '20202020-ceab-4a28-b546-73b06b4c08d5',
|
||||
}),
|
||||
}),
|
||||
timelineActivities: getFlatFieldMetadataMock({
|
||||
id: 'cc78390f-f570-4c2c-9f19-2a8fef67f4f6',
|
||||
@@ -800,34 +592,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'fd8cabe5-7dc8-4d6a-8053-43434488b3e4',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-0414-4daf-9c0d-64fe7b27f89f',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'fd8cabe5-7dc8-4d6a-8053-43434488b3e4',
|
||||
standardId: '20202020-04ad-4221-a744-7a8278a5ce21',
|
||||
objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'company',
|
||||
label: 'Company',
|
||||
defaultValue: null,
|
||||
description: 'Event 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: 'cc78390f-f570-4c2c-9f19-2a8fef67f4f6',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: '20202020-04ad-4221-a744-7a8278a5ce21',
|
||||
}),
|
||||
}),
|
||||
tagline: getFlatFieldMetadataMock({
|
||||
id: 'f869f4ed-e440-486a-8392-be33ab327cf4',
|
||||
@@ -852,7 +616,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: 'f869f4ed-e440-486a-8392-be33ab327cf4',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
introVideo: getFlatFieldMetadataMock({
|
||||
id: '339b52b7-adfb-4bd3-ae42-0697da92c0fa',
|
||||
@@ -881,7 +644,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '339b52b7-adfb-4bd3-ae42-0697da92c0fa',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
workPolicy: getFlatFieldMetadataMock({
|
||||
id: '74c546c1-b183-41d0-ac20-aecde83bf674',
|
||||
@@ -928,7 +690,6 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '74c546c1-b183-41d0-ac20-aecde83bf674',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
visaSponsorship: getFlatFieldMetadataMock({
|
||||
id: '5e48697e-a3d0-4faa-b79c-bddd8c7ae17f',
|
||||
@@ -953,6 +714,5 @@ export const COMPANY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '5e48697e-a3d0-4faa-b79c-bddd8c7ae17f',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
} as const satisfies Record<string, FlatFieldMetadata>;
|
||||
|
||||
-342
@@ -4,7 +4,6 @@ import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/in
|
||||
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 { getRelationTargetFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-morph-or-relation-target-flat-field-metadata-mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
@@ -32,7 +31,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-dd26-42c6-8c3c-2a7598c204f6',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
id: getFlatFieldMetadataMock({
|
||||
id: '49f58497-4e7c-49e6-b3bc-c91d4b8a8ddc',
|
||||
@@ -57,7 +55,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdAt: getFlatFieldMetadataMock({
|
||||
id: '0606a76c-8a72-48ca-90c6-526c729c25eb',
|
||||
@@ -82,7 +79,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
updatedAt: getFlatFieldMetadataMock({
|
||||
id: 'fb202982-0c8e-4917-8dda-acb8248be749',
|
||||
@@ -107,7 +103,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
deletedAt: getFlatFieldMetadataMock({
|
||||
id: 'ef52e151-a974-470f-bbe7-f345fd4eca65',
|
||||
@@ -132,7 +127,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
forWorkspaceMember: getFlatFieldMetadataMock({
|
||||
id: '07f2c3ba-63d1-4e44-bac4-bc4591e51bac',
|
||||
@@ -161,30 +155,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'a15a4b41-1849-4dea-aa43-f53caad016be',
|
||||
relationTargetObjectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840',
|
||||
universalIdentifier: '20202020-ce63-49cb-9676-fdc0c45892cd',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'a15a4b41-1849-4dea-aa43-f53caad016be',
|
||||
standardId: '20202020-f3c1-4faf-b343-cf7681038757',
|
||||
objectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'favorites',
|
||||
label: 'Favorites',
|
||||
defaultValue: null,
|
||||
description: 'Favorites linked to the workspace member',
|
||||
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: '07f2c3ba-63d1-4e44-bac4-bc4591e51bac',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-f3c1-4faf-b343-cf7681038757',
|
||||
}),
|
||||
}),
|
||||
person: getFlatFieldMetadataMock({
|
||||
id: '013cec20-e9cc-42db-b9b9-ff6bd0f52abd',
|
||||
@@ -213,30 +183,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'a1a72bee-1c15-4598-ba23-67ba8e3e505d',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-c428-4f40-b6f3-86091511c41c',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'a1a72bee-1c15-4598-ba23-67ba8e3e505d',
|
||||
standardId: '20202020-4073-4117-9cf1-203bcdc91cbd',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
company: getFlatFieldMetadataMock({
|
||||
id: '9a11532c-6839-46ed-a2f5-ed03f88b86f6',
|
||||
@@ -265,30 +211,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '72415216-fed4-450b-aa00-691e37718b01',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: '20202020-cff5-4682-8bf9-069169e08279',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '72415216-fed4-450b-aa00-691e37718b01',
|
||||
standardId: '20202020-4d1d-41ac-b13b-621631298d55',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
favoriteFolder: getFlatFieldMetadataMock({
|
||||
id: 'fabbe669-b8fc-49fe-8010-f13d01eb61f1',
|
||||
@@ -317,30 +239,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '71b95076-6b8d-45c9-9a7c-ab981b81bd1b',
|
||||
relationTargetObjectMetadataId: '35763b74-1abe-4c4b-9eab-27693f0ee06d',
|
||||
universalIdentifier: '20202020-f658-4d12-8b4d-248356aa4bd9',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '71b95076-6b8d-45c9-9a7c-ab981b81bd1b',
|
||||
standardId: '20202020-b5e3-4b42-8af2-03cd4fd2e4d2',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
opportunity: getFlatFieldMetadataMock({
|
||||
id: '6380cf8e-4327-4d1e-ad21-1826ce4ecf05',
|
||||
@@ -369,30 +267,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '87bb9924-a1cc-4357-9c8a-52141dabf266',
|
||||
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
universalIdentifier: '20202020-dabc-48e1-8318-2781a2b32aa2',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '87bb9924-a1cc-4357-9c8a-52141dabf266',
|
||||
standardId: '20202020-a1c2-4500-aaae-83ba8a0e827a',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
workflow: getFlatFieldMetadataMock({
|
||||
id: '12c20527-9b1d-4922-9650-00cc31b26387',
|
||||
@@ -421,30 +295,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'b848abe8-276b-46c9-9eab-baf34d2a0583',
|
||||
relationTargetObjectMetadataId: '664c19a5-0693-45d4-a4e5-76c3717db83c',
|
||||
universalIdentifier: '20202020-b11b-4dc8-999a-6bd0a947b463',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'b848abe8-276b-46c9-9eab-baf34d2a0583',
|
||||
standardId: '20202020-c554-4c41-be7a-cf9cd4b0d512',
|
||||
objectMetadataId: '664c19a5-0693-45d4-a4e5-76c3717db83c',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'favorites',
|
||||
label: 'Favorites',
|
||||
defaultValue: null,
|
||||
description: 'Favorites linked to the workflow',
|
||||
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: '12c20527-9b1d-4922-9650-00cc31b26387',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-c554-4c41-be7a-cf9cd4b0d512',
|
||||
}),
|
||||
}),
|
||||
workflowVersion: getFlatFieldMetadataMock({
|
||||
id: '5cb92f25-c067-4e19-afb3-c7cc038ed1a4',
|
||||
@@ -473,30 +323,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'ea6b6bda-6ba7-4549-b81a-1f3ced0d4b25',
|
||||
relationTargetObjectMetadataId: '99cf5f27-b41d-4f25-a23b-9e47d27dae9b',
|
||||
universalIdentifier: '20202020-e1b8-4caf-b55a-3ab4d4cbcd21',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'ea6b6bda-6ba7-4549-b81a-1f3ced0d4b25',
|
||||
standardId: '20202020-b8e0-4e57-928d-b51671cc71f2',
|
||||
objectMetadataId: '99cf5f27-b41d-4f25-a23b-9e47d27dae9b',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'favorites',
|
||||
label: 'Favorites',
|
||||
defaultValue: null,
|
||||
description: 'Favorites linked to the workflow version',
|
||||
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: '5cb92f25-c067-4e19-afb3-c7cc038ed1a4',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-b8e0-4e57-928d-b51671cc71f2',
|
||||
}),
|
||||
}),
|
||||
workflowRun: getFlatFieldMetadataMock({
|
||||
id: 'a4bdd0d8-c36f-4519-812b-be4800ab14b0',
|
||||
@@ -525,30 +351,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '444a6e9e-443d-4f04-a60d-32f76f17049c',
|
||||
relationTargetObjectMetadataId: '06d95e96-b050-443f-946e-dd276d291a2f',
|
||||
universalIdentifier: '20202020-db5a-4fe4-9a13-9afa22b1e762',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '444a6e9e-443d-4f04-a60d-32f76f17049c',
|
||||
standardId: '20202020-4baf-4604-b899-2f7fcfbbf90d',
|
||||
objectMetadataId: '06d95e96-b050-443f-946e-dd276d291a2f',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'favorites',
|
||||
label: 'Favorites',
|
||||
defaultValue: null,
|
||||
description: 'Favorites linked to the workflow run',
|
||||
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: 'a4bdd0d8-c36f-4519-812b-be4800ab14b0',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-4baf-4604-b899-2f7fcfbbf90d',
|
||||
}),
|
||||
}),
|
||||
task: getFlatFieldMetadataMock({
|
||||
id: 'db16ab78-ea3f-4b67-93e3-6ad9ab1b7273',
|
||||
@@ -577,30 +379,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '33e4eff0-ff0f-4530-802a-cd630481ee84',
|
||||
relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0',
|
||||
universalIdentifier: '20202020-1b1b-4b3b-8b1b-7f8d6a1d7d5c',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '33e4eff0-ff0f-4530-802a-cd630481ee84',
|
||||
standardId: '20202020-4d1d-41ac-b13b-621631298d65',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
note: getFlatFieldMetadataMock({
|
||||
id: 'a61baf0f-2d43-4fda-9baf-efb000c17ecd',
|
||||
@@ -629,30 +407,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '065a1ede-f773-48ca-84bf-70f61d838396',
|
||||
relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c',
|
||||
universalIdentifier: '20202020-1f25-43fe-8b00-af212fdde824',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '065a1ede-f773-48ca-84bf-70f61d838396',
|
||||
standardId: '20202020-4d1d-41ac-b13b-621631298d67',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
view: getFlatFieldMetadataMock({
|
||||
id: 'accd216c-790e-4bd2-83bb-0700e06d0e5c',
|
||||
@@ -681,30 +435,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '90a103ec-7dce-4bd4-aed4-e2c9d46ecf32',
|
||||
relationTargetObjectMetadataId: '8377fc0d-ec1c-4fb5-b6ae-9381d9b22a95',
|
||||
universalIdentifier: '20202020-5a93-4fa9-acce-e73481a0bbdf',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '90a103ec-7dce-4bd4-aed4-e2c9d46ecf32',
|
||||
standardId: '20202020-c818-4a86-8284-9ec0ef0a59a5',
|
||||
objectMetadataId: '8377fc0d-ec1c-4fb5-b6ae-9381d9b22a95',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'favorites',
|
||||
label: 'Favorites',
|
||||
defaultValue: null,
|
||||
description: 'Favorites linked to the view',
|
||||
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: 'accd216c-790e-4bd2-83bb-0700e06d0e5c',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-c818-4a86-8284-9ec0ef0a59a5',
|
||||
}),
|
||||
}),
|
||||
rocket: getFlatFieldMetadataMock({
|
||||
id: '9448627d-725d-499e-a071-90fd5cfcf0ea',
|
||||
@@ -733,30 +463,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '14010360-f3c2-442e-b05f-43c30158f246',
|
||||
relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
|
||||
universalIdentifier: '20202020-78f7-4d7d-86e9-7562ced0b381',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '14010360-f3c2-442e-b05f-43c30158f246',
|
||||
standardId: '20202020-a4a7-4686-b296-1c6c3482ee21',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
pet: getFlatFieldMetadataMock({
|
||||
id: 'd34b4048-bf0c-4c61-8ffe-59f1838a2cc4',
|
||||
@@ -785,30 +491,6 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '80bc4e7a-6bd1-4f2b-98b1-6333c631cc1a',
|
||||
relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
|
||||
universalIdentifier: '20202020-1bd7-4d10-80dc-968b9f5d1a8a',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '80bc4e7a-6bd1-4f2b-98b1-6333c631cc1a',
|
||||
standardId: '20202020-a4a7-4686-b296-1c6c3482ee21',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
surveyResult: getFlatFieldMetadataMock({
|
||||
id: '9cdfb5a1-bb9c-4a59-811d-f5a1034a8f8b',
|
||||
@@ -837,29 +519,5 @@ export const FAVORITE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '8e11aced-3a20-4551-baa1-b38b98a74e1c',
|
||||
relationTargetObjectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8',
|
||||
universalIdentifier: '20202020-d049-4912-80ee-43b09fe3b0ac',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '8e11aced-3a20-4551-baa1-b38b98a74e1c',
|
||||
standardId: '20202020-a4a7-4686-b296-1c6c3482ee21',
|
||||
objectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'favorites',
|
||||
label: 'Favorites',
|
||||
defaultValue: null,
|
||||
description: 'Favorites tied to the Survey result',
|
||||
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: '9cdfb5a1-bb9c-4a59-811d-f5a1034a8f8b',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-a4a7-4686-b296-1c6c3482ee21',
|
||||
}),
|
||||
}),
|
||||
} as const satisfies Record<string, FlatFieldMetadata>;
|
||||
|
||||
-36
@@ -4,9 +4,7 @@ import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/in
|
||||
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 { getRelationTargetFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-morph-or-relation-target-flat-field-metadata-mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
export const FAVORITE_FOLDER_FLAT_FIELDS_MOCK = {
|
||||
position: getFlatFieldMetadataMock({
|
||||
@@ -32,7 +30,6 @@ export const FAVORITE_FOLDER_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-5278-4bde-8909-2cec74d43744',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
name: getFlatFieldMetadataMock({
|
||||
id: '1502abe0-b2f8-43a7-ae55-91c826b34ffe',
|
||||
@@ -57,7 +54,6 @@ export const FAVORITE_FOLDER_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-82a3-4537-8ff0-dbce7eec35d6',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
id: getFlatFieldMetadataMock({
|
||||
id: '85ab1864-0a92-4682-8583-82e8b696410b',
|
||||
@@ -82,7 +78,6 @@ export const FAVORITE_FOLDER_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdAt: getFlatFieldMetadataMock({
|
||||
id: 'a92b4b66-c2de-483e-8973-6f12bf36ac1a',
|
||||
@@ -107,7 +102,6 @@ export const FAVORITE_FOLDER_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
updatedAt: getFlatFieldMetadataMock({
|
||||
id: '3907fc24-3bf0-4f0b-88be-f9635e473145',
|
||||
@@ -132,7 +126,6 @@ export const FAVORITE_FOLDER_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
deletedAt: getFlatFieldMetadataMock({
|
||||
id: '52dcb335-5ce1-4165-a30b-4a61e84af21f',
|
||||
@@ -157,7 +150,6 @@ export const FAVORITE_FOLDER_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
favorites: getFlatFieldMetadataMock({
|
||||
id: '71b95076-6b8d-45c9-9a7c-ab981b81bd1b',
|
||||
@@ -182,33 +174,5 @@ export const FAVORITE_FOLDER_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'fabbe669-b8fc-49fe-8010-f13d01eb61f1',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-b5e3-4b42-8af2-03cd4fd2e4d2',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'fabbe669-b8fc-49fe-8010-f13d01eb61f1',
|
||||
standardId: '20202020-f658-4d12-8b4d-248356aa4bd9',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
} as const satisfies Record<string, FlatFieldMetadata>;
|
||||
|
||||
+1
-2
@@ -40,9 +40,8 @@ export const getFlatFieldMetadataMock = <T extends FieldMetadataType>(
|
||||
standardId: null,
|
||||
standardOverrides: null,
|
||||
workspaceId: faker.string.uuid(),
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
|
||||
relationTargetFieldMetadataId: null,
|
||||
flatRelationTargetObjectMetadata: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
...overrides,
|
||||
};
|
||||
|
||||
+2
-2
@@ -4,8 +4,8 @@ import {
|
||||
type NonNullableRequired,
|
||||
} from 'twenty-shared/types';
|
||||
|
||||
import { type MorphOrRelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/morph-or-relation-field-metadata-type.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { type FlatRelationTargetFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-relation-target-field-metadata.type';
|
||||
|
||||
type GetMorphOrRelationFlatFieldMetadataMockArgs = NonNullableRequired<
|
||||
Pick<
|
||||
@@ -28,7 +28,7 @@ export const getRelationTargetFlatFieldMetadataMock = ({
|
||||
relationTargetFieldMetadataId,
|
||||
relationTargetObjectMetadataId,
|
||||
...overrides
|
||||
}: GetMorphOrRelationFlatFieldMetadataMockArgs): FlatRelationTargetFieldMetadata => {
|
||||
}: GetMorphOrRelationFlatFieldMetadataMockArgs): FlatFieldMetadata<MorphOrRelationFieldMetadataType> => {
|
||||
const createdAt = '2024-01-01T00:00:00.000Z' as unknown as Date;
|
||||
|
||||
return {
|
||||
|
||||
-123
@@ -4,9 +4,7 @@ import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/in
|
||||
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 { getRelationTargetFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-morph-or-relation-target-flat-field-metadata-mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
position: getFlatFieldMetadataMock({
|
||||
@@ -32,7 +30,6 @@ export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-368d-4dc2-943f-ed8a49c7fdfb',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
title: getFlatFieldMetadataMock({
|
||||
id: '3cb30a3f-31c1-47d3-a61e-e537615390c8',
|
||||
@@ -57,7 +54,6 @@ export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-faeb-4c76-8ba6-ccbb0b4a965f',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
bodyV2: getFlatFieldMetadataMock({
|
||||
id: 'acb2973c-7e46-4296-ac79-8b8d163b6d85',
|
||||
@@ -82,7 +78,6 @@ export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-a7bb-4d94-be51-8f25181502c8',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdBy: getFlatFieldMetadataMock({
|
||||
id: '1caa79de-f2ec-405c-8667-7a65e9a3bcbf',
|
||||
@@ -111,7 +106,6 @@ export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-0d79-4e21-ab77-5a394eff97be',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
searchVector: getFlatFieldMetadataMock({
|
||||
id: '597b0c10-840e-4ba5-99db-7ef834a72bed',
|
||||
@@ -136,7 +130,6 @@ export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-7ea8-44d4-9d4c-51dd2a757950',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
id: getFlatFieldMetadataMock({
|
||||
id: '6ece96a9-2948-4735-8c8a-40cdb76e23b8',
|
||||
@@ -161,7 +154,6 @@ export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdAt: getFlatFieldMetadataMock({
|
||||
id: '0b849709-eee4-4d63-9fef-058cfdd0c098',
|
||||
@@ -186,7 +178,6 @@ export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
updatedAt: getFlatFieldMetadataMock({
|
||||
id: '8b4fe2dd-f4fa-4365-964d-d8f0dd7890cd',
|
||||
@@ -211,7 +202,6 @@ export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
deletedAt: getFlatFieldMetadataMock({
|
||||
id: 'fbf20b48-0aca-49a2-b3a8-67d0d7dfe104',
|
||||
@@ -236,7 +226,6 @@ export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
noteTargets: getFlatFieldMetadataMock({
|
||||
id: '3a13d398-b7e6-4871-a5f8-5446806b3e5b',
|
||||
@@ -261,34 +250,6 @@ export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'b1e812b7-604e-459b-9449-31fa414b315c',
|
||||
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
universalIdentifier: '20202020-1f25-43fe-8b00-af212fdde823',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'b1e812b7-604e-459b-9449-31fa414b315c',
|
||||
standardId: '20202020-57f3-4f50-9599-fc0f671df003',
|
||||
objectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'note',
|
||||
label: 'Note',
|
||||
defaultValue: null,
|
||||
description: 'NoteTarget note',
|
||||
icon: 'IconNotes',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: {
|
||||
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||
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: '3a13d398-b7e6-4871-a5f8-5446806b3e5b',
|
||||
relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c',
|
||||
universalIdentifier: '20202020-57f3-4f50-9599-fc0f671df003',
|
||||
}),
|
||||
}),
|
||||
attachments: getFlatFieldMetadataMock({
|
||||
id: '4d4b3225-ddd2-4d76-a4d6-bcdd43a256e8',
|
||||
@@ -313,34 +274,6 @@ export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '5a98eb2b-1120-42e3-afd3-09d7da642fba',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-4986-4c92-bf19-39934b149b16',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '5a98eb2b-1120-42e3-afd3-09d7da642fba',
|
||||
standardId: '20202020-4f4b-4503-a6fc-6b982f3dffb5',
|
||||
objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'note',
|
||||
label: 'Note',
|
||||
defaultValue: null,
|
||||
description: 'Attachment note',
|
||||
icon: 'IconNotes',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: {
|
||||
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||
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: '4d4b3225-ddd2-4d76-a4d6-bcdd43a256e8',
|
||||
relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c',
|
||||
universalIdentifier: '20202020-4f4b-4503-a6fc-6b982f3dffb5',
|
||||
}),
|
||||
}),
|
||||
timelineActivities: getFlatFieldMetadataMock({
|
||||
id: '1207d260-db2c-41d4-bb09-34ea1188978f',
|
||||
@@ -365,34 +298,6 @@ export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '2b9f1c90-9e35-4ccc-8d84-b42de31ef127',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-7030-42f8-929c-1a57b25d6bce',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '2b9f1c90-9e35-4ccc-8d84-b42de31ef127',
|
||||
standardId: '20202020-ec55-4135-8da5-3a20badc0156',
|
||||
objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'note',
|
||||
label: 'Note',
|
||||
defaultValue: null,
|
||||
description: 'Event note',
|
||||
icon: 'IconTargetArrow',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: {
|
||||
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||
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: '1207d260-db2c-41d4-bb09-34ea1188978f',
|
||||
relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c',
|
||||
universalIdentifier: '20202020-ec55-4135-8da5-3a20badc0156',
|
||||
}),
|
||||
}),
|
||||
favorites: getFlatFieldMetadataMock({
|
||||
id: '065a1ede-f773-48ca-84bf-70f61d838396',
|
||||
@@ -417,33 +322,5 @@ export const NOTE_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'a61baf0f-2d43-4fda-9baf-efb000c17ecd',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-4d1d-41ac-b13b-621631298d67',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'a61baf0f-2d43-4fda-9baf-efb000c17ecd',
|
||||
standardId: '20202020-1f25-43fe-8b00-af212fdde824',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
} as const satisfies Record<string, FlatFieldMetadata>;
|
||||
|
||||
-173
@@ -4,7 +4,6 @@ import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/in
|
||||
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 { getRelationTargetFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-morph-or-relation-target-flat-field-metadata-mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
@@ -32,7 +31,6 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdAt: getFlatFieldMetadataMock({
|
||||
id: '3cecf38d-1186-4e66-9eb6-06516d3b3172',
|
||||
@@ -57,7 +55,6 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
updatedAt: getFlatFieldMetadataMock({
|
||||
id: '41e0ee99-7319-4709-a11a-b0d624625359',
|
||||
@@ -82,7 +79,6 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
deletedAt: getFlatFieldMetadataMock({
|
||||
id: '3ef1221e-649f-41f9-a360-12896e3c0935',
|
||||
@@ -107,7 +103,6 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
note: getFlatFieldMetadataMock({
|
||||
id: 'b1e812b7-604e-459b-9449-31fa414b315c',
|
||||
@@ -136,30 +131,6 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '3a13d398-b7e6-4871-a5f8-5446806b3e5b',
|
||||
relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c',
|
||||
universalIdentifier: '20202020-57f3-4f50-9599-fc0f671df003',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '3a13d398-b7e6-4871-a5f8-5446806b3e5b',
|
||||
standardId: '20202020-1f25-43fe-8b00-af212fdde823',
|
||||
objectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'noteTargets',
|
||||
label: 'Relations',
|
||||
defaultValue: null,
|
||||
description: 'Note targets',
|
||||
icon: 'IconArrowUpRight',
|
||||
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: 'b1e812b7-604e-459b-9449-31fa414b315c',
|
||||
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
universalIdentifier: '20202020-1f25-43fe-8b00-af212fdde823',
|
||||
}),
|
||||
}),
|
||||
person: getFlatFieldMetadataMock({
|
||||
id: '560c71ff-254f-4baf-a4d1-054c53444f41',
|
||||
@@ -188,30 +159,6 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '60388ed8-45f6-4fb5-8752-81c73e13f4ab',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-38ca-4aab-92f5-8a605ca2e4c5',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '60388ed8-45f6-4fb5-8752-81c73e13f4ab',
|
||||
standardId: '20202020-c8fc-4258-8250-15905d3fcfec',
|
||||
objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'noteTargets',
|
||||
label: 'Notes',
|
||||
defaultValue: null,
|
||||
description: 'Notes tied to the contact',
|
||||
icon: 'IconNotes',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: { relationType: RelationType.ONE_TO_MANY },
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
isSystem: false,
|
||||
isNullable: true,
|
||||
isUnique: false,
|
||||
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
|
||||
isLabelSyncedWithName: false,
|
||||
relationTargetFieldMetadataId: '560c71ff-254f-4baf-a4d1-054c53444f41',
|
||||
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
universalIdentifier: '20202020-c8fc-4258-8250-15905d3fcfec',
|
||||
}),
|
||||
}),
|
||||
company: getFlatFieldMetadataMock({
|
||||
id: 'd1d3f9eb-1447-4adb-bc2b-f133bc58ac35',
|
||||
@@ -240,30 +187,6 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '56b9dc8a-0379-42cf-ab31-8db7061f5a2a',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: 'c500fbc0-d6f2-4982-a959-5a755431696c',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '56b9dc8a-0379-42cf-ab31-8db7061f5a2a',
|
||||
standardId: '20202020-bae0-4556-a74a-a9c686f77a88',
|
||||
objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'noteTargets',
|
||||
label: 'Notes',
|
||||
defaultValue: null,
|
||||
description: 'Notes tied to the company',
|
||||
icon: 'IconNotes',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: { relationType: RelationType.ONE_TO_MANY },
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
isSystem: false,
|
||||
isNullable: true,
|
||||
isUnique: false,
|
||||
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
|
||||
isLabelSyncedWithName: false,
|
||||
relationTargetFieldMetadataId: 'd1d3f9eb-1447-4adb-bc2b-f133bc58ac35',
|
||||
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
universalIdentifier: '20202020-bae0-4556-a74a-a9c686f77a88',
|
||||
}),
|
||||
}),
|
||||
opportunity: getFlatFieldMetadataMock({
|
||||
id: 'f42eac2a-8d99-4259-b69a-549abd553eda',
|
||||
@@ -292,30 +215,6 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '36210a54-a72e-4530-a1eb-a0420c53e551',
|
||||
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
universalIdentifier: '20202020-4e42-417a-a705-76581c9ade79',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '36210a54-a72e-4530-a1eb-a0420c53e551',
|
||||
standardId: '20202020-dd3f-42d5-a382-db58aabf43d3',
|
||||
objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'noteTargets',
|
||||
label: 'Notes',
|
||||
defaultValue: null,
|
||||
description: 'Notes tied to the opportunity',
|
||||
icon: 'IconNotes',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: { relationType: RelationType.ONE_TO_MANY },
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
isSystem: false,
|
||||
isNullable: true,
|
||||
isUnique: false,
|
||||
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
|
||||
isLabelSyncedWithName: false,
|
||||
relationTargetFieldMetadataId: 'f42eac2a-8d99-4259-b69a-549abd553eda',
|
||||
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
universalIdentifier: '20202020-dd3f-42d5-a382-db58aabf43d3',
|
||||
}),
|
||||
}),
|
||||
rocket: getFlatFieldMetadataMock({
|
||||
id: '4212b3d7-dd9f-4da9-85f7-2fa69a42296f',
|
||||
@@ -344,30 +243,6 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'c91376fb-20bd-47c7-8922-b64f7db51cfa',
|
||||
relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
|
||||
universalIdentifier: '20202020-52b6-4d5e-8f21-ed8b7c09c4a9',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'c91376fb-20bd-47c7-8922-b64f7db51cfa',
|
||||
standardId: '20202020-01fd-4f37-99dc-9427a444018a',
|
||||
objectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'noteTargets',
|
||||
label: 'NoteTargets',
|
||||
defaultValue: null,
|
||||
description: 'NoteTargets tied to the Rocket',
|
||||
icon: 'IconCheckbox',
|
||||
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: '4212b3d7-dd9f-4da9-85f7-2fa69a42296f',
|
||||
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
universalIdentifier: '20202020-01fd-4f37-99dc-9427a444018a',
|
||||
}),
|
||||
}),
|
||||
pet: getFlatFieldMetadataMock({
|
||||
id: 'd88d0737-e83a-47b1-b701-8edfe4a2ae2e',
|
||||
@@ -396,30 +271,6 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '98afd46e-0259-4c87-969d-16e7e660e007',
|
||||
relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
|
||||
universalIdentifier: '20202020-c54e-4804-8b0d-8795e5166432',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '98afd46e-0259-4c87-969d-16e7e660e007',
|
||||
standardId: '20202020-01fd-4f37-99dc-9427a444018a',
|
||||
objectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'noteTargets',
|
||||
label: 'NoteTargets',
|
||||
defaultValue: null,
|
||||
description: 'NoteTargets tied to the Pet',
|
||||
icon: 'IconCheckbox',
|
||||
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: 'd88d0737-e83a-47b1-b701-8edfe4a2ae2e',
|
||||
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
universalIdentifier: '20202020-01fd-4f37-99dc-9427a444018a',
|
||||
}),
|
||||
}),
|
||||
surveyResult: getFlatFieldMetadataMock({
|
||||
id: '7f444190-cb0e-4417-9c61-e59d8969b7f7',
|
||||
@@ -448,29 +299,5 @@ export const NOTETARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '1135971a-b1fa-4e63-b480-69410c6a09cd',
|
||||
relationTargetObjectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8',
|
||||
universalIdentifier: '20202020-75c4-4165-8146-dfdc2a76b940',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '1135971a-b1fa-4e63-b480-69410c6a09cd',
|
||||
standardId: '20202020-01fd-4f37-99dc-9427a444018a',
|
||||
objectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'noteTargets',
|
||||
label: 'NoteTargets',
|
||||
defaultValue: null,
|
||||
description: 'NoteTargets tied to the Survey result',
|
||||
icon: 'IconCheckbox',
|
||||
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: '7f444190-cb0e-4417-9c61-e59d8969b7f7',
|
||||
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
universalIdentifier: '20202020-01fd-4f37-99dc-9427a444018a',
|
||||
}),
|
||||
}),
|
||||
} as const satisfies Record<string, FlatFieldMetadata>;
|
||||
|
||||
-201
@@ -4,7 +4,6 @@ import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/in
|
||||
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 { getRelationTargetFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-morph-or-relation-target-flat-field-metadata-mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
@@ -32,7 +31,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-8609-4f65-a2d9-44009eb422b5',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
amount: getFlatFieldMetadataMock({
|
||||
id: '2713c658-cfad-4bc2-a6a0-adc4815185a1',
|
||||
@@ -57,7 +55,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-583e-4642-8533-db761d5fa82f',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
closeDate: getFlatFieldMetadataMock({
|
||||
id: '1d15aa71-38ea-473f-aac9-e4519882213f',
|
||||
@@ -82,7 +79,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-527e-44d6-b1ac-c4158d307b97',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
stage: getFlatFieldMetadataMock({
|
||||
id: '4642f809-f302-4525-8af1-3f3ad79998fb',
|
||||
@@ -143,7 +139,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-6f76-477d-8551-28cd65b2b4b9',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
position: getFlatFieldMetadataMock({
|
||||
id: 'd4ca6cb7-fbdb-4e27-b5be-ac9f3a17cf0a',
|
||||
@@ -168,7 +163,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-806d-493a-bbc6-6313e62958e2',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdBy: getFlatFieldMetadataMock({
|
||||
id: '29222276-99f1-4443-b5d6-6ea6aa16f28a',
|
||||
@@ -197,7 +191,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-a63e-4a62-8e63-42a51828f831',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
searchVector: getFlatFieldMetadataMock({
|
||||
id: '0ba0c3f0-41f1-4c49-b28b-0a04adddbc7c',
|
||||
@@ -222,7 +215,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '428a0da5-4b2e-4ce3-b695-89a8b384e6e3',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
id: getFlatFieldMetadataMock({
|
||||
id: '06f91646-dd7c-481d-b2d9-6dc02b9b6ca8',
|
||||
@@ -247,7 +239,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdAt: getFlatFieldMetadataMock({
|
||||
id: '9cc5c7c6-d9eb-46aa-b4a9-e5a922749b14',
|
||||
@@ -272,7 +263,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
updatedAt: getFlatFieldMetadataMock({
|
||||
id: '04629f30-4fdc-4084-bf3f-7f254acc6cf8',
|
||||
@@ -297,7 +287,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
deletedAt: getFlatFieldMetadataMock({
|
||||
id: '07435758-30b2-4d10-a2c3-947b8db7797f',
|
||||
@@ -322,7 +311,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
pointOfContact: getFlatFieldMetadataMock({
|
||||
id: '0e55bf63-1ffb-4f74-89f2-edd5a6a6686c',
|
||||
@@ -351,31 +339,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '7580c1b1-e8f9-480b-bd41-38b20df35777',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-8dfb-42fc-92b6-01afb759ed16',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '7580c1b1-e8f9-480b-bd41-38b20df35777',
|
||||
standardId: '20202020-911b-4a7d-b67b-918aa9a5b33a',
|
||||
objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'pointOfContactForOpportunities',
|
||||
label: 'Opportunities',
|
||||
defaultValue: null,
|
||||
description:
|
||||
'List of opportunities for which that person is the point of contact',
|
||||
icon: 'IconTargetArrow',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: { relationType: RelationType.ONE_TO_MANY },
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
isSystem: false,
|
||||
isNullable: true,
|
||||
isUnique: false,
|
||||
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
|
||||
isLabelSyncedWithName: false,
|
||||
relationTargetFieldMetadataId: '0e55bf63-1ffb-4f74-89f2-edd5a6a6686c',
|
||||
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
universalIdentifier: '20202020-911b-4a7d-b67b-918aa9a5b33a',
|
||||
}),
|
||||
}),
|
||||
company: getFlatFieldMetadataMock({
|
||||
id: '512890f1-4da0-4b96-bb71-5ccabefb82e7',
|
||||
@@ -404,30 +367,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '3eda8c8e-74e4-401f-bb0e-470db5b267e6',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: '20202020-cbac-457e-b565-adece5fc815f',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '3eda8c8e-74e4-401f-bb0e-470db5b267e6',
|
||||
standardId: '20202020-add3-4658-8e23-d70dccb6d0ec',
|
||||
objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'opportunities',
|
||||
label: 'Opportunities',
|
||||
defaultValue: null,
|
||||
description: 'Opportunities linked to the company.',
|
||||
icon: 'IconTargetArrow',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: { relationType: RelationType.ONE_TO_MANY },
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
isSystem: false,
|
||||
isNullable: true,
|
||||
isUnique: false,
|
||||
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
|
||||
isLabelSyncedWithName: true,
|
||||
relationTargetFieldMetadataId: '512890f1-4da0-4b96-bb71-5ccabefb82e7',
|
||||
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
universalIdentifier: '20202020-add3-4658-8e23-d70dccb6d0ec',
|
||||
}),
|
||||
}),
|
||||
favorites: getFlatFieldMetadataMock({
|
||||
id: '87bb9924-a1cc-4357-9c8a-52141dabf266',
|
||||
@@ -452,34 +391,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '6380cf8e-4327-4d1e-ad21-1826ce4ecf05',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-a1c2-4500-aaae-83ba8a0e827a',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '6380cf8e-4327-4d1e-ad21-1826ce4ecf05',
|
||||
standardId: '20202020-dabc-48e1-8318-2781a2b32aa2',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
taskTargets: getFlatFieldMetadataMock({
|
||||
id: 'c0c9f9ac-0d40-4206-90e5-0d1e14f8a09f',
|
||||
@@ -504,34 +415,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '49afc8d8-dde3-4d19-aa6b-bd16a751b114',
|
||||
relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
universalIdentifier: '20202020-59c0-4179-a208-4a255f04a5be',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '49afc8d8-dde3-4d19-aa6b-bd16a751b114',
|
||||
standardId: '20202020-6cb2-4c01-a9a5-aca3dbc11d41',
|
||||
objectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'opportunity',
|
||||
label: 'Opportunity',
|
||||
defaultValue: null,
|
||||
description: 'TaskTarget 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: 'c0c9f9ac-0d40-4206-90e5-0d1e14f8a09f',
|
||||
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
universalIdentifier: '20202020-6cb2-4c01-a9a5-aca3dbc11d41',
|
||||
}),
|
||||
}),
|
||||
noteTargets: getFlatFieldMetadataMock({
|
||||
id: '36210a54-a72e-4530-a1eb-a0420c53e551',
|
||||
@@ -556,34 +439,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'f42eac2a-8d99-4259-b69a-549abd553eda',
|
||||
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
universalIdentifier: '20202020-dd3f-42d5-a382-db58aabf43d3',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'f42eac2a-8d99-4259-b69a-549abd553eda',
|
||||
standardId: '20202020-4e42-417a-a705-76581c9ade79',
|
||||
objectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'opportunity',
|
||||
label: 'Opportunity',
|
||||
defaultValue: null,
|
||||
description: 'NoteTarget 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: '36210a54-a72e-4530-a1eb-a0420c53e551',
|
||||
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
universalIdentifier: '20202020-4e42-417a-a705-76581c9ade79',
|
||||
}),
|
||||
}),
|
||||
attachments: getFlatFieldMetadataMock({
|
||||
id: '16515578-a6ce-48af-a303-2005bb8492f0',
|
||||
@@ -608,34 +463,6 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'da72fbe2-a5aa-42b5-b6bd-482a3919eb20',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-87c7-4118-83d6-2f4031005209',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'da72fbe2-a5aa-42b5-b6bd-482a3919eb20',
|
||||
standardId: '20202020-7374-499d-bea3-9354890755b5',
|
||||
objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'opportunity',
|
||||
label: 'Opportunity',
|
||||
defaultValue: null,
|
||||
description: 'Attachment opportunity',
|
||||
icon: 'IconBuildingSkyscraper',
|
||||
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: '16515578-a6ce-48af-a303-2005bb8492f0',
|
||||
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
universalIdentifier: '20202020-7374-499d-bea3-9354890755b5',
|
||||
}),
|
||||
}),
|
||||
timelineActivities: getFlatFieldMetadataMock({
|
||||
id: '7826944b-3b21-4448-892e-5a2a68161313',
|
||||
@@ -660,33 +487,5 @@ export const OPPORTUNITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '026cbaa7-860c-4ed4-b878-8d78849e6c28',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-30e2-421f-96c7-19c69d1cf631',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '026cbaa7-860c-4ed4-b878-8d78849e6c28',
|
||||
standardId: '20202020-7664-4a35-a3df-580d389fd527',
|
||||
objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'opportunity',
|
||||
label: 'Opportunity',
|
||||
defaultValue: null,
|
||||
description: 'Event opportunity',
|
||||
icon: 'IconTargetArrow',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: {
|
||||
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||
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: '7826944b-3b21-4448-892e-5a2a68161313',
|
||||
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
universalIdentifier: '20202020-7664-4a35-a3df-580d389fd527',
|
||||
}),
|
||||
}),
|
||||
} as const satisfies Record<string, FlatFieldMetadata>;
|
||||
|
||||
-268
@@ -4,7 +4,6 @@ import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/in
|
||||
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 { getRelationTargetFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-morph-or-relation-target-flat-field-metadata-mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
@@ -32,7 +31,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-3875-44d5-8c33-a6239011cab8',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
emails: getFlatFieldMetadataMock({
|
||||
id: '012dd567-b7d9-4088-a0c1-4ded96a25e35',
|
||||
@@ -57,7 +55,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-3c51-43fa-8b6e-af39e29368ab',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
linkedinLink: getFlatFieldMetadataMock({
|
||||
id: '86e35da6-151d-47e3-8745-bb1e652b789c',
|
||||
@@ -86,7 +83,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-f1af-48f7-893b-2007a73dd508',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
xLink: getFlatFieldMetadataMock({
|
||||
id: 'c9d36790-a449-4108-91e1-c6ad6e3379fb',
|
||||
@@ -115,7 +111,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-8fc2-487c-b84a-55a99b145cfd',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
jobTitle: getFlatFieldMetadataMock({
|
||||
id: 'ab82c659-b553-4317-9708-998f6884c72e',
|
||||
@@ -140,7 +135,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b0d0-415a-bef9-640a26dacd9b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
phones: getFlatFieldMetadataMock({
|
||||
id: '4955e9cb-a740-49fa-9c91-69ec74a6b3df',
|
||||
@@ -170,7 +164,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-0638-448e-8825-439134618022',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
city: getFlatFieldMetadataMock({
|
||||
id: '61ad7592-6465-4a24-a863-0320cf7830a6',
|
||||
@@ -195,7 +188,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-5243-4ffb-afc5-2c675da41346',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
avatarUrl: getFlatFieldMetadataMock({
|
||||
id: '05e46775-93e9-46c4-8b6f-94829045b1ad',
|
||||
@@ -220,7 +212,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b8a6-40df-961c-373dc5d2ec21',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
position: getFlatFieldMetadataMock({
|
||||
id: '5162d850-29dd-474e-982b-24257b57fd46',
|
||||
@@ -245,7 +236,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-fcd5-4231-aff5-fff583eaa0b1',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdBy: getFlatFieldMetadataMock({
|
||||
id: '1a3de345-4f47-4dc9-b328-61c802efa36e',
|
||||
@@ -274,7 +264,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-f6ab-4d98-af24-a3d5b664148a',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
searchVector: getFlatFieldMetadataMock({
|
||||
id: '1d7f79d4-7811-45dc-8f9f-5dbd4863d0a1',
|
||||
@@ -299,7 +288,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '57d1d7ad-fa10-44fc-82f3-ad0959ec2534',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
id: getFlatFieldMetadataMock({
|
||||
id: 'd9b3e129-49ce-4843-a813-9d16f2239472',
|
||||
@@ -324,7 +312,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdAt: getFlatFieldMetadataMock({
|
||||
id: '9fec2460-6fd2-4aaf-8781-78893ba61d6d',
|
||||
@@ -349,7 +336,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
updatedAt: getFlatFieldMetadataMock({
|
||||
id: '6a00c4b7-d77c-4268-85e7-9e3a597bd0e7',
|
||||
@@ -374,7 +360,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
deletedAt: getFlatFieldMetadataMock({
|
||||
id: 'a9f5469d-d7ff-42f6-b3a7-399c8ab8b468',
|
||||
@@ -399,7 +384,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
company: getFlatFieldMetadataMock({
|
||||
id: 'ee247ca6-fdaa-4a56-87a2-730cf84f5f29',
|
||||
@@ -428,30 +412,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'b0563539-f027-40c5-a14c-ee7a25ff6fd9',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: '20202020-e2f3-448e-b34c-2d625f0025fd',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'b0563539-f027-40c5-a14c-ee7a25ff6fd9',
|
||||
standardId: '20202020-3213-4ddf-9494-6422bcff8d7c',
|
||||
objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'people',
|
||||
label: 'People',
|
||||
defaultValue: null,
|
||||
description: 'People linked to the company.',
|
||||
icon: 'IconUsers',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: { relationType: RelationType.ONE_TO_MANY },
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
isSystem: false,
|
||||
isNullable: true,
|
||||
isUnique: false,
|
||||
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
|
||||
isLabelSyncedWithName: true,
|
||||
relationTargetFieldMetadataId: 'ee247ca6-fdaa-4a56-87a2-730cf84f5f29',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-3213-4ddf-9494-6422bcff8d7c',
|
||||
}),
|
||||
}),
|
||||
pointOfContactForOpportunities: getFlatFieldMetadataMock({
|
||||
id: '7580c1b1-e8f9-480b-bd41-38b20df35777',
|
||||
@@ -477,34 +437,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '0e55bf63-1ffb-4f74-89f2-edd5a6a6686c',
|
||||
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
universalIdentifier: '20202020-911b-4a7d-b67b-918aa9a5b33a',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '0e55bf63-1ffb-4f74-89f2-edd5a6a6686c',
|
||||
standardId: '20202020-8dfb-42fc-92b6-01afb759ed16',
|
||||
objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'pointOfContact',
|
||||
label: 'Point of Contact',
|
||||
defaultValue: null,
|
||||
description: 'Opportunity point of contact',
|
||||
icon: 'IconUser',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: {
|
||||
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||
relationType: RelationType.MANY_TO_ONE,
|
||||
joinColumnName: 'pointOfContactId',
|
||||
},
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
isSystem: false,
|
||||
isNullable: true,
|
||||
isUnique: false,
|
||||
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
|
||||
isLabelSyncedWithName: true,
|
||||
relationTargetFieldMetadataId: '7580c1b1-e8f9-480b-bd41-38b20df35777',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-8dfb-42fc-92b6-01afb759ed16',
|
||||
}),
|
||||
}),
|
||||
taskTargets: getFlatFieldMetadataMock({
|
||||
id: '9609ca31-215e-47fd-9b3b-ab200acb2fa8',
|
||||
@@ -529,34 +461,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '64225f87-96c4-4846-9462-e7aa3ad9e182',
|
||||
relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
universalIdentifier: '20202020-584b-4d3e-88b6-53ab1fa03c3a',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '64225f87-96c4-4846-9462-e7aa3ad9e182',
|
||||
standardId: '20202020-c8a0-4e85-a016-87e2349cfbec',
|
||||
objectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'person',
|
||||
label: 'Person',
|
||||
defaultValue: null,
|
||||
description: 'TaskTarget 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: '9609ca31-215e-47fd-9b3b-ab200acb2fa8',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-c8a0-4e85-a016-87e2349cfbec',
|
||||
}),
|
||||
}),
|
||||
noteTargets: getFlatFieldMetadataMock({
|
||||
id: '60388ed8-45f6-4fb5-8752-81c73e13f4ab',
|
||||
@@ -581,34 +485,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '560c71ff-254f-4baf-a4d1-054c53444f41',
|
||||
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
universalIdentifier: '20202020-c8fc-4258-8250-15905d3fcfec',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '560c71ff-254f-4baf-a4d1-054c53444f41',
|
||||
standardId: '20202020-38ca-4aab-92f5-8a605ca2e4c5',
|
||||
objectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'person',
|
||||
label: 'Person',
|
||||
defaultValue: null,
|
||||
description: 'NoteTarget 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: '60388ed8-45f6-4fb5-8752-81c73e13f4ab',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-38ca-4aab-92f5-8a605ca2e4c5',
|
||||
}),
|
||||
}),
|
||||
favorites: getFlatFieldMetadataMock({
|
||||
id: 'a1a72bee-1c15-4598-ba23-67ba8e3e505d',
|
||||
@@ -633,34 +509,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '013cec20-e9cc-42db-b9b9-ff6bd0f52abd',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-4073-4117-9cf1-203bcdc91cbd',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '013cec20-e9cc-42db-b9b9-ff6bd0f52abd',
|
||||
standardId: '20202020-c428-4f40-b6f3-86091511c41c',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
attachments: getFlatFieldMetadataMock({
|
||||
id: '367ad117-de09-466c-94f8-ce99d951b5ce',
|
||||
@@ -685,34 +533,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '6938c2ec-ebcc-4f30-8d38-2c9c40228c53',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-cd97-451f-87fa-bcb789bdbf3a',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '6938c2ec-ebcc-4f30-8d38-2c9c40228c53',
|
||||
standardId: '20202020-0158-4aa2-965c-5cdafe21ffa2',
|
||||
objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'person',
|
||||
label: 'Person',
|
||||
defaultValue: null,
|
||||
description: 'Attachment 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: '367ad117-de09-466c-94f8-ce99d951b5ce',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-0158-4aa2-965c-5cdafe21ffa2',
|
||||
}),
|
||||
}),
|
||||
messageParticipants: getFlatFieldMetadataMock({
|
||||
id: '22dcab3c-939c-4b8d-bd7c-4c4d58588460',
|
||||
@@ -737,34 +557,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'e95d7d1a-9101-4048-b019-d2f8bc110328',
|
||||
relationTargetObjectMetadataId: 'edb170fd-a0c2-4619-b1a9-293cf07437c4',
|
||||
universalIdentifier: '20202020-498e-4c61-8158-fa04f0638334',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'e95d7d1a-9101-4048-b019-d2f8bc110328',
|
||||
standardId: '20202020-249d-4e0f-82cd-1b9df5cd3da2',
|
||||
objectMetadataId: 'edb170fd-a0c2-4619-b1a9-293cf07437c4',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'person',
|
||||
label: 'Person',
|
||||
defaultValue: null,
|
||||
description: 'Person',
|
||||
icon: 'IconUser',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: {
|
||||
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||
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: '22dcab3c-939c-4b8d-bd7c-4c4d58588460',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-249d-4e0f-82cd-1b9df5cd3da2',
|
||||
}),
|
||||
}),
|
||||
calendarEventParticipants: getFlatFieldMetadataMock({
|
||||
id: '9e82a873-2988-4d9d-af04-81f2d947f4ec',
|
||||
@@ -789,34 +581,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'e39f443d-3282-47a3-a24d-47ed604d58be',
|
||||
relationTargetObjectMetadataId: 'a4c662b6-e08d-40a5-ae55-82ed8f4edf78',
|
||||
universalIdentifier: '20202020-52ee-45e9-a702-b64b3753e3a9',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'e39f443d-3282-47a3-a24d-47ed604d58be',
|
||||
standardId: '20202020-5761-4842-8186-e1898ef93966',
|
||||
objectMetadataId: 'a4c662b6-e08d-40a5-ae55-82ed8f4edf78',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'person',
|
||||
label: 'Person',
|
||||
defaultValue: null,
|
||||
description: 'Person',
|
||||
icon: 'IconUser',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: {
|
||||
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||
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: '9e82a873-2988-4d9d-af04-81f2d947f4ec',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-5761-4842-8186-e1898ef93966',
|
||||
}),
|
||||
}),
|
||||
timelineActivities: getFlatFieldMetadataMock({
|
||||
id: 'b1457347-545b-4a42-9c68-bc655952229a',
|
||||
@@ -841,34 +605,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'dbd02754-4bef-4149-b39d-54759983ab47',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-a43e-4873-9c23-e522de906ce5',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'dbd02754-4bef-4149-b39d-54759983ab47',
|
||||
standardId: '20202020-c414-45b9-a60a-ac27aa96229f',
|
||||
objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'person',
|
||||
label: 'Person',
|
||||
defaultValue: null,
|
||||
description: 'Event 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: 'b1457347-545b-4a42-9c68-bc655952229a',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-c414-45b9-a60a-ac27aa96229f',
|
||||
}),
|
||||
}),
|
||||
intro: getFlatFieldMetadataMock({
|
||||
id: '94c95bfa-88bc-4271-87c2-08e6df084a15',
|
||||
@@ -893,7 +629,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '94c95bfa-88bc-4271-87c2-08e6df084a15',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
whatsapp: getFlatFieldMetadataMock({
|
||||
id: 'adc26aa8-d146-49d2-a037-77e15d8b20fc',
|
||||
@@ -923,7 +658,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: 'adc26aa8-d146-49d2-a037-77e15d8b20fc',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
workPreference: getFlatFieldMetadataMock({
|
||||
id: '421b5788-94dd-40b0-8d5f-6c649d7464c4',
|
||||
@@ -970,7 +704,6 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '421b5788-94dd-40b0-8d5f-6c649d7464c4',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
performanceRating: getFlatFieldMetadataMock({
|
||||
id: 'f75b0e71-e34c-4bc9-bb91-55a94127ab82',
|
||||
@@ -1026,6 +759,5 @@ export const PERSON_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: 'f75b0e71-e34c-4bc9-bb91-55a94127ab82',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
} as const satisfies Record<string, FlatFieldMetadata>;
|
||||
|
||||
-166
@@ -3,9 +3,7 @@ import { FieldMetadataType } 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 { getRelationTargetFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-morph-or-relation-target-flat-field-metadata-mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
export const PET_FLAT_FIELDS_MOCK = {
|
||||
noteTargets: getFlatFieldMetadataMock({
|
||||
@@ -31,34 +29,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'd88d0737-e83a-47b1-b701-8edfe4a2ae2e',
|
||||
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
universalIdentifier: '20202020-01fd-4f37-99dc-9427a444018a',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'd88d0737-e83a-47b1-b701-8edfe4a2ae2e',
|
||||
standardId: '20202020-c54e-4804-8b0d-8795e5166432',
|
||||
objectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'pet',
|
||||
label: 'Pet',
|
||||
defaultValue: null,
|
||||
description: 'NoteTargets 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: '98afd46e-0259-4c87-969d-16e7e660e007',
|
||||
relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
|
||||
universalIdentifier: '20202020-c54e-4804-8b0d-8795e5166432',
|
||||
}),
|
||||
}),
|
||||
id: getFlatFieldMetadataMock({
|
||||
id: 'ce25501a-1cc6-44c5-9158-b602db0efaca',
|
||||
@@ -83,7 +53,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
name: getFlatFieldMetadataMock({
|
||||
id: '4311d4e0-ce63-479c-a4da-5b244e2348cc',
|
||||
@@ -108,7 +77,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-ba07-4ffd-ba63-009491f5749c',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdAt: getFlatFieldMetadataMock({
|
||||
id: '0bbe259b-0fd1-43ca-922f-1c0b7960efbe',
|
||||
@@ -133,7 +101,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
updatedAt: getFlatFieldMetadataMock({
|
||||
id: 'c96d123d-4c13-47ee-85bf-00428ce5e242',
|
||||
@@ -158,7 +125,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
deletedAt: getFlatFieldMetadataMock({
|
||||
id: 'bbfd9b09-be13-4232-af2c-585a9137aa62',
|
||||
@@ -183,7 +149,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdBy: getFlatFieldMetadataMock({
|
||||
id: '2090b892-376c-4349-990d-6a789b53e31d',
|
||||
@@ -208,7 +173,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-be0e-4971-865b-32ca87cbb315',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
position: getFlatFieldMetadataMock({
|
||||
id: '3087f7da-f422-4b69-9b95-fadef79dd12a',
|
||||
@@ -233,7 +197,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-c2bd-4e16-bb9a-c8b0411bf49d',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
timelineActivities: getFlatFieldMetadataMock({
|
||||
id: '4eb74f21-1cb4-46b5-b3bb-4e41108e70d9',
|
||||
@@ -258,34 +221,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '3cb86390-4ee7-42fa-bd1e-bd6326b47610',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-f1ef-4ba4-8f33-1a4577afa477',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '3cb86390-4ee7-42fa-bd1e-bd6326b47610',
|
||||
standardId: '20202020-d88f-4020-8c85-d6c600903762',
|
||||
objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'pet',
|
||||
label: 'Pet',
|
||||
defaultValue: null,
|
||||
description: 'TimelineActivities 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: '4eb74f21-1cb4-46b5-b3bb-4e41108e70d9',
|
||||
relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
|
||||
universalIdentifier: '20202020-d88f-4020-8c85-d6c600903762',
|
||||
}),
|
||||
}),
|
||||
favorites: getFlatFieldMetadataMock({
|
||||
id: '80bc4e7a-6bd1-4f2b-98b1-6333c631cc1a',
|
||||
@@ -310,34 +245,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'd34b4048-bf0c-4c61-8ffe-59f1838a2cc4',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-a4a7-4686-b296-1c6c3482ee21',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'd34b4048-bf0c-4c61-8ffe-59f1838a2cc4',
|
||||
standardId: '20202020-1bd7-4d10-80dc-968b9f5d1a8a',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
attachments: getFlatFieldMetadataMock({
|
||||
id: '231903d0-3b14-47ed-9a88-fbf11031c451',
|
||||
@@ -362,34 +269,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '317a33ef-117e-4953-86d4-c4a9670a2ce3',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-8d59-46ca-b7b2-73d167712134',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '317a33ef-117e-4953-86d4-c4a9670a2ce3',
|
||||
standardId: '20202020-b715-4658-8b6a-5359824dbddd',
|
||||
objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'pet',
|
||||
label: 'Pet',
|
||||
defaultValue: null,
|
||||
description: 'Attachments 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: '231903d0-3b14-47ed-9a88-fbf11031c451',
|
||||
relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
|
||||
universalIdentifier: '20202020-b715-4658-8b6a-5359824dbddd',
|
||||
}),
|
||||
}),
|
||||
taskTargets: getFlatFieldMetadataMock({
|
||||
id: '3cae8259-ece8-4b81-9044-f5abae5ff25c',
|
||||
@@ -414,34 +293,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '3955a4b4-1c10-4ce8-a92e-98e727ee7aec',
|
||||
relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
universalIdentifier: '20202020-0860-4566-b865-bff3c626c303',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '3955a4b4-1c10-4ce8-a92e-98e727ee7aec',
|
||||
standardId: '20202020-07d9-4d04-8b73-a39ab65943f1',
|
||||
objectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'pet',
|
||||
label: 'Pet',
|
||||
defaultValue: null,
|
||||
description: 'TaskTargets 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: '3cae8259-ece8-4b81-9044-f5abae5ff25c',
|
||||
relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
|
||||
universalIdentifier: '20202020-07d9-4d04-8b73-a39ab65943f1',
|
||||
}),
|
||||
}),
|
||||
searchVector: getFlatFieldMetadataMock({
|
||||
id: '0db37175-e573-43e4-bd83-fa71923fde0c',
|
||||
@@ -466,7 +317,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '70e56537-18ef-4811-b1c7-0a444006b815',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
species: getFlatFieldMetadataMock({
|
||||
id: '0292cc51-246f-40b8-99e8-3345dac0e688',
|
||||
@@ -534,7 +384,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '0292cc51-246f-40b8-99e8-3345dac0e688',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
traits: getFlatFieldMetadataMock({
|
||||
id: '5aaf6be0-b9f5-4222-9810-941d5ab58527',
|
||||
@@ -602,7 +451,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '5aaf6be0-b9f5-4222-9810-941d5ab58527',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
comments: getFlatFieldMetadataMock({
|
||||
id: '2e726631-d80a-4594-9a5a-3cca0c2a50a9',
|
||||
@@ -627,7 +475,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '2e726631-d80a-4594-9a5a-3cca0c2a50a9',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
age: getFlatFieldMetadataMock({
|
||||
id: 'ed1573cf-b29e-4d4f-a8e3-19d472d28c0d',
|
||||
@@ -652,7 +499,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: 'ed1573cf-b29e-4d4f-a8e3-19d472d28c0d',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
location: getFlatFieldMetadataMock({
|
||||
id: '7b05e127-d0ea-422a-8f98-ef48f41d4388',
|
||||
@@ -686,7 +532,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '7b05e127-d0ea-422a-8f98-ef48f41d4388',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
vetPhone: getFlatFieldMetadataMock({
|
||||
id: '92c856ef-5b4b-4202-8c23-b2f22f959eda',
|
||||
@@ -716,7 +561,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '92c856ef-5b4b-4202-8c23-b2f22f959eda',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
vetEmail: getFlatFieldMetadataMock({
|
||||
id: '2c89697d-925a-485c-a0ed-adf2f1228e0f',
|
||||
@@ -741,7 +585,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '2c89697d-925a-485c-a0ed-adf2f1228e0f',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
birthday: getFlatFieldMetadataMock({
|
||||
id: '13c5b4ed-5746-494f-856b-081bdbb4a8ec',
|
||||
@@ -766,7 +609,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '13c5b4ed-5746-494f-856b-081bdbb4a8ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
isGoodWithKids: getFlatFieldMetadataMock({
|
||||
id: 'ec3bf27e-70e6-4d4a-932e-6ef026013603',
|
||||
@@ -791,7 +633,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: 'ec3bf27e-70e6-4d4a-932e-6ef026013603',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
pictures: getFlatFieldMetadataMock({
|
||||
id: '8aa0a700-c308-4d8b-8fbd-f545daa8980a',
|
||||
@@ -820,7 +661,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '8aa0a700-c308-4d8b-8fbd-f545daa8980a',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
averageCostOfKibblePerMonth: getFlatFieldMetadataMock({
|
||||
id: '37421848-b64d-4827-be33-da4e337acbb6',
|
||||
@@ -845,7 +685,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '37421848-b64d-4827-be33-da4e337acbb6',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
makesOwnerThinkOf: getFlatFieldMetadataMock({
|
||||
id: '84b874dc-983d-47eb-9c67-54f557a99f60',
|
||||
@@ -870,7 +709,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '84b874dc-983d-47eb-9c67-54f557a99f60',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
soundSwag: getFlatFieldMetadataMock({
|
||||
id: '42e6c0d2-6d00-4c77-b179-890af8c56236',
|
||||
@@ -926,7 +764,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '42e6c0d2-6d00-4c77-b179-890af8c56236',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
bio: getFlatFieldMetadataMock({
|
||||
id: 'fa0ec409-0f29-4b19-b304-31d1018a2344',
|
||||
@@ -951,7 +788,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: 'fa0ec409-0f29-4b19-b304-31d1018a2344',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
interestingFacts: getFlatFieldMetadataMock({
|
||||
id: '2b806a74-e7a5-4ec7-b902-67cf811e8bda',
|
||||
@@ -976,7 +812,6 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '2b806a74-e7a5-4ec7-b902-67cf811e8bda',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
extraData: getFlatFieldMetadataMock({
|
||||
id: 'a79bd7c8-c7ce-416a-9d12-a05335c9c596',
|
||||
@@ -1001,6 +836,5 @@ export const PET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: 'a79bd7c8-c7ce-416a-9d12-a05335c9c596',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
} as const satisfies Record<string, FlatFieldMetadata>;
|
||||
|
||||
-150
@@ -3,9 +3,7 @@ import { FieldMetadataType } 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 { getRelationTargetFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-morph-or-relation-target-flat-field-metadata-mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
id: getFlatFieldMetadataMock({
|
||||
@@ -31,7 +29,6 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
name: getFlatFieldMetadataMock({
|
||||
id: '9c10de36-1ade-4be1-af78-c4fc55669fbd',
|
||||
@@ -56,7 +53,6 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-ba07-4ffd-ba63-009491f5749c',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdAt: getFlatFieldMetadataMock({
|
||||
id: '7aa0896a-82dd-43c0-b38f-a316a8064d51',
|
||||
@@ -81,7 +77,6 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
updatedAt: getFlatFieldMetadataMock({
|
||||
id: '1ca95b19-f02d-43c1-b9ae-8a9d522bb34b',
|
||||
@@ -106,7 +101,6 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
deletedAt: getFlatFieldMetadataMock({
|
||||
id: 'aae8d11a-27b3-4844-a68f-a2023ae12443',
|
||||
@@ -131,7 +125,6 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdBy: getFlatFieldMetadataMock({
|
||||
id: '23ebf744-88ad-4d0f-9084-a63e29c4655b',
|
||||
@@ -156,7 +149,6 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-be0e-4971-865b-32ca87cbb315',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
position: getFlatFieldMetadataMock({
|
||||
id: '2f1976a6-ae59-43c5-85bc-49fb8fd03e18',
|
||||
@@ -181,7 +173,6 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-c2bd-4e16-bb9a-c8b0411bf49d',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
timelineActivities: getFlatFieldMetadataMock({
|
||||
id: '53a223cc-a445-420d-8698-1a9137039448',
|
||||
@@ -206,34 +197,6 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'eebb9590-817b-4a51-88f7-9792aa8e0a59',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-f1ef-4ba4-8f33-1a4577afa477',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'eebb9590-817b-4a51-88f7-9792aa8e0a59',
|
||||
standardId: '20202020-0be6-444e-88f0-12e0c64ac27d',
|
||||
objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'rocket',
|
||||
label: 'Rocket',
|
||||
defaultValue: null,
|
||||
description: 'TimelineActivities 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: '53a223cc-a445-420d-8698-1a9137039448',
|
||||
relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
|
||||
universalIdentifier: '20202020-0be6-444e-88f0-12e0c64ac27d',
|
||||
}),
|
||||
}),
|
||||
favorites: getFlatFieldMetadataMock({
|
||||
id: '14010360-f3c2-442e-b05f-43c30158f246',
|
||||
@@ -258,34 +221,6 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '9448627d-725d-499e-a071-90fd5cfcf0ea',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-a4a7-4686-b296-1c6c3482ee21',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '9448627d-725d-499e-a071-90fd5cfcf0ea',
|
||||
standardId: '20202020-78f7-4d7d-86e9-7562ced0b381',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
attachments: getFlatFieldMetadataMock({
|
||||
id: 'f5984acf-5128-42ac-840f-9d2888423699',
|
||||
@@ -310,34 +245,6 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'ba23019c-7f25-42c3-8138-622e61c42968',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-8d59-46ca-b7b2-73d167712134',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'ba23019c-7f25-42c3-8138-622e61c42968',
|
||||
standardId: '20202020-ca2d-47c0-8253-9d0b662fb01a',
|
||||
objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'rocket',
|
||||
label: 'Rocket',
|
||||
defaultValue: null,
|
||||
description: 'Attachments 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: 'f5984acf-5128-42ac-840f-9d2888423699',
|
||||
relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
|
||||
universalIdentifier: '20202020-ca2d-47c0-8253-9d0b662fb01a',
|
||||
}),
|
||||
}),
|
||||
noteTargets: getFlatFieldMetadataMock({
|
||||
id: 'c91376fb-20bd-47c7-8922-b64f7db51cfa',
|
||||
@@ -362,34 +269,6 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '4212b3d7-dd9f-4da9-85f7-2fa69a42296f',
|
||||
relationTargetObjectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
universalIdentifier: '20202020-01fd-4f37-99dc-9427a444018a',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '4212b3d7-dd9f-4da9-85f7-2fa69a42296f',
|
||||
standardId: '20202020-52b6-4d5e-8f21-ed8b7c09c4a9',
|
||||
objectMetadataId: '12e3cb51-c3de-4192-b0d5-965d48d001c0',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'rocket',
|
||||
label: 'Rocket',
|
||||
defaultValue: null,
|
||||
description: 'NoteTargets 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: 'c91376fb-20bd-47c7-8922-b64f7db51cfa',
|
||||
relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
|
||||
universalIdentifier: '20202020-52b6-4d5e-8f21-ed8b7c09c4a9',
|
||||
}),
|
||||
}),
|
||||
taskTargets: getFlatFieldMetadataMock({
|
||||
id: '80e3b587-69ec-48bc-a872-20105c3b7df4',
|
||||
@@ -414,34 +293,6 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'a7e80fd8-76bc-45ed-b843-a2b87ef4d601',
|
||||
relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
universalIdentifier: '20202020-0860-4566-b865-bff3c626c303',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'a7e80fd8-76bc-45ed-b843-a2b87ef4d601',
|
||||
standardId: '20202020-b98f-473d-85fb-8cebc40b9a50',
|
||||
objectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'rocket',
|
||||
label: 'Rocket',
|
||||
defaultValue: null,
|
||||
description: 'TaskTargets 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: '80e3b587-69ec-48bc-a872-20105c3b7df4',
|
||||
relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
|
||||
universalIdentifier: '20202020-b98f-473d-85fb-8cebc40b9a50',
|
||||
}),
|
||||
}),
|
||||
searchVector: getFlatFieldMetadataMock({
|
||||
id: 'e7609ea3-5a88-4d64-b0c1-eefd4602361a',
|
||||
@@ -466,6 +317,5 @@ export const ROCKET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '70e56537-18ef-4811-b1c7-0a444006b815',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
} as const satisfies Record<string, FlatFieldMetadata>;
|
||||
|
||||
-148
@@ -4,7 +4,6 @@ import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/in
|
||||
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 { getRelationTargetFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-morph-or-relation-target-flat-field-metadata-mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
@@ -32,7 +31,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-7d47-4690-8a98-98b9a0c05dd8',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
title: getFlatFieldMetadataMock({
|
||||
id: '88e4eeac-1d47-4e44-a795-bb5ca93c6557',
|
||||
@@ -57,7 +55,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b386-4cb7-aa5a-08d4a4d92680',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
bodyV2: getFlatFieldMetadataMock({
|
||||
id: '161570ed-7fcd-4172-a5d1-c773cd9afe76',
|
||||
@@ -82,7 +79,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-4aa0-4ae8-898d-7df0afd47ab1',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
dueAt: getFlatFieldMetadataMock({
|
||||
id: '1723b01e-e10b-4410-8cc2-3e0b937754e4',
|
||||
@@ -107,7 +103,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-fd99-40da-951b-4cb9a352fce3',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
status: getFlatFieldMetadataMock({
|
||||
id: '44924cd6-fa70-4239-8c22-f17107f83574',
|
||||
@@ -154,7 +149,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-70bc-48f9-89c5-6aa730b151e0',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdBy: getFlatFieldMetadataMock({
|
||||
id: '575c3d51-5cdc-4ff0-aa67-dcc7f1ba2448',
|
||||
@@ -183,7 +177,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-1a04-48ab-a567-576965ae5387',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
searchVector: getFlatFieldMetadataMock({
|
||||
id: 'bc00547b-b4c5-4d49-a4f1-97159df5cbc1',
|
||||
@@ -208,7 +201,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-4746-4e2f-870c-52b02c67c90d',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
id: getFlatFieldMetadataMock({
|
||||
id: 'dc9b18f9-237c-40ba-97c1-e92c2d7c8e2e',
|
||||
@@ -233,7 +225,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdAt: getFlatFieldMetadataMock({
|
||||
id: '10c9e428-0739-48a6-8c39-28e6935dfb7c',
|
||||
@@ -258,7 +249,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
updatedAt: getFlatFieldMetadataMock({
|
||||
id: 'cafcc785-7940-4d27-92e3-ba4b5be5af03',
|
||||
@@ -283,7 +273,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
deletedAt: getFlatFieldMetadataMock({
|
||||
id: 'aa440383-fb91-492c-948f-5b57275cf8e1',
|
||||
@@ -308,7 +297,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
taskTargets: getFlatFieldMetadataMock({
|
||||
id: 'cd08bc00-d02c-48d4-a1ac-a0cfa13742b7',
|
||||
@@ -333,34 +321,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'c906885c-315a-4783-942e-6caafecf2031',
|
||||
relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
universalIdentifier: '20202020-de9c-4d0e-a452-713d4a3e5fc7',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'c906885c-315a-4783-942e-6caafecf2031',
|
||||
standardId: '20202020-e881-457a-8758-74aaef4ae78a',
|
||||
objectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'task',
|
||||
label: 'Task',
|
||||
defaultValue: null,
|
||||
description: 'TaskTarget task',
|
||||
icon: 'IconCheckbox',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: {
|
||||
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||
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: 'cd08bc00-d02c-48d4-a1ac-a0cfa13742b7',
|
||||
relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0',
|
||||
universalIdentifier: '20202020-e881-457a-8758-74aaef4ae78a',
|
||||
}),
|
||||
}),
|
||||
attachments: getFlatFieldMetadataMock({
|
||||
id: '00fd339a-6431-465d-9524-09b5c804f497',
|
||||
@@ -385,34 +345,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'bd823f17-f923-4f0d-8533-51d7bc062975',
|
||||
relationTargetObjectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
universalIdentifier: '20202020-794d-4783-a8ff-cecdb15be139',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'bd823f17-f923-4f0d-8533-51d7bc062975',
|
||||
standardId: '20202020-51e5-4621-9cf8-215487951c4b',
|
||||
objectMetadataId: '819ed5ff-312f-4423-8e95-02a691cf5c27',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'task',
|
||||
label: 'Task',
|
||||
defaultValue: null,
|
||||
description: 'Attachment task',
|
||||
icon: 'IconNotes',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: {
|
||||
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||
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: '00fd339a-6431-465d-9524-09b5c804f497',
|
||||
relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0',
|
||||
universalIdentifier: '20202020-51e5-4621-9cf8-215487951c4b',
|
||||
}),
|
||||
}),
|
||||
assignee: getFlatFieldMetadataMock({
|
||||
id: '0e18f5e1-32c3-4daa-b282-ab64fb629b20',
|
||||
@@ -441,30 +373,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '68779392-f0ec-42b4-9d89-9645ae84039d',
|
||||
relationTargetObjectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840',
|
||||
universalIdentifier: '20202020-065a-4f42-a906-e20422c1753f',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '68779392-f0ec-42b4-9d89-9645ae84039d',
|
||||
standardId: '20202020-61dc-4a1c-99e8-38ebf8d2bbeb',
|
||||
objectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'assignedTasks',
|
||||
label: 'Assigned tasks',
|
||||
defaultValue: null,
|
||||
description: 'Tasks assigned to the workspace member',
|
||||
icon: 'IconCheckbox',
|
||||
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: '0e18f5e1-32c3-4daa-b282-ab64fb629b20',
|
||||
relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0',
|
||||
universalIdentifier: '20202020-61dc-4a1c-99e8-38ebf8d2bbeb',
|
||||
}),
|
||||
}),
|
||||
timelineActivities: getFlatFieldMetadataMock({
|
||||
id: '3536b3af-76a2-44f5-9d89-1961a0a0a763',
|
||||
@@ -489,34 +397,6 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '187eaeb8-62c8-4925-815f-946b4768b786',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-c778-4278-99ee-23a2837aee64',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '187eaeb8-62c8-4925-815f-946b4768b786',
|
||||
standardId: '20202020-b2f5-415c-9135-a31dfe49501b',
|
||||
objectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'task',
|
||||
label: 'Task',
|
||||
defaultValue: null,
|
||||
description: 'Event task',
|
||||
icon: 'IconTargetArrow',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: {
|
||||
onDelete: RelationOnDeleteAction.SET_NULL,
|
||||
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: '3536b3af-76a2-44f5-9d89-1961a0a0a763',
|
||||
relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0',
|
||||
universalIdentifier: '20202020-b2f5-415c-9135-a31dfe49501b',
|
||||
}),
|
||||
}),
|
||||
favorites: getFlatFieldMetadataMock({
|
||||
id: '33e4eff0-ff0f-4530-802a-cd630481ee84',
|
||||
@@ -541,33 +421,5 @@ export const TASK_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'db16ab78-ea3f-4b67-93e3-6ad9ab1b7273',
|
||||
relationTargetObjectMetadataId: 'f4749ffb-dde8-44ff-8b01-d3fc82df0ba2',
|
||||
universalIdentifier: '20202020-4d1d-41ac-b13b-621631298d65',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'db16ab78-ea3f-4b67-93e3-6ad9ab1b7273',
|
||||
standardId: '20202020-1b1b-4b3b-8b1b-7f8d6a1d7d5c',
|
||||
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',
|
||||
}),
|
||||
}),
|
||||
} as const satisfies Record<string, FlatFieldMetadata>;
|
||||
|
||||
-173
@@ -4,7 +4,6 @@ import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/in
|
||||
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 { getRelationTargetFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-morph-or-relation-target-flat-field-metadata-mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
@@ -32,7 +31,6 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdAt: getFlatFieldMetadataMock({
|
||||
id: '040784f1-4b59-4033-b4c7-7ed426d70b65',
|
||||
@@ -57,7 +55,6 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
updatedAt: getFlatFieldMetadataMock({
|
||||
id: '2b0881e8-767b-4428-ae25-b6ac1a97293a',
|
||||
@@ -82,7 +79,6 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
deletedAt: getFlatFieldMetadataMock({
|
||||
id: '42b66721-a65c-41bf-a1d7-971ff732be12',
|
||||
@@ -107,7 +103,6 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
task: getFlatFieldMetadataMock({
|
||||
id: 'c906885c-315a-4783-942e-6caafecf2031',
|
||||
@@ -136,30 +131,6 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'cd08bc00-d02c-48d4-a1ac-a0cfa13742b7',
|
||||
relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0',
|
||||
universalIdentifier: '20202020-e881-457a-8758-74aaef4ae78a',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'cd08bc00-d02c-48d4-a1ac-a0cfa13742b7',
|
||||
standardId: '20202020-de9c-4d0e-a452-713d4a3e5fc7',
|
||||
objectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'taskTargets',
|
||||
label: 'Relations',
|
||||
defaultValue: null,
|
||||
description: 'Task targets',
|
||||
icon: 'IconArrowUpRight',
|
||||
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: 'c906885c-315a-4783-942e-6caafecf2031',
|
||||
relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
universalIdentifier: '20202020-de9c-4d0e-a452-713d4a3e5fc7',
|
||||
}),
|
||||
}),
|
||||
person: getFlatFieldMetadataMock({
|
||||
id: '64225f87-96c4-4846-9462-e7aa3ad9e182',
|
||||
@@ -188,30 +159,6 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '9609ca31-215e-47fd-9b3b-ab200acb2fa8',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-c8a0-4e85-a016-87e2349cfbec',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '9609ca31-215e-47fd-9b3b-ab200acb2fa8',
|
||||
standardId: '20202020-584b-4d3e-88b6-53ab1fa03c3a',
|
||||
objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'taskTargets',
|
||||
label: 'Tasks',
|
||||
defaultValue: null,
|
||||
description: 'Tasks tied to the contact',
|
||||
icon: 'IconCheckbox',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: { relationType: RelationType.ONE_TO_MANY },
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
isSystem: false,
|
||||
isNullable: true,
|
||||
isUnique: false,
|
||||
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
|
||||
isLabelSyncedWithName: false,
|
||||
relationTargetFieldMetadataId: '64225f87-96c4-4846-9462-e7aa3ad9e182',
|
||||
relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
universalIdentifier: '20202020-584b-4d3e-88b6-53ab1fa03c3a',
|
||||
}),
|
||||
}),
|
||||
company: getFlatFieldMetadataMock({
|
||||
id: 'ec11b025-1476-4e84-81c5-cf5b5c776edc',
|
||||
@@ -240,30 +187,6 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '4f9138da-cd36-4df4-98f9-ebabe036b141',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: '20202020-4703-4a4e-948c-487b0c60a92c',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '4f9138da-cd36-4df4-98f9-ebabe036b141',
|
||||
standardId: '20202020-cb17-4a61-8f8f-3be6730480de',
|
||||
objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'taskTargets',
|
||||
label: 'Tasks',
|
||||
defaultValue: null,
|
||||
description: 'Tasks tied to the company',
|
||||
icon: 'IconCheckbox',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: { relationType: RelationType.ONE_TO_MANY },
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
isSystem: false,
|
||||
isNullable: true,
|
||||
isUnique: false,
|
||||
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
|
||||
isLabelSyncedWithName: false,
|
||||
relationTargetFieldMetadataId: 'ec11b025-1476-4e84-81c5-cf5b5c776edc',
|
||||
relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
universalIdentifier: '20202020-cb17-4a61-8f8f-3be6730480de',
|
||||
}),
|
||||
}),
|
||||
opportunity: getFlatFieldMetadataMock({
|
||||
id: '49afc8d8-dde3-4d19-aa6b-bd16a751b114',
|
||||
@@ -292,30 +215,6 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'c0c9f9ac-0d40-4206-90e5-0d1e14f8a09f',
|
||||
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
universalIdentifier: '20202020-6cb2-4c01-a9a5-aca3dbc11d41',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'c0c9f9ac-0d40-4206-90e5-0d1e14f8a09f',
|
||||
standardId: '20202020-59c0-4179-a208-4a255f04a5be',
|
||||
objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'taskTargets',
|
||||
label: 'Tasks',
|
||||
defaultValue: null,
|
||||
description: 'Tasks tied to the opportunity',
|
||||
icon: 'IconCheckbox',
|
||||
standardOverrides: null,
|
||||
options: null,
|
||||
settings: { relationType: RelationType.ONE_TO_MANY },
|
||||
isCustom: false,
|
||||
isActive: true,
|
||||
isSystem: false,
|
||||
isNullable: true,
|
||||
isUnique: false,
|
||||
workspaceId: '20202020-1c25-4d02-bf25-6aeccf7ea419',
|
||||
isLabelSyncedWithName: false,
|
||||
relationTargetFieldMetadataId: '49afc8d8-dde3-4d19-aa6b-bd16a751b114',
|
||||
relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
universalIdentifier: '20202020-59c0-4179-a208-4a255f04a5be',
|
||||
}),
|
||||
}),
|
||||
rocket: getFlatFieldMetadataMock({
|
||||
id: 'a7e80fd8-76bc-45ed-b843-a2b87ef4d601',
|
||||
@@ -344,30 +243,6 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '80e3b587-69ec-48bc-a872-20105c3b7df4',
|
||||
relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
|
||||
universalIdentifier: '20202020-b98f-473d-85fb-8cebc40b9a50',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '80e3b587-69ec-48bc-a872-20105c3b7df4',
|
||||
standardId: '20202020-0860-4566-b865-bff3c626c303',
|
||||
objectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'taskTargets',
|
||||
label: 'TaskTargets',
|
||||
defaultValue: null,
|
||||
description: 'TaskTargets tied to the Rocket',
|
||||
icon: 'IconCheckbox',
|
||||
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: 'a7e80fd8-76bc-45ed-b843-a2b87ef4d601',
|
||||
relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
universalIdentifier: '20202020-0860-4566-b865-bff3c626c303',
|
||||
}),
|
||||
}),
|
||||
pet: getFlatFieldMetadataMock({
|
||||
id: '3955a4b4-1c10-4ce8-a92e-98e727ee7aec',
|
||||
@@ -396,30 +271,6 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '3cae8259-ece8-4b81-9044-f5abae5ff25c',
|
||||
relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
|
||||
universalIdentifier: '20202020-07d9-4d04-8b73-a39ab65943f1',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '3cae8259-ece8-4b81-9044-f5abae5ff25c',
|
||||
standardId: '20202020-0860-4566-b865-bff3c626c303',
|
||||
objectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'taskTargets',
|
||||
label: 'TaskTargets',
|
||||
defaultValue: null,
|
||||
description: 'TaskTargets tied to the Pet',
|
||||
icon: 'IconCheckbox',
|
||||
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: '3955a4b4-1c10-4ce8-a92e-98e727ee7aec',
|
||||
relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
universalIdentifier: '20202020-0860-4566-b865-bff3c626c303',
|
||||
}),
|
||||
}),
|
||||
surveyResult: getFlatFieldMetadataMock({
|
||||
id: 'caa8b6cf-c668-4fb0-abf9-e49645668020',
|
||||
@@ -448,29 +299,5 @@ export const TASKTARGET_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'c4004fb2-3464-4302-b3c3-a32a1879fed7',
|
||||
relationTargetObjectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8',
|
||||
universalIdentifier: '20202020-c376-450d-8a49-a573f23eafd8',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'c4004fb2-3464-4302-b3c3-a32a1879fed7',
|
||||
standardId: '20202020-0860-4566-b865-bff3c626c303',
|
||||
objectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'taskTargets',
|
||||
label: 'TaskTargets',
|
||||
defaultValue: null,
|
||||
description: 'TaskTargets tied to the Survey result',
|
||||
icon: 'IconCheckbox',
|
||||
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: 'caa8b6cf-c668-4fb0-abf9-e49645668020',
|
||||
relationTargetObjectMetadataId: 'bb2b29b8-7f46-4106-a8ae-3a32df9c9166',
|
||||
universalIdentifier: '20202020-0860-4566-b865-bff3c626c303',
|
||||
}),
|
||||
}),
|
||||
} as const satisfies Record<string, FlatFieldMetadata>;
|
||||
|
||||
-299
@@ -4,7 +4,6 @@ import { DateDisplayFormat } from 'src/engine/metadata-modules/field-metadata/in
|
||||
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 { getRelationTargetFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-morph-or-relation-target-flat-field-metadata-mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
@@ -32,7 +31,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-9526-4993-b339-c4318c4d39f0',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
name: getFlatFieldMetadataMock({
|
||||
id: '8271b048-89c8-4db9-ba49-e20d1e634cea',
|
||||
@@ -57,7 +55,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-7207-46e8-9dab-849505ae8497',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
properties: getFlatFieldMetadataMock({
|
||||
id: '5067203a-5fc0-47a7-8fb3-466e8edc8e82',
|
||||
@@ -82,7 +79,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-f142-4b04-b91b-6a2b4af3bf11',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
linkedRecordCachedName: getFlatFieldMetadataMock({
|
||||
id: '6192bb0a-dcff-4ce9-9373-6b3efd74def3',
|
||||
@@ -107,7 +103,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-cfdb-4bef-bbce-a29f41230934',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
linkedRecordId: getFlatFieldMetadataMock({
|
||||
id: '1a1b9069-0274-4d89-a189-6944ebd8afd5',
|
||||
@@ -132,7 +127,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-2e0e-48c0-b445-ee6c1e61687d',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
linkedObjectMetadataId: getFlatFieldMetadataMock({
|
||||
id: 'aa0a6096-ddd6-44b3-a8c1-ec4c1ec70c52',
|
||||
@@ -157,7 +151,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-c595-449d-9f89-562758c9ee69',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
id: getFlatFieldMetadataMock({
|
||||
id: 'e78264fa-48bc-46cd-afc1-c5f2b5eb9472',
|
||||
@@ -182,7 +175,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-eda0-4cee-9577-3eb357e3c22b',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
createdAt: getFlatFieldMetadataMock({
|
||||
id: 'cb8b2800-2a6e-443c-b671-df51c8a8ccdc',
|
||||
@@ -207,7 +199,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-66ac-4502-9975-e4d959c50311',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
updatedAt: getFlatFieldMetadataMock({
|
||||
id: 'cc7b974c-4cb3-4b61-821a-824b4764fc6b',
|
||||
@@ -232,7 +223,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-d767-4622-bdcf-d8a084834d86',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
deletedAt: getFlatFieldMetadataMock({
|
||||
id: '544fdd41-6418-43e4-a46a-086c2c55924d',
|
||||
@@ -257,7 +247,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: null,
|
||||
relationTargetObjectMetadataId: null,
|
||||
universalIdentifier: '20202020-b9a7-48d8-8387-b9a3090a50ec',
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
}),
|
||||
workspaceMember: getFlatFieldMetadataMock({
|
||||
id: 'c8d9c315-034a-4ffd-a6b3-e6386092d0a8',
|
||||
@@ -286,30 +275,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'b2172f26-093d-4c9f-86c3-f0bcfaf54ad6',
|
||||
relationTargetObjectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840',
|
||||
universalIdentifier: '20202020-af23-4479-9a30-868edc474b36',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'b2172f26-093d-4c9f-86c3-f0bcfaf54ad6',
|
||||
standardId: '20202020-e15b-47b8-94fe-8200e3c66615',
|
||||
objectMetadataId: '7d8264db-2b55-4b74-81ff-b7064ed43840',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'timelineActivities',
|
||||
label: 'Events',
|
||||
defaultValue: null,
|
||||
description: 'Events linked to the workspace member',
|
||||
icon: 'IconTimelineEvent',
|
||||
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: 'c8d9c315-034a-4ffd-a6b3-e6386092d0a8',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-e15b-47b8-94fe-8200e3c66615',
|
||||
}),
|
||||
}),
|
||||
person: getFlatFieldMetadataMock({
|
||||
id: 'dbd02754-4bef-4149-b39d-54759983ab47',
|
||||
@@ -338,30 +303,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'b1457347-545b-4a42-9c68-bc655952229a',
|
||||
relationTargetObjectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
universalIdentifier: '20202020-c414-45b9-a60a-ac27aa96229f',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'b1457347-545b-4a42-9c68-bc655952229a',
|
||||
standardId: '20202020-a43e-4873-9c23-e522de906ce5',
|
||||
objectMetadataId: '843e0b67-9619-4628-91c4-2fa62256a611',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'timelineActivities',
|
||||
label: 'Events',
|
||||
defaultValue: null,
|
||||
description: 'Events linked to the person',
|
||||
icon: 'IconTimelineEvent',
|
||||
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: 'dbd02754-4bef-4149-b39d-54759983ab47',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-a43e-4873-9c23-e522de906ce5',
|
||||
}),
|
||||
}),
|
||||
company: getFlatFieldMetadataMock({
|
||||
id: 'fd8cabe5-7dc8-4d6a-8053-43434488b3e4',
|
||||
@@ -390,30 +331,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'cc78390f-f570-4c2c-9f19-2a8fef67f4f6',
|
||||
relationTargetObjectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
universalIdentifier: '20202020-04ad-4221-a744-7a8278a5ce21',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'cc78390f-f570-4c2c-9f19-2a8fef67f4f6',
|
||||
standardId: '20202020-0414-4daf-9c0d-64fe7b27f89f',
|
||||
objectMetadataId: '7f5c2c7a-bb23-46fb-b59d-9b7a52a8d1cc',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'timelineActivities',
|
||||
label: 'Timeline Activities',
|
||||
defaultValue: null,
|
||||
description: 'Timeline Activities linked to the company',
|
||||
icon: 'IconIconTimelineEvent',
|
||||
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: 'fd8cabe5-7dc8-4d6a-8053-43434488b3e4',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-0414-4daf-9c0d-64fe7b27f89f',
|
||||
}),
|
||||
}),
|
||||
opportunity: getFlatFieldMetadataMock({
|
||||
id: '026cbaa7-860c-4ed4-b878-8d78849e6c28',
|
||||
@@ -442,30 +359,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '7826944b-3b21-4448-892e-5a2a68161313',
|
||||
relationTargetObjectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
universalIdentifier: '20202020-7664-4a35-a3df-580d389fd527',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '7826944b-3b21-4448-892e-5a2a68161313',
|
||||
standardId: '20202020-30e2-421f-96c7-19c69d1cf631',
|
||||
objectMetadataId: 'e6996bbf-dd41-423a-9324-8546f5b22fa7',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'timelineActivities',
|
||||
label: 'Timeline Activities',
|
||||
defaultValue: null,
|
||||
description: 'Timeline Activities linked to the opportunity.',
|
||||
icon: 'IconTimelineEvent',
|
||||
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: '026cbaa7-860c-4ed4-b878-8d78849e6c28',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-30e2-421f-96c7-19c69d1cf631',
|
||||
}),
|
||||
}),
|
||||
note: getFlatFieldMetadataMock({
|
||||
id: '2b9f1c90-9e35-4ccc-8d84-b42de31ef127',
|
||||
@@ -494,30 +387,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '1207d260-db2c-41d4-bb09-34ea1188978f',
|
||||
relationTargetObjectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c',
|
||||
universalIdentifier: '20202020-ec55-4135-8da5-3a20badc0156',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '1207d260-db2c-41d4-bb09-34ea1188978f',
|
||||
standardId: '20202020-7030-42f8-929c-1a57b25d6bce',
|
||||
objectMetadataId: '1253e3e5-5b00-4a34-93b8-02f3dc6e2b7c',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'timelineActivities',
|
||||
label: 'Timeline Activities',
|
||||
defaultValue: null,
|
||||
description: 'Timeline Activities linked to the note.',
|
||||
icon: 'IconTimelineEvent',
|
||||
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: '2b9f1c90-9e35-4ccc-8d84-b42de31ef127',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-7030-42f8-929c-1a57b25d6bce',
|
||||
}),
|
||||
}),
|
||||
task: getFlatFieldMetadataMock({
|
||||
id: '187eaeb8-62c8-4925-815f-946b4768b786',
|
||||
@@ -546,30 +415,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '3536b3af-76a2-44f5-9d89-1961a0a0a763',
|
||||
relationTargetObjectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0',
|
||||
universalIdentifier: '20202020-b2f5-415c-9135-a31dfe49501b',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '3536b3af-76a2-44f5-9d89-1961a0a0a763',
|
||||
standardId: '20202020-c778-4278-99ee-23a2837aee64',
|
||||
objectMetadataId: '3186920d-2a15-4b5f-96c7-2bf6567024b0',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'timelineActivities',
|
||||
label: 'Timeline Activities',
|
||||
defaultValue: null,
|
||||
description: 'Timeline Activities linked to the task.',
|
||||
icon: 'IconTimelineEvent',
|
||||
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: '187eaeb8-62c8-4925-815f-946b4768b786',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-c778-4278-99ee-23a2837aee64',
|
||||
}),
|
||||
}),
|
||||
workflow: getFlatFieldMetadataMock({
|
||||
id: '9973da2e-cc65-41b2-8f52-4130cfa31fc6',
|
||||
@@ -598,30 +443,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '384db7b5-3551-4774-9258-7082b26b502a',
|
||||
relationTargetObjectMetadataId: '664c19a5-0693-45d4-a4e5-76c3717db83c',
|
||||
universalIdentifier: '20202020-616c-4ad3-a2e9-c477c341e295',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '384db7b5-3551-4774-9258-7082b26b502a',
|
||||
standardId: '20202020-906e-486a-a798-131a5f081faf',
|
||||
objectMetadataId: '664c19a5-0693-45d4-a4e5-76c3717db83c',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'timelineActivities',
|
||||
label: 'Timeline Activities',
|
||||
defaultValue: null,
|
||||
description: 'Timeline activities linked to the workflow',
|
||||
icon: null,
|
||||
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: '9973da2e-cc65-41b2-8f52-4130cfa31fc6',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-906e-486a-a798-131a5f081faf',
|
||||
}),
|
||||
}),
|
||||
workflowVersion: getFlatFieldMetadataMock({
|
||||
id: '7e5b7033-8c4f-4bdc-9156-6954c268fbb8',
|
||||
@@ -650,30 +471,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '767ab66d-f3d7-4bac-b0be-f738f8c6fda7',
|
||||
relationTargetObjectMetadataId: '99cf5f27-b41d-4f25-a23b-9e47d27dae9b',
|
||||
universalIdentifier: '20202020-74f1-4711-a129-e14ca0ecd744',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '767ab66d-f3d7-4bac-b0be-f738f8c6fda7',
|
||||
standardId: '20202020-fcb0-4695-b17e-3b43a421c633',
|
||||
objectMetadataId: '99cf5f27-b41d-4f25-a23b-9e47d27dae9b',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'timelineActivities',
|
||||
label: 'Timeline Activities',
|
||||
defaultValue: null,
|
||||
description: 'Timeline activities linked to the version',
|
||||
icon: null,
|
||||
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: '7e5b7033-8c4f-4bdc-9156-6954c268fbb8',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-fcb0-4695-b17e-3b43a421c633',
|
||||
}),
|
||||
}),
|
||||
workflowRun: getFlatFieldMetadataMock({
|
||||
id: '1cd2b19c-f5c5-40b4-ad41-cc7aa3e955b2',
|
||||
@@ -702,30 +499,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'c17fe20f-fcd1-4b21-ac5c-c595473a3af8',
|
||||
relationTargetObjectMetadataId: '06d95e96-b050-443f-946e-dd276d291a2f',
|
||||
universalIdentifier: '20202020-96f0-401b-9186-a3a0759225ac',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'c17fe20f-fcd1-4b21-ac5c-c595473a3af8',
|
||||
standardId: '20202020-af4d-4eb0-babc-eb960a45b356',
|
||||
objectMetadataId: '06d95e96-b050-443f-946e-dd276d291a2f',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'timelineActivities',
|
||||
label: 'Timeline Activities',
|
||||
defaultValue: null,
|
||||
description: 'Timeline activities linked to the run',
|
||||
icon: null,
|
||||
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: '1cd2b19c-f5c5-40b4-ad41-cc7aa3e955b2',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-af4d-4eb0-babc-eb960a45b356',
|
||||
}),
|
||||
}),
|
||||
rocket: getFlatFieldMetadataMock({
|
||||
id: 'eebb9590-817b-4a51-88f7-9792aa8e0a59',
|
||||
@@ -754,30 +527,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '53a223cc-a445-420d-8698-1a9137039448',
|
||||
relationTargetObjectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
|
||||
universalIdentifier: '20202020-0be6-444e-88f0-12e0c64ac27d',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '53a223cc-a445-420d-8698-1a9137039448',
|
||||
standardId: '20202020-f1ef-4ba4-8f33-1a4577afa477',
|
||||
objectMetadataId: 'd78ec657-74a4-4652-a350-1f44ff62970a',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'timelineActivities',
|
||||
label: 'TimelineActivities',
|
||||
defaultValue: null,
|
||||
description: 'TimelineActivities tied to the Rocket',
|
||||
icon: 'IconTimelineEvent',
|
||||
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: 'eebb9590-817b-4a51-88f7-9792aa8e0a59',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-f1ef-4ba4-8f33-1a4577afa477',
|
||||
}),
|
||||
}),
|
||||
pet: getFlatFieldMetadataMock({
|
||||
id: '3cb86390-4ee7-42fa-bd1e-bd6326b47610',
|
||||
@@ -806,30 +555,6 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: '4eb74f21-1cb4-46b5-b3bb-4e41108e70d9',
|
||||
relationTargetObjectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
|
||||
universalIdentifier: '20202020-d88f-4020-8c85-d6c600903762',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: '4eb74f21-1cb4-46b5-b3bb-4e41108e70d9',
|
||||
standardId: '20202020-f1ef-4ba4-8f33-1a4577afa477',
|
||||
objectMetadataId: 'd34e0f07-1b8c-4de0-938e-599cf05e1f7f',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'timelineActivities',
|
||||
label: 'TimelineActivities',
|
||||
defaultValue: null,
|
||||
description: 'TimelineActivities tied to the Pet',
|
||||
icon: 'IconTimelineEvent',
|
||||
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: '3cb86390-4ee7-42fa-bd1e-bd6326b47610',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-f1ef-4ba4-8f33-1a4577afa477',
|
||||
}),
|
||||
}),
|
||||
surveyResult: getFlatFieldMetadataMock({
|
||||
id: '06010d88-dc3c-4172-92c9-8c73924f950d',
|
||||
@@ -858,29 +583,5 @@ export const TIMELINEACTIVITY_FLAT_FIELDS_MOCK = {
|
||||
relationTargetFieldMetadataId: 'd544ccb4-b0df-43bb-b70c-57ae477838c4',
|
||||
relationTargetObjectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8',
|
||||
universalIdentifier: '20202020-d13a-4342-8df0-df48bd783787',
|
||||
flatRelationTargetFieldMetadata: getRelationTargetFlatFieldMetadataMock({
|
||||
id: 'd544ccb4-b0df-43bb-b70c-57ae477838c4',
|
||||
standardId: '20202020-f1ef-4ba4-8f33-1a4577afa477',
|
||||
objectMetadataId: '713da753-0340-49b5-b1fa-add34d2dc9a8',
|
||||
type: FieldMetadataType.RELATION,
|
||||
name: 'timelineActivities',
|
||||
label: 'TimelineActivities',
|
||||
defaultValue: null,
|
||||
description: 'TimelineActivities tied to the Survey result',
|
||||
icon: 'IconTimelineEvent',
|
||||
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: '06010d88-dc3c-4172-92c9-8c73924f950d',
|
||||
relationTargetObjectMetadataId: '3090f830-c4b1-41a1-8e18-815760830bec',
|
||||
universalIdentifier: '20202020-f1ef-4ba4-8f33-1a4577afa477',
|
||||
}),
|
||||
}),
|
||||
} as const satisfies Record<string, FlatFieldMetadata>;
|
||||
|
||||
-488
@@ -89,159 +89,6 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
|
||||
"createdAt": Any<ClockDate>,
|
||||
"defaultValue": null,
|
||||
"description": "new field description",
|
||||
"flatRelationTargetFieldMetadata": {
|
||||
"createdAt": Any<ClockDate>,
|
||||
"defaultValue": null,
|
||||
"description": null,
|
||||
"flatRelationTargetFieldMetadata": {
|
||||
"createdAt": Any<ClockDate>,
|
||||
"defaultValue": null,
|
||||
"description": "new field description",
|
||||
"flatRelationTargetFieldMetadata": null,
|
||||
"flatRelationTargetObjectMetadata": {
|
||||
"applicationId": null,
|
||||
"createdAt": Any<String>,
|
||||
"description": null,
|
||||
"duplicateCriteria": null,
|
||||
"flatFieldMetadatas": [],
|
||||
"icon": "IconCat",
|
||||
"id": Any<String>,
|
||||
"imageIdentifierFieldMetadataId": null,
|
||||
"isActive": true,
|
||||
"isAuditLogged": true,
|
||||
"isCustom": true,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isRemote": false,
|
||||
"isSearchable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"labelIdentifierFieldMetadataId": Any<String>,
|
||||
"labelPlural": "Pets",
|
||||
"labelSingular": "Pet",
|
||||
"namePlural": "pets",
|
||||
"nameSingular": "pet",
|
||||
"shortcut": null,
|
||||
"standardId": null,
|
||||
"standardOverrides": null,
|
||||
"targetTableName": "DEPRECATED",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<String>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"icon": "IconRelationOneToMany",
|
||||
"id": Any<String>,
|
||||
"isActive": true,
|
||||
"isCustom": true,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isNullable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"isUnique": null,
|
||||
"label": "newFieldLabel",
|
||||
"morphId": Any<String>,
|
||||
"name": "newFieldPets",
|
||||
"objectMetadataId": Any<String>,
|
||||
"options": null,
|
||||
"relationTargetFieldMetadataId": Any<String>,
|
||||
"relationTargetObjectMetadataId": Any<String>,
|
||||
"settings": {
|
||||
"relationType": "ONE_TO_MANY",
|
||||
},
|
||||
"standardId": null,
|
||||
"standardOverrides": null,
|
||||
"type": "MORPH_RELATION",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<ClockDate>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"flatRelationTargetObjectMetadata": {
|
||||
"applicationId": null,
|
||||
"createdAt": Any<String>,
|
||||
"description": "A rocket",
|
||||
"duplicateCriteria": null,
|
||||
"flatFieldMetadatas": [],
|
||||
"icon": "IconRocket",
|
||||
"id": Any<String>,
|
||||
"imageIdentifierFieldMetadataId": null,
|
||||
"isActive": true,
|
||||
"isAuditLogged": true,
|
||||
"isCustom": true,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isRemote": false,
|
||||
"isSearchable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"labelIdentifierFieldMetadataId": Any<String>,
|
||||
"labelPlural": "Rockets",
|
||||
"labelSingular": "Rocket",
|
||||
"namePlural": "rockets",
|
||||
"nameSingular": "rocket",
|
||||
"shortcut": null,
|
||||
"standardId": null,
|
||||
"standardOverrides": null,
|
||||
"targetTableName": "DEPRECATED",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<String>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"icon": "IconPet",
|
||||
"id": Any<String>,
|
||||
"isActive": true,
|
||||
"isCustom": true,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isNullable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"isUnique": null,
|
||||
"label": "Pet",
|
||||
"morphId": null,
|
||||
"name": "pet",
|
||||
"objectMetadataId": Any<String>,
|
||||
"options": null,
|
||||
"relationTargetFieldMetadataId": Any<String>,
|
||||
"relationTargetObjectMetadataId": Any<String>,
|
||||
"settings": {
|
||||
"joinColumnName": "petId",
|
||||
"onDelete": "SET_NULL",
|
||||
"relationType": "MANY_TO_ONE",
|
||||
},
|
||||
"standardId": null,
|
||||
"standardOverrides": null,
|
||||
"type": "RELATION",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<ClockDate>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"flatRelationTargetObjectMetadata": {
|
||||
"applicationId": null,
|
||||
"createdAt": Any<String>,
|
||||
"description": null,
|
||||
"duplicateCriteria": null,
|
||||
"flatFieldMetadatas": [],
|
||||
"icon": "IconCat",
|
||||
"id": Any<String>,
|
||||
"imageIdentifierFieldMetadataId": null,
|
||||
"isActive": true,
|
||||
"isAuditLogged": true,
|
||||
"isCustom": true,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isRemote": false,
|
||||
"isSearchable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"labelIdentifierFieldMetadataId": Any<String>,
|
||||
"labelPlural": "Pets",
|
||||
"labelSingular": "Pet",
|
||||
"namePlural": "pets",
|
||||
"nameSingular": "pet",
|
||||
"shortcut": null,
|
||||
"standardId": null,
|
||||
"standardOverrides": null,
|
||||
"targetTableName": "DEPRECATED",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<String>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"icon": "IconRelationOneToMany",
|
||||
"id": Any<String>,
|
||||
"isActive": true,
|
||||
@@ -272,97 +119,6 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
|
||||
"createdAt": Any<ClockDate>,
|
||||
"defaultValue": null,
|
||||
"description": null,
|
||||
"flatRelationTargetFieldMetadata": {
|
||||
"createdAt": Any<ClockDate>,
|
||||
"defaultValue": null,
|
||||
"description": "new field description",
|
||||
"flatRelationTargetFieldMetadata": null,
|
||||
"flatRelationTargetObjectMetadata": {
|
||||
"applicationId": null,
|
||||
"createdAt": Any<String>,
|
||||
"description": null,
|
||||
"duplicateCriteria": null,
|
||||
"flatFieldMetadatas": [],
|
||||
"icon": "IconCat",
|
||||
"id": Any<String>,
|
||||
"imageIdentifierFieldMetadataId": null,
|
||||
"isActive": true,
|
||||
"isAuditLogged": true,
|
||||
"isCustom": true,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isRemote": false,
|
||||
"isSearchable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"labelIdentifierFieldMetadataId": Any<String>,
|
||||
"labelPlural": "Pets",
|
||||
"labelSingular": "Pet",
|
||||
"namePlural": "pets",
|
||||
"nameSingular": "pet",
|
||||
"shortcut": null,
|
||||
"standardId": null,
|
||||
"standardOverrides": null,
|
||||
"targetTableName": "DEPRECATED",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<String>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"icon": "IconRelationOneToMany",
|
||||
"id": Any<String>,
|
||||
"isActive": true,
|
||||
"isCustom": true,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isNullable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"isUnique": null,
|
||||
"label": "newFieldLabel",
|
||||
"morphId": Any<String>,
|
||||
"name": "newFieldPets",
|
||||
"objectMetadataId": Any<String>,
|
||||
"options": null,
|
||||
"relationTargetFieldMetadataId": Any<String>,
|
||||
"relationTargetObjectMetadataId": Any<String>,
|
||||
"settings": {
|
||||
"relationType": "ONE_TO_MANY",
|
||||
},
|
||||
"standardId": null,
|
||||
"standardOverrides": null,
|
||||
"type": "MORPH_RELATION",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<ClockDate>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"flatRelationTargetObjectMetadata": {
|
||||
"applicationId": null,
|
||||
"createdAt": Any<String>,
|
||||
"description": "A rocket",
|
||||
"duplicateCriteria": null,
|
||||
"flatFieldMetadatas": [],
|
||||
"icon": "IconRocket",
|
||||
"id": Any<String>,
|
||||
"imageIdentifierFieldMetadataId": null,
|
||||
"isActive": true,
|
||||
"isAuditLogged": true,
|
||||
"isCustom": true,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isRemote": false,
|
||||
"isSearchable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"labelIdentifierFieldMetadataId": Any<String>,
|
||||
"labelPlural": "Rockets",
|
||||
"labelSingular": "Rocket",
|
||||
"namePlural": "rockets",
|
||||
"nameSingular": "rocket",
|
||||
"shortcut": null,
|
||||
"standardId": null,
|
||||
"standardOverrides": null,
|
||||
"targetTableName": "DEPRECATED",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<String>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"icon": "IconPet",
|
||||
"id": Any<String>,
|
||||
"isActive": true,
|
||||
@@ -395,159 +151,6 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
|
||||
"createdAt": Any<ClockDate>,
|
||||
"defaultValue": null,
|
||||
"description": "new field description",
|
||||
"flatRelationTargetFieldMetadata": {
|
||||
"createdAt": Any<ClockDate>,
|
||||
"defaultValue": null,
|
||||
"description": null,
|
||||
"flatRelationTargetFieldMetadata": {
|
||||
"createdAt": Any<ClockDate>,
|
||||
"defaultValue": null,
|
||||
"description": "new field description",
|
||||
"flatRelationTargetFieldMetadata": null,
|
||||
"flatRelationTargetObjectMetadata": {
|
||||
"applicationId": null,
|
||||
"createdAt": Any<String>,
|
||||
"description": "A company",
|
||||
"duplicateCriteria": null,
|
||||
"flatFieldMetadatas": [],
|
||||
"icon": "IconBuildingSkyscraper",
|
||||
"id": Any<String>,
|
||||
"imageIdentifierFieldMetadataId": null,
|
||||
"isActive": true,
|
||||
"isAuditLogged": true,
|
||||
"isCustom": false,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isRemote": false,
|
||||
"isSearchable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"labelIdentifierFieldMetadataId": Any<String>,
|
||||
"labelPlural": "Companies",
|
||||
"labelSingular": "Company",
|
||||
"namePlural": "companies",
|
||||
"nameSingular": "company",
|
||||
"shortcut": "C",
|
||||
"standardId": Any<String>,
|
||||
"standardOverrides": null,
|
||||
"targetTableName": "DEPRECATED",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<String>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"icon": "IconRelationOneToMany",
|
||||
"id": Any<String>,
|
||||
"isActive": true,
|
||||
"isCustom": true,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isNullable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"isUnique": null,
|
||||
"label": "newFieldLabel",
|
||||
"morphId": Any<String>,
|
||||
"name": "newFieldCompanies",
|
||||
"objectMetadataId": Any<String>,
|
||||
"options": null,
|
||||
"relationTargetFieldMetadataId": Any<String>,
|
||||
"relationTargetObjectMetadataId": Any<String>,
|
||||
"settings": {
|
||||
"relationType": "ONE_TO_MANY",
|
||||
},
|
||||
"standardId": null,
|
||||
"standardOverrides": null,
|
||||
"type": "MORPH_RELATION",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<ClockDate>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"flatRelationTargetObjectMetadata": {
|
||||
"applicationId": null,
|
||||
"createdAt": Any<String>,
|
||||
"description": "A rocket",
|
||||
"duplicateCriteria": null,
|
||||
"flatFieldMetadatas": [],
|
||||
"icon": "IconRocket",
|
||||
"id": Any<String>,
|
||||
"imageIdentifierFieldMetadataId": null,
|
||||
"isActive": true,
|
||||
"isAuditLogged": true,
|
||||
"isCustom": true,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isRemote": false,
|
||||
"isSearchable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"labelIdentifierFieldMetadataId": Any<String>,
|
||||
"labelPlural": "Rockets",
|
||||
"labelSingular": "Rocket",
|
||||
"namePlural": "rockets",
|
||||
"nameSingular": "rocket",
|
||||
"shortcut": null,
|
||||
"standardId": null,
|
||||
"standardOverrides": null,
|
||||
"targetTableName": "DEPRECATED",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<String>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"icon": "IconBuilding",
|
||||
"id": Any<String>,
|
||||
"isActive": true,
|
||||
"isCustom": true,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isNullable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"isUnique": null,
|
||||
"label": "Company",
|
||||
"morphId": null,
|
||||
"name": "company",
|
||||
"objectMetadataId": Any<String>,
|
||||
"options": null,
|
||||
"relationTargetFieldMetadataId": Any<String>,
|
||||
"relationTargetObjectMetadataId": Any<String>,
|
||||
"settings": {
|
||||
"joinColumnName": "companyId",
|
||||
"onDelete": "SET_NULL",
|
||||
"relationType": "MANY_TO_ONE",
|
||||
},
|
||||
"standardId": null,
|
||||
"standardOverrides": null,
|
||||
"type": "RELATION",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<ClockDate>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"flatRelationTargetObjectMetadata": {
|
||||
"applicationId": null,
|
||||
"createdAt": Any<String>,
|
||||
"description": "A company",
|
||||
"duplicateCriteria": null,
|
||||
"flatFieldMetadatas": [],
|
||||
"icon": "IconBuildingSkyscraper",
|
||||
"id": Any<String>,
|
||||
"imageIdentifierFieldMetadataId": null,
|
||||
"isActive": true,
|
||||
"isAuditLogged": true,
|
||||
"isCustom": false,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isRemote": false,
|
||||
"isSearchable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"labelIdentifierFieldMetadataId": Any<String>,
|
||||
"labelPlural": "Companies",
|
||||
"labelSingular": "Company",
|
||||
"namePlural": "companies",
|
||||
"nameSingular": "company",
|
||||
"shortcut": "C",
|
||||
"standardId": Any<String>,
|
||||
"standardOverrides": null,
|
||||
"targetTableName": "DEPRECATED",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<String>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"icon": "IconRelationOneToMany",
|
||||
"id": Any<String>,
|
||||
"isActive": true,
|
||||
@@ -578,97 +181,6 @@ exports[`fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test su
|
||||
"createdAt": Any<ClockDate>,
|
||||
"defaultValue": null,
|
||||
"description": null,
|
||||
"flatRelationTargetFieldMetadata": {
|
||||
"createdAt": Any<ClockDate>,
|
||||
"defaultValue": null,
|
||||
"description": "new field description",
|
||||
"flatRelationTargetFieldMetadata": null,
|
||||
"flatRelationTargetObjectMetadata": {
|
||||
"applicationId": null,
|
||||
"createdAt": Any<String>,
|
||||
"description": "A company",
|
||||
"duplicateCriteria": null,
|
||||
"flatFieldMetadatas": [],
|
||||
"icon": "IconBuildingSkyscraper",
|
||||
"id": Any<String>,
|
||||
"imageIdentifierFieldMetadataId": null,
|
||||
"isActive": true,
|
||||
"isAuditLogged": true,
|
||||
"isCustom": false,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isRemote": false,
|
||||
"isSearchable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"labelIdentifierFieldMetadataId": Any<String>,
|
||||
"labelPlural": "Companies",
|
||||
"labelSingular": "Company",
|
||||
"namePlural": "companies",
|
||||
"nameSingular": "company",
|
||||
"shortcut": "C",
|
||||
"standardId": Any<String>,
|
||||
"standardOverrides": null,
|
||||
"targetTableName": "DEPRECATED",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<String>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"icon": "IconRelationOneToMany",
|
||||
"id": Any<String>,
|
||||
"isActive": true,
|
||||
"isCustom": true,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isNullable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"isUnique": null,
|
||||
"label": "newFieldLabel",
|
||||
"morphId": Any<String>,
|
||||
"name": "newFieldCompanies",
|
||||
"objectMetadataId": Any<String>,
|
||||
"options": null,
|
||||
"relationTargetFieldMetadataId": Any<String>,
|
||||
"relationTargetObjectMetadataId": Any<String>,
|
||||
"settings": {
|
||||
"relationType": "ONE_TO_MANY",
|
||||
},
|
||||
"standardId": null,
|
||||
"standardOverrides": null,
|
||||
"type": "MORPH_RELATION",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<ClockDate>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"flatRelationTargetObjectMetadata": {
|
||||
"applicationId": null,
|
||||
"createdAt": Any<String>,
|
||||
"description": "A rocket",
|
||||
"duplicateCriteria": null,
|
||||
"flatFieldMetadatas": [],
|
||||
"icon": "IconRocket",
|
||||
"id": Any<String>,
|
||||
"imageIdentifierFieldMetadataId": null,
|
||||
"isActive": true,
|
||||
"isAuditLogged": true,
|
||||
"isCustom": true,
|
||||
"isLabelSyncedWithName": false,
|
||||
"isRemote": false,
|
||||
"isSearchable": true,
|
||||
"isSystem": false,
|
||||
"isUIReadOnly": false,
|
||||
"labelIdentifierFieldMetadataId": Any<String>,
|
||||
"labelPlural": "Rockets",
|
||||
"labelSingular": "Rocket",
|
||||
"namePlural": "rockets",
|
||||
"nameSingular": "rocket",
|
||||
"shortcut": null,
|
||||
"standardId": null,
|
||||
"standardOverrides": null,
|
||||
"targetTableName": "DEPRECATED",
|
||||
"universalIdentifier": Any<String>,
|
||||
"updatedAt": Any<String>,
|
||||
"workspaceId": Any<String>,
|
||||
},
|
||||
"icon": "IconBuilding",
|
||||
"id": Any<String>,
|
||||
"isActive": true,
|
||||
|
||||
+32
-41
@@ -1,39 +1,34 @@
|
||||
import { extractRecordIdsAndDatesAsExpectAny } from 'test/utils/extract-record-ids-and-dates-as-expect-any';
|
||||
import { type EachTestingContext } from 'twenty-shared/testing';
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test';
|
||||
|
||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||
|
||||
import { type CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
|
||||
import { fromCreateFieldInputToFlatFieldMetadatasToCreate } from 'src/engine/metadata-modules/flat-field-metadata/utils/from-create-field-input-to-flat-field-metadatas-to-create.util';
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { replaceFlatObjectMetadataInFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/replace-flat-object-metadata-in-flat-object-metadata-maps-or-throw.util';
|
||||
import { EMPTY_FLAT_ENTITY_MAPS } from 'src/engine/core-modules/common/constant/empty-flat-entity-maps.constant';
|
||||
import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/add-flat-entity-to-flat-entity-maps-or-throw.util';
|
||||
import {
|
||||
fromCreateFieldInputToFlatFieldMetadatasToCreate,
|
||||
type FromCreateFieldInputToFlatObjectMetadataArgs,
|
||||
} from 'src/engine/metadata-modules/flat-field-metadata/utils/from-create-field-input-to-flat-field-metadatas-to-create.util';
|
||||
import { COMPANY_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/company-flat-object.mock';
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/flat-object-metadata-maps.mock';
|
||||
import { PET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/pet-flat-object.mock';
|
||||
import { ROCKET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/rocket-flat-object.mock';
|
||||
|
||||
const existingFlatObjectMetadataMaps = [
|
||||
const flatObjectMetadataMaps = [
|
||||
COMPANY_FLAT_OBJECT_MOCK,
|
||||
ROCKET_FLAT_OBJECT_MOCK,
|
||||
PET_FLAT_OBJECT_MOCK,
|
||||
].reduce((flatObjectMetadataMaps, flatObjectMetadata) => {
|
||||
return replaceFlatObjectMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadata: {
|
||||
...flatObjectMetadata,
|
||||
flatFieldMetadatas: [],
|
||||
},
|
||||
flatObjectMetadataMaps,
|
||||
return addFlatEntityToFlatEntityMapsOrThrow({
|
||||
flatEntity: flatObjectMetadata,
|
||||
flatEntityMaps: flatObjectMetadataMaps,
|
||||
});
|
||||
}, FLAT_OBJECT_METADATA_MAPS_MOCKS);
|
||||
}, EMPTY_FLAT_ENTITY_MAPS);
|
||||
|
||||
type TestCase = EachTestingContext<{
|
||||
input: {
|
||||
rawCreateFieldInput: CreateFieldInput &
|
||||
Required<Pick<CreateFieldInput, 'morphRelationsCreationPayload'>>;
|
||||
workspaceId: string;
|
||||
existingFlatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
};
|
||||
input: FromCreateFieldInputToFlatObjectMetadataArgs;
|
||||
expected: 'success' | 'fail';
|
||||
}>;
|
||||
|
||||
@@ -47,13 +42,12 @@ describe('fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test s
|
||||
'should create morph relation field metadata with valid input on rocket object to pet object',
|
||||
context: {
|
||||
input: {
|
||||
rawCreateFieldInput: {
|
||||
createFieldInput: {
|
||||
name: 'newField',
|
||||
label: 'newFieldLabel',
|
||||
description: 'new field description',
|
||||
type: FieldMetadataType.MORPH_RELATION,
|
||||
objectMetadataId: ROCKET_FLAT_OBJECT_MOCK.id,
|
||||
workspaceId: mockWorkspaceId,
|
||||
morphRelationsCreationPayload: [
|
||||
{
|
||||
type: RelationType.ONE_TO_MANY,
|
||||
@@ -70,7 +64,7 @@ describe('fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test s
|
||||
],
|
||||
},
|
||||
workspaceId: mockWorkspaceId,
|
||||
existingFlatObjectMetadataMaps,
|
||||
flatObjectMetadataMaps,
|
||||
},
|
||||
expected: 'success',
|
||||
},
|
||||
@@ -87,8 +81,11 @@ describe('fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test s
|
||||
if (result.status !== 'success') {
|
||||
throw new Error('Should never occur, typecheck');
|
||||
}
|
||||
jestExpectToBeDefined(
|
||||
input.createFieldInput.morphRelationsCreationPayload,
|
||||
);
|
||||
expect(result.result.flatFieldMetadatas.length).toBe(
|
||||
input.rawCreateFieldInput.morphRelationsCreationPayload.length * 2,
|
||||
input.createFieldInput.morphRelationsCreationPayload.length * 2,
|
||||
);
|
||||
expect(result).toMatchSnapshot(
|
||||
extractRecordIdsAndDatesAsExpectAny(result),
|
||||
@@ -103,17 +100,16 @@ describe('fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test s
|
||||
title: 'should fail when morphRelationsCreationPayload is missing',
|
||||
context: {
|
||||
input: {
|
||||
rawCreateFieldInput: {
|
||||
createFieldInput: {
|
||||
name: 'newField',
|
||||
label: 'newFieldLabel',
|
||||
description: 'new field description',
|
||||
type: FieldMetadataType.MORPH_RELATION,
|
||||
objectMetadataId: ROCKET_FLAT_OBJECT_MOCK.id,
|
||||
workspaceId: mockWorkspaceId,
|
||||
morphRelationsCreationPayload: undefined as any,
|
||||
},
|
||||
workspaceId: mockWorkspaceId,
|
||||
existingFlatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
expected: 'fail',
|
||||
},
|
||||
@@ -122,17 +118,16 @@ describe('fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test s
|
||||
title: 'should fail when morphRelationsCreationPayload is empty array',
|
||||
context: {
|
||||
input: {
|
||||
rawCreateFieldInput: {
|
||||
createFieldInput: {
|
||||
name: 'newField',
|
||||
label: 'newFieldLabel',
|
||||
description: 'new field description',
|
||||
type: FieldMetadataType.MORPH_RELATION,
|
||||
objectMetadataId: ROCKET_FLAT_OBJECT_MOCK.id,
|
||||
workspaceId: mockWorkspaceId,
|
||||
morphRelationsCreationPayload: [],
|
||||
},
|
||||
workspaceId: mockWorkspaceId,
|
||||
existingFlatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
expected: 'fail',
|
||||
},
|
||||
@@ -142,13 +137,12 @@ describe('fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test s
|
||||
'should fail when morphRelationsCreationPayload has different relation types',
|
||||
context: {
|
||||
input: {
|
||||
rawCreateFieldInput: {
|
||||
createFieldInput: {
|
||||
name: 'newField',
|
||||
label: 'newFieldLabel',
|
||||
description: 'new field description',
|
||||
type: FieldMetadataType.MORPH_RELATION,
|
||||
objectMetadataId: ROCKET_FLAT_OBJECT_MOCK.id,
|
||||
workspaceId: mockWorkspaceId,
|
||||
morphRelationsCreationPayload: [
|
||||
{
|
||||
type: RelationType.ONE_TO_MANY,
|
||||
@@ -165,7 +159,7 @@ describe('fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test s
|
||||
],
|
||||
},
|
||||
workspaceId: mockWorkspaceId,
|
||||
existingFlatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
expected: 'fail',
|
||||
},
|
||||
@@ -175,13 +169,12 @@ describe('fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test s
|
||||
'should fail when morphRelationsCreationPayload has several references to same object metadata',
|
||||
context: {
|
||||
input: {
|
||||
rawCreateFieldInput: {
|
||||
createFieldInput: {
|
||||
name: 'newField',
|
||||
label: 'newFieldLabel',
|
||||
description: 'new field description',
|
||||
type: FieldMetadataType.MORPH_RELATION,
|
||||
objectMetadataId: ROCKET_FLAT_OBJECT_MOCK.id,
|
||||
workspaceId: mockWorkspaceId,
|
||||
morphRelationsCreationPayload: [
|
||||
{
|
||||
type: RelationType.MANY_TO_ONE,
|
||||
@@ -198,7 +191,7 @@ describe('fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test s
|
||||
],
|
||||
},
|
||||
workspaceId: mockWorkspaceId,
|
||||
existingFlatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
expected: 'fail',
|
||||
},
|
||||
@@ -208,13 +201,12 @@ describe('fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test s
|
||||
'should fail when morphRelationsCreationPayload has invalid relation payload',
|
||||
context: {
|
||||
input: {
|
||||
rawCreateFieldInput: {
|
||||
createFieldInput: {
|
||||
name: 'newField',
|
||||
label: 'newFieldLabel',
|
||||
description: 'new field description',
|
||||
type: FieldMetadataType.MORPH_RELATION,
|
||||
objectMetadataId: ROCKET_FLAT_OBJECT_MOCK.id,
|
||||
workspaceId: mockWorkspaceId,
|
||||
morphRelationsCreationPayload: [
|
||||
{
|
||||
type: RelationType.ONE_TO_MANY,
|
||||
@@ -224,7 +216,7 @@ describe('fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test s
|
||||
],
|
||||
},
|
||||
workspaceId: mockWorkspaceId,
|
||||
existingFlatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
expected: 'fail',
|
||||
},
|
||||
@@ -233,13 +225,12 @@ describe('fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test s
|
||||
title: 'should fail when target object metadata is not found',
|
||||
context: {
|
||||
input: {
|
||||
rawCreateFieldInput: {
|
||||
createFieldInput: {
|
||||
name: 'newField',
|
||||
label: 'newFieldLabel',
|
||||
description: 'new field description',
|
||||
type: FieldMetadataType.MORPH_RELATION,
|
||||
objectMetadataId: ROCKET_FLAT_OBJECT_MOCK.id,
|
||||
workspaceId: mockWorkspaceId,
|
||||
morphRelationsCreationPayload: [
|
||||
{
|
||||
type: RelationType.ONE_TO_MANY,
|
||||
@@ -250,7 +241,7 @@ describe('fromCreateFieldInputToFlatFieldMetadatasToCreate MORPH_RELATION test s
|
||||
],
|
||||
},
|
||||
workspaceId: mockWorkspaceId,
|
||||
existingFlatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
expected: 'fail',
|
||||
},
|
||||
|
||||
+2
-3
@@ -1,9 +1,8 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
import { FeatureFlagModule } from 'src/engine/core-modules/feature-flag/feature-flag.module';
|
||||
|
||||
import { FlatFieldMetadataTypeValidatorService } from './services/flat-field-metadata-type-validator.service';
|
||||
import { FlatFieldMetadataValidatorService } from './services/flat-field-metadata-validator.service';
|
||||
import { FlatFieldMetadataTypeValidatorService } from 'src/engine/metadata-modules/flat-field-metadata/services/flat-field-metadata-type-validator.service';
|
||||
import { FlatFieldMetadataValidatorService } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-field-metadata-validator.service';
|
||||
|
||||
@Module({
|
||||
imports: [FeatureFlagModule],
|
||||
|
||||
+39
-27
@@ -7,11 +7,11 @@ import { FieldMetadataType } from 'twenty-shared/types';
|
||||
import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum';
|
||||
import { FeatureFlagService } from 'src/engine/core-modules/feature-flag/services/feature-flag.service';
|
||||
import { FieldMetadataExceptionCode } from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
import { ValidateOneFieldMetadataArgs } from 'src/engine/metadata-modules/flat-field-metadata/services/flat-field-metadata-validator.service';
|
||||
import { type FlatFieldMetadataTypeValidator } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata-type-validator.type';
|
||||
import { FlatFieldMetadataValidationError } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata-validation-error.type';
|
||||
import { validateEnumSelectFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/validators/utils/validate-enum-flat-field-metadata.util';
|
||||
import { validateMorphOrRelationFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/validators/utils/validate-morph-or-relation-flat-field-metadata.util';
|
||||
import { ValidateOneFieldMetadataArgs } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-field-metadata-validator.service';
|
||||
@Injectable()
|
||||
export class FlatFieldMetadataTypeValidatorService {
|
||||
constructor(private readonly featureFlagService: FeatureFlagService) {}
|
||||
@@ -49,10 +49,11 @@ export class FlatFieldMetadataTypeValidatorService {
|
||||
return [];
|
||||
},
|
||||
MORPH_RELATION: async ({
|
||||
workspaceId,
|
||||
existingFlatObjectMetadataMaps,
|
||||
dependencyOptimisticFlatEntityMaps,
|
||||
flatFieldMetadataToValidate,
|
||||
otherFlatObjectMetadataMapsToValidate,
|
||||
optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
workspaceId,
|
||||
}) => {
|
||||
const isMorphRelationEnabled =
|
||||
await this.featureFlagService.isFeatureEnabled(
|
||||
@@ -71,23 +72,26 @@ export class FlatFieldMetadataTypeValidatorService {
|
||||
}
|
||||
|
||||
return validateMorphOrRelationFlatFieldMetadata({
|
||||
existingFlatObjectMetadataMaps,
|
||||
dependencyOptimisticFlatEntityMaps,
|
||||
flatFieldMetadataToValidate,
|
||||
optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
workspaceId,
|
||||
otherFlatObjectMetadataMapsToValidate,
|
||||
});
|
||||
},
|
||||
MULTI_SELECT: ({
|
||||
existingFlatObjectMetadataMaps,
|
||||
dependencyOptimisticFlatEntityMaps,
|
||||
flatFieldMetadataToValidate,
|
||||
optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
workspaceId,
|
||||
otherFlatObjectMetadataMapsToValidate,
|
||||
}) =>
|
||||
validateEnumSelectFlatFieldMetadata({
|
||||
existingFlatObjectMetadataMaps,
|
||||
dependencyOptimisticFlatEntityMaps,
|
||||
flatFieldMetadataToValidate,
|
||||
optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
workspaceId,
|
||||
otherFlatObjectMetadataMapsToValidate,
|
||||
}),
|
||||
|
||||
NUMBER: async (_args) => {
|
||||
@@ -103,31 +107,35 @@ export class FlatFieldMetadataTypeValidatorService {
|
||||
return [];
|
||||
},
|
||||
RATING: ({
|
||||
existingFlatObjectMetadataMaps,
|
||||
dependencyOptimisticFlatEntityMaps,
|
||||
flatFieldMetadataToValidate,
|
||||
optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
workspaceId,
|
||||
otherFlatObjectMetadataMapsToValidate,
|
||||
}) =>
|
||||
validateEnumSelectFlatFieldMetadata({
|
||||
existingFlatObjectMetadataMaps,
|
||||
dependencyOptimisticFlatEntityMaps,
|
||||
flatFieldMetadataToValidate,
|
||||
optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
workspaceId,
|
||||
otherFlatObjectMetadataMapsToValidate,
|
||||
}),
|
||||
RAW_JSON: async (_args) => {
|
||||
return [];
|
||||
},
|
||||
RELATION: ({
|
||||
existingFlatObjectMetadataMaps,
|
||||
dependencyOptimisticFlatEntityMaps,
|
||||
flatFieldMetadataToValidate,
|
||||
optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
workspaceId,
|
||||
otherFlatObjectMetadataMapsToValidate,
|
||||
}) =>
|
||||
validateMorphOrRelationFlatFieldMetadata({
|
||||
existingFlatObjectMetadataMaps,
|
||||
dependencyOptimisticFlatEntityMaps,
|
||||
flatFieldMetadataToValidate,
|
||||
optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
workspaceId,
|
||||
otherFlatObjectMetadataMapsToValidate,
|
||||
}),
|
||||
RICH_TEXT: async (_args) => {
|
||||
return [];
|
||||
@@ -136,16 +144,18 @@ export class FlatFieldMetadataTypeValidatorService {
|
||||
return [];
|
||||
},
|
||||
SELECT: ({
|
||||
existingFlatObjectMetadataMaps,
|
||||
dependencyOptimisticFlatEntityMaps,
|
||||
flatFieldMetadataToValidate,
|
||||
optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
workspaceId,
|
||||
otherFlatObjectMetadataMapsToValidate,
|
||||
}) =>
|
||||
validateEnumSelectFlatFieldMetadata({
|
||||
existingFlatObjectMetadataMaps,
|
||||
dependencyOptimisticFlatEntityMaps,
|
||||
flatFieldMetadataToValidate,
|
||||
optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
workspaceId,
|
||||
otherFlatObjectMetadataMapsToValidate,
|
||||
}),
|
||||
TEXT: async (_args) => {
|
||||
return [];
|
||||
@@ -161,11 +171,12 @@ export class FlatFieldMetadataTypeValidatorService {
|
||||
public async validateFlatFieldMetadataTypeSpecificities<
|
||||
T extends FieldMetadataType = FieldMetadataType,
|
||||
>({
|
||||
existingFlatObjectMetadataMaps,
|
||||
dependencyOptimisticFlatEntityMaps,
|
||||
flatFieldMetadataToValidate,
|
||||
optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
workspaceId,
|
||||
otherFlatObjectMetadataMapsToValidate,
|
||||
}: ValidateOneFieldMetadataArgs<T>): Promise<
|
||||
}: ValidateOneFieldMetadataArgs<T> & { workspaceId: string }): Promise<
|
||||
FlatFieldMetadataValidationError[]
|
||||
> {
|
||||
const fieldMetadataTypeValidator =
|
||||
@@ -187,10 +198,11 @@ export class FlatFieldMetadataTypeValidatorService {
|
||||
}
|
||||
|
||||
return await fieldMetadataTypeValidator({
|
||||
existingFlatObjectMetadataMaps,
|
||||
dependencyOptimisticFlatEntityMaps,
|
||||
flatFieldMetadataToValidate,
|
||||
optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
workspaceId,
|
||||
otherFlatObjectMetadataMapsToValidate,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
|
||||
import { Repository } from 'typeorm';
|
||||
|
||||
import { InjectCacheStorage } from 'src/engine/core-modules/cache-storage/decorators/cache-storage.decorator';
|
||||
import { CacheStorageService } from 'src/engine/core-modules/cache-storage/services/cache-storage.service';
|
||||
import { CacheStorageNamespace } from 'src/engine/core-modules/cache-storage/types/cache-storage-namespace.enum';
|
||||
import { EMPTY_FLAT_ENTITY_MAPS } from 'src/engine/core-modules/common/constant/empty-flat-entity-maps.constant';
|
||||
import { FlatEntityMaps } from 'src/engine/core-modules/common/types/flat-entity-maps.type';
|
||||
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
||||
import { FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { fromFieldMetadataEntityToFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/from-field-metadata-entity-to-flat-field-metadata.util';
|
||||
import { WorkspaceFlatMapCache } from 'src/engine/workspace-flat-map-cache/decorators/workspace-flat-map-cache.decorator';
|
||||
import { WorkspaceFlatMapCacheService } from 'src/engine/workspace-flat-map-cache/services/workspace-flat-map-cache.service';
|
||||
|
||||
@Injectable()
|
||||
@WorkspaceFlatMapCache('flatFieldMetadataMaps')
|
||||
export class WorkspaceFlatFieldMetadataMapCacheService extends WorkspaceFlatMapCacheService<
|
||||
FlatEntityMaps<FlatFieldMetadata>
|
||||
> {
|
||||
constructor(
|
||||
@InjectCacheStorage(CacheStorageNamespace.EngineWorkspace)
|
||||
cacheStorageService: CacheStorageService,
|
||||
@InjectRepository(FieldMetadataEntity)
|
||||
private readonly fieldMetadataRepository: Repository<FieldMetadataEntity>,
|
||||
) {
|
||||
super(cacheStorageService);
|
||||
}
|
||||
|
||||
protected async computeFlatMap({
|
||||
workspaceId,
|
||||
}: {
|
||||
workspaceId: string;
|
||||
}): Promise<FlatEntityMaps<FlatFieldMetadata>> {
|
||||
const fieldMetadatas = await this.fieldMetadataRepository.find({
|
||||
where: {
|
||||
workspaceId,
|
||||
},
|
||||
withDeleted: true,
|
||||
relations: [],
|
||||
});
|
||||
|
||||
const flatFieldMetadataMaps = fieldMetadatas.reduce<
|
||||
FlatEntityMaps<FlatFieldMetadata>
|
||||
>((flatEntityMaps, field) => {
|
||||
const flatFieldMetadata =
|
||||
fromFieldMetadataEntityToFlatFieldMetadata(field);
|
||||
|
||||
return {
|
||||
byId: {
|
||||
...flatEntityMaps.byId,
|
||||
[flatFieldMetadata.id]: flatFieldMetadata,
|
||||
},
|
||||
idByUniversalIdentifier: {
|
||||
...flatEntityMaps.idByUniversalIdentifier,
|
||||
[flatFieldMetadata.universalIdentifier]: flatFieldMetadata.id,
|
||||
},
|
||||
};
|
||||
}, EMPTY_FLAT_ENTITY_MAPS);
|
||||
|
||||
return flatFieldMetadataMaps;
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
import { type FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { type ValidateOneFieldMetadataArgs } from 'src/engine/metadata-modules/flat-field-metadata/services/flat-field-metadata-validator.service';
|
||||
import { type FlatFieldMetadataValidationError } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata-validation-error.type';
|
||||
import { type ValidateOneFieldMetadataArgs } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-field-metadata-validator.service';
|
||||
|
||||
export type FlatFieldMetadataTypeValidator = {
|
||||
[P in FieldMetadataType]: (
|
||||
args: ValidateOneFieldMetadataArgs<P>,
|
||||
args: ValidateOneFieldMetadataArgs<P> & { workspaceId: string },
|
||||
) =>
|
||||
| FlatFieldMetadataValidationError[]
|
||||
| Promise<FlatFieldMetadataValidationError[]>;
|
||||
|
||||
+1
-14
@@ -1,9 +1,6 @@
|
||||
import { type FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { type FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
||||
import { type AssignTypeIfIsMorphOrRelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/assign-type-if-is-morph-or-relation-field-metadata-type.type';
|
||||
import { type MorphOrRelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/morph-or-relation-field-metadata-type.type';
|
||||
import { type FlatObjectMetadataWithoutFields } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
export const fieldMetadataRelationProperties = [
|
||||
'relationTargetFieldMetadata',
|
||||
@@ -19,15 +16,5 @@ export type FieldMetadataEntityRelationProperties =
|
||||
export type FlatFieldMetadata<T extends FieldMetadataType = FieldMetadataType> =
|
||||
Omit<FieldMetadataEntity<T>, FieldMetadataEntityRelationProperties> & {
|
||||
universalIdentifier: string;
|
||||
flatRelationTargetFieldMetadata: AssignTypeIfIsMorphOrRelationFieldMetadataType<
|
||||
Omit<
|
||||
FlatFieldMetadata<MorphOrRelationFieldMetadataType>,
|
||||
'flatRelationTargetFieldMetadata' | 'flatRelationTargetObjectMetadata'
|
||||
>,
|
||||
T
|
||||
>;
|
||||
flatRelationTargetObjectMetadata: AssignTypeIfIsMorphOrRelationFieldMetadataType<
|
||||
FlatObjectMetadataWithoutFields,
|
||||
T
|
||||
>;
|
||||
// Could add indexField metadatas and so on ?
|
||||
};
|
||||
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
import { type FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
|
||||
export type FlatRelationTargetFieldMetadata = FlatFieldMetadata<
|
||||
FieldMetadataType.RELATION | FieldMetadataType.MORPH_RELATION
|
||||
>['flatRelationTargetFieldMetadata'];
|
||||
+9
-5
@@ -1,17 +1,20 @@
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { type FlatEntityMaps } from 'src/engine/core-modules/common/types/flat-entity-maps.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { findFlatFieldMetadatasRelatedToMorphRelationOrThrow } from 'src/engine/metadata-modules/flat-field-metadata/utils/find-flat-field-metadatas-related-to-morph-relation-or-throw.util';
|
||||
import { findRelationFlatFieldMetadataTargetFlatFieldMetadataOrThrow } from 'src/engine/metadata-modules/flat-field-metadata/utils/find-relation-flat-field-metadatas-target-flat-field-metadata-or-throw.util';
|
||||
import { isFlatFieldMetadataOfType } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-of-type.util';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
export const computeFlatFieldMetadataRelatedFlatFieldMetadata = ({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
flatFieldMetadataMaps,
|
||||
}: {
|
||||
flatObjectMetadata: FlatObjectMetadata;
|
||||
flatFieldMetadata: FlatFieldMetadata;
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
flatFieldMetadataMaps: FlatEntityMaps<FlatFieldMetadata>;
|
||||
}): FlatFieldMetadata[] => {
|
||||
if (
|
||||
isFlatFieldMetadataOfType(flatFieldMetadata, FieldMetadataType.RELATION)
|
||||
@@ -19,7 +22,7 @@ export const computeFlatFieldMetadataRelatedFlatFieldMetadata = ({
|
||||
return [
|
||||
findRelationFlatFieldMetadataTargetFlatFieldMetadataOrThrow({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps,
|
||||
}),
|
||||
];
|
||||
}
|
||||
@@ -32,7 +35,8 @@ export const computeFlatFieldMetadataRelatedFlatFieldMetadata = ({
|
||||
) {
|
||||
return findFlatFieldMetadatasRelatedToMorphRelationOrThrow({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
+23
-29
@@ -1,48 +1,42 @@
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { isFlatFieldMetadataOfType } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-of-type.util';
|
||||
import {
|
||||
FlatObjectMetadataMapsException,
|
||||
FlatObjectMetadataMapsExceptionCode,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/flat-object-metadata-maps.exception';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
FlatEntityMapsException,
|
||||
FlatEntityMapsExceptionCode,
|
||||
} from 'src/engine/core-modules/common/exceptions/flat-entity-maps.exception';
|
||||
import { type FlatEntityMaps } from 'src/engine/core-modules/common/types/flat-entity-maps.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { findObjectFieldsInFlatFieldMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-field-metadata/utils/find-object-fields-in-flat-field-metadata-maps-or-throw.util';
|
||||
import { isFlatFieldMetadataOfType } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-of-type.util';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
export type FindAllMorphRelationFlatFieldMetadatasOrThrowArgs = {
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
flatFieldMetadataMaps: FlatEntityMaps<FlatFieldMetadata>;
|
||||
flatFieldMetadata: FlatFieldMetadata<FieldMetadataType.MORPH_RELATION>;
|
||||
flatObjectMetadata: FlatObjectMetadata;
|
||||
};
|
||||
export const findAllOthersMorphRelationFlatFieldMetadatasOrThrow = ({
|
||||
flatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
flatFieldMetadata: morphRelationFlatFieldMetadata,
|
||||
}: FindAllMorphRelationFlatFieldMetadatasOrThrowArgs): FlatFieldMetadata<FieldMetadataType.MORPH_RELATION>[] => {
|
||||
const flatObjectMetadataWithFlatFieldMaps =
|
||||
flatObjectMetadataMaps.byId[
|
||||
morphRelationFlatFieldMetadata.objectMetadataId
|
||||
];
|
||||
|
||||
if (!isDefined(flatObjectMetadataWithFlatFieldMaps)) {
|
||||
throw new FlatObjectMetadataMapsException(
|
||||
'Morph field relation object metadata not found',
|
||||
FlatObjectMetadataMapsExceptionCode.OBJECT_METADATA_NOT_FOUND,
|
||||
);
|
||||
}
|
||||
|
||||
if (
|
||||
!isDefined(
|
||||
flatObjectMetadataWithFlatFieldMaps.fieldsById[
|
||||
morphRelationFlatFieldMetadata.id
|
||||
],
|
||||
)
|
||||
!isDefined(flatFieldMetadataMaps.byId[morphRelationFlatFieldMetadata.id])
|
||||
) {
|
||||
throw new FlatObjectMetadataMapsException(
|
||||
'Morph relation field not found in related object metadata',
|
||||
FlatObjectMetadataMapsExceptionCode.FIELD_METADATA_NOT_FOUND,
|
||||
throw new FlatEntityMapsException(
|
||||
'Morph relation field not found in flat field metadata maps',
|
||||
FlatEntityMapsExceptionCode.ENTITY_NOT_FOUND,
|
||||
);
|
||||
}
|
||||
|
||||
return flatObjectMetadataWithFlatFieldMaps.flatFieldMetadatas.filter(
|
||||
const { objectFlatFieldMetadatas } =
|
||||
findObjectFieldsInFlatFieldMetadataMapsOrThrow({
|
||||
flatFieldMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
});
|
||||
|
||||
return objectFlatFieldMetadatas.filter(
|
||||
(
|
||||
flatFieldMetadata,
|
||||
): flatFieldMetadata is FlatFieldMetadata<FieldMetadataType.MORPH_RELATION> =>
|
||||
|
||||
+9
-5
@@ -1,23 +1,27 @@
|
||||
import { type FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { type FlatEntityMaps } from 'src/engine/core-modules/common/types/flat-entity-maps.type';
|
||||
import { type MorphOrRelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/morph-or-relation-field-metadata-type.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { findAllOthersMorphRelationFlatFieldMetadatasOrThrow } from 'src/engine/metadata-modules/flat-field-metadata/utils/find-all-others-morph-relation-flat-field-metadatas-or-throw.util';
|
||||
import { findRelationFlatFieldMetadataTargetFlatFieldMetadataOrThrow } from 'src/engine/metadata-modules/flat-field-metadata/utils/find-relation-flat-field-metadatas-target-flat-field-metadata-or-throw.util';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
export type FindFlatFieldMetadatasRelatedToMorphRelationOrThrowArgs = {
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
flatFieldMetadataMaps: FlatEntityMaps<FlatFieldMetadata>;
|
||||
flatFieldMetadata: FlatFieldMetadata<FieldMetadataType.MORPH_RELATION>;
|
||||
flatObjectMetadata: FlatObjectMetadata;
|
||||
};
|
||||
export const findFlatFieldMetadatasRelatedToMorphRelationOrThrow = ({
|
||||
flatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps,
|
||||
flatFieldMetadata: morphRelationFlatFieldMetadata,
|
||||
flatObjectMetadata,
|
||||
}: FindFlatFieldMetadatasRelatedToMorphRelationOrThrowArgs): FlatFieldMetadata<MorphOrRelationFieldMetadataType>[] => {
|
||||
const allMorphFlatFieldMetadatas =
|
||||
findAllOthersMorphRelationFlatFieldMetadatasOrThrow({
|
||||
flatFieldMetadata: morphRelationFlatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
});
|
||||
|
||||
return [
|
||||
@@ -27,7 +31,7 @@ export const findFlatFieldMetadatasRelatedToMorphRelationOrThrow = ({
|
||||
const relationTargetFlatFieldMetadata =
|
||||
findRelationFlatFieldMetadataTargetFlatFieldMetadataOrThrow({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps,
|
||||
});
|
||||
|
||||
if (flatFieldMetadata.id === morphRelationFlatFieldMetadata.id) {
|
||||
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { type FlatEntityMaps } from 'src/engine/core-modules/common/types/flat-entity-maps.type';
|
||||
import { getSubFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/get-sub-flat-entity-maps-or-throw.util';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
type FindObjectFieldsInFlatFieldMetadataMapsArgs = {
|
||||
flatFieldMetadataMaps: FlatEntityMaps<FlatFieldMetadata>;
|
||||
flatObjectMetadata: FlatObjectMetadata;
|
||||
};
|
||||
export const findObjectFieldsInFlatFieldMetadataMapsOrThrow = ({
|
||||
flatFieldMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
}: FindObjectFieldsInFlatFieldMetadataMapsArgs): {
|
||||
objectFlatFieldMetadataById: FlatEntityMaps<FlatFieldMetadata>;
|
||||
objectFlatFieldMetadatas: FlatFieldMetadata[];
|
||||
} => {
|
||||
const objectFlatFieldMetadataById = getSubFlatEntityMapsOrThrow({
|
||||
flatEntityIds: flatObjectMetadata.fieldMetadataIds,
|
||||
flatEntityMaps: flatFieldMetadataMaps,
|
||||
});
|
||||
|
||||
const objectFlatFieldMetadatas = Object.values(
|
||||
objectFlatFieldMetadataById.byId,
|
||||
).filter(isDefined);
|
||||
|
||||
return {
|
||||
objectFlatFieldMetadataById,
|
||||
objectFlatFieldMetadatas,
|
||||
};
|
||||
};
|
||||
+5
-15
@@ -1,5 +1,6 @@
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { type FlatEntityMaps } from 'src/engine/core-modules/common/types/flat-entity-maps.type';
|
||||
import {
|
||||
FieldMetadataException,
|
||||
FieldMetadataExceptionCode,
|
||||
@@ -7,31 +8,20 @@ import {
|
||||
import { type MorphOrRelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/morph-or-relation-field-metadata-type.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { isMorphOrRelationFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-morph-or-relation-flat-field-metadata.util';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
|
||||
export type GetRelationFlatFieldMetadatasUtilArgs = {
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
flatFieldMetadataMaps: FlatEntityMaps<FlatFieldMetadata>;
|
||||
flatFieldMetadata: FlatFieldMetadata<MorphOrRelationFieldMetadataType>;
|
||||
};
|
||||
|
||||
export const findRelationFlatFieldMetadataTargetFlatFieldMetadataOrThrow = ({
|
||||
flatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps,
|
||||
flatFieldMetadata,
|
||||
}: GetRelationFlatFieldMetadatasUtilArgs): FlatFieldMetadata<MorphOrRelationFieldMetadataType> => {
|
||||
const { relationTargetFieldMetadataId, relationTargetObjectMetadataId } =
|
||||
flatFieldMetadata;
|
||||
const { relationTargetFieldMetadataId } = flatFieldMetadata;
|
||||
|
||||
const relatedFlatObjectMetadata =
|
||||
flatObjectMetadataMaps.byId[relationTargetObjectMetadataId];
|
||||
|
||||
if (!isDefined(relatedFlatObjectMetadata)) {
|
||||
throw new FieldMetadataException(
|
||||
`Deleted field metadata relation object metadata target not found`,
|
||||
FieldMetadataExceptionCode.OBJECT_METADATA_NOT_FOUND,
|
||||
);
|
||||
}
|
||||
const relatedFlatFieldMetadata =
|
||||
relatedFlatObjectMetadata.fieldsById[relationTargetFieldMetadataId];
|
||||
flatFieldMetadataMaps.byId[relationTargetFieldMetadataId];
|
||||
|
||||
if (!isDefined(relatedFlatFieldMetadata)) {
|
||||
throw new FieldMetadataException(
|
||||
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
import {
|
||||
findRelationFlatFieldMetadataTargetFlatFieldMetadataOrThrow,
|
||||
type GetRelationFlatFieldMetadatasUtilArgs,
|
||||
} from 'src/engine/metadata-modules/flat-field-metadata/utils/find-relation-flat-field-metadatas-target-flat-field-metadata-or-throw.util';
|
||||
|
||||
export const findRelationFlatFieldMetadataTargetFlatFieldMetadata = (
|
||||
args: GetRelationFlatFieldMetadatasUtilArgs,
|
||||
):
|
||||
| ReturnType<
|
||||
typeof findRelationFlatFieldMetadataTargetFlatFieldMetadataOrThrow
|
||||
>
|
||||
| undefined => {
|
||||
try {
|
||||
return findRelationFlatFieldMetadataTargetFlatFieldMetadataOrThrow(args);
|
||||
} catch {
|
||||
return undefined;
|
||||
}
|
||||
};
|
||||
+9
-15
@@ -9,6 +9,7 @@ import { v4 } from 'uuid';
|
||||
|
||||
import { type FieldMetadataOptions } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-options.interface';
|
||||
|
||||
import { type AllFlatEntityMaps } from 'src/engine/core-modules/common/types/all-flat-entity-maps.type';
|
||||
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';
|
||||
import { generateRatingOptions } from 'src/engine/metadata-modules/field-metadata/utils/generate-rating-optionts.util';
|
||||
@@ -18,19 +19,16 @@ import { fromMorphRelationCreateFieldInputToFlatFieldMetadatas } from 'src/engin
|
||||
import { fromRelationCreateFieldInputToFlatFieldMetadatas } from 'src/engine/metadata-modules/flat-field-metadata/utils/from-relation-create-field-input-to-flat-field-metadatas.util';
|
||||
import { getDefaultFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/get-default-flat-field-metadata-from-create-field-input.util';
|
||||
import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { fromFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-with-flat-field-maps-to-flat-object-metadatas.util';
|
||||
|
||||
type FromCreateFieldInputToFlatObjectMetadataArgs = {
|
||||
rawCreateFieldInput: Omit<CreateFieldInput, 'workspaceId'>;
|
||||
existingFlatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
export type FromCreateFieldInputToFlatObjectMetadataArgs = {
|
||||
createFieldInput: Omit<CreateFieldInput, 'workspaceId'>;
|
||||
workspaceId: string;
|
||||
};
|
||||
} & Pick<AllFlatEntityMaps, 'flatObjectMetadataMaps'>;
|
||||
|
||||
export const fromCreateFieldInputToFlatFieldMetadatasToCreate = async ({
|
||||
rawCreateFieldInput,
|
||||
createFieldInput: rawCreateFieldInput,
|
||||
workspaceId,
|
||||
existingFlatObjectMetadataMaps,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
}: FromCreateFieldInputToFlatObjectMetadataArgs): Promise<
|
||||
FieldInputTranspilationResult<{
|
||||
flatFieldMetadatas: FlatFieldMetadata[];
|
||||
@@ -46,15 +44,16 @@ export const fromCreateFieldInputToFlatFieldMetadatasToCreate = async ({
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
const createFieldInput =
|
||||
trimAndRemoveDuplicatedWhitespacesFromObjectStringProperties(
|
||||
rawCreateFieldInput,
|
||||
['description', 'icon', 'label', 'name', 'objectMetadataId', 'type'],
|
||||
);
|
||||
const parentFlatObjectMetadataWithFlatFieldMaps =
|
||||
const parentFlatObjectMetadata =
|
||||
existingFlatObjectMetadataMaps.byId[createFieldInput.objectMetadataId];
|
||||
|
||||
if (!isDefined(parentFlatObjectMetadataWithFlatFieldMaps)) {
|
||||
if (!isDefined(parentFlatObjectMetadata)) {
|
||||
return {
|
||||
status: 'fail',
|
||||
error: {
|
||||
@@ -65,11 +64,6 @@ export const fromCreateFieldInputToFlatFieldMetadatasToCreate = async ({
|
||||
};
|
||||
}
|
||||
|
||||
const parentFlatObjectMetadata =
|
||||
fromFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadata(
|
||||
parentFlatObjectMetadataWithFlatFieldMaps,
|
||||
);
|
||||
|
||||
const fieldMetadataId = v4();
|
||||
const commonFlatFieldMetadata = getDefaultFlatFieldMetadata({
|
||||
createFieldInput,
|
||||
|
||||
+38
-19
@@ -3,7 +3,9 @@ import {
|
||||
trimAndRemoveDuplicatedWhitespacesFromObjectStringProperties,
|
||||
} from 'twenty-shared/utils';
|
||||
|
||||
import { type FlatEntityMaps } from 'src/engine/core-modules/common/types/flat-entity-maps.type';
|
||||
import { type AllFlatEntityMaps } from 'src/engine/core-modules/common/types/all-flat-entity-maps.type';
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
import { findFlatEntityByIdInFlatEntityMaps } from 'src/engine/core-modules/common/utils/find-flat-entity-by-id-in-flat-entity-maps.util';
|
||||
import { type DeleteOneFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/delete-field.input';
|
||||
import {
|
||||
FieldMetadataException,
|
||||
@@ -11,22 +13,22 @@ import {
|
||||
} from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { computeFlatFieldMetadataRelatedFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/compute-flat-field-metadata-related-flat-field-metadata.util';
|
||||
import { findObjectFieldsInFlatFieldMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-field-metadata/utils/find-object-fields-in-flat-field-metadata-maps-or-throw.util';
|
||||
import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { findFlatFieldMetadataInFlatObjectMetadataMapsWithOnlyFieldId } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/find-flat-field-metadata-in-flat-object-metadata-maps-with-field-id-only.util';
|
||||
import { findFlatObjectMetadataInFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/find-flat-object-metadata-in-flat-object-metadata-maps-or-throw.util';
|
||||
import { generateFlatIndexMetadataWithNameOrThrow } from 'src/engine/metadata-modules/index-metadata/utils/generate-flat-index.util';
|
||||
|
||||
type FromDeleteFieldInputToFlatFieldMetadatasToDeleteArgs = {
|
||||
existingFlatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
existingFlatIndexMaps: FlatEntityMaps<FlatIndexMetadata>;
|
||||
deleteOneFieldInput: DeleteOneFieldInput;
|
||||
};
|
||||
} & Pick<
|
||||
AllFlatEntityMaps,
|
||||
'flatFieldMetadataMaps' | 'flatIndexMaps' | 'flatObjectMetadataMaps'
|
||||
>;
|
||||
// TODO refactor as a side effect service
|
||||
export const fromDeleteFieldInputToFlatFieldMetadatasToDelete = ({
|
||||
existingFlatObjectMetadataMaps,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
deleteOneFieldInput: rawDeleteOneInput,
|
||||
existingFlatIndexMaps,
|
||||
flatIndexMaps: existingFlatIndexMaps,
|
||||
flatFieldMetadataMaps: existingFlatFieldMetadataMaps,
|
||||
}: FromDeleteFieldInputToFlatFieldMetadatasToDeleteArgs): {
|
||||
flatFieldMetadatasToDelete: FlatFieldMetadata[];
|
||||
flatIndexesToUpdate: FlatIndexMetadata[];
|
||||
@@ -38,11 +40,10 @@ export const fromDeleteFieldInputToFlatFieldMetadatasToDelete = ({
|
||||
['id'],
|
||||
);
|
||||
|
||||
const flatFieldMetadataToDelete =
|
||||
findFlatFieldMetadataInFlatObjectMetadataMapsWithOnlyFieldId({
|
||||
fieldMetadataId: fieldMetadataToDeleteId,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
});
|
||||
const flatFieldMetadataToDelete = findFlatEntityByIdInFlatEntityMaps({
|
||||
flatEntityId: fieldMetadataToDeleteId,
|
||||
flatEntityMaps: existingFlatFieldMetadataMaps,
|
||||
});
|
||||
|
||||
if (!isDefined(flatFieldMetadataToDelete)) {
|
||||
throw new FieldMetadataException(
|
||||
@@ -51,10 +52,23 @@ export const fromDeleteFieldInputToFlatFieldMetadatasToDelete = ({
|
||||
);
|
||||
}
|
||||
|
||||
const flatObjectMetadata = findFlatEntityByIdInFlatEntityMaps({
|
||||
flatEntityId: flatFieldMetadataToDelete.objectMetadataId,
|
||||
flatEntityMaps: existingFlatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
if (!isDefined(flatObjectMetadata)) {
|
||||
throw new FieldMetadataException(
|
||||
'Field to delete object metadata not found',
|
||||
FieldMetadataExceptionCode.OBJECT_METADATA_NOT_FOUND,
|
||||
);
|
||||
}
|
||||
|
||||
const relatedFlatFieldMetadataToDelete =
|
||||
computeFlatFieldMetadataRelatedFlatFieldMetadata({
|
||||
flatFieldMetadata: flatFieldMetadataToDelete,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps: existingFlatFieldMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
});
|
||||
|
||||
const flatFieldMetadatasToDelete = [
|
||||
@@ -122,15 +136,20 @@ export const fromDeleteFieldInputToFlatFieldMetadatasToDelete = ({
|
||||
};
|
||||
}
|
||||
|
||||
const flatObjectMetadata =
|
||||
findFlatObjectMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
objectMetadataId: flatIndex.objectMetadataId,
|
||||
const flatObjectMetadata = findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityMaps: existingFlatObjectMetadataMaps,
|
||||
flatEntityId: flatIndex.objectMetadataId,
|
||||
});
|
||||
const { objectFlatFieldMetadatas } =
|
||||
findObjectFieldsInFlatFieldMetadataMapsOrThrow({
|
||||
flatFieldMetadataMaps: existingFlatFieldMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
});
|
||||
|
||||
const newIndex = generateFlatIndexMetadataWithNameOrThrow({
|
||||
flatObjectMetadata,
|
||||
flatIndex,
|
||||
objectFlatFieldMetadatas,
|
||||
});
|
||||
|
||||
return {
|
||||
|
||||
+1
-80
@@ -1,95 +1,18 @@
|
||||
import {
|
||||
FieldMetadataType,
|
||||
type RelationAndMorphRelationFieldMetadataType,
|
||||
} from 'twenty-shared/types';
|
||||
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 {
|
||||
FieldMetadataException,
|
||||
FieldMetadataExceptionCode,
|
||||
} from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
import {
|
||||
type FieldMetadataEntityRelationProperties,
|
||||
type FlatFieldMetadata,
|
||||
fieldMetadataRelationProperties,
|
||||
} from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { type FlatRelationTargetFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-relation-target-field-metadata.type';
|
||||
import { isFieldMetadataEntityOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
|
||||
import { fromObjectMetadataEntityToFlatObjectMetadataWithoutFields } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/utils/from-object-metadata-entity-to-flat-object-metadata-without-fields.util';
|
||||
|
||||
export const fromFieldMetadataEntityToFlatRelationTargetFieldMetadata = (
|
||||
fieldMetadataEntity: FieldMetadataEntity<RelationAndMorphRelationFieldMetadataType>,
|
||||
): FlatRelationTargetFieldMetadata => {
|
||||
return {
|
||||
universalIdentifier:
|
||||
fieldMetadataEntity.standardId ?? fieldMetadataEntity.id,
|
||||
...removePropertiesFromRecord(fieldMetadataEntity, [
|
||||
'relationTargetObjectMetadata',
|
||||
'relationTargetFieldMetadata',
|
||||
]),
|
||||
};
|
||||
};
|
||||
|
||||
// TODO refactor this method should not be recursive but depth 1
|
||||
export const fromFieldMetadataEntityToFlatFieldMetadata = <
|
||||
T extends FieldMetadataType,
|
||||
>(
|
||||
fieldMetadataEntity: FieldMetadataEntity<T>,
|
||||
// This is intended to be abstract
|
||||
): FlatFieldMetadata => {
|
||||
if (
|
||||
isFieldMetadataEntityOfType(
|
||||
fieldMetadataEntity,
|
||||
FieldMetadataType.RELATION,
|
||||
) ||
|
||||
isFieldMetadataEntityOfType(
|
||||
fieldMetadataEntity,
|
||||
FieldMetadataType.MORPH_RELATION,
|
||||
)
|
||||
) {
|
||||
const fieldMetadataWithoutRelations = removePropertiesFromRecord<
|
||||
FieldMetadataEntity<
|
||||
FieldMetadataType.RELATION | FieldMetadataType.MORPH_RELATION
|
||||
>,
|
||||
FieldMetadataEntityRelationProperties
|
||||
>(fieldMetadataEntity, fieldMetadataRelationProperties);
|
||||
|
||||
if (
|
||||
!isFieldMetadataEntityOfType(
|
||||
fieldMetadataEntity.relationTargetFieldMetadata,
|
||||
FieldMetadataType.RELATION,
|
||||
)
|
||||
) {
|
||||
throw new FieldMetadataException(
|
||||
'Relation target field is not a field metadata type relation',
|
||||
FieldMetadataExceptionCode.FIELD_METADATA_RELATION_MALFORMED,
|
||||
);
|
||||
}
|
||||
|
||||
const flatRelationTargetFieldMetadata =
|
||||
fromFieldMetadataEntityToFlatRelationTargetFieldMetadata(
|
||||
fieldMetadataEntity.relationTargetFieldMetadata,
|
||||
);
|
||||
|
||||
const flatRelationTargetObjectMetadata =
|
||||
fromObjectMetadataEntityToFlatObjectMetadataWithoutFields(
|
||||
fieldMetadataEntity.relationTargetObjectMetadata,
|
||||
);
|
||||
|
||||
return {
|
||||
...fieldMetadataWithoutRelations,
|
||||
universalIdentifier:
|
||||
fieldMetadataWithoutRelations.standardId ??
|
||||
fieldMetadataWithoutRelations.id,
|
||||
flatRelationTargetFieldMetadata,
|
||||
flatRelationTargetObjectMetadata,
|
||||
type: fieldMetadataEntity.type,
|
||||
} satisfies FlatFieldMetadata<
|
||||
FieldMetadataType.RELATION | FieldMetadataType.MORPH_RELATION
|
||||
>;
|
||||
}
|
||||
|
||||
const fieldMetadataWithoutRelations = removePropertiesFromRecord(
|
||||
fieldMetadataEntity,
|
||||
fieldMetadataRelationProperties,
|
||||
@@ -100,7 +23,5 @@ export const fromFieldMetadataEntityToFlatFieldMetadata = <
|
||||
universalIdentifier:
|
||||
fieldMetadataWithoutRelations.standardId ??
|
||||
fieldMetadataWithoutRelations.id,
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
flatRelationTargetObjectMetadata: null,
|
||||
};
|
||||
};
|
||||
|
||||
+1
-2
@@ -1,9 +1,8 @@
|
||||
import { type FieldMetadataDTO } from 'src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { type FlatRelationTargetFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-relation-target-field-metadata.type';
|
||||
|
||||
export const fromFlatFieldMetadataToFieldMetadataDto = (
|
||||
flatFieldMetadata: FlatFieldMetadata | FlatRelationTargetFieldMetadata,
|
||||
flatFieldMetadata: FlatFieldMetadata,
|
||||
): FieldMetadataDTO => {
|
||||
const {
|
||||
createdAt,
|
||||
|
||||
-42
@@ -1,42 +0,0 @@
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { type FlatObjectMetadataWithFlatFieldMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-with-flat-field-metadata-maps.type';
|
||||
import { fromObjectMetadataItemWithFieldMapsToFlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-object-metadata-item-with-field-maps-to-flat-object-metadata.util';
|
||||
import { type ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps';
|
||||
import { type ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps';
|
||||
|
||||
export type FromObjectMetadataItemWithFieldMapsToFlatObjectWithFlatFieldMetadataMapsArgs =
|
||||
{
|
||||
objectMetadataItemWithFieldMaps: ObjectMetadataItemWithFieldMaps;
|
||||
objectMetadataMaps: ObjectMetadataMaps;
|
||||
};
|
||||
export const fromObjectMetadataItemWithFieldMapsToFlatObjectWithFlatFieldMetadataMaps =
|
||||
({
|
||||
objectMetadataItemWithFieldMaps,
|
||||
objectMetadataMaps,
|
||||
}: FromObjectMetadataItemWithFieldMapsToFlatObjectWithFlatFieldMetadataMapsArgs): FlatObjectMetadataWithFlatFieldMaps => {
|
||||
const flatObjectMetadata =
|
||||
fromObjectMetadataItemWithFieldMapsToFlatObjectMetadata({
|
||||
objectMetadataItemWithFieldMaps,
|
||||
objectMetadataMaps,
|
||||
});
|
||||
|
||||
const initialAccumulator: Record<string, FlatFieldMetadata> = {};
|
||||
|
||||
const fieldsById = flatObjectMetadata.flatFieldMetadatas.reduce(
|
||||
(acc, flatFieldMetadata) => ({
|
||||
...acc,
|
||||
[flatFieldMetadata.id]: flatFieldMetadata,
|
||||
}),
|
||||
initialAccumulator,
|
||||
);
|
||||
|
||||
const { fieldIdByJoinColumnName, fieldIdByName } =
|
||||
objectMetadataItemWithFieldMaps;
|
||||
|
||||
return {
|
||||
...flatObjectMetadata,
|
||||
fieldsById,
|
||||
fieldIdByJoinColumnName,
|
||||
fieldIdByName,
|
||||
};
|
||||
};
|
||||
+17
-11
@@ -4,23 +4,29 @@ import { fromFlatFieldMetadataToFieldMetadataDto } from 'src/engine/metadata-mod
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
import { fromFlatObjectMetadataToObjectMetadataDto } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-to-object-metadata-dto.util';
|
||||
|
||||
export const fromMorphOrRelationFlatFieldMetadataToRelationDto = ({
|
||||
flatFieldMetadata,
|
||||
sourceFlatObjectMetadata,
|
||||
}: {
|
||||
type FromMorphOrRelationFlatFieldMetadataToRelationDtoArgs = {
|
||||
sourceFlatObjectMetadata: FlatObjectMetadata;
|
||||
flatFieldMetadata: FlatFieldMetadata<MorphOrRelationFieldMetadataType>;
|
||||
}) => ({
|
||||
type: flatFieldMetadata.settings.relationType,
|
||||
targetFlatObjectMetadata: FlatObjectMetadata;
|
||||
sourceFlatFieldMetadata: FlatFieldMetadata<MorphOrRelationFieldMetadataType>;
|
||||
targetFlatFieldMetadata: FlatFieldMetadata<MorphOrRelationFieldMetadataType>;
|
||||
};
|
||||
export const fromMorphOrRelationFlatFieldMetadataToRelationDto = ({
|
||||
sourceFlatFieldMetadata,
|
||||
sourceFlatObjectMetadata,
|
||||
targetFlatFieldMetadata,
|
||||
targetFlatObjectMetadata,
|
||||
}: FromMorphOrRelationFlatFieldMetadataToRelationDtoArgs) => ({
|
||||
type: sourceFlatFieldMetadata.settings.relationType,
|
||||
sourceObjectMetadata: fromFlatObjectMetadataToObjectMetadataDto(
|
||||
sourceFlatObjectMetadata,
|
||||
),
|
||||
sourceFieldMetadata:
|
||||
fromFlatFieldMetadataToFieldMetadataDto(flatFieldMetadata),
|
||||
sourceFieldMetadata: fromFlatFieldMetadataToFieldMetadataDto(
|
||||
sourceFlatFieldMetadata,
|
||||
),
|
||||
targetObjectMetadata: fromFlatObjectMetadataToObjectMetadataDto(
|
||||
flatFieldMetadata.flatRelationTargetObjectMetadata,
|
||||
targetFlatObjectMetadata,
|
||||
),
|
||||
targetFieldMetadata: fromFlatFieldMetadataToFieldMetadataDto(
|
||||
flatFieldMetadata.flatRelationTargetFieldMetadata,
|
||||
targetFlatFieldMetadata,
|
||||
),
|
||||
});
|
||||
|
||||
+2
-2
@@ -3,6 +3,7 @@ import { type FieldMetadataType } from 'twenty-shared/types';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatEntityMaps } from 'src/engine/core-modules/common/types/flat-entity-maps.type';
|
||||
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';
|
||||
import { computeMorphOrRelationFieldJoinColumnName } from 'src/engine/metadata-modules/field-metadata/utils/compute-morph-or-relation-field-join-column-name.util';
|
||||
@@ -12,14 +13,13 @@ import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-m
|
||||
import { generateMorphOrRelationFlatFieldMetadataPair } from 'src/engine/metadata-modules/flat-field-metadata/utils/generate-morph-or-relation-flat-field-metadata-pair.util';
|
||||
import { validateMorphRelationCreationPayload } from 'src/engine/metadata-modules/flat-field-metadata/validators/utils/validate-morph-relation-creation-payload.util';
|
||||
import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
type FromMorphRelationCreateFieldInputToFlatFieldMetadatasArgs = {
|
||||
createFieldInput: Omit<CreateFieldInput, 'workspaceId'> & {
|
||||
type: FieldMetadataType.MORPH_RELATION;
|
||||
};
|
||||
existingFlatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
existingFlatObjectMetadataMaps: FlatEntityMaps<FlatObjectMetadata>;
|
||||
sourceFlatObjectMetadata: FlatObjectMetadata;
|
||||
workspaceId: string;
|
||||
};
|
||||
|
||||
+2
-2
@@ -2,6 +2,7 @@ import { t } from '@lingui/core/macro';
|
||||
import { type FieldMetadataType } from 'twenty-shared/types';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { type FlatEntityMaps } from 'src/engine/core-modules/common/types/flat-entity-maps.type';
|
||||
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';
|
||||
import { computeMorphOrRelationFieldJoinColumnName } from 'src/engine/metadata-modules/field-metadata/utils/compute-morph-or-relation-field-join-column-name.util';
|
||||
@@ -11,14 +12,13 @@ import {
|
||||
type SourceTargetMorphOrRelationFlatFieldAndFlatIndex,
|
||||
} from 'src/engine/metadata-modules/flat-field-metadata/utils/generate-morph-or-relation-flat-field-metadata-pair.util';
|
||||
import { validateRelationCreationPayload } from 'src/engine/metadata-modules/flat-field-metadata/validators/utils/validate-relation-creation-payload.util';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
type FromRelationCreateFieldInputToFlatFieldMetadataArgs = {
|
||||
createFieldInput: Omit<CreateFieldInput, 'workspaceId'> & {
|
||||
type: FieldMetadataType.RELATION;
|
||||
};
|
||||
existingFlatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
existingFlatObjectMetadataMaps: FlatEntityMaps<FlatObjectMetadata>;
|
||||
sourceFlatObjectMetadata: FlatObjectMetadata;
|
||||
workspaceId: string;
|
||||
};
|
||||
|
||||
+40
-48
@@ -6,9 +6,14 @@ import {
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type AllFlatEntityMaps } from 'src/engine/core-modules/common/types/all-flat-entity-maps.type';
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
import { findFlatEntityByIdInFlatEntityMaps } from 'src/engine/core-modules/common/utils/find-flat-entity-by-id-in-flat-entity-maps.util';
|
||||
import { FIELD_METADATA_STANDARD_OVERRIDES_PROPERTIES } from 'src/engine/metadata-modules/field-metadata/constants/field-metadata-standard-overrides-properties.constant';
|
||||
import { type UpdateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/update-field.input';
|
||||
import { FieldMetadataExceptionCode } from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
import {
|
||||
FieldMetadataException,
|
||||
FieldMetadataExceptionCode,
|
||||
} from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
import { type FieldMetadataStandardOverridesProperties } from 'src/engine/metadata-modules/field-metadata/types/field-metadata-standard-overrides-properties.type';
|
||||
import { FLAT_FIELD_METADATA_EDITABLE_PROPERTIES } from 'src/engine/metadata-modules/flat-field-metadata/constants/flat-field-metadata-editable-properties.constant';
|
||||
import { type FieldInputTranspilationResult } from 'src/engine/metadata-modules/flat-field-metadata/types/field-input-transpilation-result.type';
|
||||
@@ -17,9 +22,6 @@ import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-m
|
||||
import { computeFlatFieldMetadataRelatedFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/compute-flat-field-metadata-related-flat-field-metadata.util';
|
||||
import { recomputeIndexOnFlatFieldMetadataNameUpdate } from 'src/engine/metadata-modules/flat-field-metadata/utils/recompute-index-on-flat-field-metadata-name-update.util';
|
||||
import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type';
|
||||
import { findFlatFieldMetadataInFlatObjectMetadataMapsWithOnlyFieldId } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/find-flat-field-metadata-in-flat-object-metadata-maps-with-field-id-only.util';
|
||||
import { findFlatObjectMetadataInFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/find-flat-object-metadata-in-flat-object-metadata-maps-or-throw.util';
|
||||
import { fromFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-with-flat-field-maps-to-flat-object-metadatas.util';
|
||||
import { isStandardMetadata } from 'src/engine/metadata-modules/utils/is-standard-metadata.util';
|
||||
|
||||
type UpdatedFlatFieldMetadataAndIndexToUpdate = {
|
||||
@@ -37,13 +39,17 @@ type SanitizedUpdateFieldInput = ReturnType<
|
||||
type ApplyUpdatesToFlatFieldMetadataArgs = {
|
||||
updatedEditableFieldProperties: SanitizedUpdateFieldInput;
|
||||
fromFlatFieldMetadata: FlatFieldMetadata;
|
||||
} & Pick<AllFlatEntityMaps, 'flatIndexMaps' | 'flatObjectMetadataMaps'>;
|
||||
} & Pick<
|
||||
AllFlatEntityMaps,
|
||||
'flatIndexMaps' | 'flatObjectMetadataMaps' | 'flatFieldMetadataMaps'
|
||||
>;
|
||||
|
||||
const applyUpdatesToFlatFieldMetadata = ({
|
||||
updatedEditableFieldProperties,
|
||||
fromFlatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
flatIndexMaps,
|
||||
flatFieldMetadataMaps,
|
||||
}: ApplyUpdatesToFlatFieldMetadataArgs) => {
|
||||
return FLAT_FIELD_METADATA_EDITABLE_PROPERTIES.reduce<UpdatedFlatFieldMetadataAndIndexToUpdate>(
|
||||
({ flatFieldMetadata, flatIndexMetadataToUpdate }, property) => {
|
||||
@@ -74,14 +80,14 @@ const applyUpdatesToFlatFieldMetadata = ({
|
||||
let newFlatIndexMetadataToUpdate: FlatIndexMetadata[] = [];
|
||||
|
||||
if (property === 'name') {
|
||||
const flatObjectMetadata =
|
||||
findFlatObjectMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadataMaps,
|
||||
objectMetadataId: flatFieldMetadata.objectMetadataId,
|
||||
});
|
||||
const flatObjectMetadata = findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityMaps: flatObjectMetadataMaps,
|
||||
flatEntityId: flatFieldMetadata.objectMetadataId,
|
||||
});
|
||||
|
||||
newFlatIndexMetadataToUpdate =
|
||||
recomputeIndexOnFlatFieldMetadataNameUpdate({
|
||||
flatFieldMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
fromFlatFieldMetadata,
|
||||
toFlatFieldMetadata: {
|
||||
@@ -108,7 +114,10 @@ const applyUpdatesToFlatFieldMetadata = ({
|
||||
|
||||
type FromUpdateFieldInputToFlatFieldMetadataArgs = {
|
||||
updateFieldInput: UpdateFieldInput;
|
||||
} & Pick<AllFlatEntityMaps, 'flatObjectMetadataMaps' | 'flatIndexMaps'>;
|
||||
} & Pick<
|
||||
AllFlatEntityMaps,
|
||||
'flatObjectMetadataMaps' | 'flatIndexMaps' | 'flatFieldMetadataMaps'
|
||||
>;
|
||||
|
||||
type FlatFieldMetadataAndIndexToUpdate = {
|
||||
flatFieldMetadatasToUpdate: FlatFieldMetadata[];
|
||||
@@ -117,6 +126,7 @@ type FlatFieldMetadataAndIndexToUpdate = {
|
||||
export const fromUpdateFieldInputToFlatFieldMetadata = ({
|
||||
flatIndexMaps,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps,
|
||||
updateFieldInput: rawUpdateFieldInput,
|
||||
}: FromUpdateFieldInputToFlatFieldMetadataArgs): FieldInputTranspilationResult<FlatFieldMetadataAndIndexToUpdate> => {
|
||||
const updateFieldInputInformalProperties =
|
||||
@@ -129,11 +139,10 @@ export const fromUpdateFieldInputToFlatFieldMetadata = ({
|
||||
FLAT_FIELD_METADATA_EDITABLE_PROPERTIES,
|
||||
);
|
||||
|
||||
const existingFlatFieldMetadataToUpdate =
|
||||
findFlatFieldMetadataInFlatObjectMetadataMapsWithOnlyFieldId({
|
||||
fieldMetadataId: updateFieldInputInformalProperties.id,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
});
|
||||
const existingFlatFieldMetadataToUpdate = findFlatEntityByIdInFlatEntityMaps({
|
||||
flatEntityId: updateFieldInputInformalProperties.id,
|
||||
flatEntityMaps: flatFieldMetadataMaps,
|
||||
});
|
||||
|
||||
if (!isDefined(existingFlatFieldMetadataToUpdate)) {
|
||||
return {
|
||||
@@ -146,37 +155,6 @@ export const fromUpdateFieldInputToFlatFieldMetadata = ({
|
||||
};
|
||||
}
|
||||
|
||||
const flatObjectMetadataWithFlatFieldMaps =
|
||||
existingFlatObjectMetadataMaps.byId[
|
||||
existingFlatFieldMetadataToUpdate.objectMetadataId
|
||||
];
|
||||
|
||||
if (!isDefined(flatObjectMetadataWithFlatFieldMaps)) {
|
||||
return {
|
||||
status: 'fail',
|
||||
error: {
|
||||
code: FieldMetadataExceptionCode.FIELD_METADATA_NOT_FOUND,
|
||||
message: 'Field metadata to update object metadata not found',
|
||||
userFriendlyMessage: t`Field metadata to update object metadata not found`,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
const flatObjectMetadata =
|
||||
fromFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadata(
|
||||
flatObjectMetadataWithFlatFieldMaps,
|
||||
);
|
||||
|
||||
if (flatObjectMetadata.isRemote) {
|
||||
return {
|
||||
status: 'fail',
|
||||
error: {
|
||||
code: FieldMetadataExceptionCode.FIELD_MUTATION_NOT_ALLOWED,
|
||||
message: 'Remote objects are read-only',
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
if (isStandardMetadata(existingFlatFieldMetadataToUpdate)) {
|
||||
const invalidUpdatedProperties = Object.keys(
|
||||
updatedEditableFieldProperties,
|
||||
@@ -224,10 +202,23 @@ export const fromUpdateFieldInputToFlatFieldMetadata = ({
|
||||
};
|
||||
}
|
||||
|
||||
const flatObjectMetadata = findFlatEntityByIdInFlatEntityMaps({
|
||||
flatEntityId: existingFlatFieldMetadataToUpdate.objectMetadataId,
|
||||
flatEntityMaps: existingFlatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
if (!isDefined(flatObjectMetadata)) {
|
||||
throw new FieldMetadataException(
|
||||
'Field to update object metadata not found',
|
||||
FieldMetadataExceptionCode.OBJECT_METADATA_NOT_FOUND,
|
||||
);
|
||||
}
|
||||
|
||||
const relatedFlatFieldMetadatasToUpdate =
|
||||
computeFlatFieldMetadataRelatedFlatFieldMetadata({
|
||||
flatFieldMetadata: existingFlatFieldMetadataToUpdate,
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
});
|
||||
|
||||
const flatFieldMetadatasToUpdate = [
|
||||
@@ -242,6 +233,7 @@ export const fromUpdateFieldInputToFlatFieldMetadata = ({
|
||||
applyUpdatesToFlatFieldMetadata({
|
||||
flatObjectMetadataMaps: existingFlatObjectMetadataMaps,
|
||||
fromFlatFieldMetadata,
|
||||
flatFieldMetadataMaps,
|
||||
flatIndexMaps,
|
||||
updatedEditableFieldProperties,
|
||||
});
|
||||
|
||||
+9
-26
@@ -86,7 +86,6 @@ export const generateMorphOrRelationFlatFieldMetadataPair = ({
|
||||
options: null,
|
||||
relationTargetFieldMetadataId: targetRelationTargetFieldMetadataId,
|
||||
relationTargetObjectMetadataId: targetFlatObjectMetadata.id,
|
||||
flatRelationTargetObjectMetadata: targetFlatObjectMetadata,
|
||||
};
|
||||
|
||||
const targetCreateFieldInput: CreateFieldInput = {
|
||||
@@ -122,14 +121,16 @@ export const generateMorphOrRelationFlatFieldMetadataPair = ({
|
||||
options: null,
|
||||
relationTargetFieldMetadataId: sourceRelationTargetFieldMetadataId,
|
||||
relationTargetObjectMetadataId: sourceFlatObjectMetadata.id,
|
||||
flatRelationTargetFieldMetadata: sourceFlatFieldMetadata,
|
||||
flatRelationTargetObjectMetadata: sourceFlatObjectMetadata,
|
||||
};
|
||||
|
||||
const indexId = v4();
|
||||
const createdAt = new Date();
|
||||
const indexMetadata: FlatIndexMetadata =
|
||||
generateFlatIndexMetadataWithNameOrThrow({
|
||||
objectFlatFieldMetadatas:
|
||||
relationCreationPayload.type === RelationType.MANY_TO_ONE
|
||||
? [sourceFlatFieldMetadata]
|
||||
: [targetFlatFieldMetadata],
|
||||
flatIndex: {
|
||||
createdAt,
|
||||
flatIndexFieldMetadatas: [
|
||||
@@ -158,32 +159,14 @@ export const generateMorphOrRelationFlatFieldMetadataPair = ({
|
||||
updatedAt: createdAt,
|
||||
workspaceId,
|
||||
},
|
||||
flatObjectMetadata: (relationCreationPayload.type ===
|
||||
RelationType.MANY_TO_ONE
|
||||
? {
|
||||
...sourceFlatObjectMetadata,
|
||||
flatFieldMetadatas: [
|
||||
...sourceFlatObjectMetadata.flatFieldMetadatas,
|
||||
sourceFlatFieldMetadata,
|
||||
],
|
||||
}
|
||||
: {
|
||||
...targetFlatObjectMetadata,
|
||||
flatFieldMetadatas: [
|
||||
...targetFlatObjectMetadata.flatFieldMetadatas,
|
||||
targetFlatFieldMetadata,
|
||||
],
|
||||
}) as FlatObjectMetadata,
|
||||
flatObjectMetadata:
|
||||
relationCreationPayload.type === RelationType.MANY_TO_ONE
|
||||
? sourceFlatObjectMetadata
|
||||
: targetFlatObjectMetadata,
|
||||
});
|
||||
|
||||
return {
|
||||
flatFieldMetadatas: [
|
||||
{
|
||||
...sourceFlatFieldMetadata,
|
||||
flatRelationTargetFieldMetadata: targetFlatFieldMetadata,
|
||||
},
|
||||
targetFlatFieldMetadata,
|
||||
],
|
||||
flatFieldMetadatas: [sourceFlatFieldMetadata, targetFlatFieldMetadata],
|
||||
indexMetadatas: [indexMetadata],
|
||||
};
|
||||
};
|
||||
|
||||
-2
@@ -46,8 +46,6 @@ export const getDefaultFlatFieldMetadata = ({
|
||||
type: createFieldInput.type,
|
||||
universalIdentifier: fieldMetadataId,
|
||||
workspaceId,
|
||||
flatRelationTargetFieldMetadata: null,
|
||||
flatRelationTargetObjectMetadata: null,
|
||||
options: null,
|
||||
defaultValue: defaultValue ?? generateDefaultValue(createFieldInput.type),
|
||||
settings: settings ?? null,
|
||||
|
||||
+21
-16
@@ -2,6 +2,7 @@ import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { type AllFlatEntityMaps } from 'src/engine/core-modules/common/types/all-flat-entity-maps.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { findObjectFieldsInFlatFieldMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-field-metadata/utils/find-object-fields-in-flat-field-metadata-maps-or-throw.util';
|
||||
import { type FlatIndexMetadata } from 'src/engine/metadata-modules/flat-index-metadata/types/flat-index-metadata.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
import { generateFlatIndexMetadataWithNameOrThrow } from 'src/engine/metadata-modules/index-metadata/utils/generate-flat-index.util';
|
||||
@@ -10,13 +11,14 @@ type RecomputeIndexOnFlatFieldMetadataNameUpdateArgs = {
|
||||
flatObjectMetadata: FlatObjectMetadata;
|
||||
fromFlatFieldMetadata: FlatFieldMetadata;
|
||||
toFlatFieldMetadata: Pick<FlatFieldMetadata, 'name'>;
|
||||
} & Pick<AllFlatEntityMaps, 'flatIndexMaps'>;
|
||||
} & Pick<AllFlatEntityMaps, 'flatIndexMaps' | 'flatFieldMetadataMaps'>;
|
||||
|
||||
export const recomputeIndexOnFlatFieldMetadataNameUpdate = ({
|
||||
fromFlatFieldMetadata,
|
||||
toFlatFieldMetadata,
|
||||
flatObjectMetadata,
|
||||
flatIndexMaps,
|
||||
flatFieldMetadataMaps,
|
||||
}: RecomputeIndexOnFlatFieldMetadataNameUpdateArgs): FlatIndexMetadata[] => {
|
||||
const relatedFlatIndexMetadata = Object.values(flatIndexMaps.byId).filter(
|
||||
(flatIndexMetadata): flatIndexMetadata is FlatIndexMetadata =>
|
||||
@@ -33,26 +35,29 @@ export const recomputeIndexOnFlatFieldMetadataNameUpdate = ({
|
||||
return [];
|
||||
}
|
||||
|
||||
const optimisticFlatObjectMetadata = {
|
||||
...flatObjectMetadata,
|
||||
flatFieldMetadatas: flatObjectMetadata.flatFieldMetadatas.map(
|
||||
(flatFieldMetadata) => {
|
||||
if (flatFieldMetadata.id === fromFlatFieldMetadata.id) {
|
||||
return {
|
||||
...flatFieldMetadata,
|
||||
name: toFlatFieldMetadata.name,
|
||||
};
|
||||
}
|
||||
const { objectFlatFieldMetadatas } =
|
||||
findObjectFieldsInFlatFieldMetadataMapsOrThrow({
|
||||
flatFieldMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
});
|
||||
const optimisticObjectFlatFieldMetadatas = objectFlatFieldMetadatas.map(
|
||||
(flatFieldMetadata) => {
|
||||
if (flatFieldMetadata.id === fromFlatFieldMetadata.id) {
|
||||
return {
|
||||
...flatFieldMetadata,
|
||||
name: toFlatFieldMetadata.name,
|
||||
};
|
||||
}
|
||||
|
||||
return flatFieldMetadata;
|
||||
},
|
||||
),
|
||||
};
|
||||
return flatFieldMetadata;
|
||||
},
|
||||
);
|
||||
|
||||
return relatedFlatIndexMetadata.map<FlatIndexMetadata>((flatIndex) => {
|
||||
const newIndex = generateFlatIndexMetadataWithNameOrThrow({
|
||||
flatObjectMetadata: optimisticFlatObjectMetadata,
|
||||
flatIndex,
|
||||
flatObjectMetadata,
|
||||
objectFlatFieldMetadatas: optimisticObjectFlatFieldMetadatas,
|
||||
});
|
||||
|
||||
return newIndex;
|
||||
|
||||
+1
@@ -24,6 +24,7 @@ export const throwOnFieldInputTranspilationsError: ThrowOnFieldInputTranspilatio
|
||||
throw new WorkspaceMigrationBuilderExceptionV2(
|
||||
{
|
||||
report: {
|
||||
fieldMetadata: [],
|
||||
index: [],
|
||||
view: [],
|
||||
viewField: [],
|
||||
|
||||
+1
-1
@@ -16,7 +16,6 @@ import {
|
||||
type FieldMetadataDefaultOption,
|
||||
} from 'src/engine/metadata-modules/field-metadata/dtos/options.input';
|
||||
import { FieldMetadataExceptionCode } from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
import { type ValidateOneFieldMetadataArgs } from 'src/engine/metadata-modules/flat-field-metadata/services/flat-field-metadata-validator.service';
|
||||
import { type FlatFieldMetadataValidationError } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata-validation-error.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { runFlatFieldMetadataValidators } from 'src/engine/metadata-modules/flat-field-metadata/utils/run-flat-field-metadata-validators.util';
|
||||
@@ -25,6 +24,7 @@ import {
|
||||
beneathDatabaseIdentifierMinimumLength,
|
||||
exceedsDatabaseIdentifierMaximumLength,
|
||||
} from 'src/engine/metadata-modules/utils/validate-database-identifier-length.utils';
|
||||
import { type ValidateOneFieldMetadataArgs } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-field-metadata-validator.service';
|
||||
import { isSnakeCaseString } from 'src/utils/is-snake-case-string';
|
||||
|
||||
const validateMetadataOptionId = (sanitizedId?: string) => {
|
||||
|
||||
+44
-11
@@ -2,20 +2,23 @@ import { t } from '@lingui/core/macro';
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { type FlatEntityMaps } from 'src/engine/core-modules/common/types/flat-entity-maps.type';
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/core-modules/common/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
import { compositeTypeDefinitions } from 'src/engine/metadata-modules/field-metadata/composite-types';
|
||||
import { FieldMetadataExceptionCode } from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
import { computeCompositeColumnName } from 'src/engine/metadata-modules/field-metadata/utils/compute-column-name.util';
|
||||
import { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util';
|
||||
import { type FlatFieldMetadataValidationError } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata-validation-error.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { findObjectFieldsInFlatFieldMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-field-metadata/utils/find-object-fields-in-flat-field-metadata-maps-or-throw.util';
|
||||
import { isFlatFieldMetadataOfType } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-of-type.util';
|
||||
import { isMorphOrRelationFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-morph-or-relation-flat-field-metadata.util';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
const getReservedCompositeFieldNames = (
|
||||
flatObjectMetadata: FlatObjectMetadata,
|
||||
objectFlatFieldMetadatas: FlatFieldMetadata[],
|
||||
): string[] => {
|
||||
return flatObjectMetadata.flatFieldMetadatas.flatMap((flatFieldMetadata) => {
|
||||
return objectFlatFieldMetadatas.flatMap((flatFieldMetadata) => {
|
||||
if (isCompositeFieldMetadataType(flatFieldMetadata.type)) {
|
||||
const base = flatFieldMetadata.name;
|
||||
const compositeType = compositeTypeDefinitions.get(
|
||||
@@ -35,33 +38,63 @@ const getReservedCompositeFieldNames = (
|
||||
});
|
||||
};
|
||||
|
||||
// Should implement Morph relation nameObjectId col availability
|
||||
export const validateFlatFieldMetadataNameAvailability = ({
|
||||
flatFieldMetadata,
|
||||
flatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
flatObjectMetadata,
|
||||
}: {
|
||||
flatFieldMetadata: FlatFieldMetadata;
|
||||
flatObjectMetadata: FlatObjectMetadata;
|
||||
flatFieldMetadataMaps: FlatEntityMaps<FlatFieldMetadata>;
|
||||
remainingFlatEntityMapsToValidate?: FlatEntityMaps<FlatFieldMetadata>;
|
||||
}): FlatFieldMetadataValidationError[] => {
|
||||
const errors: FlatFieldMetadataValidationError[] = [];
|
||||
const reservedCompositeFieldsNames =
|
||||
getReservedCompositeFieldNames(flatObjectMetadata);
|
||||
const { objectFlatFieldMetadatas } =
|
||||
findObjectFieldsInFlatFieldMetadataMapsOrThrow({
|
||||
flatFieldMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
});
|
||||
const reservedCompositeFieldsNames = getReservedCompositeFieldNames(
|
||||
objectFlatFieldMetadatas,
|
||||
);
|
||||
const flatFieldMetadataName = flatFieldMetadata.name;
|
||||
|
||||
if (
|
||||
!isFlatFieldMetadataOfType(
|
||||
// CHALLENGE Could remove the is morph relation assertion
|
||||
flatFieldMetadata,
|
||||
FieldMetadataType.MORPH_RELATION,
|
||||
) &&
|
||||
flatObjectMetadata.flatFieldMetadatas.some((existingFlatFieldMetadata) => {
|
||||
objectFlatFieldMetadatas.some((existingFlatFieldMetadata) => {
|
||||
const firstDegreeCollision =
|
||||
existingFlatFieldMetadata.name === flatFieldMetadataName;
|
||||
const relationJoinColumnCollision =
|
||||
isMorphOrRelationFlatFieldMetadata(existingFlatFieldMetadata) &&
|
||||
existingFlatFieldMetadata.flatRelationTargetFieldMetadata.settings
|
||||
.joinColumnName === flatFieldMetadataName;
|
||||
|
||||
return firstDegreeCollision || relationJoinColumnCollision;
|
||||
if (firstDegreeCollision) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!isMorphOrRelationFlatFieldMetadata(existingFlatFieldMetadata)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const targetFlatFieldMetadata =
|
||||
remainingFlatEntityMapsToValidate?.byId[
|
||||
existingFlatFieldMetadata.relationTargetFieldMetadataId
|
||||
] ??
|
||||
findFlatEntityByIdInFlatEntityMapsOrThrow({
|
||||
flatEntityId: existingFlatFieldMetadata.relationTargetFieldMetadataId,
|
||||
flatEntityMaps: flatFieldMetadataMaps,
|
||||
});
|
||||
|
||||
if (!isMorphOrRelationFlatFieldMetadata(targetFlatFieldMetadata)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return (
|
||||
targetFlatFieldMetadata.settings.joinColumnName ===
|
||||
flatFieldMetadataName
|
||||
);
|
||||
})
|
||||
) {
|
||||
errors.push({
|
||||
|
||||
+9
-13
@@ -3,13 +3,14 @@ import { isDefined, isValidUuid } from 'twenty-shared/utils';
|
||||
|
||||
import { FieldMetadataExceptionCode } from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
import { type MorphOrRelationFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/morph-or-relation-field-metadata-type.type';
|
||||
import { type ValidateOneFieldMetadataArgs } from 'src/engine/metadata-modules/flat-field-metadata/services/flat-field-metadata-validator.service';
|
||||
import { type FlatFieldMetadataValidationError } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata-validation-error.type';
|
||||
import { type ValidateOneFieldMetadataArgs } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-field-metadata-validator.service';
|
||||
|
||||
export const validateMorphOrRelationFlatFieldMetadata = async ({
|
||||
existingFlatObjectMetadataMaps,
|
||||
dependencyOptimisticFlatEntityMaps: { flatObjectMetadataMaps },
|
||||
flatFieldMetadataToValidate,
|
||||
otherFlatObjectMetadataMapsToValidate,
|
||||
optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
}: ValidateOneFieldMetadataArgs<MorphOrRelationFieldMetadataType>): Promise<
|
||||
FlatFieldMetadataValidationError[]
|
||||
> => {
|
||||
@@ -37,23 +38,19 @@ export const validateMorphOrRelationFlatFieldMetadata = async ({
|
||||
const errors: FlatFieldMetadataValidationError[] = [];
|
||||
|
||||
const targetRelationFlatObjectMetadata =
|
||||
otherFlatObjectMetadataMapsToValidate?.byId[
|
||||
relationTargetObjectMetadataId
|
||||
] ?? existingFlatObjectMetadataMaps.byId[relationTargetObjectMetadataId];
|
||||
flatObjectMetadataMaps?.byId[relationTargetObjectMetadataId];
|
||||
|
||||
if (!isDefined(targetRelationFlatObjectMetadata)) {
|
||||
errors.push({
|
||||
code: FieldMetadataExceptionCode.OBJECT_METADATA_NOT_FOUND,
|
||||
message: isDefined(otherFlatObjectMetadataMapsToValidate)
|
||||
? 'Relation target object metadata not found in both existing and about to be created object metadatas'
|
||||
: 'Relation target object metadata not found',
|
||||
message: 'Relation target object metadata not found',
|
||||
userFriendlyMessage: t`Object targeted by the relation not found`,
|
||||
value: relationTargetObjectMetadataId,
|
||||
});
|
||||
}
|
||||
|
||||
const targetRelationFlatFieldMetadata =
|
||||
targetRelationFlatObjectMetadata?.fieldsById[relationTargetFieldMetadataId];
|
||||
remainingFlatEntityMapsToValidate?.byId[relationTargetFieldMetadataId] ??
|
||||
optimisticFlatFieldMetadataMaps.byId[relationTargetFieldMetadataId];
|
||||
|
||||
if (
|
||||
isDefined(targetRelationFlatObjectMetadata) &&
|
||||
@@ -61,11 +58,10 @@ export const validateMorphOrRelationFlatFieldMetadata = async ({
|
||||
) {
|
||||
errors.push({
|
||||
code: FieldMetadataExceptionCode.FIELD_METADATA_NOT_FOUND,
|
||||
message: isDefined(otherFlatObjectMetadataMapsToValidate)
|
||||
message: isDefined(remainingFlatEntityMapsToValidate)
|
||||
? 'Relation field target metadata not found in both existing and about to be created field metadatas'
|
||||
: 'Relation field target metadata not found',
|
||||
userFriendlyMessage: t`Relation field target metadata not found`,
|
||||
value: relationTargetFieldMetadataId,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -2,6 +2,7 @@ import { t } from '@lingui/core/macro';
|
||||
import { isDefined } from 'class-validator';
|
||||
import { type RelationCreationPayload } from 'twenty-shared/types';
|
||||
|
||||
import { type FlatEntityMaps } from 'src/engine/core-modules/common/types/flat-entity-maps.type';
|
||||
import { FieldMetadataExceptionCode } from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
import {
|
||||
type FailedFieldInputTranspilation,
|
||||
@@ -9,7 +10,6 @@ import {
|
||||
type SuccessfulFieldInputTranspilation,
|
||||
} from 'src/engine/metadata-modules/flat-field-metadata/types/field-input-transpilation-result.type';
|
||||
import { validateRelationCreationPayload } from 'src/engine/metadata-modules/flat-field-metadata/validators/utils/validate-relation-creation-payload.util';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
type RelationCreationPayloadAndObjectMetadata = {
|
||||
@@ -19,7 +19,7 @@ type RelationCreationPayloadAndObjectMetadata = {
|
||||
|
||||
type ValidateMorphRelationCreationPayloadUtilArgs = {
|
||||
morphRelationCreationPayload: RelationCreationPayload[];
|
||||
existingFlatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
existingFlatObjectMetadataMaps: FlatEntityMaps<FlatObjectMetadata>;
|
||||
objectMetadataId: string;
|
||||
};
|
||||
export const validateMorphRelationCreationPayload = async ({
|
||||
|
||||
+5
-9
@@ -5,19 +5,18 @@ import {
|
||||
trimAndRemoveDuplicatedWhitespacesFromObjectStringProperties,
|
||||
} from 'twenty-shared/utils';
|
||||
|
||||
import { type FlatEntityMaps } from 'src/engine/core-modules/common/types/flat-entity-maps.type';
|
||||
import {
|
||||
FieldMetadataException,
|
||||
FieldMetadataExceptionCode,
|
||||
} from 'src/engine/metadata-modules/field-metadata/field-metadata.exception';
|
||||
import { validateRelationCreationPayloadOrThrow } from 'src/engine/metadata-modules/field-metadata/utils/validate-relation-creation-payload-or-throw.util';
|
||||
import { type FieldInputTranspilationResult } from 'src/engine/metadata-modules/flat-field-metadata/types/field-input-transpilation-result.type';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
import { fromFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-with-flat-field-maps-to-flat-object-metadatas.util';
|
||||
|
||||
type ValidateRelationCreationPayloadUtilArgs = {
|
||||
relationCreationPayload: RelationCreationPayload;
|
||||
existingFlatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
existingFlatObjectMetadataMaps: FlatEntityMaps<FlatObjectMetadata>;
|
||||
};
|
||||
export const validateRelationCreationPayload = async ({
|
||||
existingFlatObjectMetadataMaps,
|
||||
@@ -52,12 +51,12 @@ export const validateRelationCreationPayload = async ({
|
||||
}
|
||||
}
|
||||
|
||||
const targetFlatObjectMetadataWithFlatFieldMaps =
|
||||
const targetFlatObjectMetadata =
|
||||
existingFlatObjectMetadataMaps.byId[
|
||||
relationCreationPayload.targetObjectMetadataId
|
||||
];
|
||||
|
||||
if (!isDefined(targetFlatObjectMetadataWithFlatFieldMaps)) {
|
||||
if (!isDefined(targetFlatObjectMetadata)) {
|
||||
return {
|
||||
status: 'fail',
|
||||
error: {
|
||||
@@ -73,10 +72,7 @@ export const validateRelationCreationPayload = async ({
|
||||
status: 'success',
|
||||
result: {
|
||||
relationCreationPayload,
|
||||
targetFlatObjectMetadata:
|
||||
fromFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadata(
|
||||
targetFlatObjectMetadataWithFlatFieldMaps,
|
||||
),
|
||||
targetFlatObjectMetadata,
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test';
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { isFlatFieldMetadataOfType } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-of-type.util';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
|
||||
type ExpectFlatFieldMetadataToBeInFlatObjectMetadataMapsArgs = {
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
flatFieldMetadata: FlatFieldMetadata;
|
||||
};
|
||||
export const expectFlatFieldMetadataToBeInFlatObjectMetadataMaps = ({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
}: ExpectFlatFieldMetadataToBeInFlatObjectMetadataMapsArgs) => {
|
||||
const { objectMetadataId, id: flatFieldMetadataId } = flatFieldMetadata;
|
||||
const matchingFlatObjectMetadata =
|
||||
flatObjectMetadataMaps.byId[objectMetadataId];
|
||||
|
||||
jestExpectToBeDefined(matchingFlatObjectMetadata);
|
||||
|
||||
if (
|
||||
isFlatFieldMetadataOfType(flatFieldMetadata, FieldMetadataType.RELATION) &&
|
||||
isDefined(flatFieldMetadata.settings.joinColumnName)
|
||||
) {
|
||||
expect(
|
||||
matchingFlatObjectMetadata.fieldIdByJoinColumnName[
|
||||
flatFieldMetadata.settings.joinColumnName
|
||||
],
|
||||
).toEqual(flatFieldMetadataId);
|
||||
}
|
||||
|
||||
expect(
|
||||
matchingFlatObjectMetadata.fieldsById[flatFieldMetadataId],
|
||||
).toBeDefined();
|
||||
expect(matchingFlatObjectMetadata.fieldsById[flatFieldMetadataId]).toEqual(
|
||||
flatFieldMetadata,
|
||||
);
|
||||
expect(matchingFlatObjectMetadata.flatFieldMetadatas).toContain(
|
||||
flatFieldMetadata,
|
||||
);
|
||||
expect(
|
||||
matchingFlatObjectMetadata.fieldIdByName[flatFieldMetadata.name],
|
||||
).toEqual(flatFieldMetadataId);
|
||||
};
|
||||
-48
@@ -1,48 +0,0 @@
|
||||
import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test';
|
||||
|
||||
import { expectFlatFieldMetadataToBeInFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/__tests__/utils/expect-flat-field-metadata-to-be-in-flat-object-metadata-maps.util.test';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { deleteFieldFromFlatObjectMetadataWithFlatFieldMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/delete-field-from-flat-object-metadata-with-flat-field-maps-or-throw.util';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
type ExpectFlatObjectMetadataToBeInFlatObjectMetadataMapsArgs = {
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
flatObjectMetadata: FlatObjectMetadata;
|
||||
};
|
||||
export const expectFlatObjectMetadataToStrictlyBeInFlatObjectMetadataMaps = ({
|
||||
flatObjectMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
}: ExpectFlatObjectMetadataToBeInFlatObjectMetadataMapsArgs) => {
|
||||
const { id: objectMetadataId } = flatObjectMetadata;
|
||||
const flatObjectMetadataWithFlatFieldMaps =
|
||||
flatObjectMetadataMaps.byId[objectMetadataId];
|
||||
|
||||
expect(
|
||||
flatObjectMetadataMaps.idByNameSingular[flatObjectMetadata.nameSingular],
|
||||
).toEqual(objectMetadataId);
|
||||
jestExpectToBeDefined(flatObjectMetadataWithFlatFieldMaps);
|
||||
|
||||
const finalObjectMetadataWithFlatFieldMaps =
|
||||
flatObjectMetadata.flatFieldMetadatas.reduce(
|
||||
(flatObjectMetadataWithFlatFieldMaps, flatFieldMetadata) => {
|
||||
expectFlatFieldMetadataToBeInFlatObjectMetadataMaps({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
return deleteFieldFromFlatObjectMetadataWithFlatFieldMapsOrThrow({
|
||||
fieldMetadataId: flatFieldMetadata.id,
|
||||
flatObjectMetadataWithFlatFieldMaps,
|
||||
});
|
||||
},
|
||||
flatObjectMetadataWithFlatFieldMaps,
|
||||
);
|
||||
|
||||
expect(finalObjectMetadataWithFlatFieldMaps).toEqual({
|
||||
...flatObjectMetadata,
|
||||
flatFieldMetadatas: [],
|
||||
fieldsById: {},
|
||||
fieldIdByJoinColumnName: {},
|
||||
fieldIdByName: {},
|
||||
});
|
||||
};
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
|
||||
export const EMPTY_FLAT_OBJECT_METADATA_MAPS = {
|
||||
byId: {},
|
||||
idByNameSingular: {},
|
||||
idByUniversalIdentifier: {},
|
||||
} as const satisfies FlatObjectMetadataMaps;
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
import {
|
||||
appendCommonExceptionCode,
|
||||
CustomException,
|
||||
} from 'src/utils/custom-exception';
|
||||
|
||||
export class FlatObjectMetadataMapsException extends CustomException<
|
||||
keyof typeof FlatObjectMetadataMapsExceptionCode
|
||||
> {}
|
||||
|
||||
export const FlatObjectMetadataMapsExceptionCode = appendCommonExceptionCode({
|
||||
FIELD_METADATA_NOT_FOUND: 'FIELD_METADATA_NOT_FOUND',
|
||||
OBJECT_METADATA_NOT_FOUND: 'OBJECT_METADATA_NOT_FOUND',
|
||||
FIELD_METADATA_ALREADY_EXISTS: 'FIELD_METADATA_ALREADY_EXISTS',
|
||||
OBJECT_METADATA_ALREADY_EXISTS: 'OBJECT_METADATA_ALREADY_EXISTS',
|
||||
} as const);
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
import { ALL_FLAT_OBJECT_METADATA_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/all-flat-object-metadatas.mock';
|
||||
import { fromFlatObjectMetadatasToFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadatas-to-flat-object-metadata-maps.util';
|
||||
|
||||
export const FLAT_OBJECT_METADATA_MAPS_MOCKS =
|
||||
fromFlatObjectMetadatasToFlatObjectMetadataMaps([
|
||||
...ALL_FLAT_OBJECT_METADATA_MOCKS,
|
||||
]);
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
import { type FlatObjectMetadataWithFlatFieldMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-with-flat-field-metadata-maps.type';
|
||||
|
||||
export type FlatObjectMetadataMaps = {
|
||||
byId: Partial<Record<string, FlatObjectMetadataWithFlatFieldMaps>>;
|
||||
idByNameSingular: Partial<Record<string, string>>;
|
||||
idByUniversalIdentifier: Record<string, string>;
|
||||
};
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
export type FlatFieldMetadataMaps = {
|
||||
fieldsById: Partial<Record<string, FlatFieldMetadata>>;
|
||||
fieldIdByJoinColumnName: Partial<Record<string, string>>;
|
||||
fieldIdByName: Partial<Record<string, string>>;
|
||||
};
|
||||
|
||||
export type FlatObjectMetadataWithFlatFieldMaps = FlatObjectMetadata &
|
||||
FlatFieldMetadataMaps;
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow should throw when field metadata parent object metadata does not exist 1`] = `"addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow field parent object metadata not found"`;
|
||||
|
||||
exports[`addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow should throw when field metadata to add already exist in object 1`] = `"addFlatFieldMetadataToFlatObjectMetadataWithFlatFieldMaps added flatFieldMetadata already exists"`;
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`addFlatObjectMetadataToFlatObjectMetadataMapsOrThrow should throw when object metadata to add already exists 1`] = `"addFlatObjectMetadataToFlatObjectMetadataMapsOrThrow: flat object metadata to add already exists"`;
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`deleteFieldFromFlatObjectMetadataMapsOrThrow should throw when field metadata id does not exist in object 1`] = `"deleteFieldFromFlatObjectMetadataWithFlatFieldMapsOrThrow: field to delete not found"`;
|
||||
|
||||
exports[`deleteFieldFromFlatObjectMetadataMapsOrThrow should throw when object metadata id does not exist 1`] = `"deleteFieldFromFlatObjectMetadataMapsOrThrow: field metadata to delete parent flat object metadata not found"`;
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`deleteObjectFromFlatObjectMetadataMapsOrThrow should throw when object metadata to delete does not exist 1`] = `"deleteObjectFromFlatObjectMetadataMapsOrThrow: object to delete not found"`;
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`getSubFlatObjectMetadataMapsOrThrow should throw when extracting twice the same object 1`] = `"addFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadataMapsOrThrow: flat object metadata with fields maps to add already exists"`;
|
||||
|
||||
exports[`getSubFlatObjectMetadataMapsOrThrow should throw when object metadata id is not found 1`] = `"getSubFlatObjectMetadataMapsOrThrow object metadata not found"`;
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`getSubFlatObjectMetadataMapsOutOfFlatFieldMetadatasOrThrow should throw when object metadata id is not found 1`] = `"getSubFlatObjectMetadataMapsOfSpecificFieldsOrThrow object metadata not found"`;
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`replaceFlatFieldMetadataInFlatObjectMetadataMapsOrThrow should throw when field metadata parent object does not exist 1`] = `"deleteFieldFromFlatObjectMetadataMapsOrThrow: field metadata to delete parent flat object metadata not found"`;
|
||||
|
||||
exports[`replaceFlatFieldMetadataInFlatObjectMetadataMapsOrThrow should throw when field metadata to replace does not exist 1`] = `"deleteFieldFromFlatObjectMetadataWithFlatFieldMapsOrThrow: field to delete not found"`;
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`replaceFlatObjectMetadataInFlatObjectMetadataMapsOrThrow should throw when object metadata to replace does not exist 1`] = `"deleteObjectFromFlatObjectMetadataMapsOrThrow: object to delete not found"`;
|
||||
-109
@@ -1,109 +0,0 @@
|
||||
import {
|
||||
type EachTestingContext,
|
||||
eachTestingContextFilter,
|
||||
} from 'twenty-shared/testing';
|
||||
import { FieldMetadataType } 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 { PET_FLAT_FIELDS_MOCK } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/pet-flat-fields.mock';
|
||||
import { expectFlatFieldMetadataToBeInFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/__tests__/utils/expect-flat-field-metadata-to-be-in-flat-object-metadata-maps.util.test';
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import {
|
||||
type AddFlatFieldMetadataInFlatObjectMetadataMapsOrThrowArgs,
|
||||
addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/add-flat-field-metadata-in-flat-object-metadata-maps-or-throw.util';
|
||||
import { PET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/pet-flat-object.mock';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
type AddFlatFieldMetadataInFlatObjectMetadataMapsOrThrowArgsTestCase = {
|
||||
input: AddFlatFieldMetadataInFlatObjectMetadataMapsOrThrowArgs;
|
||||
shouldThrow?: true;
|
||||
};
|
||||
|
||||
describe('addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow', () => {
|
||||
const testCases: EachTestingContext<AddFlatFieldMetadataInFlatObjectMetadataMapsOrThrowArgsTestCase>[] =
|
||||
[
|
||||
{
|
||||
title:
|
||||
'should throw when field metadata parent object metadata does not exist',
|
||||
context: {
|
||||
shouldThrow: true,
|
||||
input: {
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
flatFieldMetadata: getFlatFieldMetadataMock({
|
||||
objectMetadataId: 'non-existent',
|
||||
type: FieldMetadataType.TEXT,
|
||||
universalIdentifier: 'unique-id-1',
|
||||
id: 'unique-id-1',
|
||||
}),
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
title:
|
||||
'should throw when field metadata to add already exist in object',
|
||||
context: {
|
||||
shouldThrow: true,
|
||||
input: {
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
flatFieldMetadata: PET_FLAT_FIELDS_MOCK.species,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should add a new relation field to pet object',
|
||||
context: {
|
||||
input: {
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
flatFieldMetadata: getFlatFieldMetadataMock({
|
||||
objectMetadataId: PET_FLAT_OBJECT_MOCK.id,
|
||||
type: FieldMetadataType.RELATION,
|
||||
universalIdentifier: 'field-metadata-id',
|
||||
id: 'field-metadata-id',
|
||||
settings: {
|
||||
relationType: RelationType.MANY_TO_ONE,
|
||||
joinColumnName: 'whateverId',
|
||||
onDelete: RelationOnDeleteAction.CASCADE,
|
||||
},
|
||||
relationTargetObjectMetadataId: PET_FLAT_OBJECT_MOCK.id,
|
||||
relationTargetFieldMetadataId: 'does-not-matter',
|
||||
}),
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const filteredTestCases = eachTestingContextFilter(testCases);
|
||||
|
||||
it.each(filteredTestCases)(
|
||||
'$title',
|
||||
({
|
||||
context: {
|
||||
input: { flatFieldMetadata, flatObjectMetadataMaps },
|
||||
shouldThrow = false,
|
||||
},
|
||||
}) => {
|
||||
if (shouldThrow) {
|
||||
expect(() =>
|
||||
addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
}),
|
||||
).toThrowErrorMatchingSnapshot();
|
||||
} else {
|
||||
const updatedFlatObjectMetadataMaps =
|
||||
addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
expectFlatFieldMetadataToBeInFlatObjectMetadataMaps({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps: updatedFlatObjectMetadataMaps,
|
||||
});
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
-65
@@ -1,65 +0,0 @@
|
||||
import {
|
||||
type EachTestingContext,
|
||||
eachTestingContextFilter,
|
||||
} from 'twenty-shared/testing';
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { getFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock';
|
||||
import { PET_FLAT_FIELDS_MOCK } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/pet-flat-fields.mock';
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import { type AddFlatFieldMetadataInFlatObjectMetadataMapsOrThrowArgs } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/add-flat-field-metadata-in-flat-object-metadata-maps-or-throw.util';
|
||||
import { addFlatFieldMetadataInFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/add-flat-field-metadata-in-flat-object-metadata-maps.util';
|
||||
|
||||
type AddFlatFieldMetadataInFlatObjectMetadataMapsArgsTestCase = {
|
||||
input: AddFlatFieldMetadataInFlatObjectMetadataMapsOrThrowArgs;
|
||||
};
|
||||
|
||||
describe('addFlatFieldMetadataInFlatObjectMetadataMaps', () => {
|
||||
const testCases: EachTestingContext<AddFlatFieldMetadataInFlatObjectMetadataMapsArgsTestCase>[] =
|
||||
[
|
||||
{
|
||||
title:
|
||||
'should return undefined when field metadata parent object metadata does not exist',
|
||||
context: {
|
||||
input: {
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
flatFieldMetadata: getFlatFieldMetadataMock({
|
||||
objectMetadataId: 'non-existent',
|
||||
type: FieldMetadataType.TEXT,
|
||||
universalIdentifier: 'unique-id-1',
|
||||
id: 'unique-id-1',
|
||||
}),
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
title:
|
||||
'should return undefined when field metadata to add already exist in object',
|
||||
context: {
|
||||
input: {
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
flatFieldMetadata: PET_FLAT_FIELDS_MOCK.species,
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const filteredTestCases = eachTestingContextFilter(testCases);
|
||||
|
||||
it.each(filteredTestCases)(
|
||||
'$title',
|
||||
({
|
||||
context: {
|
||||
input: { flatFieldMetadata, flatObjectMetadataMaps },
|
||||
},
|
||||
}) => {
|
||||
const updatedFlatObjectMetadataMaps =
|
||||
addFlatFieldMetadataInFlatObjectMetadataMaps({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
expect(updatedFlatObjectMetadataMaps).toBeUndefined();
|
||||
},
|
||||
);
|
||||
});
|
||||
-85
@@ -1,85 +0,0 @@
|
||||
import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test';
|
||||
import {
|
||||
type EachTestingContext,
|
||||
eachTestingContextFilter,
|
||||
} from 'twenty-shared/testing';
|
||||
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { addFlatObjectMetadataToFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/add-flat-object-metadata-to-flat-object-metadata-maps-or-throw.util';
|
||||
import { PET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/pet-flat-object.mock';
|
||||
import { ROCKET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/rocket-flat-object.mock';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
import { fromFlatObjectMetadatasToFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadatas-to-flat-object-metadata-maps.util';
|
||||
|
||||
type AddFlatObjectMetadataToFlatObjectMetadataMapsTestCase = {
|
||||
input: {
|
||||
flatObjectMetadata: FlatObjectMetadata;
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
};
|
||||
shouldThrow?: true;
|
||||
expected?: FlatObjectMetadataMaps;
|
||||
};
|
||||
|
||||
describe('addFlatObjectMetadataToFlatObjectMetadataMapsOrThrow', () => {
|
||||
const testCases: EachTestingContext<AddFlatObjectMetadataToFlatObjectMetadataMapsTestCase>[] =
|
||||
[
|
||||
{
|
||||
title: 'should throw when object metadata to add already exists',
|
||||
context: {
|
||||
input: {
|
||||
flatObjectMetadata: PET_FLAT_OBJECT_MOCK,
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
shouldThrow: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should add object to flat object metadata maps',
|
||||
context: {
|
||||
input: {
|
||||
flatObjectMetadata: ROCKET_FLAT_OBJECT_MOCK,
|
||||
flatObjectMetadataMaps:
|
||||
fromFlatObjectMetadatasToFlatObjectMetadataMaps([
|
||||
PET_FLAT_OBJECT_MOCK,
|
||||
]),
|
||||
},
|
||||
expected: fromFlatObjectMetadatasToFlatObjectMetadataMaps([
|
||||
PET_FLAT_OBJECT_MOCK,
|
||||
ROCKET_FLAT_OBJECT_MOCK,
|
||||
]),
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const filteredTestCases = eachTestingContextFilter(testCases);
|
||||
|
||||
it.each(filteredTestCases)(
|
||||
'$title',
|
||||
({
|
||||
context: {
|
||||
input: { flatObjectMetadata, flatObjectMetadataMaps },
|
||||
shouldThrow = false,
|
||||
expected,
|
||||
},
|
||||
}) => {
|
||||
if (shouldThrow) {
|
||||
expect(() =>
|
||||
addFlatObjectMetadataToFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
}),
|
||||
).toThrowErrorMatchingSnapshot();
|
||||
} else {
|
||||
jestExpectToBeDefined(expected);
|
||||
const updatedFlatObjectMetadataMaps =
|
||||
addFlatObjectMetadataToFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
expect(updatedFlatObjectMetadataMaps).toStrictEqual(expected);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
-113
@@ -1,113 +0,0 @@
|
||||
import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test';
|
||||
import {
|
||||
type EachTestingContext,
|
||||
eachTestingContextFilter,
|
||||
} from 'twenty-shared/testing';
|
||||
import { FieldMetadataType } 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 { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/add-flat-field-metadata-in-flat-object-metadata-maps-or-throw.util';
|
||||
import { deleteFieldFromFlatObjectMetadataMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/delete-field-from-flat-object-metadata-maps-or-throw.util';
|
||||
import { PET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/pet-flat-object.mock';
|
||||
import { RelationOnDeleteAction } from 'src/engine/metadata-modules/relation-metadata/relation-on-delete-action.type';
|
||||
|
||||
type DeleteFieldFromFlatObjectMetadataMapsTestCase = {
|
||||
input: {
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps | undefined;
|
||||
fieldMetadataId: string;
|
||||
objectMetadataId: string;
|
||||
};
|
||||
shouldThrow?: true;
|
||||
expected?: FlatObjectMetadataMaps;
|
||||
};
|
||||
|
||||
describe('deleteFieldFromFlatObjectMetadataMapsOrThrow', () => {
|
||||
const testCases: EachTestingContext<DeleteFieldFromFlatObjectMetadataMapsTestCase>[] =
|
||||
[
|
||||
{
|
||||
title: 'should throw when object metadata id does not exist',
|
||||
context: {
|
||||
input: {
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
fieldMetadataId: 'field-1',
|
||||
objectMetadataId: 'non-existent',
|
||||
},
|
||||
shouldThrow: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should throw when field metadata id does not exist in object',
|
||||
context: {
|
||||
input: {
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
fieldMetadataId: 'non-existent-field',
|
||||
objectMetadataId: PET_FLAT_OBJECT_MOCK.id,
|
||||
},
|
||||
shouldThrow: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should delete species custom relation from pet object',
|
||||
context: {
|
||||
input: {
|
||||
flatObjectMetadataMaps:
|
||||
addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatFieldMetadata: getFlatFieldMetadataMock({
|
||||
objectMetadataId: PET_FLAT_OBJECT_MOCK.id,
|
||||
type: FieldMetadataType.RELATION,
|
||||
universalIdentifier: 'field-metadata-id',
|
||||
id: 'field-metadata-id',
|
||||
settings: {
|
||||
relationType: RelationType.MANY_TO_ONE,
|
||||
joinColumnName: 'whateverId',
|
||||
onDelete: RelationOnDeleteAction.CASCADE,
|
||||
},
|
||||
relationTargetObjectMetadataId: PET_FLAT_OBJECT_MOCK.id,
|
||||
relationTargetFieldMetadataId: 'does-not-matter',
|
||||
}),
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
}),
|
||||
fieldMetadataId: 'field-metadata-id',
|
||||
objectMetadataId: PET_FLAT_OBJECT_MOCK.id,
|
||||
},
|
||||
expected: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const filteredTestCases = eachTestingContextFilter(testCases);
|
||||
|
||||
it.each(filteredTestCases)(
|
||||
'$title',
|
||||
({
|
||||
context: {
|
||||
input: { fieldMetadataId, objectMetadataId, flatObjectMetadataMaps },
|
||||
expected,
|
||||
shouldThrow = false,
|
||||
},
|
||||
}) => {
|
||||
jestExpectToBeDefined(flatObjectMetadataMaps);
|
||||
if (shouldThrow) {
|
||||
expect(() =>
|
||||
deleteFieldFromFlatObjectMetadataMapsOrThrow({
|
||||
fieldMetadataId,
|
||||
flatObjectMetadataMaps,
|
||||
objectMetadataId,
|
||||
}),
|
||||
).toThrowErrorMatchingSnapshot();
|
||||
} else {
|
||||
const result = deleteFieldFromFlatObjectMetadataMapsOrThrow({
|
||||
fieldMetadataId,
|
||||
flatObjectMetadataMaps,
|
||||
objectMetadataId,
|
||||
});
|
||||
|
||||
expect(result).toEqual(expected);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
-70
@@ -1,70 +0,0 @@
|
||||
import {
|
||||
type EachTestingContext,
|
||||
eachTestingContextFilter,
|
||||
} from 'twenty-shared/testing';
|
||||
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import {
|
||||
type DeleteObjectFromFlatObjectMetadataMapsOrThrowArgs,
|
||||
deleteObjectFromFlatObjectMetadataMapsOrThrow,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/delete-object-from-flat-object-metadata-maps-or-throw.util';
|
||||
import { PET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/pet-flat-object.mock';
|
||||
import { ROCKET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/rocket-flat-object.mock';
|
||||
import { fromFlatObjectMetadatasToFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadatas-to-flat-object-metadata-maps.util';
|
||||
|
||||
type DeleteObjectFromFlatObjectMetadataMapsTestCase = {
|
||||
input: DeleteObjectFromFlatObjectMetadataMapsOrThrowArgs;
|
||||
shouldThrow?: true;
|
||||
expected?: FlatObjectMetadataMaps;
|
||||
};
|
||||
|
||||
describe('deleteObjectFromFlatObjectMetadataMapsOrThrow', () => {
|
||||
const testCases: EachTestingContext<DeleteObjectFromFlatObjectMetadataMapsTestCase>[] =
|
||||
[
|
||||
{
|
||||
title: 'should throw when object metadata to delete does not exist',
|
||||
context: {
|
||||
input: {
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
objectMetadataId: 'non-existent',
|
||||
},
|
||||
shouldThrow: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should delete object from flat object metadata maps',
|
||||
context: {
|
||||
input: {
|
||||
flatObjectMetadataMaps:
|
||||
fromFlatObjectMetadatasToFlatObjectMetadataMaps([
|
||||
PET_FLAT_OBJECT_MOCK,
|
||||
ROCKET_FLAT_OBJECT_MOCK,
|
||||
]),
|
||||
objectMetadataId: ROCKET_FLAT_OBJECT_MOCK.id,
|
||||
},
|
||||
expected: fromFlatObjectMetadatasToFlatObjectMetadataMaps([
|
||||
PET_FLAT_OBJECT_MOCK,
|
||||
]),
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const filteredTestCases = eachTestingContextFilter(testCases);
|
||||
|
||||
it.each(filteredTestCases)(
|
||||
'$title',
|
||||
({ context: { input, expected, shouldThrow = false } }) => {
|
||||
if (shouldThrow) {
|
||||
expect(() =>
|
||||
deleteObjectFromFlatObjectMetadataMapsOrThrow(input),
|
||||
).toThrowErrorMatchingSnapshot();
|
||||
} else {
|
||||
const updatedFlatObjectMetadataMaps =
|
||||
deleteObjectFromFlatObjectMetadataMapsOrThrow(input);
|
||||
|
||||
expect(updatedFlatObjectMetadataMaps).toEqual(expected);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
-75
@@ -1,75 +0,0 @@
|
||||
import {
|
||||
type EachTestingContext,
|
||||
eachTestingContextFilter,
|
||||
} from 'twenty-shared/testing';
|
||||
|
||||
import { PET_FLAT_FIELDS_MOCK } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/pet-flat-fields.mock';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import {
|
||||
type FindFlatFieldMetadataInFlatObjectMetadataMapsArgs,
|
||||
findFlatFieldMetadataInFlatObjectMetadataMaps,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/find-flat-field-metadata-in-flat-object-metadata-maps.util';
|
||||
import { PET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/pet-flat-object.mock';
|
||||
|
||||
type FindFlatFieldMetadataInFlatObjectMetadataMapsTestCase = {
|
||||
input: FindFlatFieldMetadataInFlatObjectMetadataMapsArgs;
|
||||
expected?: FlatFieldMetadata;
|
||||
};
|
||||
|
||||
describe('findFlatFieldMetadataInFlatObjectMetadataMaps', () => {
|
||||
const testCases: EachTestingContext<FindFlatFieldMetadataInFlatObjectMetadataMapsTestCase>[] =
|
||||
[
|
||||
{
|
||||
title: 'should return undefined when object metadata does not exist',
|
||||
context: {
|
||||
input: {
|
||||
fieldMetadataId: PET_FLAT_FIELDS_MOCK.species.id,
|
||||
objectMetadataId: 'non-existent',
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should return undefined when field metadata does not exist',
|
||||
context: {
|
||||
input: {
|
||||
fieldMetadataId: 'non-existent',
|
||||
objectMetadataId: PET_FLAT_OBJECT_MOCK.id,
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should find field metadata in flat object metadata maps',
|
||||
context: {
|
||||
input: {
|
||||
fieldMetadataId: PET_FLAT_FIELDS_MOCK.species.id,
|
||||
objectMetadataId: PET_FLAT_OBJECT_MOCK.id,
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
expected: PET_FLAT_FIELDS_MOCK.species,
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const filteredTestCases = eachTestingContextFilter(testCases);
|
||||
|
||||
it.each(filteredTestCases)(
|
||||
'$title',
|
||||
({
|
||||
context: {
|
||||
input: { fieldMetadataId, objectMetadataId, flatObjectMetadataMaps },
|
||||
expected,
|
||||
},
|
||||
}) => {
|
||||
const findResult = findFlatFieldMetadataInFlatObjectMetadataMaps({
|
||||
fieldMetadataId,
|
||||
objectMetadataId,
|
||||
flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
expect(findResult).toEqual(expected);
|
||||
},
|
||||
);
|
||||
});
|
||||
-65
@@ -1,65 +0,0 @@
|
||||
import {
|
||||
type EachTestingContext,
|
||||
eachTestingContextFilter,
|
||||
} from 'twenty-shared/testing';
|
||||
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import {
|
||||
type FindFlatObjectMetadataInFlatObjectMetadataMapsArgs,
|
||||
findFlatObjectMetadataInFlatObjectMetadataMaps,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/find-flat-object-metadata-in-flat-object-metadata-maps.util';
|
||||
import { PET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/pet-flat-object.mock';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
|
||||
type FindFlatObjectMetadataInFlatObjectMetadataMapsTestCase = {
|
||||
input: FindFlatObjectMetadataInFlatObjectMetadataMapsArgs;
|
||||
expected?: FlatObjectMetadata;
|
||||
};
|
||||
|
||||
describe('findFlatObjectMetadataInFlatObjectMetadataMaps', () => {
|
||||
const testCases: EachTestingContext<FindFlatObjectMetadataInFlatObjectMetadataMapsTestCase>[] =
|
||||
[
|
||||
{
|
||||
title: 'should return undefined when object metadata does not exist',
|
||||
context: {
|
||||
input: {
|
||||
objectMetadataId: 'non-existent',
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should find object metadata in flat object metadata maps',
|
||||
context: {
|
||||
input: {
|
||||
objectMetadataId: PET_FLAT_OBJECT_MOCK.id,
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
expected: PET_FLAT_OBJECT_MOCK,
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const filteredTestCases = eachTestingContextFilter(testCases);
|
||||
|
||||
it.each(filteredTestCases)(
|
||||
'$title',
|
||||
({
|
||||
context: {
|
||||
input: { objectMetadataId, flatObjectMetadataMaps },
|
||||
expected,
|
||||
},
|
||||
}) => {
|
||||
const result = findFlatObjectMetadataInFlatObjectMetadataMaps({
|
||||
objectMetadataId,
|
||||
flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
expect(result?.flatFieldMetadatas.length).toEqual(
|
||||
expected?.flatFieldMetadatas.length,
|
||||
);
|
||||
|
||||
expect(result).toEqual(expected);
|
||||
},
|
||||
);
|
||||
});
|
||||
-108
@@ -1,108 +0,0 @@
|
||||
import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test';
|
||||
import {
|
||||
eachTestingContextFilter,
|
||||
type EachTestingContext,
|
||||
} from 'twenty-shared/testing';
|
||||
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import {
|
||||
getSubFlatObjectMetadataMapsOrThrow,
|
||||
type GetSubFlatObjectMetadataMapsOrThrowArgs,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/get-sub-flat-object-metadata-maps-or-throw.util';
|
||||
import { PET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/pet-flat-object.mock';
|
||||
import { ROCKET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/rocket-flat-object.mock';
|
||||
import { fromFlatObjectMetadatasToFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadatas-to-flat-object-metadata-maps.util';
|
||||
|
||||
type GetSubObjectMetadataMapsOrThrowTestCase = {
|
||||
input: GetSubFlatObjectMetadataMapsOrThrowArgs;
|
||||
shouldThrow?: true;
|
||||
expected?: FlatObjectMetadataMaps;
|
||||
};
|
||||
|
||||
describe('getSubFlatObjectMetadataMapsOrThrow', () => {
|
||||
const testCases: EachTestingContext<GetSubObjectMetadataMapsOrThrowTestCase>[] =
|
||||
[
|
||||
{
|
||||
title: 'should throw when object metadata id is not found',
|
||||
context: {
|
||||
input: {
|
||||
objectMetadataIds: ['non-existent-id'],
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
shouldThrow: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should throw when extracting twice the same object',
|
||||
context: {
|
||||
input: {
|
||||
objectMetadataIds: [
|
||||
PET_FLAT_OBJECT_MOCK.id,
|
||||
PET_FLAT_OBJECT_MOCK.id,
|
||||
],
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
shouldThrow: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should extract single object metadata from maps',
|
||||
context: {
|
||||
input: {
|
||||
objectMetadataIds: [PET_FLAT_OBJECT_MOCK.id],
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
expected: fromFlatObjectMetadatasToFlatObjectMetadataMaps([
|
||||
PET_FLAT_OBJECT_MOCK,
|
||||
]),
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should extract multiple object metadata from maps',
|
||||
context: {
|
||||
input: {
|
||||
objectMetadataIds: [
|
||||
PET_FLAT_OBJECT_MOCK.id,
|
||||
ROCKET_FLAT_OBJECT_MOCK.id,
|
||||
],
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
expected: fromFlatObjectMetadatasToFlatObjectMetadataMaps([
|
||||
PET_FLAT_OBJECT_MOCK,
|
||||
ROCKET_FLAT_OBJECT_MOCK,
|
||||
]),
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const filteredTestCases = eachTestingContextFilter(testCases);
|
||||
|
||||
it.each(filteredTestCases)(
|
||||
'$title',
|
||||
({
|
||||
context: {
|
||||
input: { objectMetadataIds, flatObjectMetadataMaps },
|
||||
shouldThrow = false,
|
||||
expected,
|
||||
},
|
||||
}) => {
|
||||
if (shouldThrow) {
|
||||
expect(() =>
|
||||
getSubFlatObjectMetadataMapsOrThrow({
|
||||
objectMetadataIds,
|
||||
flatObjectMetadataMaps,
|
||||
}),
|
||||
).toThrowErrorMatchingSnapshot();
|
||||
} else {
|
||||
jestExpectToBeDefined(expected);
|
||||
const result = getSubFlatObjectMetadataMapsOrThrow({
|
||||
objectMetadataIds,
|
||||
flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
expect(result).toEqual(expected);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
-119
@@ -1,119 +0,0 @@
|
||||
import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test';
|
||||
import {
|
||||
eachTestingContextFilter,
|
||||
type EachTestingContext,
|
||||
} from 'twenty-shared/testing';
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { getFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock';
|
||||
import { PET_FLAT_FIELDS_MOCK } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/pet-flat-fields.mock';
|
||||
import { ROCKET_FLAT_FIELDS_MOCK } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/rocket-flat-fields.mock';
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import {
|
||||
getSubFlatObjectMetadataMapsOutOfFlatFieldMetadatasOrThrow,
|
||||
type GetSubFlatObjectMetadataMapsOfSpecificFieldsOrThrowArgs,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/get-sub-flat-object-metadata-maps-out-of-flat-field-metadatas-or-throw.util';
|
||||
import { PET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/pet-flat-object.mock';
|
||||
import { ROCKET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/rocket-flat-object.mock';
|
||||
import { fromFlatObjectMetadatasToFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadatas-to-flat-object-metadata-maps.util';
|
||||
|
||||
type GetSubObjectMetadataMapsOrThrowTestCase = {
|
||||
input: GetSubFlatObjectMetadataMapsOfSpecificFieldsOrThrowArgs;
|
||||
shouldThrow?: true;
|
||||
expected?: FlatObjectMetadataMaps;
|
||||
};
|
||||
|
||||
describe('getSubFlatObjectMetadataMapsOutOfFlatFieldMetadatasOrThrow', () => {
|
||||
const testCases: EachTestingContext<GetSubObjectMetadataMapsOrThrowTestCase>[] =
|
||||
[
|
||||
{
|
||||
title: 'should throw when object metadata id is not found',
|
||||
context: {
|
||||
input: {
|
||||
flatFieldMetadatas: [
|
||||
getFlatFieldMetadataMock({
|
||||
objectMetadataId: 'non-existent',
|
||||
type: FieldMetadataType.TEXT,
|
||||
universalIdentifier: 'unique-identifier-1',
|
||||
}),
|
||||
],
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
shouldThrow: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should extract single object metadata from maps',
|
||||
context: {
|
||||
input: {
|
||||
flatFieldMetadatas: [PET_FLAT_FIELDS_MOCK.species],
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
expected: fromFlatObjectMetadatasToFlatObjectMetadataMaps([
|
||||
{
|
||||
...PET_FLAT_OBJECT_MOCK,
|
||||
flatFieldMetadatas: [PET_FLAT_FIELDS_MOCK.species],
|
||||
},
|
||||
]),
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should extract object metadata from maps with provided fields',
|
||||
context: {
|
||||
input: {
|
||||
flatFieldMetadatas: [
|
||||
PET_FLAT_FIELDS_MOCK.species,
|
||||
PET_FLAT_FIELDS_MOCK.name,
|
||||
ROCKET_FLAT_FIELDS_MOCK.attachments,
|
||||
],
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
expected: fromFlatObjectMetadatasToFlatObjectMetadataMaps([
|
||||
{
|
||||
...PET_FLAT_OBJECT_MOCK,
|
||||
flatFieldMetadatas: [
|
||||
PET_FLAT_FIELDS_MOCK.name,
|
||||
PET_FLAT_FIELDS_MOCK.species,
|
||||
],
|
||||
},
|
||||
{
|
||||
...ROCKET_FLAT_OBJECT_MOCK,
|
||||
flatFieldMetadatas: [ROCKET_FLAT_FIELDS_MOCK.attachments],
|
||||
},
|
||||
]),
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const filteredTestCases = eachTestingContextFilter(testCases);
|
||||
|
||||
it.each(filteredTestCases)(
|
||||
'$title',
|
||||
({
|
||||
context: {
|
||||
input: { flatFieldMetadatas, flatObjectMetadataMaps },
|
||||
shouldThrow = false,
|
||||
expected,
|
||||
},
|
||||
}) => {
|
||||
if (shouldThrow) {
|
||||
expect(() =>
|
||||
getSubFlatObjectMetadataMapsOutOfFlatFieldMetadatasOrThrow({
|
||||
flatFieldMetadatas,
|
||||
flatObjectMetadataMaps,
|
||||
}),
|
||||
).toThrowErrorMatchingSnapshot();
|
||||
} else {
|
||||
jestExpectToBeDefined(expected);
|
||||
const result =
|
||||
getSubFlatObjectMetadataMapsOutOfFlatFieldMetadatasOrThrow({
|
||||
flatFieldMetadatas,
|
||||
flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
expect(result).toEqual(expected);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
-53
@@ -1,53 +0,0 @@
|
||||
import {
|
||||
eachTestingContextFilter,
|
||||
type EachTestingContext,
|
||||
} from 'twenty-shared/testing';
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { getFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock';
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import { type GetSubFlatObjectMetadataMapsOfSpecificFieldsOrThrowArgs } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/get-sub-flat-object-metadata-maps-out-of-flat-field-metadatas-or-throw.util';
|
||||
import { getSubFlatObjectMetadataMapsOutOfFlatFieldMetadatas } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/get-sub-flat-object-metadata-maps-out-of-flat-field-metadatas.util';
|
||||
|
||||
type GetSubFlatObjectMetadataMapsTestCase = {
|
||||
input: GetSubFlatObjectMetadataMapsOfSpecificFieldsOrThrowArgs;
|
||||
};
|
||||
|
||||
describe('getSubFlatObjectMetadataMapsOutOfFlatFieldMetadatas', () => {
|
||||
const testCases: EachTestingContext<GetSubFlatObjectMetadataMapsTestCase>[] =
|
||||
[
|
||||
{
|
||||
title: 'return undefined when object metadata id is not found',
|
||||
context: {
|
||||
input: {
|
||||
flatFieldMetadatas: [
|
||||
getFlatFieldMetadataMock({
|
||||
objectMetadataId: 'non-existent',
|
||||
type: FieldMetadataType.TEXT,
|
||||
universalIdentifier: 'unique-identifier-1',
|
||||
}),
|
||||
],
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const filteredTestCases = eachTestingContextFilter(testCases);
|
||||
|
||||
it.each(filteredTestCases)(
|
||||
'$title',
|
||||
({
|
||||
context: {
|
||||
input: { flatFieldMetadatas, flatObjectMetadataMaps },
|
||||
},
|
||||
}) => {
|
||||
const result = getSubFlatObjectMetadataMapsOutOfFlatFieldMetadatas({
|
||||
flatFieldMetadatas,
|
||||
flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
expect(result).toBeUndefined();
|
||||
},
|
||||
);
|
||||
});
|
||||
-58
@@ -1,58 +0,0 @@
|
||||
import {
|
||||
eachTestingContextFilter,
|
||||
type EachTestingContext,
|
||||
} from 'twenty-shared/testing';
|
||||
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import { type GetSubFlatObjectMetadataMapsOrThrowArgs } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/get-sub-flat-object-metadata-maps-or-throw.util';
|
||||
import { getSubFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/get-sub-flat-object-metadata-maps.util';
|
||||
import { PET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/pet-flat-object.mock';
|
||||
|
||||
type GetSubFlatObjectMetadataMapsTestCase = {
|
||||
input: GetSubFlatObjectMetadataMapsOrThrowArgs;
|
||||
};
|
||||
|
||||
describe('getSubFlatObjectMetadataMaps', () => {
|
||||
const testCases: EachTestingContext<GetSubFlatObjectMetadataMapsTestCase>[] =
|
||||
[
|
||||
{
|
||||
title: 'should throw when object metadata id is not found',
|
||||
context: {
|
||||
input: {
|
||||
objectMetadataIds: ['non-existent-id'],
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should throw when extracting twice the same object',
|
||||
context: {
|
||||
input: {
|
||||
objectMetadataIds: [
|
||||
PET_FLAT_OBJECT_MOCK.id,
|
||||
PET_FLAT_OBJECT_MOCK.id,
|
||||
],
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const filteredTestCases = eachTestingContextFilter(testCases);
|
||||
|
||||
it.each(filteredTestCases)(
|
||||
'$title',
|
||||
({
|
||||
context: {
|
||||
input: { objectMetadataIds, flatObjectMetadataMaps },
|
||||
},
|
||||
}) => {
|
||||
const result = getSubFlatObjectMetadataMaps({
|
||||
objectMetadataIds,
|
||||
flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
expect(result).toBeUndefined();
|
||||
},
|
||||
);
|
||||
});
|
||||
-104
@@ -1,104 +0,0 @@
|
||||
import {
|
||||
type EachTestingContext,
|
||||
eachTestingContextFilter,
|
||||
} from 'twenty-shared/testing';
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { getFlatFieldMetadataMock } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/get-flat-field-metadata.mock';
|
||||
import { PET_FLAT_FIELDS_MOCK } from 'src/engine/metadata-modules/flat-field-metadata/__mocks__/pet-flat-fields.mock';
|
||||
import { expectFlatFieldMetadataToBeInFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/__tests__/utils/expect-flat-field-metadata-to-be-in-flat-object-metadata-maps.util.test';
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import {
|
||||
type ReplaceFlatFieldMetadataInFlatObjectMetadataMapsOrThrowArgs,
|
||||
replaceFlatFieldMetadataInFlatObjectMetadataMapsOrThrow,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/replace-flat-field-metadata-in-flat-object-metadata-maps-or-throw.util';
|
||||
import { PET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/pet-flat-object.mock';
|
||||
import { ROCKET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/rocket-flat-object.mock';
|
||||
import { fromFlatObjectMetadatasToFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadatas-to-flat-object-metadata-maps.util';
|
||||
|
||||
type ReplaceFlatFieldMetadataInFlatObjectMetadataMapsTestCase = {
|
||||
input: ReplaceFlatFieldMetadataInFlatObjectMetadataMapsOrThrowArgs;
|
||||
shouldThrow?: true;
|
||||
};
|
||||
|
||||
describe('replaceFlatFieldMetadataInFlatObjectMetadataMapsOrThrow', () => {
|
||||
const testCases: EachTestingContext<ReplaceFlatFieldMetadataInFlatObjectMetadataMapsTestCase>[] =
|
||||
[
|
||||
{
|
||||
title: 'should throw when field metadata to replace does not exist',
|
||||
context: {
|
||||
input: {
|
||||
flatFieldMetadata: getFlatFieldMetadataMock({
|
||||
objectMetadataId: ROCKET_FLAT_OBJECT_MOCK.id,
|
||||
type: FieldMetadataType.TEXT,
|
||||
universalIdentifier: 'unique-identifier-1',
|
||||
id: 'non-existent',
|
||||
}),
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
shouldThrow: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should throw when field metadata parent object does not exist',
|
||||
context: {
|
||||
input: {
|
||||
flatFieldMetadata: getFlatFieldMetadataMock({
|
||||
...PET_FLAT_FIELDS_MOCK.species,
|
||||
objectMetadataId: 'non-existent',
|
||||
}),
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
shouldThrow: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should replace field metadata in flat object metadata maps',
|
||||
context: {
|
||||
input: {
|
||||
flatFieldMetadata: getFlatFieldMetadataMock({
|
||||
...PET_FLAT_FIELDS_MOCK.species,
|
||||
name: 'not-species-anymore',
|
||||
}),
|
||||
flatObjectMetadataMaps:
|
||||
fromFlatObjectMetadatasToFlatObjectMetadataMaps([
|
||||
PET_FLAT_OBJECT_MOCK,
|
||||
ROCKET_FLAT_OBJECT_MOCK,
|
||||
]),
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const filteredTestCases = eachTestingContextFilter(testCases);
|
||||
|
||||
it.each(filteredTestCases)(
|
||||
'$title',
|
||||
({
|
||||
context: {
|
||||
input: { flatFieldMetadata, flatObjectMetadataMaps },
|
||||
shouldThrow = false,
|
||||
},
|
||||
}) => {
|
||||
if (shouldThrow) {
|
||||
expect(() =>
|
||||
replaceFlatFieldMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
}),
|
||||
).toThrowErrorMatchingSnapshot();
|
||||
} else {
|
||||
const updatedFlatObjectMetadataMaps =
|
||||
replaceFlatFieldMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
expectFlatFieldMetadataToBeInFlatObjectMetadataMaps({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps: updatedFlatObjectMetadataMaps,
|
||||
});
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
-86
@@ -1,86 +0,0 @@
|
||||
import {
|
||||
type EachTestingContext,
|
||||
eachTestingContextFilter,
|
||||
} from 'twenty-shared/testing';
|
||||
|
||||
import { expectFlatObjectMetadataToStrictlyBeInFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/__tests__/utils/expect-flat-object-metadata-to-strictly-be-in-flat-object-metadata-maps.util.test';
|
||||
import { FLAT_OBJECT_METADATA_MAPS_MOCKS } from 'src/engine/metadata-modules/flat-object-metadata-maps/mocks/flat-object-metadata-maps.mock';
|
||||
import {
|
||||
type ReplaceFlatObjectMetadataInFlatObjectMetadataMapsOrThrowArgs,
|
||||
replaceFlatObjectMetadataInFlatObjectMetadataMapsOrThrow,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/replace-flat-object-metadata-in-flat-object-metadata-maps-or-throw.util';
|
||||
import { PET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/pet-flat-object.mock';
|
||||
import { ROCKET_FLAT_OBJECT_MOCK } from 'src/engine/metadata-modules/flat-object-metadata/__mocks__/rocket-flat-object.mock';
|
||||
import { fromFlatObjectMetadatasToFlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadatas-to-flat-object-metadata-maps.util';
|
||||
|
||||
type ReplaceFlatObjectMetadataInFlatObjectMetadataMapsTestCase = {
|
||||
input: ReplaceFlatObjectMetadataInFlatObjectMetadataMapsOrThrowArgs;
|
||||
shouldThrow?: true;
|
||||
};
|
||||
|
||||
describe('replaceFlatObjectMetadataInFlatObjectMetadataMapsOrThrow', () => {
|
||||
const testCases: EachTestingContext<ReplaceFlatObjectMetadataInFlatObjectMetadataMapsTestCase>[] =
|
||||
[
|
||||
{
|
||||
title: 'should throw when object metadata to replace does not exist',
|
||||
context: {
|
||||
input: {
|
||||
flatObjectMetadata: {
|
||||
...PET_FLAT_OBJECT_MOCK,
|
||||
id: 'non-existent',
|
||||
},
|
||||
flatObjectMetadataMaps: FLAT_OBJECT_METADATA_MAPS_MOCKS,
|
||||
},
|
||||
shouldThrow: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'should replace object metadata in flat object metadata maps',
|
||||
context: {
|
||||
input: {
|
||||
flatObjectMetadata: {
|
||||
...PET_FLAT_OBJECT_MOCK,
|
||||
nameSingular: 'not-pet-anymore',
|
||||
},
|
||||
flatObjectMetadataMaps:
|
||||
fromFlatObjectMetadatasToFlatObjectMetadataMaps([
|
||||
PET_FLAT_OBJECT_MOCK,
|
||||
ROCKET_FLAT_OBJECT_MOCK,
|
||||
]),
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const filteredTestCases = eachTestingContextFilter(testCases);
|
||||
|
||||
it.each(filteredTestCases)(
|
||||
'$title',
|
||||
({
|
||||
context: {
|
||||
input: { flatObjectMetadata, flatObjectMetadataMaps },
|
||||
shouldThrow = false,
|
||||
},
|
||||
}) => {
|
||||
if (shouldThrow) {
|
||||
expect(() =>
|
||||
replaceFlatObjectMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
}),
|
||||
).toThrowErrorMatchingSnapshot();
|
||||
} else {
|
||||
const updatedFlatObjectMetadataMaps =
|
||||
replaceFlatObjectMetadataInFlatObjectMetadataMapsOrThrow({
|
||||
flatObjectMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
});
|
||||
|
||||
expectFlatObjectMetadataToStrictlyBeInFlatObjectMetadataMaps({
|
||||
flatObjectMetadata,
|
||||
flatObjectMetadataMaps: updatedFlatObjectMetadataMaps,
|
||||
});
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
-43
@@ -1,43 +0,0 @@
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import {
|
||||
FlatObjectMetadataMapsException,
|
||||
FlatObjectMetadataMapsExceptionCode,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/flat-object-metadata-maps.exception';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { addFlatFieldMetadataToFlatObjectMetadataWithFlatFieldMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/add-flat-field-metadata-to-flat-object-metadata-with-flat-field-maps-or-throw.util';
|
||||
|
||||
export type AddFlatFieldMetadataInFlatObjectMetadataMapsOrThrowArgs = {
|
||||
flatFieldMetadata: FlatFieldMetadata;
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
};
|
||||
export const addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow = ({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
}: AddFlatFieldMetadataInFlatObjectMetadataMapsOrThrowArgs): FlatObjectMetadataMaps => {
|
||||
const flatObjectMetadataWithFlatFieldMaps =
|
||||
flatObjectMetadataMaps.byId[flatFieldMetadata.objectMetadataId];
|
||||
|
||||
if (!isDefined(flatObjectMetadataWithFlatFieldMaps)) {
|
||||
throw new FlatObjectMetadataMapsException(
|
||||
'addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow field parent object metadata not found',
|
||||
FlatObjectMetadataMapsExceptionCode.OBJECT_METADATA_NOT_FOUND,
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
idByUniversalIdentifier: {
|
||||
...flatObjectMetadataMaps.idByUniversalIdentifier,
|
||||
},
|
||||
byId: {
|
||||
...flatObjectMetadataMaps.byId,
|
||||
[flatFieldMetadata.objectMetadataId]:
|
||||
addFlatFieldMetadataToFlatObjectMetadataWithFlatFieldMapsOrThrow({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataWithFlatFieldMaps,
|
||||
}),
|
||||
},
|
||||
idByNameSingular: { ...flatObjectMetadataMaps.idByNameSingular },
|
||||
};
|
||||
};
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import {
|
||||
type AddFlatFieldMetadataInFlatObjectMetadataMapsOrThrowArgs,
|
||||
addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/add-flat-field-metadata-in-flat-object-metadata-maps-or-throw.util';
|
||||
|
||||
export const addFlatFieldMetadataInFlatObjectMetadataMaps = (
|
||||
arg: AddFlatFieldMetadataInFlatObjectMetadataMapsOrThrowArgs,
|
||||
): FlatObjectMetadataMaps | undefined => {
|
||||
try {
|
||||
return addFlatFieldMetadataInFlatObjectMetadataMapsOrThrow(arg);
|
||||
} catch {
|
||||
return undefined;
|
||||
}
|
||||
};
|
||||
-65
@@ -1,65 +0,0 @@
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { isMorphOrRelationFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-morph-or-relation-flat-field-metadata.util';
|
||||
import {
|
||||
FlatObjectMetadataMapsException,
|
||||
FlatObjectMetadataMapsExceptionCode,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/flat-object-metadata-maps.exception';
|
||||
import {
|
||||
type FlatFieldMetadataMaps,
|
||||
type FlatObjectMetadataWithFlatFieldMaps,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-with-flat-field-metadata-maps.type';
|
||||
|
||||
type AddFlatFieldMetadataToFlatObjectMetadataWithFlatFieldMapsOrThrowArgs = {
|
||||
flatFieldMetadata: FlatFieldMetadata;
|
||||
flatObjectMetadataWithFlatFieldMaps: FlatObjectMetadataWithFlatFieldMaps;
|
||||
};
|
||||
export const addFlatFieldMetadataToFlatObjectMetadataWithFlatFieldMapsOrThrow =
|
||||
({
|
||||
flatFieldMetadata,
|
||||
flatObjectMetadataWithFlatFieldMaps,
|
||||
}: AddFlatFieldMetadataToFlatObjectMetadataWithFlatFieldMapsOrThrowArgs): FlatObjectMetadataWithFlatFieldMaps => {
|
||||
if (
|
||||
isDefined(
|
||||
flatObjectMetadataWithFlatFieldMaps.fieldsById[flatFieldMetadata.id],
|
||||
)
|
||||
) {
|
||||
throw new FlatObjectMetadataMapsException(
|
||||
'addFlatFieldMetadataToFlatObjectMetadataWithFlatFieldMaps added flatFieldMetadata already exists',
|
||||
FlatObjectMetadataMapsExceptionCode.FIELD_METADATA_ALREADY_EXISTS,
|
||||
);
|
||||
}
|
||||
|
||||
let updatedFieldIdByJoinColumnName:
|
||||
| FlatFieldMetadataMaps['fieldIdByJoinColumnName']
|
||||
| undefined = undefined;
|
||||
|
||||
if (isMorphOrRelationFlatFieldMetadata(flatFieldMetadata)) {
|
||||
if (isDefined(flatFieldMetadata.settings.joinColumnName)) {
|
||||
updatedFieldIdByJoinColumnName = {
|
||||
[flatFieldMetadata.settings.joinColumnName]: flatFieldMetadata.id,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
...flatObjectMetadataWithFlatFieldMaps,
|
||||
fieldIdByJoinColumnName: {
|
||||
...flatObjectMetadataWithFlatFieldMaps.fieldIdByJoinColumnName,
|
||||
...updatedFieldIdByJoinColumnName,
|
||||
},
|
||||
fieldIdByName: {
|
||||
...flatObjectMetadataWithFlatFieldMaps.fieldIdByName,
|
||||
[flatFieldMetadata.name]: flatFieldMetadata.id,
|
||||
},
|
||||
fieldsById: {
|
||||
...flatObjectMetadataWithFlatFieldMaps.fieldsById,
|
||||
[flatFieldMetadata.id]: flatFieldMetadata,
|
||||
},
|
||||
flatFieldMetadatas: [
|
||||
...flatObjectMetadataWithFlatFieldMaps.flatFieldMetadatas,
|
||||
flatFieldMetadata,
|
||||
],
|
||||
};
|
||||
};
|
||||
-43
@@ -1,43 +0,0 @@
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import {
|
||||
FlatObjectMetadataMapsException,
|
||||
FlatObjectMetadataMapsExceptionCode,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/flat-object-metadata-maps.exception';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
import { fromFlatObjectMetadataToFlatObjectMetadataWithFlatFieldMaps } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-to-flat-object-metadata-with-flat-field-maps.util';
|
||||
|
||||
type AddFlatObjectMetadataToFlatObjectMetadataMapsOrThrowArgs = {
|
||||
flatObjectMetadata: FlatObjectMetadata;
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
};
|
||||
export const addFlatObjectMetadataToFlatObjectMetadataMapsOrThrow = ({
|
||||
flatObjectMetadata,
|
||||
flatObjectMetadataMaps,
|
||||
}: AddFlatObjectMetadataToFlatObjectMetadataMapsOrThrowArgs): FlatObjectMetadataMaps => {
|
||||
if (isDefined(flatObjectMetadataMaps.byId[flatObjectMetadata.id])) {
|
||||
throw new FlatObjectMetadataMapsException(
|
||||
'addFlatObjectMetadataToFlatObjectMetadataMapsOrThrow: flat object metadata to add already exists',
|
||||
FlatObjectMetadataMapsExceptionCode.OBJECT_METADATA_ALREADY_EXISTS,
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
idByUniversalIdentifier: {
|
||||
...flatObjectMetadataMaps.idByUniversalIdentifier,
|
||||
[flatObjectMetadata.universalIdentifier]: flatObjectMetadata.id,
|
||||
},
|
||||
byId: {
|
||||
...flatObjectMetadataMaps.byId,
|
||||
[flatObjectMetadata.id]:
|
||||
fromFlatObjectMetadataToFlatObjectMetadataWithFlatFieldMaps(
|
||||
flatObjectMetadata,
|
||||
),
|
||||
},
|
||||
idByNameSingular: {
|
||||
...flatObjectMetadataMaps.idByNameSingular,
|
||||
[flatObjectMetadata.nameSingular]: flatObjectMetadata.id,
|
||||
},
|
||||
};
|
||||
};
|
||||
-48
@@ -1,48 +0,0 @@
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import {
|
||||
FlatObjectMetadataMapsException,
|
||||
FlatObjectMetadataMapsExceptionCode,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/flat-object-metadata-maps.exception';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { type FlatObjectMetadataWithFlatFieldMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-with-flat-field-metadata-maps.type';
|
||||
|
||||
type AddFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadataMapsOrThrowArgs =
|
||||
{
|
||||
flatObjectMetadataWithFlatFieldMaps: FlatObjectMetadataWithFlatFieldMaps;
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
};
|
||||
export const addFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadataMapsOrThrow =
|
||||
({
|
||||
flatObjectMetadataWithFlatFieldMaps,
|
||||
flatObjectMetadataMaps,
|
||||
}: AddFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadataMapsOrThrowArgs): FlatObjectMetadataMaps => {
|
||||
if (
|
||||
isDefined(
|
||||
flatObjectMetadataMaps.byId[flatObjectMetadataWithFlatFieldMaps.id],
|
||||
)
|
||||
) {
|
||||
throw new FlatObjectMetadataMapsException(
|
||||
'addFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadataMapsOrThrow: flat object metadata with fields maps to add already exists',
|
||||
FlatObjectMetadataMapsExceptionCode.OBJECT_METADATA_ALREADY_EXISTS,
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
idByUniversalIdentifier: {
|
||||
...flatObjectMetadataMaps.idByUniversalIdentifier,
|
||||
[flatObjectMetadataWithFlatFieldMaps.universalIdentifier]:
|
||||
flatObjectMetadataWithFlatFieldMaps.id,
|
||||
},
|
||||
byId: {
|
||||
...flatObjectMetadataMaps.byId,
|
||||
[flatObjectMetadataWithFlatFieldMaps.id]:
|
||||
flatObjectMetadataWithFlatFieldMaps,
|
||||
},
|
||||
idByNameSingular: {
|
||||
...flatObjectMetadataMaps.idByNameSingular,
|
||||
[flatObjectMetadataWithFlatFieldMaps.nameSingular]:
|
||||
flatObjectMetadataWithFlatFieldMaps.id,
|
||||
},
|
||||
};
|
||||
};
|
||||
-42
@@ -1,42 +0,0 @@
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import {
|
||||
FlatObjectMetadataMapsException,
|
||||
FlatObjectMetadataMapsExceptionCode,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/flat-object-metadata-maps.exception';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
import { deleteFieldFromFlatObjectMetadataWithFlatFieldMapsOrThrow } from 'src/engine/metadata-modules/flat-object-metadata-maps/utils/delete-field-from-flat-object-metadata-with-flat-field-maps-or-throw.util';
|
||||
|
||||
type DeleteFieldFromFlatObjectMetadataMapsOrThrowArgs = {
|
||||
fieldMetadataId: string;
|
||||
objectMetadataId: string;
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
};
|
||||
export const deleteFieldFromFlatObjectMetadataMapsOrThrow = ({
|
||||
flatObjectMetadataMaps,
|
||||
fieldMetadataId,
|
||||
objectMetadataId,
|
||||
}: DeleteFieldFromFlatObjectMetadataMapsOrThrowArgs): FlatObjectMetadataMaps => {
|
||||
const flatObjectMetadataWithFlatFieldMaps =
|
||||
flatObjectMetadataMaps.byId[objectMetadataId];
|
||||
|
||||
if (!isDefined(flatObjectMetadataWithFlatFieldMaps)) {
|
||||
throw new FlatObjectMetadataMapsException(
|
||||
'deleteFieldFromFlatObjectMetadataMapsOrThrow: field metadata to delete parent flat object metadata not found',
|
||||
FlatObjectMetadataMapsExceptionCode.OBJECT_METADATA_NOT_FOUND,
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
idByUniversalIdentifier: flatObjectMetadataMaps.idByUniversalIdentifier,
|
||||
byId: {
|
||||
...flatObjectMetadataMaps.byId,
|
||||
[objectMetadataId]:
|
||||
deleteFieldFromFlatObjectMetadataWithFlatFieldMapsOrThrow({
|
||||
fieldMetadataId,
|
||||
flatObjectMetadataWithFlatFieldMaps,
|
||||
}),
|
||||
},
|
||||
idByNameSingular: flatObjectMetadataMaps.idByNameSingular,
|
||||
};
|
||||
};
|
||||
-50
@@ -1,50 +0,0 @@
|
||||
import { isDefined, removePropertiesFromRecord } from 'twenty-shared/utils';
|
||||
|
||||
import {
|
||||
FlatObjectMetadataMapsException,
|
||||
FlatObjectMetadataMapsExceptionCode,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/flat-object-metadata-maps.exception';
|
||||
import { type FlatObjectMetadataWithFlatFieldMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-with-flat-field-metadata-maps.type';
|
||||
|
||||
type DeleteFieldFromFlatObjectMetadataMapsOrThrowArgs = {
|
||||
fieldMetadataId: string;
|
||||
flatObjectMetadataWithFlatFieldMaps: FlatObjectMetadataWithFlatFieldMaps;
|
||||
};
|
||||
export const deleteFieldFromFlatObjectMetadataWithFlatFieldMapsOrThrow = ({
|
||||
flatObjectMetadataWithFlatFieldMaps,
|
||||
fieldMetadataId: fieldMetadataIdToRemove,
|
||||
}: DeleteFieldFromFlatObjectMetadataMapsOrThrowArgs): FlatObjectMetadataWithFlatFieldMaps => {
|
||||
const flatFieldMetadataToRemove =
|
||||
flatObjectMetadataWithFlatFieldMaps.fieldsById[fieldMetadataIdToRemove];
|
||||
|
||||
if (!isDefined(flatFieldMetadataToRemove)) {
|
||||
throw new FlatObjectMetadataMapsException(
|
||||
'deleteFieldFromFlatObjectMetadataWithFlatFieldMapsOrThrow: field to delete not found',
|
||||
FlatObjectMetadataMapsExceptionCode.FIELD_METADATA_NOT_FOUND,
|
||||
);
|
||||
}
|
||||
|
||||
const {
|
||||
fieldIdByName,
|
||||
fieldsById,
|
||||
flatFieldMetadatas,
|
||||
fieldIdByJoinColumnName,
|
||||
} = flatObjectMetadataWithFlatFieldMaps;
|
||||
const updatedFieldIdByJoinColumnName = Object.entries(
|
||||
fieldIdByJoinColumnName,
|
||||
).filter(([_joinColumnName, fieldId]) => fieldId !== fieldMetadataIdToRemove);
|
||||
|
||||
return {
|
||||
...flatObjectMetadataWithFlatFieldMaps,
|
||||
fieldIdByJoinColumnName: Object.fromEntries(updatedFieldIdByJoinColumnName),
|
||||
fieldIdByName: removePropertiesFromRecord(fieldIdByName, [
|
||||
flatFieldMetadataToRemove.name,
|
||||
]),
|
||||
fieldsById: removePropertiesFromRecord(fieldsById, [
|
||||
fieldMetadataIdToRemove,
|
||||
]),
|
||||
flatFieldMetadatas: flatFieldMetadatas.filter(
|
||||
(flatFieldMetadata) => flatFieldMetadata.id !== fieldMetadataIdToRemove,
|
||||
),
|
||||
};
|
||||
};
|
||||
-41
@@ -1,41 +0,0 @@
|
||||
import { isDefined, removePropertiesFromRecord } from 'twenty-shared/utils';
|
||||
|
||||
import {
|
||||
FlatObjectMetadataMapsException,
|
||||
FlatObjectMetadataMapsExceptionCode,
|
||||
} from 'src/engine/metadata-modules/flat-object-metadata-maps/flat-object-metadata-maps.exception';
|
||||
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
||||
|
||||
export type DeleteObjectFromFlatObjectMetadataMapsOrThrowArgs = {
|
||||
objectMetadataId: string;
|
||||
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
||||
};
|
||||
export const deleteObjectFromFlatObjectMetadataMapsOrThrow = ({
|
||||
flatObjectMetadataMaps,
|
||||
objectMetadataId,
|
||||
}: DeleteObjectFromFlatObjectMetadataMapsOrThrowArgs): FlatObjectMetadataMaps => {
|
||||
if (!isDefined(flatObjectMetadataMaps.byId[objectMetadataId])) {
|
||||
throw new FlatObjectMetadataMapsException(
|
||||
'deleteObjectFromFlatObjectMetadataMapsOrThrow: object to delete not found',
|
||||
FlatObjectMetadataMapsExceptionCode.OBJECT_METADATA_NOT_FOUND,
|
||||
);
|
||||
}
|
||||
|
||||
const updatedIdByNameSingularEntries = Object.entries(
|
||||
flatObjectMetadataMaps.idByNameSingular,
|
||||
).filter(([_nameSingular, id]) => id !== objectMetadataId);
|
||||
|
||||
const updatedIdByUniversalIdentifierEntries = Object.entries(
|
||||
flatObjectMetadataMaps.idByUniversalIdentifier,
|
||||
).filter(([_universalIdentifier, id]) => id !== objectMetadataId);
|
||||
|
||||
return {
|
||||
idByUniversalIdentifier: Object.fromEntries(
|
||||
updatedIdByUniversalIdentifierEntries,
|
||||
),
|
||||
byId: removePropertiesFromRecord(flatObjectMetadataMaps.byId, [
|
||||
objectMetadataId,
|
||||
]),
|
||||
idByNameSingular: Object.fromEntries(updatedIdByNameSingularEntries),
|
||||
};
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user