diff --git a/packages/twenty-server/src/database/typeorm-seeds/core/feature-flags.ts b/packages/twenty-server/src/database/typeorm-seeds/core/feature-flags.ts index 27b27fcc3..8d3036235 100644 --- a/packages/twenty-server/src/database/typeorm-seeds/core/feature-flags.ts +++ b/packages/twenty-server/src/database/typeorm-seeds/core/feature-flags.ts @@ -55,6 +55,11 @@ export const seedFeatureFlags = async ( workspaceId: workspaceId, value: false, }, + { + key: FeatureFlagKey.IsQueryRunnerTwentyORMEnabled, + workspaceId: workspaceId, + value: true, + }, ]) .execute(); }; diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-many-resolver.service.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-many-resolver.service.ts index d05a4f7f4..076d4c0c4 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-many-resolver.service.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-many-resolver.service.ts @@ -74,7 +74,7 @@ export class GraphqlQueryFindManyResolverService { ); const where = graphqlQueryParser.parseFilter( args.filter ?? ({} as Filter), - true, + objectMetadataItem.isSoftDeletable ?? false, ); const cursor = this.getCursor(args); diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-one-resolver.service.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-one-resolver.service.ts index 063fb5c83..99657e6e1 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-one-resolver.service.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-one-resolver.service.ts @@ -56,7 +56,10 @@ export class GraphqlQueryFindOneResolverService { objectMetadataItem, graphqlFields(info), ); - const where = graphqlQueryParser.parseFilter(args.filter ?? ({} as Filter)); + const where = graphqlQueryParser.parseFilter( + args.filter ?? ({} as Filter), + objectMetadataItem.isSoftDeletable ?? false, + ); const objectRecord = await repository.findOne({ where, select, relations }); diff --git a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-entity.decorator.ts b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-entity.decorator.ts index 3b9e5b6f1..9abdea4db 100644 --- a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-entity.decorator.ts +++ b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-entity.decorator.ts @@ -48,7 +48,7 @@ export function WorkspaceEntity( isAuditLogged, isSystem, gate, - softDelete: options.softDelete, + softDelete: options.softDelete ?? true, }); }; } diff --git a/packages/twenty-server/src/engine/twenty-orm/interfaces/workspace-entity-metadata-args.interface.ts b/packages/twenty-server/src/engine/twenty-orm/interfaces/workspace-entity-metadata-args.interface.ts index 0f506c5e2..ecaf7dc00 100644 --- a/packages/twenty-server/src/engine/twenty-orm/interfaces/workspace-entity-metadata-args.interface.ts +++ b/packages/twenty-server/src/engine/twenty-orm/interfaces/workspace-entity-metadata-args.interface.ts @@ -64,5 +64,5 @@ export interface WorkspaceEntityMetadataArgs { /** * Enable soft delete. */ - readonly softDelete?: boolean; + readonly softDelete: boolean; } diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/standard-object.factory.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/standard-object.factory.ts index 83c78d9d7..ecfe6d63e 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/standard-object.factory.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/standard-object.factory.ts @@ -54,7 +54,7 @@ export class StandardObjectFactory { isCustom: false, isRemote: false, isSystem: workspaceEntityMetadataArgs.isSystem ?? false, - isSoftDeletable: workspaceEntityMetadataArgs.softDelete ?? true, + isSoftDeletable: workspaceEntityMetadataArgs.softDelete, }; } }