Files
twenty/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/generate-index-for-flat-field-metadata.util.ts
T
Weiko cceeb6ed4d Add applicationId to syncableEntity and fix syncApp deletion (#15170)
## Context
- All flatEntity should extend SyncableEntity
- SyncableEntity should now have applicationId and application relation
- Fix syncApp deletion, should now properly use migration v2 to delete
syncable entities
2025-10-17 17:23:00 +00:00

55 lines
1.8 KiB
TypeScript

import { v4 } from 'uuid';
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 { IndexType } from 'src/engine/metadata-modules/index-metadata/types/indexType.types';
import { generateFlatIndexMetadataWithNameOrThrow } from 'src/engine/metadata-modules/index-metadata/utils/generate-flat-index.util';
type GenerateIndexForFlatFieldMetadataArgs = {
flatFieldMetadata: FlatFieldMetadata;
flatObjectMetadata: FlatObjectMetadata;
workspaceId: string;
};
export const generateIndexForFlatFieldMetadata = ({
flatFieldMetadata,
flatObjectMetadata,
workspaceId,
}: GenerateIndexForFlatFieldMetadataArgs): FlatIndexMetadata => {
const indexId = v4();
const createdAt = new Date();
const flatIndex: FlatIndexMetadata = generateFlatIndexMetadataWithNameOrThrow(
{
objectFlatFieldMetadatas: [flatFieldMetadata],
flatIndex: {
createdAt,
flatIndexFieldMetadatas: [
{
createdAt,
fieldMetadataId: flatFieldMetadata.id,
id: v4(),
indexMetadataId: indexId,
order: 0,
updatedAt: createdAt,
},
],
id: indexId,
indexType: IndexType.BTREE,
indexWhereClause: null,
isCustom: true,
isUnique: flatFieldMetadata.isUnique ?? false,
objectMetadataId: flatObjectMetadata.id,
universalIdentifier: indexId,
updatedAt: createdAt,
workspaceId,
applicationId: null,
},
flatObjectMetadata,
},
);
return flatIndex;
};