Remove field metadata interface references (#13305)

# Introduction
Following https://github.com/twentyhq/twenty/pull/13264
> After this PR merge will create a new one removing the type and
replacing it to FieldMetadataEntity.

This is it !
This commit is contained in:
Paul Rastoin
2025-07-21 13:57:14 +02:00
committed by GitHub
parent 47b60bd49f
commit 1dee9bc800
54 changed files with 167 additions and 223 deletions

View File

@ -1,7 +0,0 @@
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
export type FieldMetadataInterface<
T extends FieldMetadataType = FieldMetadataType,
> = FieldMetadataEntity<T>;

View File

@ -1,8 +1,7 @@
import { IndexMetadataInterface } from 'src/engine/metadata-modules/index-metadata/interfaces/index-metadata.interface';
import { WorkspaceEntityDuplicateCriteria } from 'src/engine/api/graphql/workspace-query-builder/types/workspace-entity-duplicate-criteria.type';
import { FieldMetadataInterface } from './field-metadata.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
export interface ObjectMetadataInterface {
id: string;
@ -15,7 +14,7 @@ export interface ObjectMetadataInterface {
description?: string;
icon: string;
targetTableName: string;
fields: FieldMetadataInterface[];
fields: FieldMetadataEntity[];
indexMetadatas: IndexMetadataInterface[];
isSystem: boolean;
isCustom: boolean;

View File

@ -7,7 +7,6 @@ import { assertUnreachable, isDefined } from 'twenty-shared/utils';
import { z } from 'zod';
import { FieldMetadataOptions } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-options.interface';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
import {
@ -15,6 +14,7 @@ import {
FieldMetadataDefaultOption,
} from 'src/engine/metadata-modules/field-metadata/dtos/options.input';
import { UpdateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/update-field.input';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
FieldMetadataException,
FieldMetadataExceptionCode,
@ -36,7 +36,7 @@ type FieldMetadataUpdateCreateInput = CreateFieldInput | UpdateFieldInput;
type ValidateEnumFieldMetadataArgs = {
existingFieldMetadata?: Pick<
FieldMetadataInterface,
FieldMetadataEntity,
'type' | 'isNullable' | 'defaultValue' | 'options'
>;
fieldMetadataInput: FieldMetadataUpdateCreateInput;

View File

@ -6,11 +6,10 @@ import { isDefined } from 'twenty-shared/utils';
import { Repository } from 'typeorm';
import { v4 } from 'uuid';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
import { CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
import {
FieldMetadataException,
FieldMetadataExceptionCode,
@ -163,7 +162,7 @@ export class FieldMetadataMorphRelationService {
async findCachedFieldMetadataMorphRelation(
fieldMetadataItems: Array<
Pick<
FieldMetadataInterface,
FieldMetadataEntity,
| 'id'
| 'type'
| 'objectMetadataId'
@ -187,7 +186,7 @@ export class FieldMetadataMorphRelationService {
);
const fieldMetadataItemsAndMorphSiblings: Pick<
FieldMetadataInterface,
FieldMetadataEntity,
| 'id'
| 'type'
| 'objectMetadataId'

View File

@ -8,7 +8,6 @@ import { isDefined } from 'twenty-shared/utils';
import { Repository } from 'typeorm';
import { v4 } from 'uuid';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
import { CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
@ -28,7 +27,7 @@ import { getObjectMetadataFromObjectMetadataItemWithFieldMaps } from 'src/engine
import { validateFieldNameAvailabilityOrThrow } from 'src/engine/metadata-modules/utils/validate-field-name-availability.utils';
import { validateMetadataNameOrThrow } from 'src/engine/metadata-modules/utils/validate-metadata-name.utils';
import { computeMetadataNameFromLabel } from 'src/engine/metadata-modules/utils/validate-name-and-label-are-sync-or-throw.util';
import { isFieldMetadataInterfaceOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
import { isFieldMetadataEntityOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
import { WorkspaceCacheStorageService } from 'src/engine/workspace-cache-storage/workspace-cache-storage.service';
export class RelationCreationPayloadValidation {
@ -50,7 +49,7 @@ type ValidateFieldMetadataArgs<T extends UpdateFieldInput | CreateFieldInput> =
fieldMetadataType: FieldMetadataType;
fieldMetadataInput: T;
objectMetadata: ObjectMetadataItemWithFieldMaps;
existingFieldMetadata?: FieldMetadataInterface;
existingFieldMetadata?: FieldMetadataEntity;
objectMetadataMaps: ObjectMetadataMaps;
};
@ -243,7 +242,7 @@ export class FieldMetadataRelationService {
async findCachedFieldMetadataRelation(
fieldMetadataItems: Array<
Pick<
FieldMetadataInterface,
FieldMetadataEntity,
| 'id'
| 'type'
| 'objectMetadataId'
@ -324,11 +323,11 @@ export class FieldMetadataRelationService {
joinColumnName: string;
}) {
const isRelation =
isFieldMetadataInterfaceOfType(
isFieldMetadataEntityOfType(
fieldMetadataInput,
FieldMetadataType.RELATION,
) ||
isFieldMetadataInterfaceOfType(
isFieldMetadataEntityOfType(
fieldMetadataInput,
FieldMetadataType.MORPH_RELATION,
);

View File

@ -15,10 +15,10 @@ import { FieldMetadataType } from 'twenty-shared/types';
import { isDefined } from 'twenty-shared/utils';
import { FieldMetadataSettings } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-settings.interface';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
import { UpdateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/update-field.input';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
FieldMetadataException,
FieldMetadataExceptionCode,
@ -34,7 +34,7 @@ type ValidateFieldMetadataArgs = {
fieldMetadataType: FieldMetadataType;
fieldMetadataInput: CreateFieldInput | UpdateFieldInput;
objectMetadata: ObjectMetadataItemWithFieldMaps;
existingFieldMetadata?: FieldMetadataInterface;
existingFieldMetadata?: FieldMetadataEntity;
};
enum ValueType {

View File

@ -7,16 +7,15 @@ import { FieldMetadataType } from 'twenty-shared/types';
import { isDefined } from 'twenty-shared/utils';
import { DataSource, FindOneOptions, In, Repository } from 'typeorm';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
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';
import { CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
import { DeleteOneFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/delete-field.input';
import { UpdateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/update-field.input';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
FieldMetadataException,
FieldMetadataExceptionCode,
@ -107,7 +106,7 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
{ workspaceId: fieldMetadataInput.workspaceId },
);
let existingFieldMetadata: FieldMetadataInterface | undefined;
let existingFieldMetadata: FieldMetadataEntity | undefined;
for (const objectMetadataItem of Object.values(
objectMetadataMaps.byId,

View File

@ -1,14 +1,13 @@
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { FieldStandardOverridesDTO } from 'src/engine/metadata-modules/field-metadata/dtos/field-standard-overrides.dto';
import { UpdateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/update-field.input';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
export const buildUpdatableStandardFieldInput = (
fieldMetadataInput: UpdateFieldInput,
existingFieldMetadata: Pick<
FieldMetadataInterface,
FieldMetadataEntity,
'type' | 'isNullable' | 'defaultValue' | 'options'
>,
) => {

View File

@ -1,5 +1,4 @@
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
FieldMetadataException,
FieldMetadataExceptionCode,
@ -7,10 +6,7 @@ import {
type CheckCanDeactivateFieldOptions = {
labelIdentifierFieldMetadataId: string;
existingFieldMetadata: Pick<
FieldMetadataInterface,
'id' | 'isSystem' | 'name'
>;
existingFieldMetadata: Pick<FieldMetadataEntity, 'id' | 'isSystem' | 'name'>;
};
export const checkCanDeactivateFieldOrThrow = ({

View File

@ -1,8 +1,8 @@
import { FieldMetadataType } from 'twenty-shared/types';
import { CompositeProperty } from 'src/engine/metadata-modules/field-metadata/interfaces/composite-type.interface';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
FieldMetadataException,
FieldMetadataExceptionCode,
@ -22,12 +22,12 @@ export function computeColumnName(
options?: ComputeColumnNameOptions,
): string;
export function computeColumnName<T extends FieldMetadataType>(
fieldMetadata: FieldMetadataInterface<T>,
ioptions?: ComputeColumnNameOptions,
fieldMetadata: FieldMetadataEntity<T>,
options?: ComputeColumnNameOptions,
): string;
// TODO: If we need to implement custom name logic for columns, we can do it here
export function computeColumnName<T extends FieldMetadataType>(
fieldMetadataOrFieldName: FieldMetadataInterface<T> | string,
fieldMetadataOrFieldName: FieldMetadataEntity<T> | string,
options?: ComputeColumnNameOptions,
): string {
const generateName = (name: string) => {
@ -52,13 +52,13 @@ export function computeCompositeColumnName(
compositeProperty: CompositeProperty,
): string;
export function computeCompositeColumnName<T extends FieldMetadataType>(
fieldMetadata: FieldTypeAndNameMetadata | FieldMetadataInterface<T>,
fieldMetadata: FieldTypeAndNameMetadata | FieldMetadataEntity<T>,
compositeProperty: CompositeProperty,
): string;
export function computeCompositeColumnName<T extends FieldMetadataType>(
fieldMetadataOrFieldName:
| FieldTypeAndNameMetadata
| FieldMetadataInterface<T>
| FieldMetadataEntity<T>
| string,
compositeProperty: CompositeProperty,
): string {

View File

@ -1,15 +1,13 @@
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
export type SelectOrMultiSelectFieldMetadataEntity = FieldMetadataEntity<
FieldMetadataType.SELECT | FieldMetadataType.MULTI_SELECT
>;
export const isSelectOrMultiSelectFieldMetadata = (
fieldMetadata: FieldMetadataInterface,
): fieldMetadata is FieldMetadataInterface &
fieldMetadata: FieldMetadataEntity,
): fieldMetadata is FieldMetadataEntity &
SelectOrMultiSelectFieldMetadataEntity => {
return [FieldMetadataType.SELECT, FieldMetadataType.MULTI_SELECT].includes(
fieldMetadata.type,

View File

@ -1,11 +1,12 @@
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { IndexMetadataInterface } from 'src/engine/metadata-modules/index-metadata/interfaces/index-metadata.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
export interface IndexFieldMetadataInterface {
id: string;
indexMetadataId: string;
fieldMetadataId: string;
fieldMetadata: FieldMetadataInterface;
fieldMetadata: FieldMetadataEntity;
indexMetadata: IndexMetadataInterface;
order: number;
createdAt: Date;

View File

@ -22,7 +22,7 @@ import { WorkspaceMigrationFactory } from 'src/engine/metadata-modules/workspace
import { WorkspaceMigrationService } from 'src/engine/metadata-modules/workspace-migration/workspace-migration.service';
import { computeObjectTargetTable } from 'src/engine/utils/compute-object-target-table.util';
import { computeTableName } from 'src/engine/utils/compute-table-name.util';
import { isFieldMetadataInterfaceOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
import { isFieldMetadataEntityOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
import { RELATION_MIGRATION_PRIORITY_PREFIX } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service';
@Injectable()
@ -244,8 +244,8 @@ export class ObjectMetadataMigrationService {
) {
const relationFields = objectMetadata.fields.filter(
(field) =>
isFieldMetadataInterfaceOfType(field, FieldMetadataType.RELATION) ||
isFieldMetadataInterfaceOfType(field, FieldMetadataType.MORPH_RELATION),
isFieldMetadataEntityOfType(field, FieldMetadataType.RELATION) ||
isFieldMetadataEntityOfType(field, FieldMetadataType.MORPH_RELATION),
) as FieldMetadataEntity<
FieldMetadataType.RELATION | FieldMetadataType.MORPH_RELATION
>[];

View File

@ -1,3 +1,3 @@
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
export type FieldMetadataMap = Record<string, FieldMetadataInterface>;
export type FieldMetadataMap = Record<string, FieldMetadataEntity>;

View File

@ -6,7 +6,7 @@ import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metad
import { FieldMetadataMap } from 'src/engine/metadata-modules/types/field-metadata-map';
import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps';
import { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps';
import { isFieldMetadataInterfaceOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
import { isFieldMetadataEntityOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
export const generateObjectMetadataMaps = (
objectMetadataCollection: ObjectMetadataInterface[],
@ -21,10 +21,7 @@ export const generateObjectMetadataMaps = (
for (const fieldMetadata of objectMetadata.fields) {
if (
isFieldMetadataInterfaceOfType(
fieldMetadata,
FieldMetadataType.RELATION,
)
isFieldMetadataEntityOfType(fieldMetadata, FieldMetadataType.RELATION)
) {
if (fieldMetadata.settings?.joinColumnName) {
fieldIdByJoinColumnNameMap[fieldMetadata.settings.joinColumnName] =

View File

@ -3,8 +3,6 @@ import {
isLabelIdentifierFieldMetadataTypes,
} from 'twenty-shared/utils';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
ObjectMetadataException,
@ -14,14 +12,14 @@ import {
type Validator = {
validator: (args: {
fieldMetadataId: string;
matchingFieldMetadata?: FieldMetadataEntity | FieldMetadataInterface;
matchingFieldMetadata?: FieldMetadataEntity;
}) => boolean;
label: string;
};
type ValidateMetadataIdentifierFieldMetadataIdOrThrowArgs = {
fieldMetadataId: string;
fieldMetadataItems: FieldMetadataEntity[] | FieldMetadataInterface[];
fieldMetadataItems: FieldMetadataEntity[];
validators: Validator[];
};
const validatorRunner = ({
@ -46,7 +44,7 @@ const validatorRunner = ({
type ValidateMetadataIdentifierFieldMetadataIdsArgs = {
labelIdentifierFieldMetadataId: string | undefined;
imageIdentifierFieldMetadataId: string | undefined;
fieldMetadataItems: FieldMetadataEntity[] | FieldMetadataInterface[];
fieldMetadataItems: FieldMetadataEntity[];
};
export const validateMetadataIdentifierFieldMetadataIds = ({
imageIdentifierFieldMetadataId,

View File

@ -2,9 +2,9 @@ import { Injectable, Logger } from '@nestjs/common';
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { WorkspaceColumnActionOptions } from 'src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-options.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { computeColumnName } from 'src/engine/metadata-modules/field-metadata/utils/compute-column-name.util';
import { serializeDefaultValue } from 'src/engine/metadata-modules/field-metadata/utils/serialize-default-value';
import { ColumnActionAbstractFactory } from 'src/engine/metadata-modules/workspace-migration/factories/column-action-abstract.factory';
@ -36,7 +36,7 @@ export class BasicColumnActionFactory extends ColumnActionAbstractFactory<BasicF
protected readonly logger = new Logger(BasicColumnActionFactory.name);
protected handleCreateAction(
fieldMetadata: FieldMetadataInterface<BasicFieldMetadataType>,
fieldMetadata: FieldMetadataEntity<BasicFieldMetadataType>,
options?: WorkspaceColumnActionOptions,
): WorkspaceMigrationColumnCreate[] {
const columnName = computeColumnName(fieldMetadata);
@ -57,8 +57,8 @@ export class BasicColumnActionFactory extends ColumnActionAbstractFactory<BasicF
}
protected handleAlterAction(
currentFieldMetadata: FieldMetadataInterface<BasicFieldMetadataType>,
alteredFieldMetadata: FieldMetadataInterface<BasicFieldMetadataType>,
currentFieldMetadata: FieldMetadataEntity<BasicFieldMetadataType>,
alteredFieldMetadata: FieldMetadataEntity<BasicFieldMetadataType>,
options?: WorkspaceColumnActionOptions,
): WorkspaceMigrationColumnAlter[] {
const currentColumnName = computeColumnName(currentFieldMetadata);

View File

@ -3,10 +3,10 @@ import { Logger } from '@nestjs/common';
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { WorkspaceColumnActionFactory } from 'src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-factory.interface';
import { WorkspaceColumnActionOptions } from 'src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-options.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
WorkspaceMigrationColumnAction,
WorkspaceMigrationColumnActionType,
@ -27,8 +27,8 @@ export class ColumnActionAbstractFactory<T extends FieldMetadataType>
action:
| WorkspaceMigrationColumnActionType.CREATE
| WorkspaceMigrationColumnActionType.ALTER,
currentFieldMetadata: FieldMetadataInterface<T> | undefined,
alteredFieldMetadata: FieldMetadataInterface<T>,
currentFieldMetadata: FieldMetadataEntity<T> | undefined,
alteredFieldMetadata: FieldMetadataEntity<T>,
options?: WorkspaceColumnActionOptions,
): WorkspaceMigrationColumnAction[] {
switch (action) {
@ -59,7 +59,7 @@ export class ColumnActionAbstractFactory<T extends FieldMetadataType>
}
protected handleCreateAction(
_fieldMetadata: FieldMetadataInterface<T>,
_fieldMetadata: FieldMetadataEntity<T>,
_options?: WorkspaceColumnActionOptions,
): WorkspaceMigrationColumnCreate[] {
throw new WorkspaceMigrationException(
@ -69,8 +69,8 @@ export class ColumnActionAbstractFactory<T extends FieldMetadataType>
}
protected handleAlterAction(
_currentFieldMetadata: FieldMetadataInterface<T>,
_alteredFieldMetadata: FieldMetadataInterface<T>,
_currentFieldMetadata: FieldMetadataEntity<T>,
_alteredFieldMetadata: FieldMetadataEntity<T>,
_options?: WorkspaceColumnActionOptions,
): WorkspaceMigrationColumnAlter[] {
throw new WorkspaceMigrationException(

View File

@ -2,9 +2,8 @@ import { Injectable, Logger } from '@nestjs/common';
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { compositeTypeDefinitions } from 'src/engine/metadata-modules/field-metadata/composite-types';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { computeCompositeColumnName } from 'src/engine/metadata-modules/field-metadata/utils/compute-column-name.util';
import { serializeDefaultValue } from 'src/engine/metadata-modules/field-metadata/utils/serialize-default-value';
import { ColumnActionAbstractFactory } from 'src/engine/metadata-modules/workspace-migration/factories/column-action-abstract.factory';
@ -34,7 +33,7 @@ export class CompositeColumnActionFactory extends ColumnActionAbstractFactory<Co
protected readonly logger = new Logger(CompositeColumnActionFactory.name);
protected handleCreateAction(
fieldMetadata: FieldMetadataInterface<CompositeFieldMetadataType>,
fieldMetadata: FieldMetadataEntity<CompositeFieldMetadataType>,
): WorkspaceMigrationColumnCreate[] {
const compositeType = compositeTypeDefinitions.get(fieldMetadata.type);
@ -83,8 +82,8 @@ export class CompositeColumnActionFactory extends ColumnActionAbstractFactory<Co
}
protected handleAlterAction(
currentFieldMetadata: FieldMetadataInterface<CompositeFieldMetadataType>,
alteredFieldMetadata: FieldMetadataInterface<CompositeFieldMetadataType>,
currentFieldMetadata: FieldMetadataEntity<CompositeFieldMetadataType>,
alteredFieldMetadata: FieldMetadataEntity<CompositeFieldMetadataType>,
): WorkspaceMigrationColumnAlter[] {
const currentCompositeType = compositeTypeDefinitions.get(
currentFieldMetadata.type,

View File

@ -2,9 +2,9 @@ import { Injectable, Logger } from '@nestjs/common';
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { WorkspaceColumnActionOptions } from 'src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-options.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { computeColumnName } from 'src/engine/metadata-modules/field-metadata/utils/compute-column-name.util';
import { serializeDefaultValue } from 'src/engine/metadata-modules/field-metadata/utils/serialize-default-value';
import { ColumnActionAbstractFactory } from 'src/engine/metadata-modules/workspace-migration/factories/column-action-abstract.factory';
@ -29,7 +29,7 @@ export class EnumColumnActionFactory extends ColumnActionAbstractFactory<EnumFie
protected readonly logger = new Logger(EnumColumnActionFactory.name);
protected handleCreateAction(
fieldMetadata: FieldMetadataInterface<EnumFieldMetadataType>,
fieldMetadata: FieldMetadataEntity<EnumFieldMetadataType>,
options: WorkspaceColumnActionOptions,
): WorkspaceMigrationColumnCreate[] {
const columnName = computeColumnName(fieldMetadata);
@ -54,8 +54,8 @@ export class EnumColumnActionFactory extends ColumnActionAbstractFactory<EnumFie
}
protected handleAlterAction(
currentFieldMetadata: FieldMetadataInterface<EnumFieldMetadataType>,
alteredFieldMetadata: FieldMetadataInterface<EnumFieldMetadataType>,
currentFieldMetadata: FieldMetadataEntity<EnumFieldMetadataType>,
alteredFieldMetadata: FieldMetadataEntity<EnumFieldMetadataType>,
options: WorkspaceColumnActionOptions,
): WorkspaceMigrationColumnAlter[] {
const currentColumnName = computeColumnName(currentFieldMetadata);

View File

@ -2,10 +2,10 @@ import { Injectable, Logger } from '@nestjs/common';
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
import { WorkspaceColumnActionOptions } from 'src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-options.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { ColumnActionAbstractFactory } from 'src/engine/metadata-modules/workspace-migration/factories/column-action-abstract.factory';
import { fieldMetadataTypeToColumnType } from 'src/engine/metadata-modules/workspace-migration/utils/field-metadata-type-to-column-type.util';
import {
@ -23,7 +23,7 @@ export class MorphRelationColumnActionFactory extends ColumnActionAbstractFactor
protected readonly logger = new Logger(MorphRelationColumnActionFactory.name);
protected handleCreateAction(
fieldMetadata: FieldMetadataInterface<FieldMetadataType.MORPH_RELATION>,
fieldMetadata: FieldMetadataEntity<FieldMetadataType.MORPH_RELATION>,
_options?: WorkspaceColumnActionOptions,
): WorkspaceMigrationColumnCreate[] {
if (!fieldMetadata.settings || !fieldMetadata.settings.joinColumnName) {
@ -46,8 +46,8 @@ export class MorphRelationColumnActionFactory extends ColumnActionAbstractFactor
}
protected handleAlterAction(
currentFieldMetadata: FieldMetadataInterface<FieldMetadataType.MORPH_RELATION>,
alteredFieldMetadata: FieldMetadataInterface<FieldMetadataType.MORPH_RELATION>,
currentFieldMetadata: FieldMetadataEntity<FieldMetadataType.MORPH_RELATION>,
alteredFieldMetadata: FieldMetadataEntity<FieldMetadataType.MORPH_RELATION>,
_options?: WorkspaceColumnActionOptions,
): WorkspaceMigrationColumnAlter[] {
if (!currentFieldMetadata.settings || !alteredFieldMetadata.settings) {

View File

@ -2,10 +2,10 @@ import { Injectable, Logger } from '@nestjs/common';
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
import { WorkspaceColumnActionOptions } from 'src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-options.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { ColumnActionAbstractFactory } from 'src/engine/metadata-modules/workspace-migration/factories/column-action-abstract.factory';
import { fieldMetadataTypeToColumnType } from 'src/engine/metadata-modules/workspace-migration/utils/field-metadata-type-to-column-type.util';
import {
@ -23,7 +23,7 @@ export class RelationColumnActionFactory extends ColumnActionAbstractFactory<Fie
protected readonly logger = new Logger(RelationColumnActionFactory.name);
protected handleCreateAction(
fieldMetadata: FieldMetadataInterface<FieldMetadataType.RELATION>,
fieldMetadata: FieldMetadataEntity<FieldMetadataType.RELATION>,
_options?: WorkspaceColumnActionOptions,
): WorkspaceMigrationColumnCreate[] {
if (!fieldMetadata.settings || !fieldMetadata.settings.joinColumnName) {
@ -46,8 +46,8 @@ export class RelationColumnActionFactory extends ColumnActionAbstractFactory<Fie
}
protected handleAlterAction(
currentFieldMetadata: FieldMetadataInterface<FieldMetadataType.RELATION>,
alteredFieldMetadata: FieldMetadataInterface<FieldMetadataType.RELATION>,
currentFieldMetadata: FieldMetadataEntity<FieldMetadataType.RELATION>,
alteredFieldMetadata: FieldMetadataEntity<FieldMetadataType.RELATION>,
_options?: WorkspaceColumnActionOptions,
): WorkspaceMigrationColumnAlter[] {
if (!currentFieldMetadata.settings || !alteredFieldMetadata.settings) {

View File

@ -2,8 +2,7 @@ import { Injectable, Logger } from '@nestjs/common';
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { computeColumnName } from 'src/engine/metadata-modules/field-metadata/utils/compute-column-name.util';
import { ColumnActionAbstractFactory } from 'src/engine/metadata-modules/workspace-migration/factories/column-action-abstract.factory';
import { fieldMetadataTypeToColumnType } from 'src/engine/metadata-modules/workspace-migration/utils/field-metadata-type-to-column-type.util';
@ -14,7 +13,7 @@ import {
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
export type TsVectorFieldMetadata =
FieldMetadataInterface<FieldMetadataType.TS_VECTOR> & {
FieldMetadataEntity<FieldMetadataType.TS_VECTOR> & {
generatedType?: 'STORED' | 'VIRTUAL';
asExpression?: string;
};

View File

@ -1,8 +1,8 @@
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { WorkspaceColumnActionOptions } from 'src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-options.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
WorkspaceMigrationColumnAction,
WorkspaceMigrationColumnActionType,
@ -13,8 +13,8 @@ export interface WorkspaceColumnActionFactory<T extends FieldMetadataType> {
action:
| WorkspaceMigrationColumnActionType.CREATE
| WorkspaceMigrationColumnActionType.ALTER,
currentFieldMetadata: FieldMetadataInterface<T> | undefined,
alteredFieldMetadata: FieldMetadataInterface<T>,
currentFieldMetadata: FieldMetadataEntity<T> | undefined,
alteredFieldMetadata: FieldMetadataEntity<T>,
options?: WorkspaceColumnActionOptions,
): WorkspaceMigrationColumnAction[];
}

View File

@ -2,10 +2,10 @@ import { Injectable, Logger } from '@nestjs/common';
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
import { WorkspaceColumnActionFactory } from 'src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-factory.interface';
import { WorkspaceColumnActionOptions } from 'src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-options.interface';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { BasicColumnActionFactory } from 'src/engine/metadata-modules/workspace-migration/factories/basic-column-action.factory';
import { CompositeColumnActionFactory } from 'src/engine/metadata-modules/workspace-migration/factories/composite-column-action.factory';
import { EnumColumnActionFactory } from 'src/engine/metadata-modules/workspace-migration/factories/enum-column-action.factory';
@ -120,18 +120,18 @@ export class WorkspaceMigrationFactory {
createColumnActions<T extends FieldMetadataType = FieldMetadataType>(
action: WorkspaceMigrationColumnActionType.CREATE,
fieldMetadata: FieldMetadataInterface<T>,
fieldMetadata: FieldMetadataEntity<T>,
): WorkspaceMigrationColumnAction[];
createColumnActions(
action: WorkspaceMigrationColumnActionType.ALTER,
currentFieldMetadata: FieldMetadataInterface,
alteredFieldMetadata: FieldMetadataInterface,
currentFieldMetadata: FieldMetadataEntity,
alteredFieldMetadata: FieldMetadataEntity,
): WorkspaceMigrationColumnAction[];
createColumnActions(
action: WorkspaceMigrationColumnActionType.ALTER,
currentFieldMetadata: FieldMetadataInterface,
currentFieldMetadata: FieldMetadataEntity,
alteredFieldMetadata: TsVectorFieldMetadata,
): WorkspaceMigrationColumnAction[];
@ -139,8 +139,8 @@ export class WorkspaceMigrationFactory {
action:
| WorkspaceMigrationColumnActionType.CREATE
| WorkspaceMigrationColumnActionType.ALTER,
fieldMetadataOrCurrentFieldMetadata: FieldMetadataInterface,
undefinedOrAlteredFieldMetadata?: FieldMetadataInterface,
fieldMetadataOrCurrentFieldMetadata: FieldMetadataEntity,
undefinedOrAlteredFieldMetadata?: FieldMetadataEntity,
): WorkspaceMigrationColumnAction[] {
const currentFieldMetadata =
action === WorkspaceMigrationColumnActionType.ALTER
@ -176,8 +176,8 @@ export class WorkspaceMigrationFactory {
action:
| WorkspaceMigrationColumnActionType.CREATE
| WorkspaceMigrationColumnActionType.ALTER,
currentFieldMetadata: FieldMetadataInterface | undefined,
alteredFieldMetadata: FieldMetadataInterface,
currentFieldMetadata: FieldMetadataEntity | undefined,
alteredFieldMetadata: FieldMetadataEntity,
): WorkspaceMigrationColumnAction[] {
const { factory, options } =
this.factoriesMap.get(alteredFieldMetadata.type) ?? {};