diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-filter/graphql-query-filter-field.parser.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-filter/graphql-query-filter-field.parser.ts index 209344380..a3f1a1802 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-filter/graphql-query-filter-field.parser.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-filter/graphql-query-filter-field.parser.ts @@ -1,14 +1,13 @@ import { capitalize } from 'twenty-shared/utils'; import { WhereExpressionBuilder } from 'typeorm'; -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; - import { GraphqlQueryRunnerException, GraphqlQueryRunnerExceptionCode, } from 'src/engine/api/graphql/graphql-query-runner/errors/graphql-query-runner.exception'; import { computeWhereConditionParts } from 'src/engine/api/graphql/graphql-query-runner/utils/compute-where-condition-parts'; import { compositeTypeDefinitions } from 'src/engine/metadata-modules/field-metadata/composite-types'; +import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util'; import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps'; import { CompositeFieldMetadataType } from 'src/engine/metadata-modules/workspace-migration/factories/composite-column-action.factory'; @@ -78,7 +77,7 @@ export class GraphqlQueryFilterFieldParser { private parseCompositeFieldForFilter( queryBuilder: WhereExpressionBuilder, - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, objectNameSingular: string, // eslint-disable-next-line @typescript-eslint/no-explicit-any fieldValue: any, diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-order/graphql-query-order.parser.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-order/graphql-query-order.parser.ts index ac432ef1c..283b56882 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-order/graphql-query-order.parser.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-order/graphql-query-order.parser.ts @@ -4,13 +4,13 @@ import { ObjectRecordOrderBy, OrderByDirection, } from 'src/engine/api/graphql/workspace-query-builder/interfaces/object-record.interface'; -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; import { GraphqlQueryRunnerException, GraphqlQueryRunnerExceptionCode, } from 'src/engine/api/graphql/graphql-query-runner/errors/graphql-query-runner.exception'; import { compositeTypeDefinitions } from 'src/engine/metadata-modules/field-metadata/composite-types'; +import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util'; import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps'; import { CompositeFieldMetadataType } from 'src/engine/metadata-modules/workspace-migration/factories/composite-column-action.factory'; @@ -66,7 +66,7 @@ export class GraphqlQueryOrderFieldParser { } private parseCompositeFieldForOrder( - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, objectNameSingular: string, diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-relation.parser.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-relation.parser.ts index 5cc057320..b42a45c8b 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-relation.parser.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-relation.parser.ts @@ -1,10 +1,9 @@ -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; - import { GraphqlQuerySelectedFieldsParser, GraphqlQuerySelectedFieldsResult, } from 'src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields.parser'; import { getTargetObjectMetadataOrThrow } from 'src/engine/api/graphql/graphql-query-runner/utils/get-target-object-metadata.util'; +import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps'; export class GraphqlQuerySelectedFieldsRelationParser { @@ -15,7 +14,7 @@ export class GraphqlQuerySelectedFieldsRelationParser { } parseRelationField( - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, fieldKey: string, // eslint-disable-next-line @typescript-eslint/no-explicit-any fieldValue: any, diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields.parser.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields.parser.ts index 1b526b40e..1fa24fbcc 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields.parser.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields.parser.ts @@ -1,10 +1,9 @@ import { capitalize } from 'twenty-shared/utils'; -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; - import { GraphqlQuerySelectedFieldsAggregateParser } from 'src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-aggregate.parser'; import { GraphqlQuerySelectedFieldsRelationParser } from 'src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-relation.parser'; import { compositeTypeDefinitions } from 'src/engine/metadata-modules/field-metadata/composite-types'; +import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util'; 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'; @@ -146,7 +145,7 @@ export class GraphqlQuerySelectedFieldsParser { } private parseCompositeField( - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, // eslint-disable-next-line @typescript-eslint/no-explicit-any fieldValue: any, // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/object-records-to-graphql-connection.helper.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/object-records-to-graphql-connection.helper.ts index 33a45e255..d6de7a637 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/object-records-to-graphql-connection.helper.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/object-records-to-graphql-connection.helper.ts @@ -6,7 +6,6 @@ import { ObjectRecordOrderBy, } from 'src/engine/api/graphql/workspace-query-builder/interfaces/object-record.interface'; import { IConnection } from 'src/engine/api/graphql/workspace-query-runner/interfaces/connection.interface'; -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; import { CONNECTION_MAX_DEPTH } from 'src/engine/api/graphql/graphql-query-runner/constants/connection-max-depth.constant'; import { @@ -17,6 +16,7 @@ import { encodeCursor } from 'src/engine/api/graphql/graphql-query-runner/utils/ import { getTargetObjectMetadataOrThrow } from 'src/engine/api/graphql/graphql-query-runner/utils/get-target-object-metadata.util'; import { AggregationField } from 'src/engine/api/graphql/workspace-schema-builder/utils/get-available-aggregations-from-object-fields.util'; import { compositeTypeDefinitions } from 'src/engine/metadata-modules/field-metadata/composite-types'; +import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util'; import { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps'; import { getObjectMetadataMapItemByNameSingular } from 'src/engine/metadata-modules/utils/get-object-metadata-map-item-by-name-singular.util'; @@ -236,7 +236,7 @@ export class ObjectRecordsToGraphqlConnectionHelper { } private processCompositeField( - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, // eslint-disable-next-line @typescript-eslint/no-explicit-any fieldValue: any, // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-nested-relations-v2.helper.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-nested-relations-v2.helper.ts index fb8c9258e..05f4e8c42 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-nested-relations-v2.helper.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-nested-relations-v2.helper.ts @@ -20,7 +20,7 @@ import { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-met import { getObjectMetadataMapItemByNameSingular } from 'src/engine/metadata-modules/utils/get-object-metadata-map-item-by-name-singular.util'; import { WorkspaceDataSource } from 'src/engine/twenty-orm/datasource/workspace.datasource'; import { WorkspaceSelectQueryBuilder } from 'src/engine/twenty-orm/repository/workspace-select-query-builder'; -import { isFieldMetadataInterfaceOfType } from 'src/engine/utils/is-field-metadata-of-type.util'; +import { isFieldMetadataEntityOfType } from 'src/engine/utils/is-field-metadata-of-type.util'; @Injectable() export class ProcessNestedRelationsV2Helper { @@ -118,7 +118,7 @@ export class ProcessNestedRelationsV2Helper { parentObjectMetadataItem.fieldsById[sourceFieldMetadataId]; if ( - !isFieldMetadataInterfaceOfType( + !isFieldMetadataEntityOfType( sourceFieldMetadata, FieldMetadataType.RELATION, ) diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/build-columns-to-select.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/build-columns-to-select.ts index cf8e0f79f..817362052 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/build-columns-to-select.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/build-columns-to-select.ts @@ -4,7 +4,7 @@ import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfa import { InternalServerError } from 'src/engine/core-modules/graphql/utils/graphql-errors.util'; import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-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 buildColumnsToSelect = ({ select, @@ -57,7 +57,7 @@ const getRequiredRelationColumns = ( } if ( - !isFieldMetadataInterfaceOfType(fieldMetadata, FieldMetadataType.RELATION) + !isFieldMetadataEntityOfType(fieldMetadata, FieldMetadataType.RELATION) ) { continue; } diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/get-target-object-metadata.util.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/get-target-object-metadata.util.ts index 36e23802c..bf1efe95c 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/get-target-object-metadata.util.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/get-target-object-metadata.util.ts @@ -1,13 +1,12 @@ -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; - import { GraphqlQueryRunnerException, GraphqlQueryRunnerExceptionCode, } from 'src/engine/api/graphql/graphql-query-runner/errors/graphql-query-runner.exception'; +import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps'; export const getTargetObjectMetadataOrThrow = ( - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, objectMetadataMaps: ObjectMetadataMaps, ) => { if (!fieldMetadata.relationTargetObjectMetadataId) { diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface.ts index 4a543cea0..86d32be90 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface.ts @@ -1,12 +1,13 @@ import { GraphQLResolveInfo } from 'graphql'; -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface'; +import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; + export interface WorkspaceQueryBuilderOptions { objectMetadataItem: ObjectMetadataInterface; info: GraphQLResolveInfo; - fieldMetadataCollection: FieldMetadataInterface[]; + fieldMetadataCollection: FieldMetadataEntity[]; objectMetadataCollection: ObjectMetadataInterface[]; withSoftDeleted?: boolean; } diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/query-result-getters.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/query-result-getters.factory.ts index 4bcf9f91c..4297ec463 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/query-result-getters.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/query-result-getters.factory.ts @@ -21,7 +21,7 @@ import { CompositeInputTypeDefinitionFactory } from 'src/engine/api/graphql/work import { FileService } from 'src/engine/core-modules/file/services/file.service'; 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'; // TODO: find a way to prevent conflict between handlers executing logic on object relations // And this factory that is also executing logic on object relations @@ -136,10 +136,7 @@ export class QueryResultGettersFactory { ) .filter(isDefined) .filter((fieldMetadata) => - isFieldMetadataInterfaceOfType( - fieldMetadata, - FieldMetadataType.RELATION, - ), + isFieldMetadataEntityOfType(fieldMetadata, FieldMetadataType.RELATION), ); const relationFieldsProcessedMap = {} as Record< diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/enum-type-definition.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/enum-type-definition.factory.ts index 408de675f..533074f5d 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/enum-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/enum-type-definition.factory.ts @@ -4,13 +4,13 @@ import { GraphQLEnumType } from 'graphql'; import { isDefined } from 'twenty-shared/utils'; import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface'; import { FieldMetadataComplexOption, FieldMetadataDefaultOption, } from 'src/engine/metadata-modules/field-metadata/dtos/options.input'; +import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { isEnumFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-enum-field-metadata-type.util'; import { transformEnumValue } from 'src/engine/utils/transform-enum-value'; import { pascalCase } from 'src/utils/pascal-case'; @@ -50,7 +50,7 @@ export class EnumTypeDefinitionFactory { private generateEnum( objectName: string, - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, options: WorkspaceBuildSchemaOptions, ): GraphQLEnumType { // FixMe: It's a hack until Typescript get fixed on union types for reduce function diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/extend-object-type-definition-v2.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/extend-object-type-definition-v2.factory.ts index 07b70c484..b519ce2af 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/extend-object-type-definition-v2.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/extend-object-type-definition-v2.factory.ts @@ -15,7 +15,7 @@ import { RelationTypeV2Factory } from 'src/engine/api/graphql/workspace-schema-b import { TypeDefinitionsStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/type-definitions.storage'; import { getResolverArgs } from 'src/engine/api/graphql/workspace-schema-builder/utils/get-resolver-args.util'; import { objectContainsRelationField } from 'src/engine/api/graphql/workspace-schema-builder/utils/object-contains-relation-field'; -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 { ArgsFactory } from './args.factory'; @@ -113,11 +113,11 @@ export class ExtendObjectTypeDefinitionV2Factory { for (const fieldMetadata of objectMetadata.fields) { // Ignore non-relation fields as they are already defined const isRelation = - isFieldMetadataInterfaceOfType( + isFieldMetadataEntityOfType( fieldMetadata, FieldMetadataType.RELATION, ) || - isFieldMetadataInterfaceOfType( + isFieldMetadataEntityOfType( fieldMetadata, FieldMetadataType.MORPH_RELATION, ); diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/relation-connect-input-type-definition.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/relation-connect-input-type-definition.factory.ts index d5a4c809d..8a57494af 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/relation-connect-input-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/relation-connect-input-type-definition.factory.ts @@ -8,7 +8,6 @@ import { } from 'graphql'; import { getUniqueConstraintsFields } from 'twenty-shared/utils'; -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface'; import { @@ -17,6 +16,7 @@ import { } from 'src/engine/api/graphql/workspace-schema-builder/factories/input-type-definition.factory'; import { TypeMapperService } from 'src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service'; import { compositeTypeDefinitions } from 'src/engine/metadata-modules/field-metadata/composite-types'; +import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util'; import { pascalCase } from 'src/utils/pascal-case'; @@ -63,7 +63,7 @@ export class RelationConnectInputTypeDefinitionFactory { objectMetadata: ObjectMetadataInterface, ): Record { const uniqueConstraints = getUniqueConstraintsFields< - FieldMetadataInterface, + FieldMetadataEntity, ObjectMetadataInterface >(objectMetadata); @@ -140,7 +140,7 @@ export class RelationConnectInputTypeDefinitionFactory { }; } - private formatConstraints(constraints: FieldMetadataInterface[][]) { + private formatConstraints(constraints: FieldMetadataEntity[][]) { return constraints .map((constraint) => constraint.map((field) => field.name).join(' and ')) .join(' or '); diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/relation-type-v2.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/relation-type-v2.factory.ts index 2775576f1..bdc666c81 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/relation-type-v2.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/relation-type-v2.factory.ts @@ -3,10 +3,10 @@ import { Injectable, Logger } from '@nestjs/common'; import { GraphQLOutputType } from 'graphql'; 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 { TypeDefinitionsStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/type-definitions.storage'; +import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { ObjectTypeDefinitionKind } from './object-type-definition.factory'; @@ -19,7 +19,7 @@ export class RelationTypeV2Factory { ) {} public create( - fieldMetadata: FieldMetadataInterface< + fieldMetadata: FieldMetadataEntity< FieldMetadataType.RELATION | FieldMetadataType.MORPH_RELATION >, ): GraphQLOutputType { diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/generate-fields.utils.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/generate-fields.utils.ts index f3f03a24f..baafa9b1c 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/generate-fields.utils.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/generate-fields.utils.ts @@ -8,15 +8,15 @@ import { FieldMetadataType } from 'twenty-shared/types'; import { isDefined } from 'twenty-shared/utils'; import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface'; import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; import { InputTypeDefinitionKind } from 'src/engine/api/graphql/workspace-schema-builder/factories/input-type-definition.factory'; import { ObjectTypeDefinitionKind } from 'src/engine/api/graphql/workspace-schema-builder/factories/object-type-definition.factory'; import { formatRelationConnectInputTarget } from 'src/engine/api/graphql/workspace-schema-builder/factories/relation-connect-input-type-definition.factory'; +import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.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'; type TypeFactory = { @@ -63,11 +63,8 @@ export const generateFields = < let generatedField; const isRelation = - isFieldMetadataInterfaceOfType( - fieldMetadata, - FieldMetadataType.RELATION, - ) || - isFieldMetadataInterfaceOfType( + isFieldMetadataEntityOfType(fieldMetadata, FieldMetadataType.RELATION) || + isFieldMetadataEntityOfType( fieldMetadata, FieldMetadataType.MORPH_RELATION, ); @@ -95,7 +92,7 @@ export const generateFields = < }; const getTarget = ( - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, ) => { return isCompositeFieldMetadataType(fieldMetadata.type) ? fieldMetadata.type.toString() @@ -103,7 +100,7 @@ const getTarget = ( }; const getTypeFactoryOptions = ( - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, kind: InputTypeDefinitionKind | ObjectTypeDefinitionKind, ) => { return isInputTypeDefinitionKind(kind) @@ -133,7 +130,7 @@ const generateField = < options, typeFactory, }: { - fieldMetadata: FieldMetadataInterface; + fieldMetadata: FieldMetadataEntity; kind: T; options: WorkspaceBuildSchemaOptions; typeFactory: TypeFactory; @@ -166,7 +163,7 @@ const generateRelationField = < options, typeFactory, }: { - fieldMetadata: FieldMetadataInterface< + fieldMetadata: FieldMetadataEntity< FieldMetadataType.RELATION | FieldMetadataType.MORPH_RELATION >; kind: T; diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/get-available-aggregations-from-object-fields.util.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/get-available-aggregations-from-object-fields.util.ts index 0e7e73e71..b58b2e955 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/get-available-aggregations-from-object-fields.util.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/get-available-aggregations-from-object-fields.util.ts @@ -5,9 +5,8 @@ import { FIELD_FOR_TOTAL_COUNT_AGGREGATE_OPERATION } from 'twenty-shared/constan import { FieldMetadataType } from 'twenty-shared/types'; import { capitalize, isFieldMetadataDateKind } from 'twenty-shared/utils'; -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; - import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant'; +import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { getSubfieldsForAggregateOperation } from 'src/engine/twenty-orm/utils/get-subfields-for-aggregate-operation.util'; export type AggregationField = { @@ -21,7 +20,7 @@ export type AggregationField = { }; export const getAvailableAggregationsFromObjectFields = ( - fields: FieldMetadataInterface[], + fields: FieldMetadataEntity[], ): Record => { return fields.reduce>( (acc, field) => { diff --git a/packages/twenty-server/src/engine/api/rest/core/interfaces/rest-api-base.handler.ts b/packages/twenty-server/src/engine/api/rest/core/interfaces/rest-api-base.handler.ts index 93192e0b2..a6244d199 100644 --- a/packages/twenty-server/src/engine/api/rest/core/interfaces/rest-api-base.handler.ts +++ b/packages/twenty-server/src/engine/api/rest/core/interfaces/rest-api-base.handler.ts @@ -34,7 +34,7 @@ import { WorkspaceSelectQueryBuilder } from 'src/engine/twenty-orm/repository/wo import { WorkspaceRepository } from 'src/engine/twenty-orm/repository/workspace.repository'; import { TwentyORMManager } from 'src/engine/twenty-orm/twenty-orm.manager'; import { formatResult as formatGetManyData } from 'src/engine/twenty-orm/utils/format-result.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'; export interface PageInfo { hasNextPage?: boolean; @@ -160,7 +160,7 @@ export abstract class RestApiBaseHandler { Object.values(objectMetadata.objectMetadataMapItem.fieldsById).forEach( (field) => { - if (isFieldMetadataInterfaceOfType(field, FieldMetadataType.RELATION)) { + if (isFieldMetadataEntityOfType(field, FieldMetadataType.RELATION)) { if ( depth === MAX_DEPTH && isDefined(field.relationTargetObjectMetadataId) diff --git a/packages/twenty-server/src/engine/api/rest/core/query-builder/utils/check-fields.utils.ts b/packages/twenty-server/src/engine/api/rest/core/query-builder/utils/check-fields.utils.ts index f4ffedb22..1ac9c06af 100644 --- a/packages/twenty-server/src/engine/api/rest/core/query-builder/utils/check-fields.utils.ts +++ b/packages/twenty-server/src/engine/api/rest/core/query-builder/utils/check-fields.utils.ts @@ -7,7 +7,7 @@ import { compositeTypeDefinitions } from 'src/engine/metadata-modules/field-meta import { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util'; import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps'; import { computeObjectTargetTable } from 'src/engine/utils/compute-object-target-table.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'; export const checkFields = ( objectMetadataItemWithFieldsMaps: ObjectMetadataItemWithFieldMaps, @@ -35,7 +35,7 @@ export const checkFields = ( ].flat(); } - if (isFieldMetadataInterfaceOfType(field, FieldMetadataType.RELATION)) { + if (isFieldMetadataEntityOfType(field, FieldMetadataType.RELATION)) { return field.settings?.joinColumnName; } diff --git a/packages/twenty-server/src/engine/api/rest/core/query-builder/utils/map-field-metadata-to-graphql-query.utils.ts b/packages/twenty-server/src/engine/api/rest/core/query-builder/utils/map-field-metadata-to-graphql-query.utils.ts index 4e90c2755..d7d4b85ea 100644 --- a/packages/twenty-server/src/engine/api/rest/core/query-builder/utils/map-field-metadata-to-graphql-query.utils.ts +++ b/packages/twenty-server/src/engine/api/rest/core/query-builder/utils/map-field-metadata-to-graphql-query.utils.ts @@ -1,18 +1,18 @@ import { FieldMetadataType } from 'twenty-shared/types'; import { isDefined } from 'twenty-shared/utils'; -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 { 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'; const DEFAULT_DEPTH_VALUE = 1; // TODO: Should be properly type and based on composite type definitions export const mapFieldMetadataToGraphqlQuery = ( objectMetadataMaps: ObjectMetadataMaps, - field: FieldMetadataInterface, + field: FieldMetadataEntity, maxDepthForRelations = DEFAULT_DEPTH_VALUE, ): string | undefined => { if (maxDepthForRelations < 0) { @@ -40,8 +40,8 @@ export const mapFieldMetadataToGraphqlQuery = ( ].includes(fieldType); const isRelation = - isFieldMetadataInterfaceOfType(field, FieldMetadataType.RELATION) || - isFieldMetadataInterfaceOfType(field, FieldMetadataType.MORPH_RELATION); + isFieldMetadataEntityOfType(field, FieldMetadataType.RELATION) || + isFieldMetadataEntityOfType(field, FieldMetadataType.MORPH_RELATION); if (fieldIsSimpleValue) { return field.name; diff --git a/packages/twenty-server/src/engine/dataloaders/dataloader.service.ts b/packages/twenty-server/src/engine/dataloaders/dataloader.service.ts index 097caf9db..83b965809 100644 --- a/packages/twenty-server/src/engine/dataloaders/dataloader.service.ts +++ b/packages/twenty-server/src/engine/dataloaders/dataloader.service.ts @@ -4,14 +4,13 @@ import DataLoader from 'dataloader'; import { APP_LOCALES } from 'twenty-shared/translations'; import { isDefined } from 'twenty-shared/utils'; -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-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'; import { IDataloaders } from 'src/engine/dataloaders/dataloader.interface'; import { filterMorphRelationDuplicateFieldsDTO } from 'src/engine/dataloaders/utils/filter-morph-relation-duplicate-fields.util'; import { FieldMetadataDTO } from 'src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto'; -import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { FieldMetadataMorphRelationService } from 'src/engine/metadata-modules/field-metadata/services/field-metadata-morph-relation.service'; import { FieldMetadataRelationService } from 'src/engine/metadata-modules/field-metadata/services/field-metadata-relation.service'; import { fromFieldMetadataEntityToFieldMetadataDto } from 'src/engine/metadata-modules/field-metadata/utils/from-field-metadata-entity-to-fieldMetadata-dto.util'; @@ -23,16 +22,13 @@ import { WorkspaceMetadataCacheService } from 'src/engine/metadata-modules/works export type RelationMetadataLoaderPayload = { workspaceId: string; - fieldMetadata: Pick< - FieldMetadataInterface, - 'type' | 'id' | 'objectMetadataId' - >; + fieldMetadata: Pick; }; export type RelationLoaderPayload = { workspaceId: string; fieldMetadata: Pick< - FieldMetadataInterface, + FieldMetadataEntity, | 'type' | 'id' | 'objectMetadataId' @@ -44,7 +40,7 @@ export type RelationLoaderPayload = { export type MorphRelationLoaderPayload = { workspaceId: string; fieldMetadata: Pick< - FieldMetadataInterface, + FieldMetadataEntity, | 'type' | 'id' | 'objectMetadataId' @@ -219,7 +215,7 @@ export class DataloaderService { 'icon', 'label', 'description', - ] as const satisfies (keyof FieldMetadataInterface)[]; + ] as const satisfies (keyof FieldMetadataEntity)[]; const overrides = overridesFieldToCompute.reduce< Partial> diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface.ts deleted file mode 100644 index 6685a308b..000000000 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface.ts +++ /dev/null @@ -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; diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface.ts index 3c9054aac..68bb2af90 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface.ts @@ -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; diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-enum-validation.service.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-enum-validation.service.ts index 43103340d..ea42f14a4 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-enum-validation.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-enum-validation.service.ts @@ -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; diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-morph-relation.service.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-morph-relation.service.ts index daffd496b..645c9aa52 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-morph-relation.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-morph-relation.service.ts @@ -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' diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-relation.service.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-relation.service.ts index ba8c47165..92900bc97 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-relation.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-relation.service.ts @@ -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 = 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, ); diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-validation.service.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-validation.service.ts index 6745c52cc..f31600906 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-validation.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata-validation.service.ts @@ -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 { diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata.service.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata.service.ts index a02700119..ccdfd0c11 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/services/field-metadata.service.ts @@ -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, ) => { diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/check-can-deactivate-field-or-throw.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/check-can-deactivate-field-or-throw.ts index 620d4e57e..a01ce78ca 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/check-can-deactivate-field-or-throw.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/check-can-deactivate-field-or-throw.ts @@ -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; }; export const checkCanDeactivateFieldOrThrow = ({ diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/compute-column-name.util.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/compute-column-name.util.ts index 68887959a..a9ee3bfbb 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/compute-column-name.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/compute-column-name.util.ts @@ -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( - fieldMetadata: FieldMetadataInterface, - ioptions?: ComputeColumnNameOptions, + fieldMetadata: FieldMetadataEntity, + options?: ComputeColumnNameOptions, ): string; // TODO: If we need to implement custom name logic for columns, we can do it here export function computeColumnName( - fieldMetadataOrFieldName: FieldMetadataInterface | string, + fieldMetadataOrFieldName: FieldMetadataEntity | string, options?: ComputeColumnNameOptions, ): string { const generateName = (name: string) => { @@ -52,13 +52,13 @@ export function computeCompositeColumnName( compositeProperty: CompositeProperty, ): string; export function computeCompositeColumnName( - fieldMetadata: FieldTypeAndNameMetadata | FieldMetadataInterface, + fieldMetadata: FieldTypeAndNameMetadata | FieldMetadataEntity, compositeProperty: CompositeProperty, ): string; export function computeCompositeColumnName( fieldMetadataOrFieldName: | FieldTypeAndNameMetadata - | FieldMetadataInterface + | FieldMetadataEntity | string, compositeProperty: CompositeProperty, ): string { diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/is-select-or-multi-select-field-metadata.util.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/is-select-or-multi-select-field-metadata.util.ts index 1831353c4..e87ca7868 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/is-select-or-multi-select-field-metadata.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/is-select-or-multi-select-field-metadata.util.ts @@ -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, diff --git a/packages/twenty-server/src/engine/metadata-modules/index-metadata/interfaces/index-field-metadata.interface.ts b/packages/twenty-server/src/engine/metadata-modules/index-metadata/interfaces/index-field-metadata.interface.ts index 30bd90bbb..e44de2a0c 100644 --- a/packages/twenty-server/src/engine/metadata-modules/index-metadata/interfaces/index-field-metadata.interface.ts +++ b/packages/twenty-server/src/engine/metadata-modules/index-metadata/interfaces/index-field-metadata.interface.ts @@ -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; diff --git a/packages/twenty-server/src/engine/metadata-modules/object-metadata/services/object-metadata-migration.service.ts b/packages/twenty-server/src/engine/metadata-modules/object-metadata/services/object-metadata-migration.service.ts index 0b61c2783..890490188 100644 --- a/packages/twenty-server/src/engine/metadata-modules/object-metadata/services/object-metadata-migration.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/object-metadata/services/object-metadata-migration.service.ts @@ -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 >[]; diff --git a/packages/twenty-server/src/engine/metadata-modules/types/field-metadata-map.ts b/packages/twenty-server/src/engine/metadata-modules/types/field-metadata-map.ts index f3dffb8c6..b12b46f0a 100644 --- a/packages/twenty-server/src/engine/metadata-modules/types/field-metadata-map.ts +++ b/packages/twenty-server/src/engine/metadata-modules/types/field-metadata-map.ts @@ -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; +export type FieldMetadataMap = Record; diff --git a/packages/twenty-server/src/engine/metadata-modules/utils/generate-object-metadata-maps.util.ts b/packages/twenty-server/src/engine/metadata-modules/utils/generate-object-metadata-maps.util.ts index 60c75bb4a..4d9e7e37c 100644 --- a/packages/twenty-server/src/engine/metadata-modules/utils/generate-object-metadata-maps.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/utils/generate-object-metadata-maps.util.ts @@ -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] = diff --git a/packages/twenty-server/src/engine/metadata-modules/utils/validate-metadata-identifier-field-metadata-id.utils.ts b/packages/twenty-server/src/engine/metadata-modules/utils/validate-metadata-identifier-field-metadata-id.utils.ts index adbbf5ac9..399354b84 100644 --- a/packages/twenty-server/src/engine/metadata-modules/utils/validate-metadata-identifier-field-metadata-id.utils.ts +++ b/packages/twenty-server/src/engine/metadata-modules/utils/validate-metadata-identifier-field-metadata-id.utils.ts @@ -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, diff --git a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/basic-column-action.factory.ts b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/basic-column-action.factory.ts index c18f4cf23..9fa1734c7 100644 --- a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/basic-column-action.factory.ts +++ b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/basic-column-action.factory.ts @@ -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, + fieldMetadata: FieldMetadataEntity, options?: WorkspaceColumnActionOptions, ): WorkspaceMigrationColumnCreate[] { const columnName = computeColumnName(fieldMetadata); @@ -57,8 +57,8 @@ export class BasicColumnActionFactory extends ColumnActionAbstractFactory, - alteredFieldMetadata: FieldMetadataInterface, + currentFieldMetadata: FieldMetadataEntity, + alteredFieldMetadata: FieldMetadataEntity, options?: WorkspaceColumnActionOptions, ): WorkspaceMigrationColumnAlter[] { const currentColumnName = computeColumnName(currentFieldMetadata); diff --git a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/column-action-abstract.factory.ts b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/column-action-abstract.factory.ts index 4b2e401c9..dc6cf4db3 100644 --- a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/column-action-abstract.factory.ts +++ b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/column-action-abstract.factory.ts @@ -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 action: | WorkspaceMigrationColumnActionType.CREATE | WorkspaceMigrationColumnActionType.ALTER, - currentFieldMetadata: FieldMetadataInterface | undefined, - alteredFieldMetadata: FieldMetadataInterface, + currentFieldMetadata: FieldMetadataEntity | undefined, + alteredFieldMetadata: FieldMetadataEntity, options?: WorkspaceColumnActionOptions, ): WorkspaceMigrationColumnAction[] { switch (action) { @@ -59,7 +59,7 @@ export class ColumnActionAbstractFactory } protected handleCreateAction( - _fieldMetadata: FieldMetadataInterface, + _fieldMetadata: FieldMetadataEntity, _options?: WorkspaceColumnActionOptions, ): WorkspaceMigrationColumnCreate[] { throw new WorkspaceMigrationException( @@ -69,8 +69,8 @@ export class ColumnActionAbstractFactory } protected handleAlterAction( - _currentFieldMetadata: FieldMetadataInterface, - _alteredFieldMetadata: FieldMetadataInterface, + _currentFieldMetadata: FieldMetadataEntity, + _alteredFieldMetadata: FieldMetadataEntity, _options?: WorkspaceColumnActionOptions, ): WorkspaceMigrationColumnAlter[] { throw new WorkspaceMigrationException( diff --git a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/composite-column-action.factory.ts b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/composite-column-action.factory.ts index 605bbd322..44f3c5b53 100644 --- a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/composite-column-action.factory.ts +++ b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/composite-column-action.factory.ts @@ -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, + fieldMetadata: FieldMetadataEntity, ): WorkspaceMigrationColumnCreate[] { const compositeType = compositeTypeDefinitions.get(fieldMetadata.type); @@ -83,8 +82,8 @@ export class CompositeColumnActionFactory extends ColumnActionAbstractFactory, - alteredFieldMetadata: FieldMetadataInterface, + currentFieldMetadata: FieldMetadataEntity, + alteredFieldMetadata: FieldMetadataEntity, ): WorkspaceMigrationColumnAlter[] { const currentCompositeType = compositeTypeDefinitions.get( currentFieldMetadata.type, diff --git a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/enum-column-action.factory.ts b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/enum-column-action.factory.ts index 6b9f48a96..f4e936102 100644 --- a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/enum-column-action.factory.ts +++ b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/enum-column-action.factory.ts @@ -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, + fieldMetadata: FieldMetadataEntity, options: WorkspaceColumnActionOptions, ): WorkspaceMigrationColumnCreate[] { const columnName = computeColumnName(fieldMetadata); @@ -54,8 +54,8 @@ export class EnumColumnActionFactory extends ColumnActionAbstractFactory, - alteredFieldMetadata: FieldMetadataInterface, + currentFieldMetadata: FieldMetadataEntity, + alteredFieldMetadata: FieldMetadataEntity, options: WorkspaceColumnActionOptions, ): WorkspaceMigrationColumnAlter[] { const currentColumnName = computeColumnName(currentFieldMetadata); diff --git a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/morph-relation-column-action.factory.ts b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/morph-relation-column-action.factory.ts index 17f8f7089..5f0cf0072 100644 --- a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/morph-relation-column-action.factory.ts +++ b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/morph-relation-column-action.factory.ts @@ -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, + fieldMetadata: FieldMetadataEntity, _options?: WorkspaceColumnActionOptions, ): WorkspaceMigrationColumnCreate[] { if (!fieldMetadata.settings || !fieldMetadata.settings.joinColumnName) { @@ -46,8 +46,8 @@ export class MorphRelationColumnActionFactory extends ColumnActionAbstractFactor } protected handleAlterAction( - currentFieldMetadata: FieldMetadataInterface, - alteredFieldMetadata: FieldMetadataInterface, + currentFieldMetadata: FieldMetadataEntity, + alteredFieldMetadata: FieldMetadataEntity, _options?: WorkspaceColumnActionOptions, ): WorkspaceMigrationColumnAlter[] { if (!currentFieldMetadata.settings || !alteredFieldMetadata.settings) { diff --git a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/relation-column-action.factory.ts b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/relation-column-action.factory.ts index 2feb82fdc..63da457b4 100644 --- a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/relation-column-action.factory.ts +++ b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/relation-column-action.factory.ts @@ -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, + fieldMetadata: FieldMetadataEntity, _options?: WorkspaceColumnActionOptions, ): WorkspaceMigrationColumnCreate[] { if (!fieldMetadata.settings || !fieldMetadata.settings.joinColumnName) { @@ -46,8 +46,8 @@ export class RelationColumnActionFactory extends ColumnActionAbstractFactory, - alteredFieldMetadata: FieldMetadataInterface, + currentFieldMetadata: FieldMetadataEntity, + alteredFieldMetadata: FieldMetadataEntity, _options?: WorkspaceColumnActionOptions, ): WorkspaceMigrationColumnAlter[] { if (!currentFieldMetadata.settings || !alteredFieldMetadata.settings) { diff --git a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/ts-vector-column-action.factory.ts b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/ts-vector-column-action.factory.ts index bc6873937..83dd15e03 100644 --- a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/ts-vector-column-action.factory.ts +++ b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/factories/ts-vector-column-action.factory.ts @@ -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 & { + FieldMetadataEntity & { generatedType?: 'STORED' | 'VIRTUAL'; asExpression?: string; }; diff --git a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-factory.interface.ts b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-factory.interface.ts index a0cdb3312..85b62eccd 100644 --- a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-factory.interface.ts +++ b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/interfaces/workspace-column-action-factory.interface.ts @@ -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 { action: | WorkspaceMigrationColumnActionType.CREATE | WorkspaceMigrationColumnActionType.ALTER, - currentFieldMetadata: FieldMetadataInterface | undefined, - alteredFieldMetadata: FieldMetadataInterface, + currentFieldMetadata: FieldMetadataEntity | undefined, + alteredFieldMetadata: FieldMetadataEntity, options?: WorkspaceColumnActionOptions, ): WorkspaceMigrationColumnAction[]; } diff --git a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/workspace-migration.factory.ts b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/workspace-migration.factory.ts index 98ed1fa46..561fa10bf 100644 --- a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/workspace-migration.factory.ts +++ b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/workspace-migration.factory.ts @@ -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( action: WorkspaceMigrationColumnActionType.CREATE, - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, ): 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) ?? {}; diff --git a/packages/twenty-server/src/engine/twenty-orm/entity-manager/types/relation-connect-query-config.type.ts b/packages/twenty-server/src/engine/twenty-orm/entity-manager/types/relation-connect-query-config.type.ts index c0b69a86e..4de6eeea7 100644 --- a/packages/twenty-server/src/engine/twenty-orm/entity-manager/types/relation-connect-query-config.type.ts +++ b/packages/twenty-server/src/engine/twenty-orm/entity-manager/types/relation-connect-query-config.type.ts @@ -1,6 +1,6 @@ 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 UniqueFieldCondition = [field: string, value: string]; @@ -11,7 +11,7 @@ export type RelationConnectQueryConfig = { recordToConnectConditions: UniqueConstraintCondition[]; relationFieldName: string; connectFieldName: string; - uniqueConstraintFields: FieldMetadataInterface[]; + uniqueConstraintFields: FieldMetadataEntity[]; recordToConnectConditionByEntityIndex: { [entityIndex: number]: UniqueConstraintCondition; }; diff --git a/packages/twenty-server/src/engine/twenty-orm/factories/entity-schema-column.factory.ts b/packages/twenty-server/src/engine/twenty-orm/factories/entity-schema-column.factory.ts index 901584e57..29da44c20 100644 --- a/packages/twenty-server/src/engine/twenty-orm/factories/entity-schema-column.factory.ts +++ b/packages/twenty-server/src/engine/twenty-orm/factories/entity-schema-column.factory.ts @@ -4,10 +4,10 @@ import { FieldMetadataType } from 'twenty-shared/types'; import { isDefined } from 'twenty-shared/utils'; import { ColumnType, EntitySchemaColumnOptions } 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 { 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 { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util'; import { isEnumFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-enum-field-metadata-type.util'; @@ -18,7 +18,7 @@ import { TwentyORMException, TwentyORMExceptionCode, } from 'src/engine/twenty-orm/exceptions/twenty-orm.exception'; -import { isFieldMetadataInterfaceOfType } from 'src/engine/utils/is-field-metadata-of-type.util'; +import { isFieldMetadataEntityOfType } from 'src/engine/utils/is-field-metadata-of-type.util'; type EntitySchemaColumnMap = { [key: string]: EntitySchemaColumnOptions; @@ -39,11 +39,11 @@ export class EntitySchemaColumnFactory { const key = fieldMetadata.name; const isRelation = - isFieldMetadataInterfaceOfType( + isFieldMetadataEntityOfType( fieldMetadata, FieldMetadataType.RELATION, ) || - isFieldMetadataInterfaceOfType( + isFieldMetadataEntityOfType( fieldMetadata, FieldMetadataType.MORPH_RELATION, ); @@ -113,7 +113,7 @@ export class EntitySchemaColumnFactory { } private createCompositeColumns( - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, ): EntitySchemaColumnMap { const entitySchemaColumnMap: EntitySchemaColumnMap = {}; const compositeType = compositeTypeDefinitions.get(fieldMetadata.type); diff --git a/packages/twenty-server/src/engine/twenty-orm/factories/entity-schema-relation.factory.ts b/packages/twenty-server/src/engine/twenty-orm/factories/entity-schema-relation.factory.ts index 814aeb5dc..cf42b9a0b 100644 --- a/packages/twenty-server/src/engine/twenty-orm/factories/entity-schema-relation.factory.ts +++ b/packages/twenty-server/src/engine/twenty-orm/factories/entity-schema-relation.factory.ts @@ -6,7 +6,7 @@ import { EntitySchemaRelationOptions } from 'typeorm'; 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 { determineSchemaRelationDetails } from 'src/engine/twenty-orm/utils/determine-schema-relation-details.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'; type EntitySchemaRelationMap = { [key: string]: EntitySchemaRelationOptions; @@ -28,11 +28,11 @@ export class EntitySchemaRelationFactory { for (const fieldMetadata of fieldMetadataCollection) { const isRelation = - isFieldMetadataInterfaceOfType( + isFieldMetadataEntityOfType( fieldMetadata, FieldMetadataType.RELATION, ) || - isFieldMetadataInterfaceOfType( + isFieldMetadataEntityOfType( fieldMetadata, FieldMetadataType.MORPH_RELATION, ); diff --git a/packages/twenty-server/src/engine/twenty-orm/utils/compute-relation-connect-query-configs.util.ts b/packages/twenty-server/src/engine/twenty-orm/utils/compute-relation-connect-query-configs.util.ts index 5b1f5310c..b93fa0d09 100644 --- a/packages/twenty-server/src/engine/twenty-orm/utils/compute-relation-connect-query-configs.util.ts +++ b/packages/twenty-server/src/engine/twenty-orm/utils/compute-relation-connect-query-configs.util.ts @@ -3,10 +3,10 @@ import deepEqual from 'deep-equal'; import { FieldMetadataType } from 'twenty-shared/types'; import { getUniqueConstraintsFields, isDefined } from 'twenty-shared/utils'; -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-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 { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util'; 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'; @@ -21,7 +21,7 @@ import { } from 'src/engine/twenty-orm/exceptions/twenty-orm.exception'; import { formatCompositeField } from 'src/engine/twenty-orm/utils/format-data.util'; import { getAssociatedRelationFieldName } from 'src/engine/twenty-orm/utils/get-associated-relation-field-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'; export const computeRelationConnectQueryConfigs = ( entities: Record[], @@ -101,7 +101,7 @@ const updateConnectQueryConfigs = ( const createConnectQueryConfig = ( connectFieldName: string, recordToConnectCondition: UniqueConstraintCondition, - uniqueConstraintFields: FieldMetadataInterface[], + uniqueConstraintFields: FieldMetadataEntity[], targetObjectNameSingular: string, entityIndex: number, ) => { @@ -125,14 +125,14 @@ const computeRecordToConnectCondition = ( entity: Record, ): { recordToConnectCondition: UniqueConstraintCondition; - uniqueConstraintFields: FieldMetadataInterface[]; + uniqueConstraintFields: FieldMetadataEntity[]; targetObjectNameSingular: string; } => { const field = objectMetadata.fieldsById[objectMetadata.fieldIdByName[connectFieldName]]; if ( - !isFieldMetadataInterfaceOfType(field, FieldMetadataType.RELATION) || + !isFieldMetadataEntityOfType(field, FieldMetadataType.RELATION) || field.settings?.relationType !== RelationType.MANY_TO_ONE ) { const objectMetadataNameSingular = objectMetadata.nameSingular; @@ -239,7 +239,7 @@ const checkUniqueConstraintFullyPopulated = ( connectFieldName: string, ) => { const uniqueConstraintsFields = getUniqueConstraintsFields< - FieldMetadataInterface, + FieldMetadataEntity, ObjectMetadataInterface >({ ...objectMetadata, @@ -298,7 +298,7 @@ const checkNoRelationFieldConflictOrThrow = ( }; const computeUniqueConstraintCondition = ( - uniqueConstraintFields: FieldMetadataInterface[], + uniqueConstraintFields: FieldMetadataEntity[], connectObject: ConnectObject, ): UniqueConstraintCondition => { return uniqueConstraintFields.reduce((acc, uniqueConstraintField) => { @@ -326,7 +326,7 @@ const computeUniqueConstraintCondition = ( const checkUniqueConstraintsAreSameOrThrow = ( relationConnectQueryConfig: RelationConnectQueryConfig, - uniqueConstraintFields: FieldMetadataInterface[], + uniqueConstraintFields: FieldMetadataEntity[], ) => { if ( !deepEqual( diff --git a/packages/twenty-server/src/engine/twenty-orm/utils/determine-schema-relation-details.util.ts b/packages/twenty-server/src/engine/twenty-orm/utils/determine-schema-relation-details.util.ts index f14d68fec..40dc20a21 100644 --- a/packages/twenty-server/src/engine/twenty-orm/utils/determine-schema-relation-details.util.ts +++ b/packages/twenty-server/src/engine/twenty-orm/utils/determine-schema-relation-details.util.ts @@ -1,8 +1,7 @@ import { FieldMetadataType } from 'twenty-shared/types'; import { RelationType } from 'typeorm/metadata/types/RelationTypes'; -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 { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps'; import { RelationException, @@ -18,7 +17,7 @@ interface RelationDetails { } export async function determineSchemaRelationDetails( - fieldMetadata: FieldMetadataInterface< + fieldMetadata: FieldMetadataEntity< FieldMetadataType.RELATION | FieldMetadataType.MORPH_RELATION >, objectMetadataMaps: ObjectMetadataMaps, diff --git a/packages/twenty-server/src/engine/twenty-orm/utils/format-data.util.ts b/packages/twenty-server/src/engine/twenty-orm/utils/format-data.util.ts index 47be7274c..c7f76b811 100644 --- a/packages/twenty-server/src/engine/twenty-orm/utils/format-data.util.ts +++ b/packages/twenty-server/src/engine/twenty-orm/utils/format-data.util.ts @@ -1,9 +1,8 @@ import { FieldMetadataType } from 'twenty-shared/types'; import { capitalize } from 'twenty-shared/utils'; -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 { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util'; import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps'; import { CompositeFieldMetadataType } from 'src/engine/metadata-modules/workspace-migration/factories/composite-column-action.factory'; @@ -57,7 +56,7 @@ export function formatData( export function formatCompositeField( // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Record { const compositeType = compositeTypeDefinitions.get( @@ -80,7 +79,7 @@ export function formatCompositeField( if (value && value[subFieldKey] !== undefined) { formattedCompositeField[fullFieldName] = formatFieldMetadataValue( value[subFieldKey], - property as unknown as FieldMetadataInterface, + property as unknown as FieldMetadataEntity, ); } } @@ -91,7 +90,7 @@ export function formatCompositeField( function formatFieldMetadataValue( // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, ) { if ( fieldMetadata.type === FieldMetadataType.RAW_JSON && diff --git a/packages/twenty-server/src/engine/twenty-orm/utils/format-result.util.ts b/packages/twenty-server/src/engine/twenty-orm/utils/format-result.util.ts index 4cf328269..d99983b45 100644 --- a/packages/twenty-server/src/engine/twenty-orm/utils/format-result.util.ts +++ b/packages/twenty-server/src/engine/twenty-orm/utils/format-result.util.ts @@ -4,14 +4,13 @@ import { isNonEmptyString } from '@sniptt/guards'; import { FieldMetadataType } from 'twenty-shared/types'; import { isDefined } from 'twenty-shared/utils'; -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 { 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 { getCompositeFieldMetadataCollection } from 'src/engine/twenty-orm/utils/get-composite-field-metadata-collection'; -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 { isDate } from 'src/utils/date/isDate'; import { isValidDate } from 'src/utils/date/isValidDate'; @@ -52,13 +51,10 @@ export function formatResult( const fieldMetadata = objectMetadataItemWithFieldMaps.fieldsById[ fieldMetadataId - ] as FieldMetadataInterface | undefined; + ] as FieldMetadataEntity | undefined; const isRelation = fieldMetadata - ? isFieldMetadataInterfaceOfType( - fieldMetadata, - FieldMetadataType.RELATION, - ) + ? isFieldMetadataEntityOfType(fieldMetadata, FieldMetadataType.RELATION) : false; if (!compositePropertyArgs && !isRelation) { @@ -204,7 +200,7 @@ export function getCompositeFieldMetadataMap( function formatFieldMetadataValue( // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, - fieldMetadata: FieldMetadataInterface, + fieldMetadata: FieldMetadataEntity, ) { if ( typeof value === 'string' && diff --git a/packages/twenty-server/src/engine/utils/is-field-metadata-of-type.util.ts b/packages/twenty-server/src/engine/utils/is-field-metadata-of-type.util.ts index 45c5e5956..f0b184e72 100644 --- a/packages/twenty-server/src/engine/utils/is-field-metadata-of-type.util.ts +++ b/packages/twenty-server/src/engine/utils/is-field-metadata-of-type.util.ts @@ -1,19 +1,7 @@ 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 function isFieldMetadataInterfaceOfType< - Field extends FieldMetadataInterface, - Type extends FieldMetadataType, ->( - fieldMetadata: Pick, - type: Type, -): fieldMetadata is Field & FieldMetadataInterface { - return fieldMetadata.type === type; -} - export function isFieldMetadataEntityOfType< Field extends FieldMetadataEntity, Type extends FieldMetadataType, diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface.ts index ee13a2491..38118fa79 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface.ts @@ -1,15 +1,15 @@ import { FieldMetadataType } from 'twenty-shared/types'; -import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; import { WorkspaceDynamicRelationMetadataArgsFactory } from 'src/engine/twenty-orm/interfaces/workspace-dynamic-relation-metadata-args.interface'; +import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity'; // Should get deprecated in favor of the FlatFieldMetadata export type PartialFieldMetadata< T extends FieldMetadataType = FieldMetadataType, > = Omit< - FieldMetadataInterface, + FieldMetadataEntity, | 'id' | 'label' | 'description'