From 94487f6737f29a751c7f52cf94c8d425c028baae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20M?= Date: Fri, 15 Mar 2024 14:40:58 +0100 Subject: [PATCH] feat: refactor folder structure (#4498) * feat: wip refactor folder structure * Fix * fix position --------- Co-authored-by: Charles Bochet --- packages/twenty-server/package.json | 1 + .../api-rest-query-builder.factory.spec.ts | 46 +++++++++++ .../api-rest-query-builder.factory.ts | 34 +++++---- .../api-rest-query-builder.module.ts | 8 +- .../factories/create-query.factory.ts | 2 +- .../factories/create-variables.factory.ts | 2 +- .../factories/delete-query.factory.ts | 0 .../factories/delete-variables.factory.ts | 2 +- .../factories/factories.ts | 29 +++++++ .../factories/find-many-query.factory.ts | 2 +- .../factories/find-one-query.factory.ts | 2 +- .../factories/get-variables.factory.ts | 10 +-- .../__tests__/filter-input.factory.spec.ts | 2 +- .../last-cursor-input.factory.spec.ts | 2 +- .../__tests__/limit-input.factory.spec.ts | 2 +- .../__tests__/order-by-input.factory.spec.ts | 4 +- .../input-factories/filter-input.factory.ts | 25 ++++++ .../add-default-conjunction.utils.spec.ts | 2 +- .../check-filter-query.utils.spec.ts | 2 +- .../format-field-values.utils.spec.ts | 4 +- .../__tests__/parse-base-filter.utils.spec.ts | 2 +- .../parse-filter-content.utils.spec.ts | 2 +- .../__tests__/parse-filter.utils.spec.ts | 2 +- .../add-default-conjunction.utils.ts | 2 +- .../filter-utils/check-filter-query.utils.ts | 0 .../filter-utils/format-field-values.utils.ts | 4 +- .../filter-utils/parse-base-filter.utils.ts | 0 .../parse-filter-content.utils.ts | 0 .../filter-utils/parse-filter.utils.ts | 10 +-- .../last-cursor-input.factory.ts | 0 .../input-factories/limit-input.factory.ts | 0 .../input-factories/order-by-input.factory.ts | 4 +- .../factories/update-query.factory.ts | 2 +- .../factories/update-variables.factory.ts | 2 +- .../__tests__/compute-depth.utils.spec.ts | 2 +- .../utils/__tests__/fields.utils.spec.ts | 4 +- ...ld-metadata-to-graphql-query.utils.spec.ts | 2 +- .../utils/__tests__/parse-path.utils.spec.ts | 2 +- .../utils/compute-depth.utils.ts | 0 .../utils/fields.utils.ts | 4 +- ...p-field-metadata-to-graphql-query.utils.ts | 4 +- .../utils/parse-path.utils.ts | 0 .../rest}/api-rest.controller.ts | 4 +- .../rest}/api-rest.controller.utils.spec.ts | 2 +- .../rest}/api-rest.controller.utils.ts | 2 +- .../src/api/rest/api-rest.module.ts | 17 +++++ .../rest}/api-rest.service.spec.ts | 6 +- .../api-rest => api/rest}/api-rest.service.ts | 8 +- .../rest}/metadata-rest.controller.ts | 4 +- .../rest}/metadata-rest.service.ts | 8 +- .../rest}/types/api-rest-field-value.type.ts | 0 .../types/api-rest-query-variables.type.ts | 0 .../rest}/types/api-rest-query.type.ts | 0 .../rest}/types/api-rest-response.type.ts | 0 packages/twenty-server/src/app.module.ts | 21 +++-- .../activity-target.object-metadata.ts | 28 +++---- .../activity}/activity.object-metadata.ts | 28 +++---- .../api-key}/api-key.object-metadata.ts | 16 ++-- .../attachment}/attachment.object-metadata.ts | 30 ++++---- .../src/business/modules/business.module.ts | 11 +++ .../blocklist/blocklist.module.ts | 11 +++ .../blocklist/blocklist.service.ts | 6 +- .../connected-account.module.ts | 11 +++ .../connected-account.service.ts | 6 +- ...oogle-apis-refresh-access-token.service.ts | 2 +- .../types/batch-queries.ts | 0 ...uesAndValuesStringForBatchRawQuery.util.ts | 0 .../calendar/blocklist.object-metadata.ts | 38 ++++++++++ ...annel-event-association.object-metadata.ts | 20 ++--- .../calendar-channel.object-metadata.ts | 26 +++---- ...calendar-event-attendee.object-metadata.ts | 24 +++--- .../calendar-event.object-metadata.ts | 28 +++---- .../modules/calendar/calendar.module.ts | 41 ++++++++++ .../google-calendar-full-sync.command.ts | 4 +- ...workspace-calendar-sync-commands.module.ts | 19 +++++ .../jobs/google-calendar-full-sync.job.ts | 4 +- ...alendar-channel-event-assocation.module.ts | 11 +++ ...endar-channel-event-association.service.ts | 8 +- .../calendar-channel.module.ts | 11 +++ .../calendar-channel.service.ts | 6 +- .../calendar-event-attendee.module.ts | 11 +++ .../calendar-event-attendee.service.ts | 10 +-- .../calendar-event/calendar-event.module.ts | 11 +++ .../calendar-event/calendar-event.service.ts | 12 +-- .../calendar-event-cleaner.module.ts | 13 ++++ .../calendar-event-cleaner.service.ts | 4 +- .../google-calendar-full-sync.service.ts | 24 +++--- .../providers/calendar-providers.module.ts | 2 +- .../google-calendar.provider.ts | 0 .../modules}/calendar/types/calendar-event.ts | 6 +- .../format-google-calendar-event.util.ts | 4 +- .../google-calendar-search-filter.util.ts | 0 .../comment/comment.object-metadata.ts | 49 ++++++++++++ .../company}/company.object-metadata.ts | 36 ++++----- .../connected-account.object-metadata.ts | 28 +++---- .../favorite}/favorite.object-metadata.ts | 28 +++---- ...ch-all-workspaces-messages.cron.pattern.ts | 0 .../fetch-all-workspaces-messages.job.ts | 8 +- ...etch-workspace-messages-commands.module.ts | 27 +++++++ .../commands/gmail-full-sync.command.ts | 4 +- .../commands/gmail-partial-sync.command.ts | 4 +- ...ch-all-workspaces-messages.cron.command.ts | 4 +- ...ch-all-workspaces-messages.cron.command.ts | 4 +- ...e-companies-and-contacts-after-sync.job.ts | 6 +- ...ed-account-associated-calendar-data.job.ts | 2 +- ...d-account-associated-messaging-data.job.ts | 2 +- .../message}/jobs/gmail-full-sync.job.ts | 4 +- .../message}/jobs/gmail-partial-sync.job.ts | 4 +- .../jobs/match-message-participant.job.ts | 2 +- .../messaging-connected-account.listener.ts | 6 +- .../messaging-message-channel.listener.ts | 4 +- .../listeners/messaging-person.listener.ts | 4 +- .../messaging-workspace-member.listener.ts | 4 +- ...nel-message-association.object-metadata.ts | 22 +++--- .../message-channel.object-metadata.ts | 24 +++--- .../message-participant.object-metadata.ts | 22 +++--- .../message-thread.object-metadata.ts | 24 +++--- .../message}/message.object-metadata.ts | 26 +++---- .../modules/message/messaging.module.ts | 76 +++++++++++++++++++ .../message-find-many.pre-query.hook.ts | 12 +-- .../message-find-one.pre-query-hook.ts | 4 +- .../messaging-query-hook.module.ts | 28 +++++++ .../repositories/company/company.module.ts | 4 +- .../repositories/company/company.service.ts | 2 +- ...ssage-channel-message-assocation.module.ts | 11 +++ ...age-channel-message-association.service.ts | 6 +- .../message-channel/message-channel.module.ts | 11 +++ .../message-channel.service.ts | 6 +- .../message-participant.module.ts | 12 +++ .../message-participant.service.ts | 10 +-- .../message-thread/message-thread.module.ts | 17 +++++ .../message-thread/message-thread.service.ts | 8 +- .../repositories/message/message.module.ts | 23 ++++++ .../repositories/message/message.service.ts | 18 ++--- .../services/fetch-by-batch.service.ts | 4 +- .../fetch-messages-by-batches.service.spec.ts | 0 .../fetch-messages-by-batches.service.ts | 8 +- .../services/gmail-full-sync.service.ts | 22 +++--- .../services/gmail-partial-sync.service.ts | 24 +++--- .../providers/gmail/gmail-client.provider.ts | 5 +- .../providers/messaging-providers.module.ts | 2 +- ...ve-messages-and-create-contacts.service.ts | 16 ++-- .../thread-cleaner/thread-cleaner.module.ts | 19 +++++ .../thread-cleaner/thread-cleaner.service.ts | 8 +- .../delete-using-pagination.util.spec.ts | 0 .../utils/delete-using-pagination.util.ts | 0 .../types/gmail-message-parsed-response.ts | 0 .../modules/message}/types/gmail-message.ts | 0 .../modules/message}/types/gmail-thread.ts | 0 .../message}/types/message-or-thread-query.ts | 0 .../create-queries-from-message-ids.util.ts | 2 +- ...icipants-from-company-or-workspace.util.ts | 8 +- .../get-company-name-from-domain-name.util.ts | 0 .../utils/get-domain-name-from-handle.util.ts | 0 ...-name-from-handle-and-display-name.util.ts | 0 ...et-unique-participants-and-handles.util.ts | 2 +- .../utils/gmail-search-filter.util.ts | 0 .../message}/utils/is-person-email.util.ts | 0 .../opportunity.object-metadata.ts | 34 ++++----- .../modules/person}/person.object-metadata.ts | 40 +++++----- .../pipeline-step.object-metadata.ts | 22 +++--- .../view}/view-field.object-metadata.ts | 18 ++--- .../view}/view-filter.object-metadata.ts | 18 ++--- .../view}/view-sort.object-metadata.ts | 18 ++--- .../modules/view}/view.object-metadata.ts | 26 +++---- .../webhook/webhook.object-metadata.ts | 36 +++++++++ .../workspace-member.object-metadata.ts | 40 +++++----- packages/twenty-server/src/command.module.ts | 12 +-- packages/twenty-server/src/command.ts | 2 +- .../api-rest-query-builder.factory.spec.ts | 46 ----------- .../factories/factories.ts | 29 ------- .../input-factories/filter-input.factory.ts | 25 ------ .../src/core/api-rest/api-rest.module.ts | 17 ----- .../src/core/auth/types/jwt-data.type.ts | 7 -- .../src/core/billing/billing.module.ts | 27 ------- .../twenty-server/src/core/core.module.ts | 41 ---------- .../interfaces/feature-flag-map.interface.ts | 3 - .../messaging/timeline-messaging.module.ts | 12 --- .../src/core/open-api/open-api.module.ts | 13 ---- .../data-seed-demo-workspace.module.ts | 2 +- .../data-seed-demo-workspace.service.ts | 5 +- .../data-seed-dev-workspace.command.ts | 8 +- .../commands/database-command.module.ts | 12 +-- .../typeorm-seeds/core/feature-flags.ts | 2 +- .../typeorm-seeds/workspace/people.ts | 30 ++++---- .../database/typeorm-seeds/workspace/views.ts | 2 +- .../database/typeorm/core/core.datasource.ts | 2 +- .../typeorm/metadata/metadata.datasource.ts | 2 +- .../src/database/typeorm/typeorm.service.ts | 16 ++-- .../factories/create-context.factory.ts | 4 +- .../factories/index.ts | 0 .../graphql-config.module.ts | 11 +++ .../graphql-config.service.ts | 18 ++--- .../interfaces/graphql-context.interface.ts | 4 +- .../data-source/data-source.entity.ts | 2 +- .../data-source/data-source.module.ts | 0 .../data-source/data-source.service.ts | 0 .../decorators/is-valid-name.decorator.ts | 0 .../currency.composite-type.ts | 8 +- .../full-name.composite-type.ts | 8 +- .../field-metadata/composite-types/index.ts | 19 +++++ .../composite-types/link.composite-type.ts | 8 +- .../field-metadata/dtos/create-field.input.ts | 2 +- .../dtos/default-value.input.ts | 0 .../field-metadata/dtos/field-metadata.dto.ts | 16 ++-- .../field-metadata/dtos/options.input.ts | 2 +- .../dtos/relation-definition.dto.ts | 6 +- .../field-metadata/dtos/update-field.input.ts | 2 +- .../field-metadata/field-metadata.entity.ts | 12 +-- .../field-metadata/field-metadata.module.ts | 20 ++--- .../field-metadata/field-metadata.resolver.ts | 16 ++-- .../field-metadata/field-metadata.service.ts | 30 ++++---- .../hooks/before-delete-one-field.hook.ts | 4 +- .../field-metadata-default-value.interface.ts | 4 +- .../field-metadata-options.interface.ts | 4 +- ...ld-metadata-target-column-map.interface.ts | 2 +- .../interfaces/field-metadata.interface.ts | 25 ++++++ .../interfaces/object-metadata.interface.ts | 0 .../interfaces/relation-metadata.interface.ts | 2 +- .../utils/__tests__/generate-nullable.spec.ts | 4 +- .../generate-target-column-map.spec.ts | 4 +- .../__tests__/serialize-default-value.spec.ts | 2 +- ...lidate-default-value-based-on-type.spec.ts | 4 +- .../utils/generate-default-value.ts | 4 +- .../field-metadata/utils/generate-nullable.ts | 2 +- .../utils/generate-rating-optionts.util.ts | 2 +- .../utils/generate-target-column-map.util.ts | 6 +- .../is-composite-field-metadata-type.util.ts | 2 +- .../utils/is-enum-field-metadata-type.util.ts | 2 +- .../utils/serialize-default-value.ts | 4 +- .../serialize-type-default-value.util.ts | 2 +- .../validate-default-value-for-type.util.ts | 6 +- .../utils/validate-options-for-type.util.ts | 6 +- ...-field-metadata-default-value.validator.ts | 8 +- .../is-field-metadata-options.validator.ts | 8 +- .../is-valid-graphql-enum-name.validator.ts | 0 .../metadata.module-factory.ts | 6 +- .../metadata.module.ts | 10 +-- .../dtos/create-object.input.ts | 4 +- .../dtos/delete-object.input.ts | 2 +- .../dtos/object-metadata.dto.ts | 4 +- .../dtos/update-object.input.ts | 4 +- .../hooks/before-create-one-object.hook.ts | 2 +- .../hooks/before-delete-one-object.hook.ts | 2 +- .../hooks/before-update-one-object.hook.ts | 8 +- .../object-metadata/object-metadata.entity.ts | 8 +- .../object-metadata/object-metadata.module.ts | 14 ++-- .../object-metadata.resolver.ts | 12 +-- .../object-metadata.service.ts | 26 +++---- .../dtos/create-relation.input.ts | 4 +- .../dtos/relation-metadata.dto.ts | 6 +- .../hooks/before-create-one-relation.hook.ts | 2 +- .../hooks/before-delete-one-field.hook.ts | 2 +- .../relation-metadata.entity.ts | 6 +- .../relation-metadata.module.ts | 10 +-- .../relation-metadata.service.ts | 24 +++--- .../types/relation-to-delete.ts | 0 ...e-relation-foreign-key-column-name.util.ts | 2 +- ...on-foreign-key-field-metadata-name.util.ts | 0 .../utils/create-custom-column-name.util.ts | 0 .../workspace-cache-version.entity.ts | 0 .../workspace-cache-version.module.ts | 4 +- .../workspace-cache-version.service.ts | 2 +- .../factories/basic-column-action.factory.ts | 16 ++-- .../column-action-abstract.factory.ts | 10 +-- .../factories/enum-column-action.factory.ts | 14 ++-- .../factories/factories.ts | 7 ++ ...rkspace-column-action-factory.interface.ts | 8 +- ...rkspace-column-action-options.interface.ts | 0 ...field-metadata-type-to-column-type.util.ts | 2 +- .../utils/generate-migration-name.util.ts | 0 .../workspace-migration.entity.ts | 2 +- .../workspace-migration.factory.ts | 18 ++--- .../workspace-migration.module.ts | 4 +- .../workspace-migration.service.ts | 0 .../create-company-and-contact.module.ts | 21 +++++ .../create-company-and-contact.service.ts | 16 ++-- .../create-company/create-company.module.ts | 12 +++ .../create-company/create-company.service.ts | 4 +- .../create-contact/create-contact.module.ts | 12 +++ .../create-contact/create-contact.service.ts | 4 +- .../repositories/person/person.module.ts | 11 +++ .../repositories/person/person.service.ts | 6 +- .../workspace-member.module.ts | 11 +++ .../workspace-member.service.ts | 6 +- .../services/scalars-explorer.service.ts | 2 +- .../deduce-relation-direction.spec.ts | 10 +-- .../utils/__tests__/get-resolver-name.spec.ts | 4 +- .../utils/compute-custom-name.util.ts | 0 .../utils/compute-field-target-column.util.ts | 8 +- .../utils/compute-object-target-table.util.ts | 2 +- .../utils/deduce-relation-direction.util.ts | 4 +- .../utils/get-resolver-name.util.ts | 4 +- .../is-relation-field-metadata-type.util.ts | 2 +- .../utils/render-apollo-playground.util.ts | 0 .../{ => engine}/constants/settings/index.ts | 0 .../settings/interfaces/settings.interface.ts | 2 +- .../ability/user-ability.decorator.ts | 0 .../decorators/auth/auth-user.decorator.ts | 0 .../auth/auth-workspace.decorator.ts | 0 .../utils/global-exception-handler.util.ts | 2 +- .../filters/utils/graphql-errors.util.ts | 0 .../__tests__/args-string.factory.spec.ts | 4 +- .../find-duplicates-query.factory.spec.ts | 12 +-- .../record-position-query.factory.spec.ts | 2 +- .../factories/args-alias.factory.ts | 2 +- .../factories/args-string.factory.ts | 4 +- .../factories/create-many-query.factory.ts | 10 +-- .../factories/delete-many-query.factory.ts | 8 +- .../factories/delete-one-query.factory.ts | 6 +- .../factories/factories.ts | 0 .../factories/field-alias.factory.ts | 2 +- .../factories/fields-string.factory.ts | 6 +- .../find-duplicates-query.factory.ts | 18 ++--- .../factories/find-many-query.factory.ts | 8 +- .../factories/find-one-query.factory.ts | 8 +- .../record-position-query.factory.ts | 0 .../factories/relation-field-alias.factory.ts | 16 ++-- .../factories/update-many-query.factory.ts | 14 ++-- .../factories/update-one-query.factory.ts | 10 +-- .../interfaces/record.interface.ts | 0 ...rkspace-query-builder-options.interface.ts | 4 +- .../workspace-query-builder-options.ts | 4 +- .../stringify-without-key-quote.spec.ts | 2 +- .../utils/get-field-arguments-by-key.util.ts | 0 .../utils/stringify-without-key-quote.util.ts | 0 .../workspace-query-builder.factory.ts | 6 +- .../workspace-query-builder.module.ts | 6 +- .../query-runner-args.factory.spec.ts | 10 +-- .../__tests__/record-position.factory.spec.ts | 6 +- .../workspace-query-runner/factories/index.ts | 0 .../factories/query-runner-args.factory.ts | 6 +- .../factories/record-position.factory.ts | 4 +- .../interfaces/pg-graphql.interface.ts | 2 +- .../query-runner-option.interface.ts | 4 +- .../jobs/call-webhook-jobs.job.ts | 10 +-- .../jobs/call-webhook.job.ts | 0 .../jobs/record-position-backfill.job.ts | 2 +- .../listeners/record-position.listener.ts | 2 +- .../record-position-backfill-module.ts | 17 +++++ .../record-position-backfill-service.ts | 8 +- .../utils/__tests__/parse-result.spec.ts | 2 +- .../utils/compute-pg-graphql-error.util.ts | 0 .../utils/parse-result.util.ts | 0 .../workspace-pre-query-hook.interface.ts | 2 +- .../types/workspace-query-hook.type.ts | 2 +- .../workspace-pre-query-hook.config.ts | 11 +++ .../workspace-pre-query-hook.module.ts | 11 +++ .../workspace-pre-query-hook.service.ts | 6 +- .../workspace-query-runner.module.ts | 24 ++++++ .../workspace-query-runner.service.ts | 32 ++++---- .../constants/duplicate-criteria.constants.ts | 2 +- .../factories/create-many-resolver.factory.ts | 8 +- .../factories/create-one-resolver.factory.ts | 8 +- .../factories/delete-many-resolver.factory.ts | 8 +- .../factories/delete-one-resolver.factory.ts | 8 +- ...te-quick-action-on-one-resolver.factory.ts | 14 ++-- .../factories/factories.ts | 2 +- .../find-duplicates-resolver.factory.ts | 8 +- .../factories/find-many-resolver.factory.ts | 8 +- .../factories/find-one-resolver.factory.ts | 8 +- .../factories/update-many-resolver.factory.ts | 8 +- .../factories/update-one-resolver.factory.ts | 8 +- .../interfaces/pg-graphql.interface.ts | 2 +- ...pace-resolver-builder-factory.interface.ts | 2 +- .../workspace-resolvers-builder.interface.ts | 4 +- .../workspace-resolver-builder.module.ts | 4 +- .../workspace-resolver.factory.ts | 10 +-- .../factories/args.factory.ts | 8 +- .../connection-type-definition.factory.ts | 4 +- .../factories/connection-type.factory.ts | 10 +-- .../factories/edge-type-definition.factory.ts | 4 +- .../factories/edge-type.factory.ts | 10 +-- .../factories/enum-type-definition.factory.ts | 10 +-- .../extend-object-type-definition.factory.ts | 16 ++-- .../factories/factories.ts | 2 +- .../filter-type-definition.factory.ts | 8 +- .../factories/filter-type.factory.ts | 14 ++-- .../input-type-definition.factory.ts | 8 +- .../factories/input-type.factory.ts | 10 +-- .../factories/mutation-type.factory.ts | 6 +- .../object-type-definition.factory.ts | 8 +- .../order-by-type-definition.factory.ts | 6 +- .../factories/order-by-type.factory.ts | 10 +-- .../factories/orphaned-types.factory.ts | 2 +- .../factories/output-type.factory.ts | 10 +-- .../factories/query-type.factory.ts | 6 +- .../factories/relation-type.factory.ts | 10 +-- .../factories/root-type.factory.ts | 14 ++-- .../graphql-types/enum/index.ts | 0 .../enum/order-by-direction.enum-type.ts | 0 .../input/big-float-filter.input-type.ts | 4 +- .../input/big-int-filter.input-type.ts | 2 +- .../input/boolean-filter.input-type.ts | 2 +- .../input/date-filter.input-type.ts | 4 +- .../input/date-time-filter.input-type.ts | 4 +- .../input/filter-is.input-type.ts | 0 .../input/float-filter.input-type.ts | 2 +- .../graphql-types/input/index.ts | 0 .../input/int-filter.input-type.ts | 2 +- .../input/string-filter.input-type.ts | 2 +- .../input/time-filter.input-type.ts | 4 +- .../input/uuid-filter.input-type.ts | 4 +- .../graphql-types/object/index.ts | 0 .../object/page-into.object-type.ts | 0 .../graphql-types/scalars/big-float.scalar.ts | 0 .../graphql-types/scalars/big-int.scalar.ts | 0 .../graphql-types/scalars/cursor.scalar.ts | 0 .../graphql-types/scalars/date-time.scalar.ts | 0 .../graphql-types/scalars/date.scalar.ts | 0 .../graphql-types/scalars/index.ts | 0 .../graphql-types/scalars/position.scalar.ts | 0 .../graphql-types/scalars/time.scalar.ts | 0 .../graphql-types/scalars/uuid.scalar.ts | 0 .../interfaces/param-metadata.interface.ts | 4 +- ...rkspace-build-schema-optionts.interface.ts | 0 ...kspace-schema-builder-context.interface.ts | 4 +- .../services/type-mapper.service.ts | 12 +-- .../storages/type-definitions.storage.ts | 8 +- .../type-definitions.generator.ts | 16 ++-- .../utils/__tests__/clean-entity-name.spec.ts | 2 +- .../__tests__/get-field-metadata-type.spec.ts | 4 +- .../utils/__tests__/get-resolver-args.spec.ts | 8 +- .../utils/clean-entity-name.util.ts | 0 .../utils/get-field-metadata-type.util.ts | 2 +- .../utils/get-resolver-args.util.ts | 8 +- .../utils/object-contains-relation-field.ts | 11 +++ .../workspace-graphql-schema.factory.ts | 4 +- .../workspace-schema-builder.module.ts | 4 +- .../workspace-schema-storage.module.ts | 12 +++ .../workspace-schema-storage.service.ts | 4 +- .../graphql}/workspace.factory.spec.ts | 13 ++-- .../graphql}/workspace.factory.ts | 15 ++-- .../src/engine/graphql/workspace.module.ts | 25 ++++++ .../src/{ => engine}/guards/jwt.auth.guard.ts | 0 .../guards/optional-jwt.auth.guard.ts | 0 .../modules}/analytics/analytics.entity.ts | 0 .../modules}/analytics/analytics.module.ts | 0 .../analytics/analytics.resolver.spec.ts | 0 .../modules}/analytics/analytics.resolver.ts | 10 +-- .../analytics/analytics.service.spec.ts | 0 .../modules}/analytics/analytics.service.ts | 4 +- .../analytics/dto/create-analytics.input.ts | 0 .../modules}/auth/auth.module.ts | 32 ++++---- .../modules}/auth/auth.resolver.spec.ts | 8 +- .../modules}/auth/auth.resolver.ts | 32 ++++---- .../modules}/auth/auth.util.ts | 0 .../google-apis-auth.controller.ts | 10 +-- .../controllers/google-auth.controller.ts | 14 ++-- .../google-gmail-auth.controller.ts | 10 +-- .../verify-auth.controller.spec.ts | 4 +- .../controllers/verify-auth.controller.ts | 8 +- .../modules}/auth/dto/api-key-token.input.ts | 0 .../modules}/auth/dto/challenge.input.ts | 0 .../dto/email-password-reset-link.entity.ts | 0 .../dto/email-password-reset-link.input.ts | 0 .../modules}/auth/dto/generate-jwt.input.ts | 0 .../modules}/auth/dto/impersonate.input.ts | 0 .../auth/dto/invalidate-password.entity.ts | 0 .../modules}/auth/dto/login-token.entity.ts | 0 .../auth/dto/password-reset-token.input.ts | 0 .../modules}/auth/dto/refresh-token.input.ts | 0 .../auth/dto/save-connected-account.ts | 0 .../modules}/auth/dto/sign-up.input.ts | 0 .../modules}/auth/dto/token.entity.ts | 0 .../auth/dto/transient-token.entity.ts | 0 .../update-password-via-reset-token.input.ts | 0 .../auth/dto/update-password.entity.ts | 0 .../modules}/auth/dto/user-exists.entity.ts | 0 .../modules}/auth/dto/user-exists.input.ts | 0 .../validate-password-reset-token.entity.ts | 0 .../validate-password-reset-token.input.ts | 0 .../modules}/auth/dto/verify.entity.ts | 2 +- .../modules}/auth/dto/verify.input.ts | 0 .../dto/workspace-invite-hash-valid.entity.ts | 0 .../auth/dto/workspace-invite-hash.input.ts | 0 .../auth/guards/google-apis-oauth.guard.ts | 0 .../google-apis-provider-enabled.guard.ts | 2 +- .../google-gmail-provider-enabled.guard.ts | 2 +- .../auth/guards/google-oauth.guard.ts | 0 .../guards/google-provider-enabled.guard.ts | 2 +- .../auth/services/auth.service.spec.ts | 10 +-- .../modules}/auth/services/auth.service.ts | 24 +++--- .../auth/services/google-apis.service.ts | 10 +-- .../auth/services/sign-up.service.spec.ts | 10 +-- .../modules}/auth/services/sign-up.service.ts | 15 ++-- .../auth/services/token.service.spec.ts | 10 +-- .../modules}/auth/services/token.service.ts | 35 +++++---- .../strategies/google-apis.auth.strategy.ts | 0 .../auth/strategies/google.auth.strategy.ts | 0 .../auth/strategies/jwt.auth.strategy.ts | 6 +- .../modules/auth/types/jwt-data.type.ts | 7 ++ .../modules}/billing/billing.controller.ts | 7 +- .../engine/modules/billing/billing.module.ts | 27 +++++++ .../modules}/billing/billing.resolver.ts | 18 ++--- .../modules}/billing/billing.service.ts | 18 +++-- .../billing/dto/billing-session.input.ts | 0 .../billing/dto/checkout-session.input.ts | 0 .../billing/dto/product-price.entity.ts | 0 .../billing/dto/product-prices.entity.ts | 2 +- .../modules}/billing/dto/product.input.ts | 2 +- .../modules}/billing/dto/session.entity.ts | 0 .../billing-subscription-item.entity.ts | 2 +- .../entities/billing-subscription.entity.ts | 4 +- .../billing/jobs/update-subscription.job.ts | 6 +- .../billing-workspace-member.listener.ts | 4 +- .../modules}/billing/stripe/stripe.module.ts | 2 +- .../modules}/billing/stripe/stripe.service.ts | 12 +-- .../client-config/client-config.entity.ts | 0 .../client-config/client-config.module.ts | 0 .../client-config.resolver.spec.ts | 0 .../client-config/client-config.resolver.ts | 0 .../feature-flag/feature-flag.entity.ts | 2 +- .../feature-flag/feature-flag.module.ts | 2 +- .../interfaces/feature-flag-map.interface.ts | 3 + .../file/controllers/file.controller.spec.ts | 2 +- .../file/controllers/file.controller.ts | 7 +- .../modules}/file/file.module.ts | 0 .../modules}/file/file.utils.ts | 2 +- .../file/interfaces/file-folder.interface.ts | 0 .../resolvers/file-upload.resolver.spec.ts | 2 +- .../file/resolvers/file-upload.resolver.ts | 6 +- .../file/services/file-upload.service.spec.ts | 0 .../file/services/file-upload.service.ts | 4 +- .../file/services/file.service.spec.ts | 0 .../modules}/file/services/file.service.ts | 0 .../src/engine/modules/foundation.module.ts | 41 ++++++++++ .../modules}/health/health.controller.spec.ts | 2 +- .../modules}/health/health.controller.ts | 0 .../modules}/health/health.module.ts | 2 +- .../constants/messaging.constants.ts | 0 .../dtos/timeline-thread-participant.dto.ts | 0 .../messaging/dtos/timeline-thread.dto.ts | 2 +- .../dtos/timeline-threads-with-total.dto.ts | 2 +- .../messaging/timeline-messaging.module.ts | 12 +++ .../messaging/timeline-messaging.resolver.ts | 18 ++--- .../messaging/timeline-messaging.service.ts | 6 +- .../modules}/open-api/open-api.controller.ts | 2 +- .../modules/open-api/open-api.module.ts | 13 ++++ .../open-api/open-api.service.spec.ts | 6 +- .../modules}/open-api/open-api.service.ts | 20 ++--- .../utils/__tests__/components.utils.spec.ts | 4 +- .../utils/__tests__/parameters.utils.spec.ts | 12 +-- .../open-api/utils/base-schema.utils.ts | 2 +- .../open-api/utils/components.utils.ts | 6 +- .../utils/compute-schema-tags.utils.ts | 2 +- .../open-api/utils/computeWebhooks.utils.ts | 2 +- .../utils/get-error-responses.utils.ts | 0 .../open-api/utils/parameters.utils.ts | 10 +-- .../modules}/open-api/utils/path.utils.ts | 6 +- .../open-api/utils/request-body.utils.ts | 2 +- .../open-api/utils/responses.utils.ts | 2 +- .../quick-actions/intelligence.service.ts | 6 +- .../interfaces/company.interface.ts | 0 .../quick-actions/quick-actions.module.ts | 6 +- .../quick-actions/quick-actions.service.ts | 10 +-- .../dtos/create-refresh-token.input.ts | 0 .../before-create-one-refresh-token.hook.ts | 2 +- .../refresh-token.auto-resolver-opts.ts | 2 +- .../refresh-token/refresh-token.entity.ts | 2 +- .../refresh-token/refresh-token.module.ts | 0 .../services/refresh-token.service.spec.ts | 2 +- .../services/refresh-token.service.ts | 2 +- .../user-workspace/user-workspace.entity.ts | 4 +- .../user-workspace/user-workspace.module.ts | 8 +- .../user-workspace/user-workspace.service.ts | 10 +-- .../user/dtos/workspace-member.dto.ts | 0 .../user/services/user.service.spec.ts | 4 +- .../modules}/user/services/user.service.ts | 8 +- .../modules}/user/user.auto-resolver-opts.ts | 4 +- .../modules}/user/user.entity.ts | 8 +- .../modules}/user/user.module.ts | 12 +-- .../modules}/user/user.resolver.ts | 14 ++-- .../dtos/activate-workspace-input.ts | 0 .../workspace/dtos/update-workspace-input.ts | 0 .../services/workspace.service.spec.ts | 12 +-- .../workspace/services/workspace.service.ts | 14 ++-- .../workspace/workspace.auto-resolver-opts.ts | 4 +- .../modules}/workspace/workspace.entity.ts | 8 +- .../modules}/workspace/workspace.module.ts | 16 ++-- .../modules}/workspace/workspace.resolver.ts | 20 ++--- .../workspace-datasource.module.ts | 2 +- .../workspace-datasource.service.ts | 4 +- .../companies-demo.json | 0 .../demo-objects-prefill-data/company.ts | 0 .../demo-objects-prefill-data.ts | 14 ++-- .../demo-objects-prefill-data/opportunity.ts | 0 .../people-demo.json | 0 .../demo-objects-prefill-data/person.ts | 0 .../pipeline-step.ts | 0 .../demo-objects-prefill-data}/view.ts | 2 +- .../workspace-member.ts | 0 .../standard-objects-prefill-data/company.ts | 0 .../standard-objects-prefill-data/person.ts | 0 .../pipeline-step.ts | 0 .../standard-objects-prefill-data.ts | 10 +-- .../standard-objects-prefill-data}/view.ts | 2 +- .../clean-inactive-workspaces.command.ts | 2 +- .../delete-incomplete-workspaces.command.ts | 6 +- ...-clean-inactive-workspaces.cron.command.ts | 4 +- ...-clean-inactive-workspaces.cron.command.ts | 4 +- .../clean-inactive-workspace.cron.pattern.ts | 0 .../crons/clean-inactive-workspace.job.ts | 32 ++++---- .../workspace-cleaner.module.ts | 25 ++++++ .../workspace-health-command.module.ts | 10 +++ .../commands/workspace-health.command.ts | 6 +- .../fixer/abstract-workspace.fixer.ts | 6 +- .../workspace-health/fixer/index.ts | 0 .../fixer/workspace-default-value.fixer.ts | 12 +-- .../fixer/workspace-nullable.fixer.ts | 10 +-- .../workspace-target-column-map.fixer.ts | 22 +++--- .../fixer/workspace-type.fixer.ts | 12 +-- .../workspace-health-fix-kind.interface.ts | 0 .../workspace-health-issue.interface.ts | 8 +- .../workspace-health-options.interface.ts | 0 .../workspace-table-definition.interface.ts | 0 .../services/database-structure.service.ts | 14 ++-- .../services/field-metadata-health.service.ts | 34 ++++----- .../object-metadata-health.service.ts | 10 +-- .../relation-metadata.health.service.ts | 22 +++--- .../services/workspace-fix.service.ts | 18 ++--- .../compute-composite-field-metadata.util.ts | 4 +- .../is-workspace-health-issue-type.util.ts | 2 +- ...p-field-metadata-type-to-data-type.util.ts | 2 +- .../workspace-health/utils/valid-name.util.ts | 0 .../workspace-health.module.ts | 39 ++++++++++ .../workspace-health.service.ts | 28 +++---- .../workspace-manager.module.ts | 24 ++++++ .../workspace-manager.service.ts | 16 ++-- .../factories/index.ts | 0 .../workspace-migration-field.factory.ts | 14 ++-- .../workspace-migration-object.factory.ts | 14 ++-- .../workspace-migration-relation.factory.ts | 12 +-- ...pace-migration-builder-action.interface.ts | 0 .../workspace-migration-builder.module.ts | 2 +- ...pace-execute-pending-migrations.command.ts | 2 +- ...workspace-sync-metadata-commands.module.ts | 2 +- .../workspace-migration-enum.service.ts | 4 +- .../workspace-migration-type.service.ts | 2 +- ...vert-on-delete-action-to-on-delete.util.ts | 2 +- .../utils/custom-table-default-column.util.ts | 0 .../workspace-migration-runner.module.ts | 8 +- .../workspace-migration-runner.service.ts | 12 +-- .../commands/add-standard-id.command.ts | 14 ++-- .../services/sync-workspace-logger.service.ts | 4 +- .../sync-workspace-metadata.command.ts | 8 +- ...workspace-sync-metadata-commands.module.ts | 26 +++++++ .../workspace-field.comparator.spec.ts | 4 +- .../workspace-object.comparator.spec.ts | 4 +- .../workspace-relation.comparator.spec.ts | 4 +- .../comparators/index.ts | 0 .../order-object-properties.util.spec.ts | 2 +- ...sform-metadata-for-comparison.util.spec.ts | 2 +- .../utils/order-object-properties.util.ts | 0 .../transform-metadata-for-comparison.util.ts | 0 .../comparators/workspace-field.comparator.ts | 12 +-- .../workspace-object.comparator.ts | 8 +- .../workspace-relation.comparator.ts | 6 +- .../constants/standard-field-ids.ts | 0 .../constants/standard-object-ids.ts | 0 .../custom-objects/custom.object-metadata.ts | 24 +++--- .../base-custom-object-metadata.decorator.ts | 2 +- .../dynamic-field-metadata.interface.ts | 4 +- .../decorators/field-metadata.decorator.ts | 14 ++-- .../decorators/gate.decorator.ts | 2 +- .../decorators/is-nullable.decorator.ts | 0 .../decorators/is-system.decorator.ts | 0 .../decorators/object-metadata.decorator.ts | 4 +- .../decorators/relation-metadata.decorator.ts | 4 +- .../factories/feature-flags.factory.ts | 6 +- .../factories/index.ts | 0 .../factories/standard-field.factory.ts | 14 ++-- .../factories/standard-object.factory.ts | 10 +-- .../factories/standard-relation.factory.ts | 14 ++-- .../interfaces/comparator.interface.ts | 4 +- .../interfaces/gate-decorator.interface.ts | 0 .../interfaces/mapped-metadata.interface.ts | 19 +++++ .../partial-field-metadata.interface.ts | 4 +- .../partial-object-metadata.interface.ts | 4 +- .../partial-relation-metadata.interface.ts | 2 +- ...puted-relation-field-metadata.interface.ts | 6 +- ...eflect-custom-object-metadata.interface.ts | 2 +- .../reflect-field-metadata.interface.ts | 12 +-- .../reflect-object-metadata.interface.ts | 2 +- .../reflect-relation-metadata.interface.ts | 4 +- .../workspace-sync-context.interface.ts | 0 .../workspace-metadata-updater.service.ts | 12 +-- .../workspace-sync-field-metadata.service.ts | 26 +++---- .../workspace-sync-object-metadata.service.ts | 30 ++++---- ...orkspace-sync-relation-metadata.service.ts | 30 ++++---- .../standard-objects/base.object-metadata.ts | 8 +- .../standard-objects/index.ts | 57 ++++++++++++++ .../storage/workspace-sync.storage.ts | 12 +-- .../types/object-record.ts | 2 +- .../utils/compute-standard-object.util.ts | 12 +-- ...vert-class-to-object-metadata-name.util.ts | 0 .../utils/create-deterministic-uuid.util.ts | 0 .../utils/is-gate-and-not-enabled.util.ts | 2 +- .../utils/sync-metadata.util.spec.ts | 4 +- .../utils/sync-metadata.util.ts | 0 .../workspace-sync-metadata.module.ts | 45 +++++++++++ .../workspace-sync-metadata.service.ts | 16 ++-- .../graphql-config/graphql-config.module.ts | 11 --- .../types/object-record-create.event.ts | 2 +- .../types/object-record-delete.event.ts | 2 +- .../types/object-record-update.event.ts | 2 +- .../hooks/use-exception-handler.hook.ts | 4 +- .../integrations/message-queue/jobs.module.ts | 64 ++++++++-------- .../throttler/hooks/use-throttler.ts | 2 +- .../integrations/tracing/useSentryTracing.ts | 2 +- packages/twenty-server/src/main.ts | 2 +- .../field-metadata/composite-types/index.ts | 19 ----- .../interfaces/field-metadata.interface.ts | 25 ------ .../factories/factories.ts | 7 -- packages/twenty-server/src/queue-worker.ts | 2 +- .../twenty-server/src/utils/typed-reflect.ts | 12 +-- .../utils/utils-test/object-metadata-item.ts | 4 +- .../create-company-and-contact.module.ts | 21 ----- .../create-company/create-company.module.ts | 12 --- .../create-contact/create-contact.module.ts | 12 --- .../blocklist/blocklist.module.ts | 11 --- .../connected-account.module.ts | 11 --- .../src/workspace/calendar/calendar.module.ts | 41 ---------- ...workspace-calendar-sync-commands.module.ts | 19 ----- ...alendar-channel-event-assocation.module.ts | 11 --- .../calendar-channel.module.ts | 11 --- .../calendar-event-attendee.module.ts | 11 --- .../calendar-event/calendar-event.module.ts | 11 --- .../calendar-event-cleaner.module.ts | 13 ---- ...etch-workspace-messages-commands.module.ts | 27 ------- .../workspace/messaging/messaging.module.ts | 76 ------------------- .../messaging-query-hook.module.ts | 28 ------- ...ssage-channel-message-assocation.module.ts | 11 --- .../message-channel/message-channel.module.ts | 11 --- .../message-participant.module.ts | 12 --- .../message-thread/message-thread.module.ts | 17 ----- .../repositories/message/message.module.ts | 23 ------ .../thread-cleaner/thread-cleaner.module.ts | 19 ----- .../repositories/person/person.module.ts | 11 --- .../workspace-member.module.ts | 11 --- .../workspace-cleaner.module.ts | 25 ------ .../workspace-health-command.module.ts | 10 --- .../workspace-health.module.ts | 39 ---------- .../workspace-manager.module.ts | 24 ------ .../record-position-backfill-module.ts | 17 ----- .../workspace-pre-query-hook.config.ts | 11 --- .../workspace-pre-query-hook.module.ts | 11 --- .../workspace-query-runner.module.ts | 24 ------ .../utils/object-contains-relation-field.ts | 11 --- .../workspace-schema-storage.module.ts | 12 --- ...workspace-sync-metadata-commands.module.ts | 26 ------- .../interfaces/mapped-metadata.interface.ts | 19 ----- .../blocklist.object-metadata.ts | 38 ---------- .../comment.object-metadata.ts | 49 ------------ .../standard-objects/index.ts | 57 -------------- .../webhook.object-metadata.ts | 36 --------- .../workspace-sync-metadata.module.ts | 45 ----------- .../src/workspace/workspace.module.ts | 30 -------- .../twenty-server/test/company.e2e-spec.ts | 2 +- yarn.lock | 14 ++++ 760 files changed, 3215 insertions(+), 3155 deletions(-) create mode 100644 packages/twenty-server/src/api/rest/api-rest-query-builder/api-rest-query-builder.factory.spec.ts rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/api-rest-query-builder.factory.ts (72%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/api-rest-query-builder.module.ts (50%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/create-query.factory.ts (84%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/create-variables.factory.ts (68%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/delete-query.factory.ts (100%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/delete-variables.factory.ts (66%) create mode 100644 packages/twenty-server/src/api/rest/api-rest-query-builder/factories/factories.ts rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/find-many-query.factory.ts (90%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/find-one-query.factory.ts (85%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/get-variables.factory.ts (58%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/__tests__/filter-input.factory.spec.ts (96%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/__tests__/last-cursor-input.factory.spec.ts (86%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/__tests__/limit-input.factory.spec.ts (90%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/__tests__/order-by-input.factory.spec.ts (93%) create mode 100644 packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-input.factory.ts rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/add-default-conjunction.utils.spec.ts (71%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/check-filter-query.utils.spec.ts (86%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/format-field-values.utils.spec.ts (87%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-base-filter.utils.spec.ts (90%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter-content.utils.spec.ts (91%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter.utils.spec.ts (95%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils.ts (68%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/filter-utils/check-filter-query.utils.ts (100%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/filter-utils/format-field-values.utils.ts (86%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/filter-utils/parse-base-filter.utils.ts (100%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter-content.utils.ts (100%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils.ts (72%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/last-cursor-input.factory.ts (100%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/limit-input.factory.ts (100%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/input-factories/order-by-input.factory.ts (92%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/update-query.factory.ts (85%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/factories/update-variables.factory.ts (70%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/utils/__tests__/compute-depth.utils.spec.ts (85%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/utils/__tests__/fields.utils.spec.ts (82%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/utils/__tests__/map-field-metadata-to-graphql-query.utils.spec.ts (85%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/utils/__tests__/parse-path.utils.spec.ts (83%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/utils/compute-depth.utils.ts (100%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/utils/fields.utils.ts (81%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils.ts (92%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest-query-builder/utils/parse-path.utils.ts (100%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest.controller.ts (85%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest.controller.utils.spec.ts (93%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest.controller.utils.ts (92%) create mode 100644 packages/twenty-server/src/api/rest/api-rest.module.ts rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest.service.spec.ts (77%) rename packages/twenty-server/src/{core/api-rest => api/rest}/api-rest.service.ts (86%) rename packages/twenty-server/src/{core/api-rest => api/rest}/metadata-rest.controller.ts (84%) rename packages/twenty-server/src/{core/api-rest => api/rest}/metadata-rest.service.ts (95%) rename packages/twenty-server/src/{core/api-rest => api/rest}/types/api-rest-field-value.type.ts (100%) rename packages/twenty-server/src/{core/api-rest => api/rest}/types/api-rest-query-variables.type.ts (100%) rename packages/twenty-server/src/{core/api-rest => api/rest}/types/api-rest-query.type.ts (100%) rename packages/twenty-server/src/{core/api-rest => api/rest}/types/api-rest-response.type.ts (100%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/activity}/activity-target.object-metadata.ts (54%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/activity}/activity.object-metadata.ts (68%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/api-key}/api-key.object-metadata.ts (50%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/attachment}/attachment.object-metadata.ts (61%) create mode 100644 packages/twenty-server/src/business/modules/business.module.ts create mode 100644 packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/blocklist/blocklist.module.ts rename packages/twenty-server/src/{workspace => business/modules}/calendar-and-messaging/repositories/blocklist/blocklist.service.ts (70%) create mode 100644 packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.module.ts rename packages/twenty-server/src/{workspace => business/modules}/calendar-and-messaging/repositories/connected-account/connected-account.service.ts (92%) rename packages/twenty-server/src/{workspace => business/modules}/calendar-and-messaging/services/google-apis-refresh-access-token.service.ts (92%) rename packages/twenty-server/src/{workspace => business/modules}/calendar-and-messaging/types/batch-queries.ts (100%) rename packages/twenty-server/src/{workspace => business/modules}/calendar-and-messaging/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util.ts (100%) create mode 100644 packages/twenty-server/src/business/modules/calendar/blocklist.object-metadata.ts rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/calendar}/calendar-channel-event-association.object-metadata.ts (56%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/calendar}/calendar-channel.object-metadata.ts (69%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/calendar}/calendar-event-attendee.object-metadata.ts (69%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/calendar}/calendar-event.object-metadata.ts (75%) create mode 100644 packages/twenty-server/src/business/modules/calendar/calendar.module.ts rename packages/twenty-server/src/{workspace => business/modules}/calendar/commands/google-calendar-full-sync.command.ts (88%) create mode 100644 packages/twenty-server/src/business/modules/calendar/commands/workspace-calendar-sync-commands.module.ts rename packages/twenty-server/src/{workspace => business/modules}/calendar/jobs/google-calendar-full-sync.job.ts (84%) create mode 100644 packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel-event-association/calendar-channel-event-assocation.module.ts rename packages/twenty-server/src/{workspace => business/modules}/calendar/repositories/calendar-channel-event-association/calendar-channel-event-association.service.ts (92%) create mode 100644 packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel/calendar-channel.module.ts rename packages/twenty-server/src/{workspace => business/modules}/calendar/repositories/calendar-channel/calendar-channel.service.ts (86%) create mode 100644 packages/twenty-server/src/business/modules/calendar/repositories/calendar-event-attendee/calendar-event-attendee.module.ts rename packages/twenty-server/src/{workspace => business/modules}/calendar/repositories/calendar-event-attendee/calendar-event-attendee.service.ts (89%) create mode 100644 packages/twenty-server/src/business/modules/calendar/repositories/calendar-event/calendar-event.module.ts rename packages/twenty-server/src/{workspace => business/modules}/calendar/repositories/calendar-event/calendar-event.service.ts (90%) create mode 100644 packages/twenty-server/src/business/modules/calendar/services/calendar-event-cleaner/calendar-event-cleaner.module.ts rename packages/twenty-server/src/{workspace => business/modules}/calendar/services/calendar-event-cleaner/calendar-event-cleaner.service.ts (67%) rename packages/twenty-server/src/{workspace => business/modules}/calendar/services/google-calendar-full-sync.service.ts (84%) rename packages/twenty-server/src/{workspace => business/modules}/calendar/services/providers/calendar-providers.module.ts (68%) rename packages/twenty-server/src/{workspace => business/modules}/calendar/services/providers/google-calendar/google-calendar.provider.ts (100%) rename packages/twenty-server/src/{workspace => business/modules}/calendar/types/calendar-event.ts (61%) rename packages/twenty-server/src/{workspace => business/modules}/calendar/utils/format-google-calendar-event.util.ts (87%) rename packages/twenty-server/src/{workspace => business/modules}/calendar/utils/google-calendar-search-filter.util.ts (100%) create mode 100644 packages/twenty-server/src/business/modules/comment/comment.object-metadata.ts rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/company}/company.object-metadata.ts (72%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/connected-account}/connected-account.object-metadata.ts (64%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/favorite}/favorite.object-metadata.ts (56%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/commands/crons/fetch-all-workspaces-messages.cron.pattern.ts (100%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/commands/crons/fetch-all-workspaces-messages.job.ts (86%) create mode 100644 packages/twenty-server/src/business/modules/message/commands/fetch-workspace-messages-commands.module.ts rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/commands/gmail-full-sync.command.ts (88%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/commands/gmail-partial-sync.command.ts (88%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/commands/start-fetch-all-workspaces-messages.cron.command.ts (75%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/commands/stop-fetch-all-workspaces-messages.cron.command.ts (75%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/jobs/create-companies-and-contacts-after-sync.job.ts (82%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/jobs/delete-connected-account-associated-calendar-data.job.ts (89%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/jobs/delete-connected-account-associated-messaging-data.job.ts (90%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/jobs/gmail-full-sync.job.ts (84%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/jobs/gmail-partial-sync.job.ts (83%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/jobs/match-message-participant.job.ts (90%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/listeners/messaging-connected-account.listener.ts (83%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/listeners/messaging-message-channel.listener.ts (86%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/listeners/messaging-person.listener.ts (91%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/listeners/messaging-workspace-member.listener.ts (90%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/message}/message-channel-message-association.object-metadata.ts (63%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/message}/message-channel.object-metadata.ts (67%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/message}/message-participant.object-metadata.ts (63%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/message}/message-thread.object-metadata.ts (51%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/message}/message.object-metadata.ts (68%) create mode 100644 packages/twenty-server/src/business/modules/message/messaging.module.ts rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/query-hooks/message/message-find-many.pre-query.hook.ts (73%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/query-hooks/message/message-find-one.pre-query-hook.ts (58%) create mode 100644 packages/twenty-server/src/business/modules/message/query-hooks/messaging-query-hook.module.ts rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/repositories/company/company.module.ts (53%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/repositories/company/company.service.ts (93%) create mode 100644 packages/twenty-server/src/business/modules/message/repositories/message-channel-message-association/message-channel-message-assocation.module.ts rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/repositories/message-channel-message-association/message-channel-message-association.service.ts (95%) create mode 100644 packages/twenty-server/src/business/modules/message/repositories/message-channel/message-channel.module.ts rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/repositories/message-channel/message-channel.service.ts (87%) create mode 100644 packages/twenty-server/src/business/modules/message/repositories/message-participant/message-participant.module.ts rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/repositories/message-participant/message-participant.service.ts (94%) create mode 100644 packages/twenty-server/src/business/modules/message/repositories/message-thread/message-thread.module.ts rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/repositories/message-thread/message-thread.service.ts (86%) create mode 100644 packages/twenty-server/src/business/modules/message/repositories/message/message.module.ts rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/repositories/message/message.service.ts (91%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/services/fetch-by-batch.service.ts (93%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/services/fetch-messages-by-batches.service.spec.ts (100%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/services/fetch-messages-by-batches.service.ts (93%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/services/gmail-full-sync.service.ts (85%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/services/gmail-partial-sync.service.ts (90%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/services/providers/gmail/gmail-client.provider.ts (90%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/services/providers/messaging-providers.module.ts (71%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/services/save-messages-and-create-contacts.service.ts (84%) create mode 100644 packages/twenty-server/src/business/modules/message/services/thread-cleaner/thread-cleaner.module.ts rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/services/thread-cleaner/thread-cleaner.service.ts (69%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/services/thread-cleaner/utils/delete-using-pagination.util.spec.ts (100%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/services/thread-cleaner/utils/delete-using-pagination.util.ts (100%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/types/gmail-message-parsed-response.ts (100%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/types/gmail-message.ts (100%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/types/gmail-thread.ts (100%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/types/message-or-thread-query.ts (100%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/utils/create-queries-from-message-ids.util.ts (71%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/utils/filter-out-participants-from-company-or-workspace.util.ts (60%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/utils/get-company-name-from-domain-name.util.ts (100%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/utils/get-domain-name-from-handle.util.ts (100%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/utils/get-first-name-and-last-name-from-handle-and-display-name.util.ts (100%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/utils/get-unique-participants-and-handles.util.ts (86%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/utils/gmail-search-filter.util.ts (100%) rename packages/twenty-server/src/{workspace/messaging => business/modules/message}/utils/is-person-email.util.ts (100%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/opportunity}/opportunity.object-metadata.ts (71%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/person}/person.object-metadata.ts (71%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/pipeline-step}/pipeline-step.object-metadata.ts (53%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/view}/view-field.object-metadata.ts (60%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/view}/view-filter.object-metadata.ts (58%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/view}/view-sort.object-metadata.ts (50%) rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/view}/view.object-metadata.ts (66%) create mode 100644 packages/twenty-server/src/business/modules/webhook/webhook.object-metadata.ts rename packages/twenty-server/src/{workspace/workspace-sync-metadata/standard-objects => business/modules/workspace}/workspace-member.object-metadata.ts (74%) delete mode 100644 packages/twenty-server/src/core/api-rest/api-rest-query-builder/api-rest-query-builder.factory.spec.ts delete mode 100644 packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/factories.ts delete mode 100644 packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-input.factory.ts delete mode 100644 packages/twenty-server/src/core/api-rest/api-rest.module.ts delete mode 100644 packages/twenty-server/src/core/auth/types/jwt-data.type.ts delete mode 100644 packages/twenty-server/src/core/billing/billing.module.ts delete mode 100644 packages/twenty-server/src/core/core.module.ts delete mode 100644 packages/twenty-server/src/core/feature-flag/interfaces/feature-flag-map.interface.ts delete mode 100644 packages/twenty-server/src/core/messaging/timeline-messaging.module.ts delete mode 100644 packages/twenty-server/src/core/open-api/open-api.module.ts rename packages/twenty-server/src/{graphql-config => engine-graphql-config}/factories/create-context.factory.ts (77%) rename packages/twenty-server/src/{graphql-config => engine-graphql-config}/factories/index.ts (100%) create mode 100644 packages/twenty-server/src/engine-graphql-config/graphql-config.module.ts rename packages/twenty-server/src/{graphql-config => engine-graphql-config}/graphql-config.service.ts (88%) rename packages/twenty-server/src/{graphql-config => engine-graphql-config}/interfaces/graphql-context.interface.ts (57%) rename packages/twenty-server/src/{metadata => engine-metadata}/data-source/data-source.entity.ts (89%) rename packages/twenty-server/src/{metadata => engine-metadata}/data-source/data-source.module.ts (100%) rename packages/twenty-server/src/{metadata => engine-metadata}/data-source/data-source.service.ts (100%) rename packages/twenty-server/src/{metadata => engine-metadata}/decorators/is-valid-name.decorator.ts (100%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/composite-types/currency.composite-type.ts (82%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/composite-types/full-name.composite-type.ts (82%) create mode 100644 packages/twenty-server/src/engine-metadata/field-metadata/composite-types/index.ts rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/composite-types/link.composite-type.ts (81%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/dtos/create-field.input.ts (85%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/dtos/default-value.input.ts (100%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/dtos/field-metadata.dto.ts (71%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/dtos/options.input.ts (77%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/dtos/relation-definition.dto.ts (77%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/dtos/update-field.input.ts (89%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/field-metadata.entity.ts (78%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/field-metadata.module.ts (66%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/field-metadata.resolver.ts (60%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/field-metadata.service.ts (89%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/hooks/before-delete-one-field.hook.ts (87%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/interfaces/field-metadata-default-value.interface.ts (94%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/interfaces/field-metadata-options.interface.ts (81%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/interfaces/field-metadata-target-column-map.interface.ts (91%) create mode 100644 packages/twenty-server/src/engine-metadata/field-metadata/interfaces/field-metadata.interface.ts rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/interfaces/object-metadata.interface.ts (100%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/interfaces/relation-metadata.interface.ts (84%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/__tests__/generate-nullable.spec.ts (86%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/__tests__/generate-target-column-map.spec.ts (82%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/__tests__/serialize-default-value.spec.ts (93%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/__tests__/validate-default-value-based-on-type.spec.ts (95%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/generate-default-value.ts (73%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/generate-nullable.ts (76%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/generate-rating-optionts.util.ts (80%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/generate-target-column-map.util.ts (83%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/is-composite-field-metadata-type.util.ts (77%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/is-enum-field-metadata-type.util.ts (80%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/serialize-default-value.ts (81%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/serialize-type-default-value.util.ts (70%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/validate-default-value-for-type.util.ts (88%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/utils/validate-options-for-type.util.ts (83%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/validators/is-field-metadata-default-value.validator.ts (75%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/validators/is-field-metadata-options.validator.ts (74%) rename packages/twenty-server/src/{metadata => engine-metadata}/field-metadata/validators/is-valid-graphql-enum-name.validator.ts (100%) rename packages/twenty-server/src/{metadata => engine-metadata}/metadata.module-factory.ts (85%) rename packages/twenty-server/src/{metadata => engine-metadata}/metadata.module.ts (69%) rename packages/twenty-server/src/{metadata => engine-metadata}/object-metadata/dtos/create-object.input.ts (83%) rename packages/twenty-server/src/{metadata => engine-metadata}/object-metadata/dtos/delete-object.input.ts (72%) rename packages/twenty-server/src/{metadata => engine-metadata}/object-metadata/dtos/object-metadata.dto.ts (85%) rename packages/twenty-server/src/{metadata => engine-metadata}/object-metadata/dtos/update-object.input.ts (84%) rename packages/twenty-server/src/{metadata => engine-metadata}/object-metadata/hooks/before-create-one-object.hook.ts (90%) rename packages/twenty-server/src/{metadata => engine-metadata}/object-metadata/hooks/before-delete-one-object.hook.ts (91%) rename packages/twenty-server/src/{metadata => engine-metadata}/object-metadata/hooks/before-update-one-object.hook.ts (91%) rename packages/twenty-server/src/{metadata => engine-metadata}/object-metadata/object-metadata.entity.ts (84%) rename packages/twenty-server/src/{metadata => engine-metadata}/object-metadata/object-metadata.module.ts (72%) rename packages/twenty-server/src/{metadata => engine-metadata}/object-metadata/object-metadata.resolver.ts (50%) rename packages/twenty-server/src/{metadata => engine-metadata}/object-metadata/object-metadata.service.ts (95%) rename packages/twenty-server/src/{metadata => engine-metadata}/relation-metadata/dtos/create-relation.input.ts (85%) rename packages/twenty-server/src/{metadata => engine-metadata}/relation-metadata/dtos/relation-metadata.dto.ts (80%) rename packages/twenty-server/src/{metadata => engine-metadata}/relation-metadata/hooks/before-create-one-relation.hook.ts (85%) rename packages/twenty-server/src/{metadata => engine-metadata}/relation-metadata/hooks/before-delete-one-field.hook.ts (92%) rename packages/twenty-server/src/{metadata => engine-metadata}/relation-metadata/relation-metadata.entity.ts (86%) rename packages/twenty-server/src/{metadata => engine-metadata}/relation-metadata/relation-metadata.module.ts (74%) rename packages/twenty-server/src/{metadata => engine-metadata}/relation-metadata/relation-metadata.service.ts (87%) rename packages/twenty-server/src/{metadata => engine-metadata}/relation-metadata/types/relation-to-delete.ts (100%) rename packages/twenty-server/src/{metadata => engine-metadata}/relation-metadata/utils/create-relation-foreign-key-column-name.util.ts (77%) rename packages/twenty-server/src/{metadata => engine-metadata}/relation-metadata/utils/create-relation-foreign-key-field-metadata-name.util.ts (100%) rename packages/twenty-server/src/{metadata => engine-metadata}/utils/create-custom-column-name.util.ts (100%) rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-cache-version/workspace-cache-version.entity.ts (100%) rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-cache-version/workspace-cache-version.module.ts (57%) rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-cache-version/workspace-cache-version.service.ts (89%) rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-migration/factories/basic-column-action.factory.ts (78%) rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-migration/factories/column-action-abstract.factory.ts (77%) rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-migration/factories/enum-column-action.factory.ts (83%) create mode 100644 packages/twenty-server/src/engine-metadata/workspace-migration/factories/factories.ts rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-migration/interfaces/workspace-column-action-factory.interface.ts (54%) rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-migration/interfaces/workspace-column-action-options.interface.ts (100%) rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-migration/utils/field-metadata-type-to-column-type.util.ts (92%) rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-migration/utils/generate-migration-name.util.ts (100%) rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-migration/workspace-migration.entity.ts (95%) rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-migration/workspace-migration.factory.ts (83%) rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-migration/workspace-migration.module.ts (71%) rename packages/twenty-server/src/{metadata => engine-metadata}/workspace-migration/workspace-migration.service.ts (100%) create mode 100644 packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module.ts rename packages/twenty-server/src/{workspace => engine-workspace}/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.service.ts (77%) create mode 100644 packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company/create-company.module.ts rename packages/twenty-server/src/{workspace => engine-workspace}/auto-companies-and-contacts-creation/create-company/create-company.service.ts (92%) create mode 100644 packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-contact/create-contact.module.ts rename packages/twenty-server/src/{workspace => engine-workspace}/auto-companies-and-contacts-creation/create-contact/create-contact.service.ts (87%) create mode 100644 packages/twenty-server/src/engine-workspace/repositories/person/person.module.ts rename packages/twenty-server/src/{workspace => engine-workspace}/repositories/person/person.service.ts (84%) create mode 100644 packages/twenty-server/src/engine-workspace/repositories/workspace-member/workspace-member.module.ts rename packages/twenty-server/src/{workspace => engine-workspace}/repositories/workspace-member/workspace-member.service.ts (85%) rename packages/twenty-server/src/{workspace => engine-workspace}/services/scalars-explorer.service.ts (93%) rename packages/twenty-server/src/{workspace => engine-workspace}/utils/__tests__/deduce-relation-direction.spec.ts (85%) rename packages/twenty-server/src/{workspace => engine-workspace}/utils/__tests__/get-resolver-name.spec.ts (79%) rename packages/twenty-server/src/{workspace => engine-workspace}/utils/compute-custom-name.util.ts (100%) rename packages/twenty-server/src/{workspace => engine-workspace}/utils/compute-field-target-column.util.ts (52%) rename packages/twenty-server/src/{workspace => engine-workspace}/utils/compute-object-target-table.util.ts (69%) rename packages/twenty-server/src/{workspace => engine-workspace}/utils/deduce-relation-direction.util.ts (76%) rename packages/twenty-server/src/{workspace => engine-workspace}/utils/get-resolver-name.util.ts (82%) rename packages/twenty-server/src/{workspace => engine-workspace}/utils/is-relation-field-metadata-type.util.ts (63%) rename packages/twenty-server/src/{workspace => engine-workspace}/utils/render-apollo-playground.util.ts (100%) rename packages/twenty-server/src/{ => engine}/constants/settings/index.ts (100%) rename packages/twenty-server/src/{ => engine}/constants/settings/interfaces/settings.interface.ts (77%) rename packages/twenty-server/src/{ => engine}/decorators/ability/user-ability.decorator.ts (100%) rename packages/twenty-server/src/{ => engine}/decorators/auth/auth-user.decorator.ts (100%) rename packages/twenty-server/src/{ => engine}/decorators/auth/auth-workspace.decorator.ts (100%) rename packages/twenty-server/src/{ => engine}/filters/utils/global-exception-handler.util.ts (97%) rename packages/twenty-server/src/{ => engine}/filters/utils/graphql-errors.util.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/__tests__/args-string.factory.spec.ts (93%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/__tests__/find-duplicates-query.factory.spec.ts (88%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/__tests__/record-position-query.factory.spec.ts (96%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/args-alias.factory.ts (94%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/args-string.factory.ts (89%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/create-many-query.factory.ts (67%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/delete-many-query.factory.ts (65%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/delete-one-query.factory.ts (69%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/factories.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/field-alias.factory.ts (87%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/fields-string.factory.ts (89%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/find-duplicates-query.factory.ts (78%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/find-many-query.factory.ts (72%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/find-one-query.factory.ts (70%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/record-position-query.factory.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/relation-field-alias.factory.ts (83%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/update-many-query.factory.ts (62%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/factories/update-one-query.factory.ts (68%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/interfaces/record.interface.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/interfaces/workspace-query-builder-options.interface.ts (55%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/utils-test/workspace-query-builder-options.ts (59%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/utils/__tests__/stringify-without-key-quote.spec.ts (92%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/utils/get-field-arguments-by-key.util.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/utils/stringify-without-key-quote.util.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/workspace-query-builder.factory.ts (92%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-builder/workspace-query-builder.module.ts (58%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/factories/__tests__/query-runner-args.factory.spec.ts (72%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/factories/__tests__/record-position.factory.spec.ts (83%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/factories/index.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/factories/query-runner-args.factory.ts (84%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/factories/record-position.factory.ts (84%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/interfaces/pg-graphql.interface.ts (72%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/interfaces/query-runner-option.interface.ts (59%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/jobs/call-webhook-jobs.job.ts (85%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/jobs/call-webhook.job.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/jobs/record-position-backfill.job.ts (84%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/listeners/record-position.listener.ts (94%) create mode 100644 packages/twenty-server/src/engine/graphql/workspace-query-runner/services/record-position-backfill-module.ts rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/services/record-position-backfill-service.ts (72%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/utils/__tests__/parse-result.spec.ts (96%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/utils/compute-pg-graphql-error.util.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/utils/parse-result.util.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface.ts (55%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/workspace-pre-query-hook/types/workspace-query-hook.type.ts (92%) create mode 100644 packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.config.ts create mode 100644 packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.module.ts rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.service.ts (67%) create mode 100644 packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-query-runner.module.ts rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-query-runner/workspace-query-runner.service.ts (91%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/constants/duplicate-criteria.constants.ts (87%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/factories/create-many-resolver.factory.ts (63%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/factories/create-one-resolver.factory.ts (63%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/factories/delete-many-resolver.factory.ts (63%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/factories/delete-one-resolver.factory.ts (63%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/factories/execute-quick-action-on-one-resolver.factory.ts (69%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/factories/factories.ts (92%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/factories/find-duplicates-resolver.factory.ts (64%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/factories/find-many-resolver.factory.ts (63%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/factories/find-one-resolver.factory.ts (63%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/factories/update-many-resolver.factory.ts (63%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/factories/update-one-resolver.factory.ts (63%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/interfaces/pg-graphql.interface.ts (70%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface.ts (56%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface.ts (91%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/workspace-resolver-builder.module.ts (67%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-resolver-builder/workspace-resolver.factory.ts (88%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/args.factory.ts (82%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/connection-type-definition.factory.ts (88%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/connection-type.factory.ts (73%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/edge-type-definition.factory.ts (87%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/edge-type.factory.ts (72%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/enum-type-definition.factory.ts (80%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/extend-object-type-definition.factory.ts (82%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/factories.ts (93%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/filter-type-definition.factory.ts (83%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/filter-type.factory.ts (75%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/input-type-definition.factory.ts (81%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/input-type.factory.ts (72%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/mutation-type.factory.ts (67%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/object-type-definition.factory.ts (80%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/order-by-type-definition.factory.ts (82%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/order-by-type.factory.ts (69%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/orphaned-types.factory.ts (82%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/output-type.factory.ts (71%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/query-type.factory.ts (61%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/relation-type.factory.ts (74%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/factories/root-type.factory.ts (79%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/enum/index.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/enum/order-by-direction.enum-type.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/input/big-float-filter.input-type.ts (70%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/input/big-int-filter.input-type.ts (81%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/input/boolean-filter.input-type.ts (67%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/input/date-filter.input-type.ts (69%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/input/date-time-filter.input-type.ts (70%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/input/filter-is.input-type.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/input/float-filter.input-type.ts (81%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/input/index.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/input/int-filter.input-type.ts (80%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/input/string-filter.input-type.ts (86%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/input/time-filter.input-type.ts (69%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/input/uuid-filter.input-type.ts (59%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/object/index.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/object/page-into.object-type.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/scalars/big-float.scalar.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/scalars/big-int.scalar.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/scalars/cursor.scalar.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/scalars/date-time.scalar.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/scalars/date.scalar.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/scalars/index.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/scalars/position.scalar.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/scalars/time.scalar.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/graphql-types/scalars/uuid.scalar.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/interfaces/param-metadata.interface.ts (55%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface.ts (53%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/services/type-mapper.service.ts (89%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/storages/type-definitions.storage.ts (84%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/type-definitions.generator.ts (90%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/utils/__tests__/clean-entity-name.spec.ts (86%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/utils/__tests__/get-field-metadata-type.spec.ts (71%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/utils/__tests__/get-resolver-args.spec.ts (79%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/utils/clean-entity-name.util.ts (100%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/utils/get-field-metadata-type.util.ts (83%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/utils/get-resolver-args.util.ts (83%) create mode 100644 packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/object-contains-relation-field.ts rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/workspace-graphql-schema.factory.ts (86%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-builder/workspace-schema-builder.module.ts (82%) create mode 100644 packages/twenty-server/src/engine/graphql/workspace-schema-storage/workspace-schema-storage.module.ts rename packages/twenty-server/src/{workspace => engine/graphql}/workspace-schema-storage/workspace-schema-storage.service.ts (92%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace.factory.spec.ts (61%) rename packages/twenty-server/src/{workspace => engine/graphql}/workspace.factory.ts (80%) create mode 100644 packages/twenty-server/src/engine/graphql/workspace.module.ts rename packages/twenty-server/src/{ => engine}/guards/jwt.auth.guard.ts (100%) rename packages/twenty-server/src/{ => engine}/guards/optional-jwt.auth.guard.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/analytics/analytics.entity.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/analytics/analytics.module.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/analytics/analytics.resolver.spec.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/analytics/analytics.resolver.ts (69%) rename packages/twenty-server/src/{core => engine/modules}/analytics/analytics.service.spec.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/analytics/analytics.service.ts (92%) rename packages/twenty-server/src/{core => engine/modules}/analytics/dto/create-analytics.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/auth.module.ts (52%) rename packages/twenty-server/src/{core => engine/modules}/auth/auth.resolver.spec.ts (78%) rename packages/twenty-server/src/{core => engine/modules}/auth/auth.resolver.ts (81%) rename packages/twenty-server/src/{core => engine/modules}/auth/auth.util.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/controllers/google-apis-auth.controller.ts (78%) rename packages/twenty-server/src/{core => engine/modules}/auth/controllers/google-auth.controller.ts (77%) rename packages/twenty-server/src/{core => engine/modules}/auth/controllers/google-gmail-auth.controller.ts (78%) rename packages/twenty-server/src/{core => engine/modules}/auth/controllers/verify-auth.controller.spec.ts (81%) rename packages/twenty-server/src/{core => engine/modules}/auth/controllers/verify-auth.controller.ts (62%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/api-key-token.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/challenge.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/email-password-reset-link.entity.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/email-password-reset-link.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/generate-jwt.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/impersonate.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/invalidate-password.entity.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/login-token.entity.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/password-reset-token.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/refresh-token.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/save-connected-account.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/sign-up.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/token.entity.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/transient-token.entity.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/update-password-via-reset-token.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/update-password.entity.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/user-exists.entity.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/user-exists.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/validate-password-reset-token.entity.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/validate-password-reset-token.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/verify.entity.ts (77%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/verify.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/workspace-invite-hash-valid.entity.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/dto/workspace-invite-hash.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/guards/google-apis-oauth.guard.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/guards/google-apis-provider-enabled.guard.ts (88%) rename packages/twenty-server/src/{core => engine/modules}/auth/guards/google-gmail-provider-enabled.guard.ts (86%) rename packages/twenty-server/src/{core => engine/modules}/auth/guards/google-oauth.guard.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/guards/google-provider-enabled.guard.ts (87%) rename packages/twenty-server/src/{core => engine/modules}/auth/services/auth.service.spec.ts (78%) rename packages/twenty-server/src/{core => engine/modules}/auth/services/auth.service.ts (85%) rename packages/twenty-server/src/{core => engine/modules}/auth/services/google-apis.service.ts (91%) rename packages/twenty-server/src/{core => engine/modules}/auth/services/sign-up.service.spec.ts (73%) rename packages/twenty-server/src/{core => engine/modules}/auth/services/sign-up.service.ts (92%) rename packages/twenty-server/src/{core => engine/modules}/auth/services/token.service.spec.ts (77%) rename packages/twenty-server/src/{core => engine/modules}/auth/services/token.service.ts (91%) rename packages/twenty-server/src/{core => engine/modules}/auth/strategies/google-apis.auth.strategy.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/strategies/google.auth.strategy.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/auth/strategies/jwt.auth.strategy.ts (91%) create mode 100644 packages/twenty-server/src/engine/modules/auth/types/jwt-data.type.ts rename packages/twenty-server/src/{core => engine/modules}/billing/billing.controller.ts (88%) create mode 100644 packages/twenty-server/src/engine/modules/billing/billing.module.ts rename packages/twenty-server/src/{core => engine/modules}/billing/billing.resolver.ts (76%) rename packages/twenty-server/src/{core => engine/modules}/billing/billing.service.ts (91%) rename packages/twenty-server/src/{core => engine/modules}/billing/dto/billing-session.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/billing/dto/checkout-session.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/billing/dto/product-price.entity.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/billing/dto/product-prices.entity.ts (72%) rename packages/twenty-server/src/{core => engine/modules}/billing/dto/product.input.ts (74%) rename packages/twenty-server/src/{core => engine/modules}/billing/dto/session.entity.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/billing/entities/billing-subscription-item.entity.ts (92%) rename packages/twenty-server/src/{core => engine/modules}/billing/entities/billing-subscription.entity.ts (87%) rename packages/twenty-server/src/{core => engine/modules}/billing/jobs/update-subscription.job.ts (84%) rename packages/twenty-server/src/{core => engine/modules}/billing/listeners/billing-workspace-member.listener.ts (83%) rename packages/twenty-server/src/{core => engine/modules}/billing/stripe/stripe.module.ts (63%) rename packages/twenty-server/src/{core => engine/modules}/billing/stripe/stripe.service.ts (90%) rename packages/twenty-server/src/{core => engine/modules}/client-config/client-config.entity.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/client-config/client-config.module.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/client-config/client-config.resolver.spec.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/client-config/client-config.resolver.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/feature-flag/feature-flag.entity.ts (93%) rename packages/twenty-server/src/{core => engine/modules}/feature-flag/feature-flag.module.ts (86%) create mode 100644 packages/twenty-server/src/engine/modules/feature-flag/interfaces/feature-flag-map.interface.ts rename packages/twenty-server/src/{core => engine/modules}/file/controllers/file.controller.spec.ts (88%) rename packages/twenty-server/src/{core => engine/modules}/file/controllers/file.controller.ts (82%) rename packages/twenty-server/src/{core => engine/modules}/file/file.module.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/file/file.utils.ts (95%) rename packages/twenty-server/src/{core => engine/modules}/file/interfaces/file-folder.interface.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/file/resolvers/file-upload.resolver.spec.ts (86%) rename packages/twenty-server/src/{core => engine/modules}/file/resolvers/file-upload.resolver.ts (85%) rename packages/twenty-server/src/{core => engine/modules}/file/services/file-upload.service.spec.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/file/services/file-upload.service.ts (94%) rename packages/twenty-server/src/{core => engine/modules}/file/services/file.service.spec.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/file/services/file.service.ts (100%) create mode 100644 packages/twenty-server/src/engine/modules/foundation.module.ts rename packages/twenty-server/src/{ => engine/modules}/health/health.controller.spec.ts (90%) rename packages/twenty-server/src/{ => engine/modules}/health/health.controller.ts (100%) rename packages/twenty-server/src/{ => engine/modules}/health/health.module.ts (71%) rename packages/twenty-server/src/{core => engine/modules}/messaging/constants/messaging.constants.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/messaging/dtos/timeline-thread-participant.dto.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/messaging/dtos/timeline-thread.dto.ts (85%) rename packages/twenty-server/src/{core => engine/modules}/messaging/dtos/timeline-threads-with-total.dto.ts (75%) create mode 100644 packages/twenty-server/src/engine/modules/messaging/timeline-messaging.module.ts rename packages/twenty-server/src/{core => engine/modules}/messaging/timeline-messaging.resolver.ts (73%) rename packages/twenty-server/src/{core => engine/modules}/messaging/timeline-messaging.service.ts (97%) rename packages/twenty-server/src/{core => engine/modules}/open-api/open-api.controller.ts (89%) create mode 100644 packages/twenty-server/src/engine/modules/open-api/open-api.module.ts rename packages/twenty-server/src/{core => engine/modules}/open-api/open-api.service.spec.ts (74%) rename packages/twenty-server/src/{core => engine/modules}/open-api/open-api.service.ts (87%) rename packages/twenty-server/src/{core => engine/modules}/open-api/utils/__tests__/components.utils.spec.ts (83%) rename packages/twenty-server/src/{core => engine/modules}/open-api/utils/__tests__/parameters.utils.spec.ts (84%) rename packages/twenty-server/src/{core => engine/modules}/open-api/utils/base-schema.utils.ts (94%) rename packages/twenty-server/src/{core => engine/modules}/open-api/utils/components.utils.ts (97%) rename packages/twenty-server/src/{core => engine/modules}/open-api/utils/compute-schema-tags.utils.ts (81%) rename packages/twenty-server/src/{core => engine/modules}/open-api/utils/computeWebhooks.utils.ts (95%) rename packages/twenty-server/src/{core => engine/modules}/open-api/utils/get-error-responses.utils.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/open-api/utils/parameters.utils.ts (82%) rename packages/twenty-server/src/{core => engine/modules}/open-api/utils/path.utils.ts (93%) rename packages/twenty-server/src/{core => engine/modules}/open-api/utils/request-body.utils.ts (78%) rename packages/twenty-server/src/{core => engine/modules}/open-api/utils/responses.utils.ts (97%) rename packages/twenty-server/src/{core => engine/modules}/quick-actions/intelligence.service.ts (86%) rename packages/twenty-server/src/{core => engine/modules}/quick-actions/interfaces/company.interface.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/quick-actions/quick-actions.module.ts (51%) rename packages/twenty-server/src/{core => engine/modules}/quick-actions/quick-actions.service.ts (88%) rename packages/twenty-server/src/{core => engine/modules}/refresh-token/dtos/create-refresh-token.input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/refresh-token/hooks/before-create-one-refresh-token.hook.ts (87%) rename packages/twenty-server/src/{core => engine/modules}/refresh-token/refresh-token.auto-resolver-opts.ts (93%) rename packages/twenty-server/src/{core => engine/modules}/refresh-token/refresh-token.entity.ts (95%) rename packages/twenty-server/src/{core => engine/modules}/refresh-token/refresh-token.module.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/refresh-token/services/refresh-token.service.spec.ts (88%) rename packages/twenty-server/src/{core => engine/modules}/refresh-token/services/refresh-token.service.ts (63%) rename packages/twenty-server/src/{core => engine/modules}/user-workspace/user-workspace.entity.ts (90%) rename packages/twenty-server/src/{core => engine/modules}/user-workspace/user-workspace.module.ts (63%) rename packages/twenty-server/src/{core => engine/modules}/user-workspace/user-workspace.service.ts (86%) rename packages/twenty-server/src/{core => engine/modules}/user/dtos/workspace-member.dto.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/user/services/user.service.spec.ts (85%) rename packages/twenty-server/src/{core => engine/modules}/user/services/user.service.ts (90%) rename packages/twenty-server/src/{core => engine/modules}/user/user.auto-resolver-opts.ts (85%) rename packages/twenty-server/src/{core => engine/modules}/user/user.entity.ts (85%) rename packages/twenty-server/src/{core => engine/modules}/user/user.module.ts (66%) rename packages/twenty-server/src/{core => engine/modules}/user/user.resolver.ts (85%) rename packages/twenty-server/src/{core => engine/modules}/workspace/dtos/activate-workspace-input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/workspace/dtos/update-workspace-input.ts (100%) rename packages/twenty-server/src/{core => engine/modules}/workspace/services/workspace.service.spec.ts (69%) rename packages/twenty-server/src/{core => engine/modules}/workspace/services/workspace.service.ts (78%) rename packages/twenty-server/src/{core => engine/modules}/workspace/workspace.auto-resolver-opts.ts (83%) rename packages/twenty-server/src/{core => engine/modules}/workspace/workspace.entity.ts (85%) rename packages/twenty-server/src/{core => engine/modules}/workspace/workspace.module.ts (60%) rename packages/twenty-server/src/{core => engine/modules}/workspace/workspace.resolver.ts (78%) rename packages/twenty-server/src/{workspace => engine}/workspace-datasource/workspace-datasource.module.ts (81%) rename packages/twenty-server/src/{workspace => engine}/workspace-datasource/workspace-datasource.service.ts (95%) rename packages/twenty-server/src/{workspace => engine}/workspace-manager/demo-objects-prefill-data/companies-demo.json (100%) rename packages/twenty-server/src/{workspace => engine}/workspace-manager/demo-objects-prefill-data/company.ts (100%) rename packages/twenty-server/src/{workspace => engine}/workspace-manager/demo-objects-prefill-data/demo-objects-prefill-data.ts (60%) rename packages/twenty-server/src/{workspace => engine}/workspace-manager/demo-objects-prefill-data/opportunity.ts (100%) rename packages/twenty-server/src/{workspace => engine}/workspace-manager/demo-objects-prefill-data/people-demo.json (100%) rename packages/twenty-server/src/{workspace => engine}/workspace-manager/demo-objects-prefill-data/person.ts (100%) rename packages/twenty-server/src/{workspace => engine}/workspace-manager/demo-objects-prefill-data/pipeline-step.ts (100%) rename packages/twenty-server/src/{workspace/workspace-manager/standard-objects-prefill-data => engine/workspace-manager/demo-objects-prefill-data}/view.ts (98%) rename packages/twenty-server/src/{workspace => engine}/workspace-manager/demo-objects-prefill-data/workspace-member.ts (100%) rename packages/twenty-server/src/{workspace => engine}/workspace-manager/standard-objects-prefill-data/company.ts (100%) rename packages/twenty-server/src/{workspace => engine}/workspace-manager/standard-objects-prefill-data/person.ts (100%) rename packages/twenty-server/src/{workspace => engine}/workspace-manager/standard-objects-prefill-data/pipeline-step.ts (100%) rename packages/twenty-server/src/{workspace => engine}/workspace-manager/standard-objects-prefill-data/standard-objects-prefill-data.ts (61%) rename packages/twenty-server/src/{workspace/workspace-manager/demo-objects-prefill-data => engine/workspace-manager/standard-objects-prefill-data}/view.ts (98%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-cleaner/commands/clean-inactive-workspaces.command.ts (90%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-cleaner/commands/delete-incomplete-workspaces.command.ts (91%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-cleaner/commands/start-clean-inactive-workspaces.cron.command.ts (75%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-cleaner/commands/stop-clean-inactive-workspaces.cron.command.ts (74%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-cleaner/crons/clean-inactive-workspace.cron.pattern.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-cleaner/crons/clean-inactive-workspace.job.ts (85%) create mode 100644 packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/workspace-cleaner.module.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/workspace-health/commands/workspace-health-command.module.ts rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/commands/workspace-health.command.ts (90%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/fixer/abstract-workspace.fixer.ts (84%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/fixer/index.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/fixer/workspace-default-value.fixer.ts (77%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/fixer/workspace-nullable.fixer.ts (72%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/fixer/workspace-target-column-map.fixer.ts (79%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/fixer/workspace-type.fixer.ts (78%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/interfaces/workspace-health-fix-kind.interface.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/interfaces/workspace-health-issue.interface.ts (91%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/interfaces/workspace-health-options.interface.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/interfaces/workspace-table-definition.interface.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/services/database-structure.service.ts (90%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/services/field-metadata-health.service.ts (84%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/services/object-metadata-health.service.ts (85%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/services/relation-metadata.health.service.ts (85%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/services/workspace-fix.service.ts (70%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/utils/compute-composite-field-metadata.util.ts (70%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/utils/is-workspace-health-issue-type.util.ts (87%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/utils/map-field-metadata-type-to-data-type.util.ts (90%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/utils/valid-name.util.ts (100%) create mode 100644 packages/twenty-server/src/engine/workspace-manager/workspace-health/workspace-health.module.ts rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-health/workspace-health.service.ts (77%) create mode 100644 packages/twenty-server/src/engine/workspace-manager/workspace-manager.module.ts rename packages/twenty-server/src/{workspace => engine}/workspace-manager/workspace-manager.service.ts (84%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-builder/factories/index.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-builder/factories/workspace-migration-field.factory.ts (88%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-builder/factories/workspace-migration-object.factory.ts (77%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-builder/factories/workspace-migration-relation.factory.ts (90%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-builder/workspace-migration-builder.module.ts (74%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-runner/commands/workspace-execute-pending-migrations.command.ts (85%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-runner/commands/workspace-sync-metadata-commands.module.ts (69%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-runner/services/workspace-migration-enum.service.ts (95%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-runner/services/workspace-migration-type.service.ts (90%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-runner/utils/convert-on-delete-action-to-on-delete.util.ts (82%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-runner/utils/custom-table-default-column.util.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-runner/workspace-migration-runner.module.ts (54%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-migration-runner/workspace-migration-runner.service.ts (94%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/commands/add-standard-id.command.ts (84%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/commands/services/sync-workspace-logger.service.ts (91%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/commands/sync-workspace-metadata.command.ts (87%) create mode 100644 packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/commands/workspace-sync-metadata-commands.module.ts rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/comparators/__tests__/workspace-field.comparator.spec.ts (91%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/comparators/__tests__/workspace-object.comparator.spec.ts (88%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/comparators/__tests__/workspace-relation.comparator.spec.ts (88%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/comparators/index.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/comparators/utils/__tests__/order-object-properties.util.spec.ts (90%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/comparators/utils/__tests__/transform-metadata-for-comparison.util.spec.ts (90%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/comparators/utils/order-object-properties.util.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/comparators/workspace-field.comparator.ts (88%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/comparators/workspace-object.comparator.ts (81%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/comparators/workspace-relation.comparator.ts (90%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/constants/standard-field-ids.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/constants/standard-object-ids.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/custom-objects/custom.object-metadata.ts (61%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/decorators/base-custom-object-metadata.decorator.ts (70%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/decorators/dynamic-field-metadata.interface.ts (78%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/decorators/field-metadata.decorator.ts (76%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/decorators/gate.decorator.ts (72%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/decorators/is-nullable.decorator.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/decorators/is-system.decorator.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/decorators/object-metadata.decorator.ts (69%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/decorators/relation-metadata.decorator.ts (81%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/factories/feature-flags.factory.ts (71%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/factories/index.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/factories/standard-field.factory.ts (75%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/factories/standard-object.factory.ts (70%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/factories/standard-relation.factory.ts (86%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/interfaces/comparator.interface.ts (86%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/interfaces/gate-decorator.interface.ts (100%) create mode 100644 packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/mapped-metadata.interface.ts rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/interfaces/partial-field-metadata.interface.ts (58%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/interfaces/partial-object-metadata.interface.ts (65%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/interfaces/partial-relation-metadata.interface.ts (61%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface.ts (60%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/interfaces/reflect-custom-object-metadata.interface.ts (67%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/interfaces/reflect-field-metadata.interface.ts (55%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/interfaces/reflect-object-metadata.interface.ts (75%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface.ts (71%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/interfaces/workspace-sync-context.interface.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/services/workspace-metadata-updater.service.ts (92%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/services/workspace-sync-field-metadata.service.ts (70%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/services/workspace-sync-object-metadata.service.ts (72%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/services/workspace-sync-relation-metadata.service.ts (69%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/standard-objects/base.object-metadata.ts (63%) create mode 100644 packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/standard-objects/index.ts rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/storage/workspace-sync.storage.ts (80%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/types/object-record.ts (69%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/utils/compute-standard-object.util.ts (75%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/utils/convert-class-to-object-metadata-name.util.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/utils/create-deterministic-uuid.util.ts (100%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/utils/is-gate-and-not-enabled.util.ts (70%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/utils/sync-metadata.util.spec.ts (89%) rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/utils/sync-metadata.util.ts (100%) create mode 100644 packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.module.ts rename packages/twenty-server/src/{workspace => engine/workspace-manager}/workspace-sync-metadata/workspace-sync-metadata.service.ts (78%) delete mode 100644 packages/twenty-server/src/graphql-config/graphql-config.module.ts delete mode 100644 packages/twenty-server/src/metadata/field-metadata/composite-types/index.ts delete mode 100644 packages/twenty-server/src/metadata/field-metadata/interfaces/field-metadata.interface.ts delete mode 100644 packages/twenty-server/src/metadata/workspace-migration/factories/factories.ts delete mode 100644 packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module.ts delete mode 100644 packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company/create-company.module.ts delete mode 100644 packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-contact/create-contact.module.ts delete mode 100644 packages/twenty-server/src/workspace/calendar-and-messaging/repositories/blocklist/blocklist.module.ts delete mode 100644 packages/twenty-server/src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.module.ts delete mode 100644 packages/twenty-server/src/workspace/calendar/calendar.module.ts delete mode 100644 packages/twenty-server/src/workspace/calendar/commands/workspace-calendar-sync-commands.module.ts delete mode 100644 packages/twenty-server/src/workspace/calendar/repositories/calendar-channel-event-association/calendar-channel-event-assocation.module.ts delete mode 100644 packages/twenty-server/src/workspace/calendar/repositories/calendar-channel/calendar-channel.module.ts delete mode 100644 packages/twenty-server/src/workspace/calendar/repositories/calendar-event-attendee/calendar-event-attendee.module.ts delete mode 100644 packages/twenty-server/src/workspace/calendar/repositories/calendar-event/calendar-event.module.ts delete mode 100644 packages/twenty-server/src/workspace/calendar/services/calendar-event-cleaner/calendar-event-cleaner.module.ts delete mode 100644 packages/twenty-server/src/workspace/messaging/commands/fetch-workspace-messages-commands.module.ts delete mode 100644 packages/twenty-server/src/workspace/messaging/messaging.module.ts delete mode 100644 packages/twenty-server/src/workspace/messaging/query-hooks/messaging-query-hook.module.ts delete mode 100644 packages/twenty-server/src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-assocation.module.ts delete mode 100644 packages/twenty-server/src/workspace/messaging/repositories/message-channel/message-channel.module.ts delete mode 100644 packages/twenty-server/src/workspace/messaging/repositories/message-participant/message-participant.module.ts delete mode 100644 packages/twenty-server/src/workspace/messaging/repositories/message-thread/message-thread.module.ts delete mode 100644 packages/twenty-server/src/workspace/messaging/repositories/message/message.module.ts delete mode 100644 packages/twenty-server/src/workspace/messaging/services/thread-cleaner/thread-cleaner.module.ts delete mode 100644 packages/twenty-server/src/workspace/repositories/person/person.module.ts delete mode 100644 packages/twenty-server/src/workspace/repositories/workspace-member/workspace-member.module.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-cleaner/workspace-cleaner.module.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-health/commands/workspace-health-command.module.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-health/workspace-health.module.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-manager/workspace-manager.module.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-query-runner/services/record-position-backfill-module.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.config.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.module.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-query-runner/workspace-query-runner.module.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-schema-builder/utils/object-contains-relation-field.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-schema-storage/workspace-schema-storage.module.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-sync-metadata/commands/workspace-sync-metadata-commands.module.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/mapped-metadata.interface.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/blocklist.object-metadata.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/comment.object-metadata.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/index.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/webhook.object-metadata.ts delete mode 100644 packages/twenty-server/src/workspace/workspace-sync-metadata/workspace-sync-metadata.module.ts delete mode 100644 packages/twenty-server/src/workspace/workspace.module.ts diff --git a/packages/twenty-server/package.json b/packages/twenty-server/package.json index d008ff97c3..79f40dc71f 100644 --- a/packages/twenty-server/package.json +++ b/packages/twenty-server/package.json @@ -34,6 +34,7 @@ "dependencies": { "@graphql-yoga/nestjs": "patch:@graphql-yoga/nestjs@2.1.0#./patches/@graphql-yoga+nestjs+2.1.0.patch", "@nestjs/cache-manager": "^2.2.1", + "@nestjs/devtools-integration": "^0.1.6", "@nestjs/graphql": "patch:@nestjs/graphql@12.0.8#./patches/@nestjs+graphql+12.0.8.patch", "@ptc-org/nestjs-query-graphql": "patch:@ptc-org/nestjs-query-graphql@4.2.0#./patches/@ptc-org+nestjs-query-graphql+4.2.0.patch", "cache-manager": "^5.4.0", diff --git a/packages/twenty-server/src/api/rest/api-rest-query-builder/api-rest-query-builder.factory.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/api-rest-query-builder.factory.spec.ts new file mode 100644 index 0000000000..7ad9de1fcc --- /dev/null +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/api-rest-query-builder.factory.spec.ts @@ -0,0 +1,46 @@ +import { Test, TestingModule } from '@nestjs/testing'; + +import { ApiRestQueryBuilderFactory } from 'src/api/rest/api-rest-query-builder/api-rest-query-builder.factory'; +import { DeleteQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/delete-query.factory'; +import { CreateQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/create-query.factory'; +import { UpdateQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/update-query.factory'; +import { FindOneQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/find-one-query.factory'; +import { FindManyQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/find-many-query.factory'; +import { DeleteVariablesFactory } from 'src/api/rest/api-rest-query-builder/factories/delete-variables.factory'; +import { CreateVariablesFactory } from 'src/api/rest/api-rest-query-builder/factories/create-variables.factory'; +import { UpdateVariablesFactory } from 'src/api/rest/api-rest-query-builder/factories/update-variables.factory'; +import { GetVariablesFactory } from 'src/api/rest/api-rest-query-builder/factories/get-variables.factory'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; +import { EnvironmentService } from 'src/integrations/environment/environment.service'; + +describe('ApiRestQueryBuilderFactory', () => { + let service: ApiRestQueryBuilderFactory; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ + ApiRestQueryBuilderFactory, + { provide: DeleteQueryFactory, useValue: {} }, + { provide: CreateQueryFactory, useValue: {} }, + { provide: UpdateQueryFactory, useValue: {} }, + { provide: FindOneQueryFactory, useValue: {} }, + { provide: FindManyQueryFactory, useValue: {} }, + { provide: DeleteVariablesFactory, useValue: {} }, + { provide: CreateVariablesFactory, useValue: {} }, + { provide: UpdateVariablesFactory, useValue: {} }, + { provide: GetVariablesFactory, useValue: {} }, + { provide: ObjectMetadataService, useValue: {} }, + { provide: TokenService, useValue: {} }, + { provide: EnvironmentService, useValue: {} }, + ], + }).compile(); + + service = module.get( + ApiRestQueryBuilderFactory, + ); + }); + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/api-rest-query-builder.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/api-rest-query-builder.factory.ts similarity index 72% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/api-rest-query-builder.factory.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/api-rest-query-builder.factory.ts index 95ff90af8a..4dc97f7ed0 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/api-rest-query-builder.factory.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/api-rest-query-builder.factory.ts @@ -2,21 +2,21 @@ import { BadRequestException, Injectable } from '@nestjs/common'; import { Request } from 'express'; -import { DeleteQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/delete-query.factory'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { TokenService } from 'src/core/auth/services/token.service'; -import { CreateQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/create-query.factory'; -import { UpdateQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/update-query.factory'; -import { FindOneQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/find-one-query.factory'; -import { FindManyQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/find-many-query.factory'; -import { DeleteVariablesFactory } from 'src/core/api-rest/api-rest-query-builder/factories/delete-variables.factory'; -import { CreateVariablesFactory } from 'src/core/api-rest/api-rest-query-builder/factories/create-variables.factory'; -import { UpdateVariablesFactory } from 'src/core/api-rest/api-rest-query-builder/factories/update-variables.factory'; -import { GetVariablesFactory } from 'src/core/api-rest/api-rest-query-builder/factories/get-variables.factory'; -import { parsePath } from 'src/core/api-rest/api-rest-query-builder/utils/parse-path.utils'; -import { computeDepth } from 'src/core/api-rest/api-rest-query-builder/utils/compute-depth.utils'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { ApiRestQuery } from 'src/core/api-rest/types/api-rest-query.type'; +import { DeleteQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/delete-query.factory'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; +import { CreateQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/create-query.factory'; +import { UpdateQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/update-query.factory'; +import { FindOneQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/find-one-query.factory'; +import { FindManyQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/find-many-query.factory'; +import { DeleteVariablesFactory } from 'src/api/rest/api-rest-query-builder/factories/delete-variables.factory'; +import { CreateVariablesFactory } from 'src/api/rest/api-rest-query-builder/factories/create-variables.factory'; +import { UpdateVariablesFactory } from 'src/api/rest/api-rest-query-builder/factories/update-variables.factory'; +import { GetVariablesFactory } from 'src/api/rest/api-rest-query-builder/factories/get-variables.factory'; +import { parsePath } from 'src/api/rest/api-rest-query-builder/utils/parse-path.utils'; +import { computeDepth } from 'src/api/rest/api-rest-query-builder/utils/compute-depth.utils'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { ApiRestQuery } from 'src/api/rest/types/api-rest-query.type'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; @Injectable() @@ -47,7 +47,9 @@ export class ApiRestQueryBuilderFactory { if (!objectMetadataItems.length) { throw new BadRequestException( - `No object was found for the workspace associated with this API key. You may generate a new one here ${this.environmentService.get('FRONT_BASE_URL')}/settings/developers`, + `No object was found for the workspace associated with this API key. You may generate a new one here ${this.environmentService.get( + 'FRONT_BASE_URL', + )}/settings/developers`, ); } diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/api-rest-query-builder.module.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/api-rest-query-builder.module.ts similarity index 50% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/api-rest-query-builder.module.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/api-rest-query-builder.module.ts index 1c73c48389..cb86544a0e 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/api-rest-query-builder.module.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/api-rest-query-builder.module.ts @@ -1,9 +1,9 @@ import { Module } from '@nestjs/common'; -import { ApiRestQueryBuilderFactory } from 'src/core/api-rest/api-rest-query-builder/api-rest-query-builder.factory'; -import { apiRestQueryBuilderFactories } from 'src/core/api-rest/api-rest-query-builder/factories/factories'; -import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module'; -import { AuthModule } from 'src/core/auth/auth.module'; +import { ApiRestQueryBuilderFactory } from 'src/api/rest/api-rest-query-builder/api-rest-query-builder.factory'; +import { apiRestQueryBuilderFactories } from 'src/api/rest/api-rest-query-builder/factories/factories'; +import { ObjectMetadataModule } from 'src/engine-metadata/object-metadata/object-metadata.module'; +import { AuthModule } from 'src/engine/modules/auth/auth.module'; @Module({ imports: [ObjectMetadataModule, AuthModule], diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/create-query.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/create-query.factory.ts similarity index 84% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/create-query.factory.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/create-query.factory.ts index 16622d8ed5..238d8365fa 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/create-query.factory.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/create-query.factory.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; import { capitalize } from 'src/utils/capitalize'; -import { mapFieldMetadataToGraphqlQuery } from 'src/core/api-rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils'; +import { mapFieldMetadataToGraphqlQuery } from 'src/api/rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils'; @Injectable() export class CreateQueryFactory { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/create-variables.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/create-variables.factory.ts similarity index 68% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/create-variables.factory.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/create-variables.factory.ts index 981e1df2ae..b7186628e7 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/create-variables.factory.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/create-variables.factory.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; -import { ApiRestQueryVariables } from 'src/core/api-rest/types/api-rest-query-variables.type'; +import { ApiRestQueryVariables } from 'src/api/rest/types/api-rest-query-variables.type'; @Injectable() export class CreateVariablesFactory { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/delete-query.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/delete-query.factory.ts similarity index 100% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/delete-query.factory.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/delete-query.factory.ts diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/delete-variables.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/delete-variables.factory.ts similarity index 66% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/delete-variables.factory.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/delete-variables.factory.ts index eef62953fe..c0a7a4a59a 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/delete-variables.factory.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/delete-variables.factory.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; -import { ApiRestQueryVariables } from 'src/core/api-rest/types/api-rest-query-variables.type'; +import { ApiRestQueryVariables } from 'src/api/rest/types/api-rest-query-variables.type'; @Injectable() export class DeleteVariablesFactory { diff --git a/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/factories.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/factories.ts new file mode 100644 index 0000000000..e6f4f822f6 --- /dev/null +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/factories.ts @@ -0,0 +1,29 @@ +import { DeleteQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/delete-query.factory'; +import { CreateQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/create-query.factory'; +import { UpdateQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/update-query.factory'; +import { FindOneQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/find-one-query.factory'; +import { FindManyQueryFactory } from 'src/api/rest/api-rest-query-builder/factories/find-many-query.factory'; +import { DeleteVariablesFactory } from 'src/api/rest/api-rest-query-builder/factories/delete-variables.factory'; +import { CreateVariablesFactory } from 'src/api/rest/api-rest-query-builder/factories/create-variables.factory'; +import { UpdateVariablesFactory } from 'src/api/rest/api-rest-query-builder/factories/update-variables.factory'; +import { GetVariablesFactory } from 'src/api/rest/api-rest-query-builder/factories/get-variables.factory'; +import { LastCursorInputFactory } from 'src/api/rest/api-rest-query-builder/factories/input-factories/last-cursor-input.factory'; +import { LimitInputFactory } from 'src/api/rest/api-rest-query-builder/factories/input-factories/limit-input.factory'; +import { OrderByInputFactory } from 'src/api/rest/api-rest-query-builder/factories/input-factories/order-by-input.factory'; +import { FilterInputFactory } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-input.factory'; + +export const apiRestQueryBuilderFactories = [ + DeleteQueryFactory, + CreateQueryFactory, + UpdateQueryFactory, + FindOneQueryFactory, + FindManyQueryFactory, + DeleteVariablesFactory, + CreateVariablesFactory, + UpdateVariablesFactory, + GetVariablesFactory, + LastCursorInputFactory, + LimitInputFactory, + OrderByInputFactory, + FilterInputFactory, +]; diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/find-many-query.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/find-many-query.factory.ts similarity index 90% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/find-many-query.factory.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/find-many-query.factory.ts index 5c34377216..83ef66dba1 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/find-many-query.factory.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/find-many-query.factory.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; import { capitalize } from 'src/utils/capitalize'; -import { mapFieldMetadataToGraphqlQuery } from 'src/core/api-rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils'; +import { mapFieldMetadataToGraphqlQuery } from 'src/api/rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils'; @Injectable() export class FindManyQueryFactory { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/find-one-query.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/find-one-query.factory.ts similarity index 85% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/find-one-query.factory.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/find-one-query.factory.ts index 677bfd7603..47a980b148 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/find-one-query.factory.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/find-one-query.factory.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; import { capitalize } from 'src/utils/capitalize'; -import { mapFieldMetadataToGraphqlQuery } from 'src/core/api-rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils'; +import { mapFieldMetadataToGraphqlQuery } from 'src/api/rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils'; @Injectable() export class FindOneQueryFactory { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/get-variables.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/get-variables.factory.ts similarity index 58% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/get-variables.factory.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/get-variables.factory.ts index 12dd517412..f9078a212b 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/get-variables.factory.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/get-variables.factory.ts @@ -2,11 +2,11 @@ import { Injectable } from '@nestjs/common'; import { Request } from 'express'; -import { LastCursorInputFactory } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/last-cursor-input.factory'; -import { LimitInputFactory } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/limit-input.factory'; -import { OrderByInputFactory } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/order-by-input.factory'; -import { FilterInputFactory } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-input.factory'; -import { ApiRestQueryVariables } from 'src/core/api-rest/types/api-rest-query-variables.type'; +import { LastCursorInputFactory } from 'src/api/rest/api-rest-query-builder/factories/input-factories/last-cursor-input.factory'; +import { LimitInputFactory } from 'src/api/rest/api-rest-query-builder/factories/input-factories/limit-input.factory'; +import { OrderByInputFactory } from 'src/api/rest/api-rest-query-builder/factories/input-factories/order-by-input.factory'; +import { FilterInputFactory } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-input.factory'; +import { ApiRestQueryVariables } from 'src/api/rest/types/api-rest-query-variables.type'; @Injectable() export class GetVariablesFactory { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/__tests__/filter-input.factory.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/__tests__/filter-input.factory.spec.ts similarity index 96% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/__tests__/filter-input.factory.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/__tests__/filter-input.factory.spec.ts index aeeeb57011..dddc306b32 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/__tests__/filter-input.factory.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/__tests__/filter-input.factory.spec.ts @@ -1,7 +1,7 @@ import { Test, TestingModule } from '@nestjs/testing'; import { objectMetadataItem } from 'src/utils/utils-test/object-metadata-item'; -import { FilterInputFactory } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-input.factory'; +import { FilterInputFactory } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-input.factory'; describe('FilterInputFactory', () => { const objectMetadata = { objectMetadataItem: objectMetadataItem }; diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/__tests__/last-cursor-input.factory.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/__tests__/last-cursor-input.factory.spec.ts similarity index 86% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/__tests__/last-cursor-input.factory.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/__tests__/last-cursor-input.factory.spec.ts index 6d0c7281ef..9a8532ea24 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/__tests__/last-cursor-input.factory.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/__tests__/last-cursor-input.factory.spec.ts @@ -1,6 +1,6 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { LastCursorInputFactory } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/last-cursor-input.factory'; +import { LastCursorInputFactory } from 'src/api/rest/api-rest-query-builder/factories/input-factories/last-cursor-input.factory'; describe('LastCursorInputFactory', () => { let service: LastCursorInputFactory; diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/__tests__/limit-input.factory.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/__tests__/limit-input.factory.spec.ts similarity index 90% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/__tests__/limit-input.factory.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/__tests__/limit-input.factory.spec.ts index 5851a878ff..e9005f52b6 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/__tests__/limit-input.factory.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/__tests__/limit-input.factory.spec.ts @@ -1,6 +1,6 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { LimitInputFactory } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/limit-input.factory'; +import { LimitInputFactory } from 'src/api/rest/api-rest-query-builder/factories/input-factories/limit-input.factory'; describe('LimitInputFactory', () => { let service: LimitInputFactory; diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/__tests__/order-by-input.factory.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/__tests__/order-by-input.factory.spec.ts similarity index 93% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/__tests__/order-by-input.factory.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/__tests__/order-by-input.factory.spec.ts index ceb08ce277..a8446defc8 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/__tests__/order-by-input.factory.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/__tests__/order-by-input.factory.spec.ts @@ -1,9 +1,9 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { OrderByDirection } from 'src/workspace/workspace-query-builder/interfaces/record.interface'; +import { OrderByDirection } from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; import { objectMetadataItem } from 'src/utils/utils-test/object-metadata-item'; -import { OrderByInputFactory } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/order-by-input.factory'; +import { OrderByInputFactory } from 'src/api/rest/api-rest-query-builder/factories/input-factories/order-by-input.factory'; describe('OrderByInputFactory', () => { const objectMetadata = { objectMetadataItem: objectMetadataItem }; diff --git a/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-input.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-input.factory.ts new file mode 100644 index 0000000000..355ccce52c --- /dev/null +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-input.factory.ts @@ -0,0 +1,25 @@ +import { Injectable } from '@nestjs/common'; + +import { Request } from 'express'; + +import { addDefaultConjunctionIfMissing } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils'; +import { checkFilterQuery } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/check-filter-query.utils'; +import { parseFilter } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils'; +import { FieldValue } from 'src/api/rest/types/api-rest-field-value.type'; + +@Injectable() +export class FilterInputFactory { + create(request: Request, objectMetadata): Record { + let filterQuery = request.query.filter; + + if (typeof filterQuery !== 'string') { + return {}; + } + + checkFilterQuery(filterQuery); + + filterQuery = addDefaultConjunctionIfMissing(filterQuery); + + return parseFilter(filterQuery, objectMetadata.objectMetadataItem); + } +} diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/add-default-conjunction.utils.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/add-default-conjunction.utils.spec.ts similarity index 71% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/add-default-conjunction.utils.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/add-default-conjunction.utils.spec.ts index 0b3f0caa87..683c82eb92 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/add-default-conjunction.utils.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/add-default-conjunction.utils.spec.ts @@ -1,4 +1,4 @@ -import { addDefaultConjunctionIfMissing } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils'; +import { addDefaultConjunctionIfMissing } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils'; describe('addDefaultConjunctionIfMissing', () => { it('should add default conjunction if missing', () => { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/check-filter-query.utils.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/check-filter-query.utils.spec.ts similarity index 86% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/check-filter-query.utils.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/check-filter-query.utils.spec.ts index 1471f66d3b..b720f77bd7 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/check-filter-query.utils.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/check-filter-query.utils.spec.ts @@ -1,4 +1,4 @@ -import { checkFilterQuery } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/check-filter-query.utils'; +import { checkFilterQuery } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/check-filter-query.utils'; describe('checkFilterQuery', () => { it('should check filter query', () => { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/format-field-values.utils.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/format-field-values.utils.spec.ts similarity index 87% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/format-field-values.utils.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/format-field-values.utils.spec.ts index 8bbf87d1eb..8ac0fd878e 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/format-field-values.utils.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/format-field-values.utils.spec.ts @@ -1,5 +1,5 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { formatFieldValue } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/format-field-values.utils'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { formatFieldValue } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/format-field-values.utils'; describe('formatFieldValue', () => { it('should format fieldNumber value', () => { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-base-filter.utils.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-base-filter.utils.spec.ts similarity index 90% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-base-filter.utils.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-base-filter.utils.spec.ts index aed61bb6f4..e749723112 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-base-filter.utils.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-base-filter.utils.spec.ts @@ -1,4 +1,4 @@ -import { parseBaseFilter } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-base-filter.utils'; +import { parseBaseFilter } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-base-filter.utils'; describe('parseBaseFilter', () => { it('should parse simple filter string test 1', () => { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter-content.utils.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter-content.utils.spec.ts similarity index 91% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter-content.utils.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter-content.utils.spec.ts index 1d09464eea..9ca181b3a9 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter-content.utils.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter-content.utils.spec.ts @@ -1,4 +1,4 @@ -import { parseFilterContent } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter-content.utils'; +import { parseFilterContent } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter-content.utils'; describe('parseFilterContent', () => { it('should parse query filter test 1', () => { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter.utils.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter.utils.spec.ts similarity index 95% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter.utils.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter.utils.spec.ts index b0bbfef883..45b88a6a60 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter.utils.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/__tests__/parse-filter.utils.spec.ts @@ -1,5 +1,5 @@ import { objectMetadataItem } from 'src/utils/utils-test/object-metadata-item'; -import { parseFilter } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils'; +import { parseFilter } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils'; describe('parseFilter', () => { it('should parse string filter test 1', () => { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils.ts similarity index 68% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils.ts index d1197ad485..2c9599d963 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils.ts @@ -1,4 +1,4 @@ -import { Conjunctions } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils'; +import { Conjunctions } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils'; export const DEFAULT_CONJUNCTION = Conjunctions.and; diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/check-filter-query.utils.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/check-filter-query.utils.ts similarity index 100% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/check-filter-query.utils.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/check-filter-query.utils.ts diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/format-field-values.utils.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/format-field-values.utils.ts similarity index 86% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/format-field-values.utils.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/format-field-values.utils.ts index 2c7a4bdd78..442ecd7770 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/format-field-values.utils.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/format-field-values.utils.ts @@ -1,7 +1,7 @@ import { BadRequestException } from '@nestjs/common'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { FieldValue } from 'src/core/api-rest/types/api-rest-field-value.type'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { FieldValue } from 'src/api/rest/types/api-rest-field-value.type'; export const formatFieldValue = ( value: string, diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-base-filter.utils.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-base-filter.utils.ts similarity index 100% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-base-filter.utils.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-base-filter.utils.ts diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter-content.utils.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter-content.utils.ts similarity index 100% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter-content.utils.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter-content.utils.ts diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils.ts similarity index 72% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils.ts index 34ac831aa6..6eb4eeb88d 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils.ts @@ -1,13 +1,13 @@ import { BadRequestException } from '@nestjs/common'; -import { parseFilterContent } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter-content.utils'; -import { parseBaseFilter } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-base-filter.utils'; +import { parseFilterContent } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter-content.utils'; +import { parseBaseFilter } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-base-filter.utils'; import { checkFields, getFieldType, -} from 'src/core/api-rest/api-rest-query-builder/utils/fields.utils'; -import { formatFieldValue } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/format-field-values.utils'; -import { FieldValue } from 'src/core/api-rest/types/api-rest-field-value.type'; +} from 'src/api/rest/api-rest-query-builder/utils/fields.utils'; +import { formatFieldValue } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/format-field-values.utils'; +import { FieldValue } from 'src/api/rest/types/api-rest-field-value.type'; export enum Conjunctions { or = 'or', diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/last-cursor-input.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/last-cursor-input.factory.ts similarity index 100% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/last-cursor-input.factory.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/last-cursor-input.factory.ts diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/limit-input.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/limit-input.factory.ts similarity index 100% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/limit-input.factory.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/limit-input.factory.ts diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/order-by-input.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/order-by-input.factory.ts similarity index 92% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/order-by-input.factory.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/order-by-input.factory.ts index 2fb18068ac..81d604129e 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/order-by-input.factory.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/input-factories/order-by-input.factory.ts @@ -5,9 +5,9 @@ import { Request } from 'express'; import { OrderByDirection, RecordOrderBy, -} from 'src/workspace/workspace-query-builder/interfaces/record.interface'; +} from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; -import { checkFields } from 'src/core/api-rest/api-rest-query-builder/utils/fields.utils'; +import { checkFields } from 'src/api/rest/api-rest-query-builder/utils/fields.utils'; export const DEFAULT_ORDER_DIRECTION = OrderByDirection.AscNullsFirst; diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/update-query.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/update-query.factory.ts similarity index 85% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/update-query.factory.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/update-query.factory.ts index 386ec4b97c..05f964e214 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/update-query.factory.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/update-query.factory.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; import { capitalize } from 'src/utils/capitalize'; -import { mapFieldMetadataToGraphqlQuery } from 'src/core/api-rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils'; +import { mapFieldMetadataToGraphqlQuery } from 'src/api/rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils'; @Injectable() export class UpdateQueryFactory { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/update-variables.factory.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/update-variables.factory.ts similarity index 70% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/update-variables.factory.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/factories/update-variables.factory.ts index 298bdc9eeb..ca38e0b948 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/update-variables.factory.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/factories/update-variables.factory.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; -import { ApiRestQueryVariables } from 'src/core/api-rest/types/api-rest-query-variables.type'; +import { ApiRestQueryVariables } from 'src/api/rest/types/api-rest-query-variables.type'; @Injectable() export class UpdateVariablesFactory { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/__tests__/compute-depth.utils.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/__tests__/compute-depth.utils.spec.ts similarity index 85% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/__tests__/compute-depth.utils.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/utils/__tests__/compute-depth.utils.spec.ts index b257618fba..c5bd0f4e35 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/__tests__/compute-depth.utils.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/__tests__/compute-depth.utils.spec.ts @@ -1,4 +1,4 @@ -import { computeDepth } from 'src/core/api-rest/api-rest-query-builder/utils/compute-depth.utils'; +import { computeDepth } from 'src/api/rest/api-rest-query-builder/utils/compute-depth.utils'; describe('computeDepth', () => { it('should compute depth from query', () => { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/__tests__/fields.utils.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/__tests__/fields.utils.spec.ts similarity index 82% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/__tests__/fields.utils.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/utils/__tests__/fields.utils.spec.ts index 37f344c4d4..6a6049ba06 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/__tests__/fields.utils.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/__tests__/fields.utils.spec.ts @@ -2,8 +2,8 @@ import { objectMetadataItem } from 'src/utils/utils-test/object-metadata-item'; import { checkFields, getFieldType, -} from 'src/core/api-rest/api-rest-query-builder/utils/fields.utils'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +} from 'src/api/rest/api-rest-query-builder/utils/fields.utils'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; describe('FieldUtils', () => { describe('getFieldType', () => { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/__tests__/map-field-metadata-to-graphql-query.utils.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/__tests__/map-field-metadata-to-graphql-query.utils.spec.ts similarity index 85% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/__tests__/map-field-metadata-to-graphql-query.utils.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/utils/__tests__/map-field-metadata-to-graphql-query.utils.spec.ts index cdd88db4c1..d4ce695a19 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/__tests__/map-field-metadata-to-graphql-query.utils.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/__tests__/map-field-metadata-to-graphql-query.utils.spec.ts @@ -5,7 +5,7 @@ import { fieldString, objectMetadataItem, } from 'src/utils/utils-test/object-metadata-item'; -import { mapFieldMetadataToGraphqlQuery } from 'src/core/api-rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils'; +import { mapFieldMetadataToGraphqlQuery } from 'src/api/rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils'; describe('mapFieldMetadataToGraphqlQuery', () => { it('should map properly', () => { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/__tests__/parse-path.utils.spec.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/__tests__/parse-path.utils.spec.ts similarity index 83% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/__tests__/parse-path.utils.spec.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/utils/__tests__/parse-path.utils.spec.ts index bd2cd22c67..36ff6de233 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/__tests__/parse-path.utils.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/__tests__/parse-path.utils.spec.ts @@ -1,4 +1,4 @@ -import { parsePath } from 'src/core/api-rest/api-rest-query-builder/utils/parse-path.utils'; +import { parsePath } from 'src/api/rest/api-rest-query-builder/utils/parse-path.utils'; describe('parsePath', () => { it('should parse object from request path', () => { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/compute-depth.utils.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/compute-depth.utils.ts similarity index 100% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/compute-depth.utils.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/utils/compute-depth.utils.ts diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/fields.utils.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/fields.utils.ts similarity index 81% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/fields.utils.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/utils/fields.utils.ts index d5871a5ae8..a9aca515c3 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/fields.utils.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/fields.utils.ts @@ -1,7 +1,7 @@ import { BadRequestException } from '@nestjs/common'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; export const getFieldType = ( objectMetadataItem, diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils.ts similarity index 92% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils.ts index afda617b53..6be2967c0a 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils.ts +++ b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/map-field-metadata-to-graphql-query.utils.ts @@ -1,5 +1,5 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { RelationMetadataType } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; const DEFAULT_DEPTH_VALUE = 2; diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/parse-path.utils.ts b/packages/twenty-server/src/api/rest/api-rest-query-builder/utils/parse-path.utils.ts similarity index 100% rename from packages/twenty-server/src/core/api-rest/api-rest-query-builder/utils/parse-path.utils.ts rename to packages/twenty-server/src/api/rest/api-rest-query-builder/utils/parse-path.utils.ts diff --git a/packages/twenty-server/src/core/api-rest/api-rest.controller.ts b/packages/twenty-server/src/api/rest/api-rest.controller.ts similarity index 85% rename from packages/twenty-server/src/core/api-rest/api-rest.controller.ts rename to packages/twenty-server/src/api/rest/api-rest.controller.ts index 3c2559d45d..ffdd9ac361 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest.controller.ts +++ b/packages/twenty-server/src/api/rest/api-rest.controller.ts @@ -2,8 +2,8 @@ import { Controller, Delete, Get, Post, Put, Req, Res } from '@nestjs/common'; import { Request, Response } from 'express'; -import { ApiRestService } from 'src/core/api-rest/api-rest.service'; -import { handleResult } from 'src/core/api-rest/api-rest.controller.utils'; +import { ApiRestService } from 'src/api/rest/api-rest.service'; +import { handleResult } from 'src/api/rest/api-rest.controller.utils'; @Controller('rest/*') export class ApiRestController { diff --git a/packages/twenty-server/src/core/api-rest/api-rest.controller.utils.spec.ts b/packages/twenty-server/src/api/rest/api-rest.controller.utils.spec.ts similarity index 93% rename from packages/twenty-server/src/core/api-rest/api-rest.controller.utils.spec.ts rename to packages/twenty-server/src/api/rest/api-rest.controller.utils.spec.ts index 59fe4249ca..de19dd91a9 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest.controller.utils.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest.controller.utils.spec.ts @@ -1,4 +1,4 @@ -import { cleanGraphQLResponse } from 'src/core/api-rest/api-rest.controller.utils'; +import { cleanGraphQLResponse } from 'src/api/rest/api-rest.controller.utils'; describe('cleanGraphQLResponse', () => { it('should remove edges/node from results', () => { diff --git a/packages/twenty-server/src/core/api-rest/api-rest.controller.utils.ts b/packages/twenty-server/src/api/rest/api-rest.controller.utils.ts similarity index 92% rename from packages/twenty-server/src/core/api-rest/api-rest.controller.utils.ts rename to packages/twenty-server/src/api/rest/api-rest.controller.utils.ts index e82792b4fa..5af175eb0e 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest.controller.utils.ts +++ b/packages/twenty-server/src/api/rest/api-rest.controller.utils.ts @@ -1,6 +1,6 @@ import { Response } from 'express'; -import { ApiRestResponse } from 'src/core/api-rest/types/api-rest-response.type'; +import { ApiRestResponse } from 'src/api/rest/types/api-rest-response.type'; // https://gist.github.com/ManUtopiK/469aec75b655d6a4d912aeb3b75af3c9 export const cleanGraphQLResponse = (input) => { diff --git a/packages/twenty-server/src/api/rest/api-rest.module.ts b/packages/twenty-server/src/api/rest/api-rest.module.ts new file mode 100644 index 0000000000..6e33712947 --- /dev/null +++ b/packages/twenty-server/src/api/rest/api-rest.module.ts @@ -0,0 +1,17 @@ +import { Module } from '@nestjs/common'; +import { HttpModule } from '@nestjs/axios'; + +import { ApiRestController } from 'src/api/rest/api-rest.controller'; +import { ApiRestService } from 'src/api/rest/api-rest.service'; +import { ApiRestQueryBuilderModule } from 'src/api/rest/api-rest-query-builder/api-rest-query-builder.module'; +import { AuthModule } from 'src/engine/modules/auth/auth.module'; +import { ApiRestMetadataController } from 'src/api/rest/metadata-rest.controller'; +import { ApiRestMetadataService } from 'src/api/rest/metadata-rest.service'; + +@Module({ + imports: [ApiRestQueryBuilderModule, AuthModule, HttpModule], + controllers: [ApiRestMetadataController, ApiRestController], + providers: [ApiRestMetadataService, ApiRestService], + exports: [ApiRestMetadataService], +}) +export class ApiRestModule {} diff --git a/packages/twenty-server/src/core/api-rest/api-rest.service.spec.ts b/packages/twenty-server/src/api/rest/api-rest.service.spec.ts similarity index 77% rename from packages/twenty-server/src/core/api-rest/api-rest.service.spec.ts rename to packages/twenty-server/src/api/rest/api-rest.service.spec.ts index 51458d0502..e1522b6d95 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest.service.spec.ts +++ b/packages/twenty-server/src/api/rest/api-rest.service.spec.ts @@ -1,10 +1,10 @@ import { Test, TestingModule } from '@nestjs/testing'; import { HttpService } from '@nestjs/axios'; -import { ApiRestService } from 'src/core/api-rest/api-rest.service'; +import { ApiRestService } from 'src/api/rest/api-rest.service'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { TokenService } from 'src/core/auth/services/token.service'; -import { ApiRestQueryBuilderFactory } from 'src/core/api-rest/api-rest-query-builder/api-rest-query-builder.factory'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; +import { ApiRestQueryBuilderFactory } from 'src/api/rest/api-rest-query-builder/api-rest-query-builder.factory'; describe('ApiRestService', () => { let service: ApiRestService; diff --git a/packages/twenty-server/src/core/api-rest/api-rest.service.ts b/packages/twenty-server/src/api/rest/api-rest.service.ts similarity index 86% rename from packages/twenty-server/src/core/api-rest/api-rest.service.ts rename to packages/twenty-server/src/api/rest/api-rest.service.ts index ee41a7c141..867c8c231b 100644 --- a/packages/twenty-server/src/core/api-rest/api-rest.service.ts +++ b/packages/twenty-server/src/api/rest/api-rest.service.ts @@ -4,10 +4,10 @@ import { HttpService } from '@nestjs/axios'; import { Request } from 'express'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { ApiRestQueryBuilderFactory } from 'src/core/api-rest/api-rest-query-builder/api-rest-query-builder.factory'; -import { TokenService } from 'src/core/auth/services/token.service'; -import { ApiRestResponse } from 'src/core/api-rest/types/api-rest-response.type'; -import { ApiRestQuery } from 'src/core/api-rest/types/api-rest-query.type'; +import { ApiRestQueryBuilderFactory } from 'src/api/rest/api-rest-query-builder/api-rest-query-builder.factory'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; +import { ApiRestResponse } from 'src/api/rest/types/api-rest-response.type'; +import { ApiRestQuery } from 'src/api/rest/types/api-rest-query.type'; @Injectable() export class ApiRestService { diff --git a/packages/twenty-server/src/core/api-rest/metadata-rest.controller.ts b/packages/twenty-server/src/api/rest/metadata-rest.controller.ts similarity index 84% rename from packages/twenty-server/src/core/api-rest/metadata-rest.controller.ts rename to packages/twenty-server/src/api/rest/metadata-rest.controller.ts index 2573a6b3a4..d6d1f6b02c 100644 --- a/packages/twenty-server/src/core/api-rest/metadata-rest.controller.ts +++ b/packages/twenty-server/src/api/rest/metadata-rest.controller.ts @@ -2,8 +2,8 @@ import { Controller, Get, Delete, Post, Put, Req, Res } from '@nestjs/common'; import { Request, Response } from 'express'; -import { handleResult } from 'src/core/api-rest/api-rest.controller.utils'; -import { ApiRestMetadataService } from 'src/core/api-rest/metadata-rest.service'; +import { handleResult } from 'src/api/rest/api-rest.controller.utils'; +import { ApiRestMetadataService } from 'src/api/rest/metadata-rest.service'; @Controller('rest/metadata/*') export class ApiRestMetadataController { diff --git a/packages/twenty-server/src/core/api-rest/metadata-rest.service.ts b/packages/twenty-server/src/api/rest/metadata-rest.service.ts similarity index 95% rename from packages/twenty-server/src/core/api-rest/metadata-rest.service.ts rename to packages/twenty-server/src/api/rest/metadata-rest.service.ts index e0df29aa86..2f83b08b2c 100644 --- a/packages/twenty-server/src/core/api-rest/metadata-rest.service.ts +++ b/packages/twenty-server/src/api/rest/metadata-rest.service.ts @@ -2,10 +2,10 @@ import { BadRequestException, Injectable } from '@nestjs/common'; import { HttpService } from '@nestjs/axios'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { ApiRestQueryBuilderFactory } from 'src/core/api-rest/api-rest-query-builder/api-rest-query-builder.factory'; -import { ApiRestQuery } from 'src/core/api-rest/types/api-rest-query.type'; -import { TokenService } from 'src/core/auth/services/token.service'; -import { parseMetadataPath } from 'src/core/api-rest/api-rest-query-builder/utils/parse-path.utils'; +import { ApiRestQueryBuilderFactory } from 'src/api/rest/api-rest-query-builder/api-rest-query-builder.factory'; +import { ApiRestQuery } from 'src/api/rest/types/api-rest-query.type'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; +import { parseMetadataPath } from 'src/api/rest/api-rest-query-builder/utils/parse-path.utils'; import { capitalize } from 'src/utils/capitalize'; @Injectable() diff --git a/packages/twenty-server/src/core/api-rest/types/api-rest-field-value.type.ts b/packages/twenty-server/src/api/rest/types/api-rest-field-value.type.ts similarity index 100% rename from packages/twenty-server/src/core/api-rest/types/api-rest-field-value.type.ts rename to packages/twenty-server/src/api/rest/types/api-rest-field-value.type.ts diff --git a/packages/twenty-server/src/core/api-rest/types/api-rest-query-variables.type.ts b/packages/twenty-server/src/api/rest/types/api-rest-query-variables.type.ts similarity index 100% rename from packages/twenty-server/src/core/api-rest/types/api-rest-query-variables.type.ts rename to packages/twenty-server/src/api/rest/types/api-rest-query-variables.type.ts diff --git a/packages/twenty-server/src/core/api-rest/types/api-rest-query.type.ts b/packages/twenty-server/src/api/rest/types/api-rest-query.type.ts similarity index 100% rename from packages/twenty-server/src/core/api-rest/types/api-rest-query.type.ts rename to packages/twenty-server/src/api/rest/types/api-rest-query.type.ts diff --git a/packages/twenty-server/src/core/api-rest/types/api-rest-response.type.ts b/packages/twenty-server/src/api/rest/types/api-rest-response.type.ts similarity index 100% rename from packages/twenty-server/src/core/api-rest/types/api-rest-response.type.ts rename to packages/twenty-server/src/api/rest/types/api-rest-response.type.ts diff --git a/packages/twenty-server/src/app.module.ts b/packages/twenty-server/src/app.module.ts index 980d17f0fb..dbc019e294 100644 --- a/packages/twenty-server/src/app.module.ts +++ b/packages/twenty-server/src/app.module.ts @@ -8,27 +8,32 @@ import { join } from 'path'; import { YogaDriver, YogaDriverConfig } from '@graphql-yoga/nestjs'; -import { GraphQLConfigService } from 'src/graphql-config/graphql-config.service'; +import { GraphQLConfigService } from 'src/engine-graphql-config/graphql-config.service'; +import { ApiRestModule } from 'src/api/rest/api-rest.module'; +import { BusinessModule } from 'src/business/modules/business.module'; -import { CoreModule } from './core/core.module'; +import { FoundationModule } from './engine/modules/foundation.module'; import { IntegrationsModule } from './integrations/integrations.module'; -import { HealthModule } from './health/health.module'; -import { WorkspaceModule } from './workspace/workspace.module'; -import { GraphQLConfigModule } from './graphql-config/graphql-config.module'; +import { WorkspaceModule } from './engine/graphql/workspace.module'; +import { GraphQLConfigModule } from './engine-graphql-config/graphql-config.module'; @Module({ imports: [ + // DevtoolsModule.register({ + // http: process.env.NODE_ENV !== 'production', + // }), ConfigModule.forRoot({ isGlobal: true, }), GraphQLModule.forRootAsync({ driver: YogaDriver, - imports: [CoreModule, GraphQLConfigModule], + imports: [FoundationModule, GraphQLConfigModule], useClass: GraphQLConfigService, }), - HealthModule, IntegrationsModule, - CoreModule, + FoundationModule, + BusinessModule, + ApiRestModule, WorkspaceModule, ...AppModule.getConditionalModules(), ], diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/activity-target.object-metadata.ts b/packages/twenty-server/src/business/modules/activity/activity-target.object-metadata.ts similarity index 54% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/activity-target.object-metadata.ts rename to packages/twenty-server/src/business/modules/activity/activity-target.object-metadata.ts index 4ad7522fa9..7bae811c47 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/activity-target.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/activity/activity-target.object-metadata.ts @@ -1,17 +1,17 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { activityTargetStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { CustomObjectMetadata } from 'src/workspace/workspace-sync-metadata/custom-objects/custom.object-metadata'; -import { DynamicRelationFieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/dynamic-field-metadata.interface'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { ActivityObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/activity.object-metadata'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { CompanyObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/company.object-metadata'; -import { OpportunityObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/opportunity.object-metadata'; -import { PersonObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { activityTargetStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { CustomObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/custom-objects/custom.object-metadata'; +import { DynamicRelationFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/dynamic-field-metadata.interface'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { ActivityObjectMetadata } from 'src/business/modules/activity/activity.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { CompanyObjectMetadata } from 'src/business/modules/company/company.object-metadata'; +import { OpportunityObjectMetadata } from 'src/business/modules/opportunity/opportunity.object-metadata'; +import { PersonObjectMetadata } from 'src/business/modules/person/person.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.activityTarget, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/activity.object-metadata.ts b/packages/twenty-server/src/business/modules/activity/activity.object-metadata.ts similarity index 68% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/activity.object-metadata.ts rename to packages/twenty-server/src/business/modules/activity/activity.object-metadata.ts index 524101ed9d..78f26dcad7 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/activity.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/activity/activity.object-metadata.ts @@ -1,17 +1,17 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { activityStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; -import { ActivityTargetObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/activity-target.object-metadata'; -import { AttachmentObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/attachment.object-metadata'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { CommentObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/comment.object-metadata'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { RelationMetadataType } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { activityStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; +import { ActivityTargetObjectMetadata } from 'src/business/modules/activity/activity-target.object-metadata'; +import { AttachmentObjectMetadata } from 'src/business/modules/attachment/attachment.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { CommentObjectMetadata } from 'src/business/modules/comment/comment.object-metadata'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.activity, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/api-key.object-metadata.ts b/packages/twenty-server/src/business/modules/api-key/api-key.object-metadata.ts similarity index 50% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/api-key.object-metadata.ts rename to packages/twenty-server/src/business/modules/api-key/api-key.object-metadata.ts index b6c8189ff4..0f2757328c 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/api-key.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/api-key/api-key.object-metadata.ts @@ -1,11 +1,11 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { apiKeyStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { apiKeyStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.apiKey, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/attachment.object-metadata.ts b/packages/twenty-server/src/business/modules/attachment/attachment.object-metadata.ts similarity index 61% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/attachment.object-metadata.ts rename to packages/twenty-server/src/business/modules/attachment/attachment.object-metadata.ts index 99e8d540fe..d86d03c473 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/attachment.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/attachment/attachment.object-metadata.ts @@ -1,18 +1,18 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { attachmentStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { CustomObjectMetadata } from 'src/workspace/workspace-sync-metadata/custom-objects/custom.object-metadata'; -import { DynamicRelationFieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/dynamic-field-metadata.interface'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { ActivityObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/activity.object-metadata'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { CompanyObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/company.object-metadata'; -import { OpportunityObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/opportunity.object-metadata'; -import { PersonObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { attachmentStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { CustomObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/custom-objects/custom.object-metadata'; +import { DynamicRelationFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/dynamic-field-metadata.interface'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { ActivityObjectMetadata } from 'src/business/modules/activity/activity.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { CompanyObjectMetadata } from 'src/business/modules/company/company.object-metadata'; +import { OpportunityObjectMetadata } from 'src/business/modules/opportunity/opportunity.object-metadata'; +import { PersonObjectMetadata } from 'src/business/modules/person/person.object-metadata'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.attachment, diff --git a/packages/twenty-server/src/business/modules/business.module.ts b/packages/twenty-server/src/business/modules/business.module.ts new file mode 100644 index 0000000000..d3e41e2c35 --- /dev/null +++ b/packages/twenty-server/src/business/modules/business.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; + +import { CalendarModule } from 'src/business/modules/calendar/calendar.module'; +import { MessagingModule } from 'src/business/modules/message/messaging.module'; + +@Module({ + imports: [MessagingModule, CalendarModule], + providers: [], + exports: [], +}) +export class BusinessModule {} diff --git a/packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/blocklist/blocklist.module.ts b/packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/blocklist/blocklist.module.ts new file mode 100644 index 0000000000..875ae22234 --- /dev/null +++ b/packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/blocklist/blocklist.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; + +import { BlocklistService } from 'src/business/modules/calendar-and-messaging/repositories/blocklist/blocklist.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; + +@Module({ + imports: [WorkspaceDataSourceModule], + providers: [BlocklistService], + exports: [BlocklistService], +}) +export class BlocklistModule {} diff --git a/packages/twenty-server/src/workspace/calendar-and-messaging/repositories/blocklist/blocklist.service.ts b/packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/blocklist/blocklist.service.ts similarity index 70% rename from packages/twenty-server/src/workspace/calendar-and-messaging/repositories/blocklist/blocklist.service.ts rename to packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/blocklist/blocklist.service.ts index 01c1560667..433f02da6d 100644 --- a/packages/twenty-server/src/workspace/calendar-and-messaging/repositories/blocklist/blocklist.service.ts +++ b/packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/blocklist/blocklist.service.ts @@ -2,9 +2,9 @@ import { Injectable } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; -import { BlocklistObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/blocklist.object-metadata'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; +import { BlocklistObjectMetadata } from 'src/business/modules/calendar/blocklist.object-metadata'; @Injectable() export class BlocklistService { diff --git a/packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.module.ts b/packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.module.ts new file mode 100644 index 0000000000..36b9514843 --- /dev/null +++ b/packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; + +import { ConnectedAccountService } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; + +@Module({ + imports: [WorkspaceDataSourceModule], + providers: [ConnectedAccountService], + exports: [ConnectedAccountService], +}) +export class ConnectedAccountModule {} diff --git a/packages/twenty-server/src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.service.ts b/packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.service.ts similarity index 92% rename from packages/twenty-server/src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.service.ts rename to packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.service.ts index dc32ede6e8..e6f766cb21 100644 --- a/packages/twenty-server/src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.service.ts +++ b/packages/twenty-server/src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.service.ts @@ -2,9 +2,9 @@ import { Injectable, NotFoundException } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { ConnectedAccountObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { ConnectedAccountObjectMetadata } from 'src/business/modules/connected-account/connected-account.object-metadata'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; @Injectable() export class ConnectedAccountService { diff --git a/packages/twenty-server/src/workspace/calendar-and-messaging/services/google-apis-refresh-access-token.service.ts b/packages/twenty-server/src/business/modules/calendar-and-messaging/services/google-apis-refresh-access-token.service.ts similarity index 92% rename from packages/twenty-server/src/workspace/calendar-and-messaging/services/google-apis-refresh-access-token.service.ts rename to packages/twenty-server/src/business/modules/calendar-and-messaging/services/google-apis-refresh-access-token.service.ts index d00c433ef4..6ae56784cb 100644 --- a/packages/twenty-server/src/workspace/calendar-and-messaging/services/google-apis-refresh-access-token.service.ts +++ b/packages/twenty-server/src/business/modules/calendar-and-messaging/services/google-apis-refresh-access-token.service.ts @@ -3,7 +3,7 @@ import { Injectable } from '@nestjs/common'; import axios from 'axios'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { ConnectedAccountService } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.service'; +import { ConnectedAccountService } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.service'; @Injectable() export class GoogleAPIsRefreshAccessTokenService { diff --git a/packages/twenty-server/src/workspace/calendar-and-messaging/types/batch-queries.ts b/packages/twenty-server/src/business/modules/calendar-and-messaging/types/batch-queries.ts similarity index 100% rename from packages/twenty-server/src/workspace/calendar-and-messaging/types/batch-queries.ts rename to packages/twenty-server/src/business/modules/calendar-and-messaging/types/batch-queries.ts diff --git a/packages/twenty-server/src/workspace/calendar-and-messaging/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util.ts b/packages/twenty-server/src/business/modules/calendar-and-messaging/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/calendar-and-messaging/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util.ts rename to packages/twenty-server/src/business/modules/calendar-and-messaging/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util.ts diff --git a/packages/twenty-server/src/business/modules/calendar/blocklist.object-metadata.ts b/packages/twenty-server/src/business/modules/calendar/blocklist.object-metadata.ts new file mode 100644 index 0000000000..16bce3ff81 --- /dev/null +++ b/packages/twenty-server/src/business/modules/calendar/blocklist.object-metadata.ts @@ -0,0 +1,38 @@ +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { blocklistStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; + +@ObjectMetadata({ + standardId: standardObjectIds.blocklist, + namePlural: 'blocklists', + labelSingular: 'Blocklist', + labelPlural: 'Blocklists', + description: 'Blocklist', + icon: 'IconForbid2', +}) +@IsSystem() +export class BlocklistObjectMetadata extends BaseObjectMetadata { + @FieldMetadata({ + standardId: blocklistStandardFieldIds.handle, + type: FieldMetadataType.TEXT, + label: 'Handle', + description: 'Handle', + icon: 'IconAt', + }) + handle: string; + + @FieldMetadata({ + standardId: blocklistStandardFieldIds.workspaceMember, + type: FieldMetadataType.RELATION, + label: 'WorkspaceMember', + description: 'WorkspaceMember', + icon: 'IconCircleUser', + joinColumn: 'workspaceMemberId', + }) + workspaceMember: WorkspaceMemberObjectMetadata; +} diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-channel-event-association.object-metadata.ts b/packages/twenty-server/src/business/modules/calendar/calendar-channel-event-association.object-metadata.ts similarity index 56% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-channel-event-association.object-metadata.ts rename to packages/twenty-server/src/business/modules/calendar/calendar-channel-event-association.object-metadata.ts index 00eb5c8c34..2aa9fefcb7 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-channel-event-association.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/calendar/calendar-channel-event-association.object-metadata.ts @@ -1,13 +1,13 @@ -import { FeatureFlagKeys } from 'src/core/feature-flag/feature-flag.entity'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { calendarChannelEventAssociationStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { CalendarEventObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-event.object-metadata'; +import { FeatureFlagKeys } from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { calendarChannelEventAssociationStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { Gate } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/gate.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { CalendarEventObjectMetadata } from 'src/business/modules/calendar/calendar-event.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.calendarChannelEventAssociation, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-channel.object-metadata.ts b/packages/twenty-server/src/business/modules/calendar/calendar-channel.object-metadata.ts similarity index 69% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-channel.object-metadata.ts rename to packages/twenty-server/src/business/modules/calendar/calendar-channel.object-metadata.ts index ed12cb4be5..dbbc8529f0 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-channel.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/calendar/calendar-channel.object-metadata.ts @@ -1,19 +1,19 @@ import { RelationMetadataType, RelationOnDeleteAction, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { FeatureFlagKeys } from 'src/core/feature-flag/feature-flag.entity'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { calendarChannelStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { ConnectedAccountObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata'; -import { CalendarChannelEventAssociationObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-channel-event-association.object-metadata'; -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { FeatureFlagKeys } from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { calendarChannelStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { Gate } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/gate.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { ConnectedAccountObjectMetadata } from 'src/business/modules/connected-account/connected-account.object-metadata'; +import { CalendarChannelEventAssociationObjectMetadata } from 'src/business/modules/calendar/calendar-channel-event-association.object-metadata'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; export enum CalendarChannelVisibility { METADATA = 'METADATA', diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-event-attendee.object-metadata.ts b/packages/twenty-server/src/business/modules/calendar/calendar-event-attendee.object-metadata.ts similarity index 69% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-event-attendee.object-metadata.ts rename to packages/twenty-server/src/business/modules/calendar/calendar-event-attendee.object-metadata.ts index 6c4d7cc632..8507d5c3b9 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-event-attendee.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/calendar/calendar-event-attendee.object-metadata.ts @@ -1,15 +1,15 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { calendarEventAttendeeStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { CalendarEventObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-event.object-metadata'; -import { PersonObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { calendarEventAttendeeStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { Gate } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/gate.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { CalendarEventObjectMetadata } from 'src/business/modules/calendar/calendar-event.object-metadata'; +import { PersonObjectMetadata } from 'src/business/modules/person/person.object-metadata'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; export enum CalendarEventAttendeeResponseStatus { NEEDS_ACTION = 'NEEDS_ACTION', diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-event.object-metadata.ts b/packages/twenty-server/src/business/modules/calendar/calendar-event.object-metadata.ts similarity index 75% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-event.object-metadata.ts rename to packages/twenty-server/src/business/modules/calendar/calendar-event.object-metadata.ts index cf9defbfc4..8eb6a7467a 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-event.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/calendar/calendar-event.object-metadata.ts @@ -1,20 +1,20 @@ -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; -import { FeatureFlagKeys } from 'src/core/feature-flag/feature-flag.entity'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; +import { FeatureFlagKeys } from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType, RelationOnDeleteAction, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { CalendarChannelEventAssociationObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-channel-event-association.object-metadata'; -import { CalendarEventAttendeeObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-event-attendee.object-metadata'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { calendarEventStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { Gate } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/gate.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { CalendarChannelEventAssociationObjectMetadata } from 'src/business/modules/calendar/calendar-channel-event-association.object-metadata'; +import { CalendarEventAttendeeObjectMetadata } from 'src/business/modules/calendar/calendar-event-attendee.object-metadata'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { calendarEventStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; @ObjectMetadata({ standardId: standardObjectIds.calendarEvent, diff --git a/packages/twenty-server/src/business/modules/calendar/calendar.module.ts b/packages/twenty-server/src/business/modules/calendar/calendar.module.ts new file mode 100644 index 0000000000..be3037d139 --- /dev/null +++ b/packages/twenty-server/src/business/modules/calendar/calendar.module.ts @@ -0,0 +1,41 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; + +import { FeatureFlagEntity } from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { EnvironmentModule } from 'src/integrations/environment/environment.module'; +import { CreateCompaniesAndContactsModule } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module'; +import { BlocklistModule } from 'src/business/modules/calendar-and-messaging/repositories/blocklist/blocklist.module'; +import { ConnectedAccountModule } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.module'; +import { CalendarChannelEventAssociationModule } from 'src/business/modules/calendar/repositories/calendar-channel-event-association/calendar-channel-event-assocation.module'; +import { CalendarChannelModule } from 'src/business/modules/calendar/repositories/calendar-channel/calendar-channel.module'; +import { CalendarEventAttendeeModule } from 'src/business/modules/calendar/repositories/calendar-event-attendee/calendar-event-attendee.module'; +import { CalendarEventModule } from 'src/business/modules/calendar/repositories/calendar-event/calendar-event.module'; +import { CalendarEventCleanerModule } from 'src/business/modules/calendar/services/calendar-event-cleaner/calendar-event-cleaner.module'; +import { GoogleCalendarFullSyncService } from 'src/business/modules/calendar/services/google-calendar-full-sync.service'; +import { GoogleCalendarClientProvider } from 'src/business/modules/calendar/services/providers/google-calendar/google-calendar.provider'; +import { CompanyModule } from 'src/business/modules/message/repositories/company/company.module'; +import { PersonModule } from 'src/engine-workspace/repositories/person/person.module'; +import { WorkspaceMemberModule } from 'src/engine-workspace/repositories/workspace-member/workspace-member.module'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; + +@Module({ + imports: [ + EnvironmentModule, + WorkspaceDataSourceModule, + ConnectedAccountModule, + CalendarChannelModule, + CalendarChannelEventAssociationModule, + CalendarEventModule, + CalendarEventAttendeeModule, + CreateCompaniesAndContactsModule, + WorkspaceMemberModule, + TypeOrmModule.forFeature([FeatureFlagEntity], 'core'), + CompanyModule, + PersonModule, + BlocklistModule, + CalendarEventCleanerModule, + ], + providers: [GoogleCalendarFullSyncService, GoogleCalendarClientProvider], + exports: [GoogleCalendarFullSyncService], +}) +export class CalendarModule {} diff --git a/packages/twenty-server/src/workspace/calendar/commands/google-calendar-full-sync.command.ts b/packages/twenty-server/src/business/modules/calendar/commands/google-calendar-full-sync.command.ts similarity index 88% rename from packages/twenty-server/src/workspace/calendar/commands/google-calendar-full-sync.command.ts rename to packages/twenty-server/src/business/modules/calendar/commands/google-calendar-full-sync.command.ts index 139aa0255f..0ef73ee8fd 100644 --- a/packages/twenty-server/src/workspace/calendar/commands/google-calendar-full-sync.command.ts +++ b/packages/twenty-server/src/business/modules/calendar/commands/google-calendar-full-sync.command.ts @@ -4,11 +4,11 @@ import { Command, CommandRunner, Option } from 'nest-commander'; import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; -import { ConnectedAccountService } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.service'; +import { ConnectedAccountService } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.service'; import { GoogleCalendarFullSyncJobData, GoogleCalendarFullSyncJob, -} from 'src/workspace/calendar/jobs/google-calendar-full-sync.job'; +} from 'src/business/modules/calendar/jobs/google-calendar-full-sync.job'; interface GoogleCalendarFullSyncOptions { workspaceId: string; diff --git a/packages/twenty-server/src/business/modules/calendar/commands/workspace-calendar-sync-commands.module.ts b/packages/twenty-server/src/business/modules/calendar/commands/workspace-calendar-sync-commands.module.ts new file mode 100644 index 0000000000..a4ca0fc3a3 --- /dev/null +++ b/packages/twenty-server/src/business/modules/calendar/commands/workspace-calendar-sync-commands.module.ts @@ -0,0 +1,19 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; + +import { FeatureFlagEntity } from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; +import { ConnectedAccountModule } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.module'; +import { GoogleCalendarFullSyncCommand } from 'src/business/modules/calendar/commands/google-calendar-full-sync.command'; + +@Module({ + imports: [ + DataSourceModule, + TypeORMModule, + TypeOrmModule.forFeature([FeatureFlagEntity], 'core'), + ConnectedAccountModule, + ], + providers: [GoogleCalendarFullSyncCommand], +}) +export class WorkspaceCalendarSyncCommandsModule {} diff --git a/packages/twenty-server/src/workspace/calendar/jobs/google-calendar-full-sync.job.ts b/packages/twenty-server/src/business/modules/calendar/jobs/google-calendar-full-sync.job.ts similarity index 84% rename from packages/twenty-server/src/workspace/calendar/jobs/google-calendar-full-sync.job.ts rename to packages/twenty-server/src/business/modules/calendar/jobs/google-calendar-full-sync.job.ts index 36e17ca1f0..66066db557 100644 --- a/packages/twenty-server/src/workspace/calendar/jobs/google-calendar-full-sync.job.ts +++ b/packages/twenty-server/src/business/modules/calendar/jobs/google-calendar-full-sync.job.ts @@ -2,8 +2,8 @@ import { Injectable, Logger } from '@nestjs/common'; import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/message-queue-job.interface'; -import { GoogleAPIsRefreshAccessTokenService } from 'src/workspace/calendar-and-messaging/services/google-apis-refresh-access-token.service'; -import { GoogleCalendarFullSyncService } from 'src/workspace/calendar/services/google-calendar-full-sync.service'; +import { GoogleAPIsRefreshAccessTokenService } from 'src/business/modules/calendar-and-messaging/services/google-apis-refresh-access-token.service'; +import { GoogleCalendarFullSyncService } from 'src/business/modules/calendar/services/google-calendar-full-sync.service'; export type GoogleCalendarFullSyncJobData = { workspaceId: string; diff --git a/packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel-event-association/calendar-channel-event-assocation.module.ts b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel-event-association/calendar-channel-event-assocation.module.ts new file mode 100644 index 0000000000..7c71211912 --- /dev/null +++ b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel-event-association/calendar-channel-event-assocation.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; + +import { CalendarChannelEventAssociationService } from 'src/business/modules/calendar/repositories/calendar-channel-event-association/calendar-channel-event-association.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; + +@Module({ + imports: [WorkspaceDataSourceModule], + providers: [CalendarChannelEventAssociationService], + exports: [CalendarChannelEventAssociationService], +}) +export class CalendarChannelEventAssociationModule {} diff --git a/packages/twenty-server/src/workspace/calendar/repositories/calendar-channel-event-association/calendar-channel-event-association.service.ts b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel-event-association/calendar-channel-event-association.service.ts similarity index 92% rename from packages/twenty-server/src/workspace/calendar/repositories/calendar-channel-event-association/calendar-channel-event-association.service.ts rename to packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel-event-association/calendar-channel-event-association.service.ts index a4d52fc777..af8050d45c 100644 --- a/packages/twenty-server/src/workspace/calendar/repositories/calendar-channel-event-association/calendar-channel-event-association.service.ts +++ b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel-event-association/calendar-channel-event-association.service.ts @@ -2,10 +2,10 @@ import { Injectable } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; -import { CalendarChannelEventAssociationObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-channel-event-association.object-metadata'; -import { getFlattenedValuesAndValuesStringForBatchRawQuery } from 'src/workspace/calendar-and-messaging/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; +import { CalendarChannelEventAssociationObjectMetadata } from 'src/business/modules/calendar/calendar-channel-event-association.object-metadata'; +import { getFlattenedValuesAndValuesStringForBatchRawQuery } from 'src/business/modules/calendar-and-messaging/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util'; @Injectable() export class CalendarChannelEventAssociationService { diff --git a/packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel/calendar-channel.module.ts b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel/calendar-channel.module.ts new file mode 100644 index 0000000000..be0468f060 --- /dev/null +++ b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel/calendar-channel.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; + +import { CalendarChannelService } from 'src/business/modules/calendar/repositories/calendar-channel/calendar-channel.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; + +@Module({ + imports: [WorkspaceDataSourceModule], + providers: [CalendarChannelService], + exports: [CalendarChannelService], +}) +export class CalendarChannelModule {} diff --git a/packages/twenty-server/src/workspace/calendar/repositories/calendar-channel/calendar-channel.service.ts b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel/calendar-channel.service.ts similarity index 86% rename from packages/twenty-server/src/workspace/calendar/repositories/calendar-channel/calendar-channel.service.ts rename to packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel/calendar-channel.service.ts index d97e9ef42f..152e8c345e 100644 --- a/packages/twenty-server/src/workspace/calendar/repositories/calendar-channel/calendar-channel.service.ts +++ b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-channel/calendar-channel.service.ts @@ -2,9 +2,9 @@ import { Injectable } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { CalendarChannelObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-channel.object-metadata'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { CalendarChannelObjectMetadata } from 'src/business/modules/calendar/calendar-channel.object-metadata'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; @Injectable() export class CalendarChannelService { diff --git a/packages/twenty-server/src/business/modules/calendar/repositories/calendar-event-attendee/calendar-event-attendee.module.ts b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-event-attendee/calendar-event-attendee.module.ts new file mode 100644 index 0000000000..95ee36ceb8 --- /dev/null +++ b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-event-attendee/calendar-event-attendee.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; + +import { CalendarEventAttendeeService } from 'src/business/modules/calendar/repositories/calendar-event-attendee/calendar-event-attendee.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; + +@Module({ + imports: [WorkspaceDataSourceModule], + providers: [CalendarEventAttendeeService], + exports: [CalendarEventAttendeeService], +}) +export class CalendarEventAttendeeModule {} diff --git a/packages/twenty-server/src/workspace/calendar/repositories/calendar-event-attendee/calendar-event-attendee.service.ts b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-event-attendee/calendar-event-attendee.service.ts similarity index 89% rename from packages/twenty-server/src/workspace/calendar/repositories/calendar-event-attendee/calendar-event-attendee.service.ts rename to packages/twenty-server/src/business/modules/calendar/repositories/calendar-event-attendee/calendar-event-attendee.service.ts index 09f04d891c..b5d168b908 100644 --- a/packages/twenty-server/src/workspace/calendar/repositories/calendar-event-attendee/calendar-event-attendee.service.ts +++ b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-event-attendee/calendar-event-attendee.service.ts @@ -2,11 +2,11 @@ import { Injectable } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; -import { CalendarEventAttendeeObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-event-attendee.object-metadata'; -import { getFlattenedValuesAndValuesStringForBatchRawQuery } from 'src/workspace/calendar-and-messaging/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util'; -import { CalendarEventAttendee } from 'src/workspace/calendar/types/calendar-event'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; +import { CalendarEventAttendeeObjectMetadata } from 'src/business/modules/calendar/calendar-event-attendee.object-metadata'; +import { getFlattenedValuesAndValuesStringForBatchRawQuery } from 'src/business/modules/calendar-and-messaging/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util'; +import { CalendarEventAttendee } from 'src/business/modules/calendar/types/calendar-event'; @Injectable() export class CalendarEventAttendeeService { diff --git a/packages/twenty-server/src/business/modules/calendar/repositories/calendar-event/calendar-event.module.ts b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-event/calendar-event.module.ts new file mode 100644 index 0000000000..5285bfb044 --- /dev/null +++ b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-event/calendar-event.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; + +import { CalendarEventService } from 'src/business/modules/calendar/repositories/calendar-event/calendar-event.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; + +@Module({ + imports: [WorkspaceDataSourceModule], + providers: [CalendarEventService], + exports: [CalendarEventService], +}) +export class CalendarEventModule {} diff --git a/packages/twenty-server/src/workspace/calendar/repositories/calendar-event/calendar-event.service.ts b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-event/calendar-event.service.ts similarity index 90% rename from packages/twenty-server/src/workspace/calendar/repositories/calendar-event/calendar-event.service.ts rename to packages/twenty-server/src/business/modules/calendar/repositories/calendar-event/calendar-event.service.ts index f2b8f00997..3316d12e98 100644 --- a/packages/twenty-server/src/workspace/calendar/repositories/calendar-event/calendar-event.service.ts +++ b/packages/twenty-server/src/business/modules/calendar/repositories/calendar-event/calendar-event.service.ts @@ -2,12 +2,12 @@ import { Injectable } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; -import { CalendarEventObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-event.object-metadata'; -import { getFlattenedValuesAndValuesStringForBatchRawQuery } from 'src/workspace/calendar-and-messaging/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util'; -import { CalendarEvent } from 'src/workspace/calendar/types/calendar-event'; -import { CalendarEventAttendeeObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-event-attendee.object-metadata'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; +import { CalendarEventObjectMetadata } from 'src/business/modules/calendar/calendar-event.object-metadata'; +import { getFlattenedValuesAndValuesStringForBatchRawQuery } from 'src/business/modules/calendar-and-messaging/utils/getFlattenedValuesAndValuesStringForBatchRawQuery.util'; +import { CalendarEvent } from 'src/business/modules/calendar/types/calendar-event'; +import { CalendarEventAttendeeObjectMetadata } from 'src/business/modules/calendar/calendar-event-attendee.object-metadata'; @Injectable() export class CalendarEventService { diff --git a/packages/twenty-server/src/business/modules/calendar/services/calendar-event-cleaner/calendar-event-cleaner.module.ts b/packages/twenty-server/src/business/modules/calendar/services/calendar-event-cleaner/calendar-event-cleaner.module.ts new file mode 100644 index 0000000000..b76f322d5d --- /dev/null +++ b/packages/twenty-server/src/business/modules/calendar/services/calendar-event-cleaner/calendar-event-cleaner.module.ts @@ -0,0 +1,13 @@ +import { Module } from '@nestjs/common'; + +import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; +import { CalendarEventModule } from 'src/business/modules/calendar/repositories/calendar-event/calendar-event.module'; +import { CalendarEventCleanerService } from 'src/business/modules/calendar/services/calendar-event-cleaner/calendar-event-cleaner.service'; + +@Module({ + imports: [DataSourceModule, TypeORMModule, CalendarEventModule], + providers: [CalendarEventCleanerService], + exports: [CalendarEventCleanerService], +}) +export class CalendarEventCleanerModule {} diff --git a/packages/twenty-server/src/workspace/calendar/services/calendar-event-cleaner/calendar-event-cleaner.service.ts b/packages/twenty-server/src/business/modules/calendar/services/calendar-event-cleaner/calendar-event-cleaner.service.ts similarity index 67% rename from packages/twenty-server/src/workspace/calendar/services/calendar-event-cleaner/calendar-event-cleaner.service.ts rename to packages/twenty-server/src/business/modules/calendar/services/calendar-event-cleaner/calendar-event-cleaner.service.ts index 913880d0ff..12a299541f 100644 --- a/packages/twenty-server/src/workspace/calendar/services/calendar-event-cleaner/calendar-event-cleaner.service.ts +++ b/packages/twenty-server/src/business/modules/calendar/services/calendar-event-cleaner/calendar-event-cleaner.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; -import { CalendarEventService } from 'src/workspace/calendar/repositories/calendar-event/calendar-event.service'; -import { deleteUsingPagination } from 'src/workspace/messaging/services/thread-cleaner/utils/delete-using-pagination.util'; +import { CalendarEventService } from 'src/business/modules/calendar/repositories/calendar-event/calendar-event.service'; +import { deleteUsingPagination } from 'src/business/modules/message/services/thread-cleaner/utils/delete-using-pagination.util'; @Injectable() export class CalendarEventCleanerService { diff --git a/packages/twenty-server/src/workspace/calendar/services/google-calendar-full-sync.service.ts b/packages/twenty-server/src/business/modules/calendar/services/google-calendar-full-sync.service.ts similarity index 84% rename from packages/twenty-server/src/workspace/calendar/services/google-calendar-full-sync.service.ts rename to packages/twenty-server/src/business/modules/calendar/services/google-calendar-full-sync.service.ts index 6a52ae9f5c..714dc8f351 100644 --- a/packages/twenty-server/src/workspace/calendar/services/google-calendar-full-sync.service.ts +++ b/packages/twenty-server/src/business/modules/calendar/services/google-calendar-full-sync.service.ts @@ -3,23 +3,23 @@ import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; -import { ConnectedAccountService } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.service'; -import { BlocklistService } from 'src/workspace/calendar-and-messaging/repositories/blocklist/blocklist.service'; +import { ConnectedAccountService } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.service'; +import { BlocklistService } from 'src/business/modules/calendar-and-messaging/repositories/blocklist/blocklist.service'; import { FeatureFlagEntity, FeatureFlagKeys, -} from 'src/core/feature-flag/feature-flag.entity'; -import { GoogleCalendarClientProvider } from 'src/workspace/calendar/services/providers/google-calendar/google-calendar.provider'; -import { googleCalendarSearchFilterExcludeEmails } from 'src/workspace/calendar/utils/google-calendar-search-filter.util'; -import { CalendarChannelEventAssociationService } from 'src/workspace/calendar/repositories/calendar-channel-event-association/calendar-channel-event-association.service'; -import { CalendarChannelService } from 'src/workspace/calendar/repositories/calendar-channel/calendar-channel.service'; +} from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { GoogleCalendarClientProvider } from 'src/business/modules/calendar/services/providers/google-calendar/google-calendar.provider'; +import { googleCalendarSearchFilterExcludeEmails } from 'src/business/modules/calendar/utils/google-calendar-search-filter.util'; +import { CalendarChannelEventAssociationService } from 'src/business/modules/calendar/repositories/calendar-channel-event-association/calendar-channel-event-association.service'; +import { CalendarChannelService } from 'src/business/modules/calendar/repositories/calendar-channel/calendar-channel.service'; import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { CalendarEventService } from 'src/workspace/calendar/repositories/calendar-event/calendar-event.service'; -import { formatGoogleCalendarEvent } from 'src/workspace/calendar/utils/format-google-calendar-event.util'; -import { GoogleCalendarFullSyncJobData } from 'src/workspace/calendar/jobs/google-calendar-full-sync.job'; -import { CalendarEventAttendeeService } from 'src/workspace/calendar/repositories/calendar-event-attendee/calendar-event-attendee.service'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { CalendarEventService } from 'src/business/modules/calendar/repositories/calendar-event/calendar-event.service'; +import { formatGoogleCalendarEvent } from 'src/business/modules/calendar/utils/format-google-calendar-event.util'; +import { GoogleCalendarFullSyncJobData } from 'src/business/modules/calendar/jobs/google-calendar-full-sync.job'; +import { CalendarEventAttendeeService } from 'src/business/modules/calendar/repositories/calendar-event-attendee/calendar-event-attendee.service'; @Injectable() export class GoogleCalendarFullSyncService { diff --git a/packages/twenty-server/src/workspace/calendar/services/providers/calendar-providers.module.ts b/packages/twenty-server/src/business/modules/calendar/services/providers/calendar-providers.module.ts similarity index 68% rename from packages/twenty-server/src/workspace/calendar/services/providers/calendar-providers.module.ts rename to packages/twenty-server/src/business/modules/calendar/services/providers/calendar-providers.module.ts index adc8b90699..49b3cc4ab3 100644 --- a/packages/twenty-server/src/workspace/calendar/services/providers/calendar-providers.module.ts +++ b/packages/twenty-server/src/business/modules/calendar/services/providers/calendar-providers.module.ts @@ -1,7 +1,7 @@ import { Module } from '@nestjs/common'; import { EnvironmentModule } from 'src/integrations/environment/environment.module'; -import { GoogleCalendarClientProvider } from 'src/workspace/calendar/services/providers/google-calendar/google-calendar.provider'; +import { GoogleCalendarClientProvider } from 'src/business/modules/calendar/services/providers/google-calendar/google-calendar.provider'; @Module({ imports: [EnvironmentModule], diff --git a/packages/twenty-server/src/workspace/calendar/services/providers/google-calendar/google-calendar.provider.ts b/packages/twenty-server/src/business/modules/calendar/services/providers/google-calendar/google-calendar.provider.ts similarity index 100% rename from packages/twenty-server/src/workspace/calendar/services/providers/google-calendar/google-calendar.provider.ts rename to packages/twenty-server/src/business/modules/calendar/services/providers/google-calendar/google-calendar.provider.ts diff --git a/packages/twenty-server/src/workspace/calendar/types/calendar-event.ts b/packages/twenty-server/src/business/modules/calendar/types/calendar-event.ts similarity index 61% rename from packages/twenty-server/src/workspace/calendar/types/calendar-event.ts rename to packages/twenty-server/src/business/modules/calendar/types/calendar-event.ts index 06c8a63a7b..e273ba67cb 100644 --- a/packages/twenty-server/src/workspace/calendar/types/calendar-event.ts +++ b/packages/twenty-server/src/business/modules/calendar/types/calendar-event.ts @@ -1,6 +1,6 @@ -import { CalendarEventAttendeeObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-event-attendee.object-metadata'; -import { CalendarEventObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-event.object-metadata'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; +import { CalendarEventAttendeeObjectMetadata } from 'src/business/modules/calendar/calendar-event-attendee.object-metadata'; +import { CalendarEventObjectMetadata } from 'src/business/modules/calendar/calendar-event.object-metadata'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; export type CalendarEvent = Omit< ObjectRecord, diff --git a/packages/twenty-server/src/workspace/calendar/utils/format-google-calendar-event.util.ts b/packages/twenty-server/src/business/modules/calendar/utils/format-google-calendar-event.util.ts similarity index 87% rename from packages/twenty-server/src/workspace/calendar/utils/format-google-calendar-event.util.ts rename to packages/twenty-server/src/business/modules/calendar/utils/format-google-calendar-event.util.ts index 29f4878b98..795aad17e8 100644 --- a/packages/twenty-server/src/workspace/calendar/utils/format-google-calendar-event.util.ts +++ b/packages/twenty-server/src/business/modules/calendar/utils/format-google-calendar-event.util.ts @@ -1,8 +1,8 @@ import { calendar_v3 } from 'googleapis'; import { v4 } from 'uuid'; -import { CalendarEventWithAttendees } from 'src/workspace/calendar/types/calendar-event'; -import { CalendarEventAttendeeResponseStatus } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-event-attendee.object-metadata'; +import { CalendarEventWithAttendees } from 'src/business/modules/calendar/types/calendar-event'; +import { CalendarEventAttendeeResponseStatus } from 'src/business/modules/calendar/calendar-event-attendee.object-metadata'; export const formatGoogleCalendarEvent = ( event: calendar_v3.Schema$Event, diff --git a/packages/twenty-server/src/workspace/calendar/utils/google-calendar-search-filter.util.ts b/packages/twenty-server/src/business/modules/calendar/utils/google-calendar-search-filter.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/calendar/utils/google-calendar-search-filter.util.ts rename to packages/twenty-server/src/business/modules/calendar/utils/google-calendar-search-filter.util.ts diff --git a/packages/twenty-server/src/business/modules/comment/comment.object-metadata.ts b/packages/twenty-server/src/business/modules/comment/comment.object-metadata.ts new file mode 100644 index 0000000000..a0b964416b --- /dev/null +++ b/packages/twenty-server/src/business/modules/comment/comment.object-metadata.ts @@ -0,0 +1,49 @@ +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { commentStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { ActivityObjectMetadata } from 'src/business/modules/activity/activity.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; + +@ObjectMetadata({ + standardId: standardObjectIds.comment, + namePlural: 'comments', + labelSingular: 'Comment', + labelPlural: 'Comments', + description: 'A comment', + icon: 'IconMessageCircle', +}) +@IsSystem() +export class CommentObjectMetadata extends BaseObjectMetadata { + @FieldMetadata({ + standardId: commentStandardFieldIds.body, + type: FieldMetadataType.TEXT, + label: 'Body', + description: 'Comment body', + icon: 'IconLink', + }) + body: string; + + @FieldMetadata({ + standardId: commentStandardFieldIds.author, + type: FieldMetadataType.RELATION, + label: 'Author', + description: 'Comment author', + icon: 'IconCircleUser', + joinColumn: 'authorId', + }) + author: WorkspaceMemberObjectMetadata; + + @FieldMetadata({ + standardId: commentStandardFieldIds.activity, + type: FieldMetadataType.RELATION, + label: 'Activity', + description: 'Comment activity', + icon: 'IconNotes', + joinColumn: 'activityId', + }) + activity: ActivityObjectMetadata; +} diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/company.object-metadata.ts b/packages/twenty-server/src/business/modules/company/company.object-metadata.ts similarity index 72% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/company.object-metadata.ts rename to packages/twenty-server/src/business/modules/company/company.object-metadata.ts index 1076d13ad9..bd561c8e8e 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/company.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/company/company.object-metadata.ts @@ -1,24 +1,24 @@ -import { CurrencyMetadata } from 'src/metadata/field-metadata/composite-types/currency.composite-type'; -import { LinkMetadata } from 'src/metadata/field-metadata/composite-types/link.composite-type'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { CurrencyMetadata } from 'src/engine-metadata/field-metadata/composite-types/currency.composite-type'; +import { LinkMetadata } from 'src/engine-metadata/field-metadata/composite-types/link.composite-type'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType, RelationOnDeleteAction, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { companyStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; -import { ActivityTargetObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/activity-target.object-metadata'; -import { AttachmentObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/attachment.object-metadata'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { FavoriteObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/favorite.object-metadata'; -import { OpportunityObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/opportunity.object-metadata'; -import { PersonObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { companyStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; +import { ActivityTargetObjectMetadata } from 'src/business/modules/activity/activity-target.object-metadata'; +import { AttachmentObjectMetadata } from 'src/business/modules/attachment/attachment.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { FavoriteObjectMetadata } from 'src/business/modules/favorite/favorite.object-metadata'; +import { OpportunityObjectMetadata } from 'src/business/modules/opportunity/opportunity.object-metadata'; +import { PersonObjectMetadata } from 'src/business/modules/person/person.object-metadata'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.company, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata.ts b/packages/twenty-server/src/business/modules/connected-account/connected-account.object-metadata.ts similarity index 64% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata.ts rename to packages/twenty-server/src/business/modules/connected-account/connected-account.object-metadata.ts index 4a266ba938..68ca1cd67c 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/connected-account/connected-account.object-metadata.ts @@ -1,20 +1,20 @@ -import { FeatureFlagKeys } from 'src/core/feature-flag/feature-flag.entity'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FeatureFlagKeys } from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType, RelationOnDeleteAction, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { connectedAccountStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { CalendarChannelObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-channel.object-metadata'; -import { MessageChannelObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-channel.object-metadata'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { connectedAccountStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { Gate } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/gate.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { CalendarChannelObjectMetadata } from 'src/business/modules/calendar/calendar-channel.object-metadata'; +import { MessageChannelObjectMetadata } from 'src/business/modules/message/message-channel.object-metadata'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.connectedAccount, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/favorite.object-metadata.ts b/packages/twenty-server/src/business/modules/favorite/favorite.object-metadata.ts similarity index 56% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/favorite.object-metadata.ts rename to packages/twenty-server/src/business/modules/favorite/favorite.object-metadata.ts index 94577224d2..b3712e9001 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/favorite.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/favorite/favorite.object-metadata.ts @@ -1,17 +1,17 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { favoriteStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { CustomObjectMetadata } from 'src/workspace/workspace-sync-metadata/custom-objects/custom.object-metadata'; -import { DynamicRelationFieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/dynamic-field-metadata.interface'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { CompanyObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/company.object-metadata'; -import { OpportunityObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/opportunity.object-metadata'; -import { PersonObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { favoriteStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { CustomObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/custom-objects/custom.object-metadata'; +import { DynamicRelationFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/dynamic-field-metadata.interface'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { CompanyObjectMetadata } from 'src/business/modules/company/company.object-metadata'; +import { OpportunityObjectMetadata } from 'src/business/modules/opportunity/opportunity.object-metadata'; +import { PersonObjectMetadata } from 'src/business/modules/person/person.object-metadata'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.favorite, diff --git a/packages/twenty-server/src/workspace/messaging/commands/crons/fetch-all-workspaces-messages.cron.pattern.ts b/packages/twenty-server/src/business/modules/message/commands/crons/fetch-all-workspaces-messages.cron.pattern.ts similarity index 100% rename from packages/twenty-server/src/workspace/messaging/commands/crons/fetch-all-workspaces-messages.cron.pattern.ts rename to packages/twenty-server/src/business/modules/message/commands/crons/fetch-all-workspaces-messages.cron.pattern.ts diff --git a/packages/twenty-server/src/workspace/messaging/commands/crons/fetch-all-workspaces-messages.job.ts b/packages/twenty-server/src/business/modules/message/commands/crons/fetch-all-workspaces-messages.job.ts similarity index 86% rename from packages/twenty-server/src/workspace/messaging/commands/crons/fetch-all-workspaces-messages.job.ts rename to packages/twenty-server/src/business/modules/message/commands/crons/fetch-all-workspaces-messages.job.ts index b0b82728de..15363abdc2 100644 --- a/packages/twenty-server/src/workspace/messaging/commands/crons/fetch-all-workspaces-messages.job.ts +++ b/packages/twenty-server/src/business/modules/message/commands/crons/fetch-all-workspaces-messages.job.ts @@ -7,13 +7,13 @@ import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/messa import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; -import { ConnectedAccountService } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.service'; -import { Workspace } from 'src/core/workspace/workspace.entity'; +import { ConnectedAccountService } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.service'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; import { GmailPartialSyncJobData, GmailPartialSyncJob, -} from 'src/workspace/messaging/jobs/gmail-partial-sync.job'; -import { DataSourceEntity } from 'src/metadata/data-source/data-source.entity'; +} from 'src/business/modules/message/jobs/gmail-partial-sync.job'; +import { DataSourceEntity } from 'src/engine-metadata/data-source/data-source.entity'; @Injectable() export class FetchAllWorkspacesMessagesJob diff --git a/packages/twenty-server/src/business/modules/message/commands/fetch-workspace-messages-commands.module.ts b/packages/twenty-server/src/business/modules/message/commands/fetch-workspace-messages-commands.module.ts new file mode 100644 index 0000000000..59708b4726 --- /dev/null +++ b/packages/twenty-server/src/business/modules/message/commands/fetch-workspace-messages-commands.module.ts @@ -0,0 +1,27 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; + +import { FeatureFlagEntity } from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; +import { GmailFullSyncCommand } from 'src/business/modules/message/commands/gmail-full-sync.command'; +import { GmailPartialSyncCommand } from 'src/business/modules/message/commands/gmail-partial-sync.command'; +import { ConnectedAccountModule } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.module'; +import { StartFetchAllWorkspacesMessagesCronCommand } from 'src/business/modules/message/commands/start-fetch-all-workspaces-messages.cron.command'; +import { StopFetchAllWorkspacesMessagesCronCommand } from 'src/business/modules/message/commands/stop-fetch-all-workspaces-messages.cron.command'; + +@Module({ + imports: [ + DataSourceModule, + TypeORMModule, + TypeOrmModule.forFeature([FeatureFlagEntity], 'core'), + ConnectedAccountModule, + ], + providers: [ + GmailFullSyncCommand, + GmailPartialSyncCommand, + StartFetchAllWorkspacesMessagesCronCommand, + StopFetchAllWorkspacesMessagesCronCommand, + ], +}) +export class FetchWorkspaceMessagesCommandsModule {} diff --git a/packages/twenty-server/src/workspace/messaging/commands/gmail-full-sync.command.ts b/packages/twenty-server/src/business/modules/message/commands/gmail-full-sync.command.ts similarity index 88% rename from packages/twenty-server/src/workspace/messaging/commands/gmail-full-sync.command.ts rename to packages/twenty-server/src/business/modules/message/commands/gmail-full-sync.command.ts index b9a54a73d1..b3632a4a56 100644 --- a/packages/twenty-server/src/workspace/messaging/commands/gmail-full-sync.command.ts +++ b/packages/twenty-server/src/business/modules/message/commands/gmail-full-sync.command.ts @@ -7,8 +7,8 @@ import { MessageQueueService } from 'src/integrations/message-queue/services/mes import { GmailFullSyncJobData, GmailFullSyncJob, -} from 'src/workspace/messaging/jobs/gmail-full-sync.job'; -import { ConnectedAccountService } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.service'; +} from 'src/business/modules/message/jobs/gmail-full-sync.job'; +import { ConnectedAccountService } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.service'; interface GmailFullSyncOptions { workspaceId: string; diff --git a/packages/twenty-server/src/workspace/messaging/commands/gmail-partial-sync.command.ts b/packages/twenty-server/src/business/modules/message/commands/gmail-partial-sync.command.ts similarity index 88% rename from packages/twenty-server/src/workspace/messaging/commands/gmail-partial-sync.command.ts rename to packages/twenty-server/src/business/modules/message/commands/gmail-partial-sync.command.ts index 482085ebb2..a819c5a97d 100644 --- a/packages/twenty-server/src/workspace/messaging/commands/gmail-partial-sync.command.ts +++ b/packages/twenty-server/src/business/modules/message/commands/gmail-partial-sync.command.ts @@ -7,8 +7,8 @@ import { MessageQueueService } from 'src/integrations/message-queue/services/mes import { GmailPartialSyncJob, GmailPartialSyncJobData, -} from 'src/workspace/messaging/jobs/gmail-partial-sync.job'; -import { ConnectedAccountService } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.service'; +} from 'src/business/modules/message/jobs/gmail-partial-sync.job'; +import { ConnectedAccountService } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.service'; interface GmailPartialSyncOptions { workspaceId: string; diff --git a/packages/twenty-server/src/workspace/messaging/commands/start-fetch-all-workspaces-messages.cron.command.ts b/packages/twenty-server/src/business/modules/message/commands/start-fetch-all-workspaces-messages.cron.command.ts similarity index 75% rename from packages/twenty-server/src/workspace/messaging/commands/start-fetch-all-workspaces-messages.cron.command.ts rename to packages/twenty-server/src/business/modules/message/commands/start-fetch-all-workspaces-messages.cron.command.ts index 04e4381ba2..994403f7d5 100644 --- a/packages/twenty-server/src/workspace/messaging/commands/start-fetch-all-workspaces-messages.cron.command.ts +++ b/packages/twenty-server/src/business/modules/message/commands/start-fetch-all-workspaces-messages.cron.command.ts @@ -4,8 +4,8 @@ import { Command, CommandRunner } from 'nest-commander'; import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; -import { fetchAllWorkspacesMessagesCronPattern } from 'src/workspace/messaging/commands/crons/fetch-all-workspaces-messages.cron.pattern'; -import { FetchAllWorkspacesMessagesJob } from 'src/workspace/messaging/commands/crons/fetch-all-workspaces-messages.job'; +import { fetchAllWorkspacesMessagesCronPattern } from 'src/business/modules/message/commands/crons/fetch-all-workspaces-messages.cron.pattern'; +import { FetchAllWorkspacesMessagesJob } from 'src/business/modules/message/commands/crons/fetch-all-workspaces-messages.job'; @Command({ name: 'fetch-all-workspaces-messages:cron:start', diff --git a/packages/twenty-server/src/workspace/messaging/commands/stop-fetch-all-workspaces-messages.cron.command.ts b/packages/twenty-server/src/business/modules/message/commands/stop-fetch-all-workspaces-messages.cron.command.ts similarity index 75% rename from packages/twenty-server/src/workspace/messaging/commands/stop-fetch-all-workspaces-messages.cron.command.ts rename to packages/twenty-server/src/business/modules/message/commands/stop-fetch-all-workspaces-messages.cron.command.ts index 418994c94e..825b96ed69 100644 --- a/packages/twenty-server/src/workspace/messaging/commands/stop-fetch-all-workspaces-messages.cron.command.ts +++ b/packages/twenty-server/src/business/modules/message/commands/stop-fetch-all-workspaces-messages.cron.command.ts @@ -4,8 +4,8 @@ import { Command, CommandRunner } from 'nest-commander'; import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; -import { fetchAllWorkspacesMessagesCronPattern } from 'src/workspace/messaging/commands/crons/fetch-all-workspaces-messages.cron.pattern'; -import { FetchAllWorkspacesMessagesJob } from 'src/workspace/messaging/commands/crons/fetch-all-workspaces-messages.job'; +import { fetchAllWorkspacesMessagesCronPattern } from 'src/business/modules/message/commands/crons/fetch-all-workspaces-messages.cron.pattern'; +import { FetchAllWorkspacesMessagesJob } from 'src/business/modules/message/commands/crons/fetch-all-workspaces-messages.job'; @Command({ name: 'fetch-all-workspaces-messages:cron:stop', diff --git a/packages/twenty-server/src/workspace/messaging/jobs/create-companies-and-contacts-after-sync.job.ts b/packages/twenty-server/src/business/modules/message/jobs/create-companies-and-contacts-after-sync.job.ts similarity index 82% rename from packages/twenty-server/src/workspace/messaging/jobs/create-companies-and-contacts-after-sync.job.ts rename to packages/twenty-server/src/business/modules/message/jobs/create-companies-and-contacts-after-sync.job.ts index 2326de4d73..2658a28f38 100644 --- a/packages/twenty-server/src/workspace/messaging/jobs/create-companies-and-contacts-after-sync.job.ts +++ b/packages/twenty-server/src/business/modules/message/jobs/create-companies-and-contacts-after-sync.job.ts @@ -2,9 +2,9 @@ import { Injectable, Logger } from '@nestjs/common'; import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/message-queue-job.interface'; -import { CreateCompanyAndContactService } from 'src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.service'; -import { MessageChannelService } from 'src/workspace/messaging/repositories/message-channel/message-channel.service'; -import { MessageParticipantService } from 'src/workspace/messaging/repositories/message-participant/message-participant.service'; +import { CreateCompanyAndContactService } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.service'; +import { MessageChannelService } from 'src/business/modules/message/repositories/message-channel/message-channel.service'; +import { MessageParticipantService } from 'src/business/modules/message/repositories/message-participant/message-participant.service'; export type CreateCompaniesAndContactsAfterSyncJobData = { workspaceId: string; diff --git a/packages/twenty-server/src/workspace/messaging/jobs/delete-connected-account-associated-calendar-data.job.ts b/packages/twenty-server/src/business/modules/message/jobs/delete-connected-account-associated-calendar-data.job.ts similarity index 89% rename from packages/twenty-server/src/workspace/messaging/jobs/delete-connected-account-associated-calendar-data.job.ts rename to packages/twenty-server/src/business/modules/message/jobs/delete-connected-account-associated-calendar-data.job.ts index dbb9b0a05f..606e13f208 100644 --- a/packages/twenty-server/src/workspace/messaging/jobs/delete-connected-account-associated-calendar-data.job.ts +++ b/packages/twenty-server/src/business/modules/message/jobs/delete-connected-account-associated-calendar-data.job.ts @@ -2,7 +2,7 @@ import { Injectable, Logger } from '@nestjs/common'; import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/message-queue-job.interface'; -import { CalendarEventCleanerService } from 'src/workspace/calendar/services/calendar-event-cleaner/calendar-event-cleaner.service'; +import { CalendarEventCleanerService } from 'src/business/modules/calendar/services/calendar-event-cleaner/calendar-event-cleaner.service'; export type DeleteConnectedAccountAssociatedCalendarDataJobData = { workspaceId: string; diff --git a/packages/twenty-server/src/workspace/messaging/jobs/delete-connected-account-associated-messaging-data.job.ts b/packages/twenty-server/src/business/modules/message/jobs/delete-connected-account-associated-messaging-data.job.ts similarity index 90% rename from packages/twenty-server/src/workspace/messaging/jobs/delete-connected-account-associated-messaging-data.job.ts rename to packages/twenty-server/src/business/modules/message/jobs/delete-connected-account-associated-messaging-data.job.ts index 55a8eb3fcd..f5dc33ab7d 100644 --- a/packages/twenty-server/src/workspace/messaging/jobs/delete-connected-account-associated-messaging-data.job.ts +++ b/packages/twenty-server/src/business/modules/message/jobs/delete-connected-account-associated-messaging-data.job.ts @@ -2,7 +2,7 @@ import { Injectable, Logger } from '@nestjs/common'; import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/message-queue-job.interface'; -import { ThreadCleanerService } from 'src/workspace/messaging/services/thread-cleaner/thread-cleaner.service'; +import { ThreadCleanerService } from 'src/business/modules/message/services/thread-cleaner/thread-cleaner.service'; export type DeleteConnectedAccountAssociatedMessagingDataJobData = { workspaceId: string; diff --git a/packages/twenty-server/src/workspace/messaging/jobs/gmail-full-sync.job.ts b/packages/twenty-server/src/business/modules/message/jobs/gmail-full-sync.job.ts similarity index 84% rename from packages/twenty-server/src/workspace/messaging/jobs/gmail-full-sync.job.ts rename to packages/twenty-server/src/business/modules/message/jobs/gmail-full-sync.job.ts index 65a7d96c8d..82a92a13a8 100644 --- a/packages/twenty-server/src/workspace/messaging/jobs/gmail-full-sync.job.ts +++ b/packages/twenty-server/src/business/modules/message/jobs/gmail-full-sync.job.ts @@ -2,8 +2,8 @@ import { Injectable, Logger } from '@nestjs/common'; import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/message-queue-job.interface'; -import { GoogleAPIsRefreshAccessTokenService } from 'src/workspace/calendar-and-messaging/services/google-apis-refresh-access-token.service'; -import { GmailFullSyncService } from 'src/workspace/messaging/services/gmail-full-sync.service'; +import { GoogleAPIsRefreshAccessTokenService } from 'src/business/modules/calendar-and-messaging/services/google-apis-refresh-access-token.service'; +import { GmailFullSyncService } from 'src/business/modules/message/services/gmail-full-sync.service'; export type GmailFullSyncJobData = { workspaceId: string; diff --git a/packages/twenty-server/src/workspace/messaging/jobs/gmail-partial-sync.job.ts b/packages/twenty-server/src/business/modules/message/jobs/gmail-partial-sync.job.ts similarity index 83% rename from packages/twenty-server/src/workspace/messaging/jobs/gmail-partial-sync.job.ts rename to packages/twenty-server/src/business/modules/message/jobs/gmail-partial-sync.job.ts index cfafb37c1f..0b045de1de 100644 --- a/packages/twenty-server/src/workspace/messaging/jobs/gmail-partial-sync.job.ts +++ b/packages/twenty-server/src/business/modules/message/jobs/gmail-partial-sync.job.ts @@ -2,8 +2,8 @@ import { Injectable, Logger } from '@nestjs/common'; import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/message-queue-job.interface'; -import { GoogleAPIsRefreshAccessTokenService } from 'src/workspace/calendar-and-messaging/services/google-apis-refresh-access-token.service'; -import { GmailPartialSyncService } from 'src/workspace/messaging/services/gmail-partial-sync.service'; +import { GoogleAPIsRefreshAccessTokenService } from 'src/business/modules/calendar-and-messaging/services/google-apis-refresh-access-token.service'; +import { GmailPartialSyncService } from 'src/business/modules/message/services/gmail-partial-sync.service'; export type GmailPartialSyncJobData = { workspaceId: string; diff --git a/packages/twenty-server/src/workspace/messaging/jobs/match-message-participant.job.ts b/packages/twenty-server/src/business/modules/message/jobs/match-message-participant.job.ts similarity index 90% rename from packages/twenty-server/src/workspace/messaging/jobs/match-message-participant.job.ts rename to packages/twenty-server/src/business/modules/message/jobs/match-message-participant.job.ts index 04ad5e4ded..fb6f772865 100644 --- a/packages/twenty-server/src/workspace/messaging/jobs/match-message-participant.job.ts +++ b/packages/twenty-server/src/business/modules/message/jobs/match-message-participant.job.ts @@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common'; import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/message-queue-job.interface'; -import { MessageParticipantService } from 'src/workspace/messaging/repositories/message-participant/message-participant.service'; +import { MessageParticipantService } from 'src/business/modules/message/repositories/message-participant/message-participant.service'; export type MatchMessageParticipantsJobData = { workspaceId: string; diff --git a/packages/twenty-server/src/workspace/messaging/listeners/messaging-connected-account.listener.ts b/packages/twenty-server/src/business/modules/message/listeners/messaging-connected-account.listener.ts similarity index 83% rename from packages/twenty-server/src/workspace/messaging/listeners/messaging-connected-account.listener.ts rename to packages/twenty-server/src/business/modules/message/listeners/messaging-connected-account.listener.ts index baef313dad..9ad45b9696 100644 --- a/packages/twenty-server/src/workspace/messaging/listeners/messaging-connected-account.listener.ts +++ b/packages/twenty-server/src/business/modules/message/listeners/messaging-connected-account.listener.ts @@ -7,12 +7,12 @@ import { MessageQueueService } from 'src/integrations/message-queue/services/mes import { DeleteConnectedAccountAssociatedCalendarDataJobData, DeleteConnectedAccountAssociatedCalendarDataJob, -} from 'src/workspace/messaging/jobs/delete-connected-account-associated-calendar-data.job'; +} from 'src/business/modules/message/jobs/delete-connected-account-associated-calendar-data.job'; import { DeleteConnectedAccountAssociatedMessagingDataJobData, DeleteConnectedAccountAssociatedMessagingDataJob, -} from 'src/workspace/messaging/jobs/delete-connected-account-associated-messaging-data.job'; -import { ConnectedAccountObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata'; +} from 'src/business/modules/message/jobs/delete-connected-account-associated-messaging-data.job'; +import { ConnectedAccountObjectMetadata } from 'src/business/modules/connected-account/connected-account.object-metadata'; @Injectable() export class MessagingConnectedAccountListener { diff --git a/packages/twenty-server/src/workspace/messaging/listeners/messaging-message-channel.listener.ts b/packages/twenty-server/src/business/modules/message/listeners/messaging-message-channel.listener.ts similarity index 86% rename from packages/twenty-server/src/workspace/messaging/listeners/messaging-message-channel.listener.ts rename to packages/twenty-server/src/business/modules/message/listeners/messaging-message-channel.listener.ts index 5dc19f04de..acc25f3acc 100644 --- a/packages/twenty-server/src/workspace/messaging/listeners/messaging-message-channel.listener.ts +++ b/packages/twenty-server/src/business/modules/message/listeners/messaging-message-channel.listener.ts @@ -8,8 +8,8 @@ import { MessageQueueService } from 'src/integrations/message-queue/services/mes import { CreateCompaniesAndContactsAfterSyncJobData, CreateCompaniesAndContactsAfterSyncJob, -} from 'src/workspace/messaging/jobs/create-companies-and-contacts-after-sync.job'; -import { MessageChannelObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-channel.object-metadata'; +} from 'src/business/modules/message/jobs/create-companies-and-contacts-after-sync.job'; +import { MessageChannelObjectMetadata } from 'src/business/modules/message/message-channel.object-metadata'; @Injectable() export class MessagingMessageChannelListener { diff --git a/packages/twenty-server/src/workspace/messaging/listeners/messaging-person.listener.ts b/packages/twenty-server/src/business/modules/message/listeners/messaging-person.listener.ts similarity index 91% rename from packages/twenty-server/src/workspace/messaging/listeners/messaging-person.listener.ts rename to packages/twenty-server/src/business/modules/message/listeners/messaging-person.listener.ts index 43c7fe3c08..d12582eeee 100644 --- a/packages/twenty-server/src/workspace/messaging/listeners/messaging-person.listener.ts +++ b/packages/twenty-server/src/business/modules/message/listeners/messaging-person.listener.ts @@ -9,8 +9,8 @@ import { MessageQueueService } from 'src/integrations/message-queue/services/mes import { MatchMessageParticipantJob, MatchMessageParticipantsJobData, -} from 'src/workspace/messaging/jobs/match-message-participant.job'; -import { PersonObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata'; +} from 'src/business/modules/message/jobs/match-message-participant.job'; +import { PersonObjectMetadata } from 'src/business/modules/person/person.object-metadata'; @Injectable() export class MessagingPersonListener { diff --git a/packages/twenty-server/src/workspace/messaging/listeners/messaging-workspace-member.listener.ts b/packages/twenty-server/src/business/modules/message/listeners/messaging-workspace-member.listener.ts similarity index 90% rename from packages/twenty-server/src/workspace/messaging/listeners/messaging-workspace-member.listener.ts rename to packages/twenty-server/src/business/modules/message/listeners/messaging-workspace-member.listener.ts index 726ab378a5..7ebb028252 100644 --- a/packages/twenty-server/src/workspace/messaging/listeners/messaging-workspace-member.listener.ts +++ b/packages/twenty-server/src/business/modules/message/listeners/messaging-workspace-member.listener.ts @@ -9,8 +9,8 @@ import { MessageQueueService } from 'src/integrations/message-queue/services/mes import { MatchMessageParticipantJob, MatchMessageParticipantsJobData, -} from 'src/workspace/messaging/jobs/match-message-participant.job'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; +} from 'src/business/modules/message/jobs/match-message-participant.job'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; @Injectable() export class MessagingWorkspaceMemberListener { diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel-message-association.object-metadata.ts b/packages/twenty-server/src/business/modules/message/message-channel-message-association.object-metadata.ts similarity index 63% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel-message-association.object-metadata.ts rename to packages/twenty-server/src/business/modules/message/message-channel-message-association.object-metadata.ts index 84a65578e9..290de139a0 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel-message-association.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/message/message-channel-message-association.object-metadata.ts @@ -1,14 +1,14 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { messageChannelMessageAssociationStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { MessageChannelObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-channel.object-metadata'; -import { MessageThreadObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-thread.object-metadata'; -import { MessageObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message.object-metadata'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { messageChannelMessageAssociationStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { MessageChannelObjectMetadata } from 'src/business/modules/message/message-channel.object-metadata'; +import { MessageThreadObjectMetadata } from 'src/business/modules/message/message-thread.object-metadata'; +import { MessageObjectMetadata } from 'src/business/modules/message/message.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.messageChannelMessageAssociation, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel.object-metadata.ts b/packages/twenty-server/src/business/modules/message/message-channel.object-metadata.ts similarity index 67% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel.object-metadata.ts rename to packages/twenty-server/src/business/modules/message/message-channel.object-metadata.ts index 874b69d02c..ac6f880a9a 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/message/message-channel.object-metadata.ts @@ -1,18 +1,18 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType, RelationOnDeleteAction, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { messageChannelStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { ConnectedAccountObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata'; -import { MessageChannelMessageAssociationObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-channel-message-association.object-metadata'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { messageChannelStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { ConnectedAccountObjectMetadata } from 'src/business/modules/connected-account/connected-account.object-metadata'; +import { MessageChannelMessageAssociationObjectMetadata } from 'src/business/modules/message/message-channel-message-association.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.messageChannel, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-participant.object-metadata.ts b/packages/twenty-server/src/business/modules/message/message-participant.object-metadata.ts similarity index 63% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-participant.object-metadata.ts rename to packages/twenty-server/src/business/modules/message/message-participant.object-metadata.ts index 3d31660ad5..b0b917f60c 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-participant.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/message/message-participant.object-metadata.ts @@ -1,14 +1,14 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { messageParticipantStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { MessageObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message.object-metadata'; -import { PersonObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { messageParticipantStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { MessageObjectMetadata } from 'src/business/modules/message/message.object-metadata'; +import { PersonObjectMetadata } from 'src/business/modules/person/person.object-metadata'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.messageParticipant, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-thread.object-metadata.ts b/packages/twenty-server/src/business/modules/message/message-thread.object-metadata.ts similarity index 51% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-thread.object-metadata.ts rename to packages/twenty-server/src/business/modules/message/message-thread.object-metadata.ts index 780ad3f9f7..a6d03242a0 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-thread.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/message/message-thread.object-metadata.ts @@ -1,18 +1,18 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType, RelationOnDeleteAction, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { messageThreadStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { MessageChannelMessageAssociationObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-channel-message-association.object-metadata'; -import { MessageObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message.object-metadata'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { messageThreadStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { MessageChannelMessageAssociationObjectMetadata } from 'src/business/modules/message/message-channel-message-association.object-metadata'; +import { MessageObjectMetadata } from 'src/business/modules/message/message.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.messageThread, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message.object-metadata.ts b/packages/twenty-server/src/business/modules/message/message.object-metadata.ts similarity index 68% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message.object-metadata.ts rename to packages/twenty-server/src/business/modules/message/message.object-metadata.ts index cf31413c3e..2fb054a295 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/message/message.object-metadata.ts @@ -1,19 +1,19 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType, RelationOnDeleteAction, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { messageStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { MessageChannelMessageAssociationObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-channel-message-association.object-metadata'; -import { MessageParticipantObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-participant.object-metadata'; -import { MessageThreadObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-thread.object-metadata'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { messageStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { MessageChannelMessageAssociationObjectMetadata } from 'src/business/modules/message/message-channel-message-association.object-metadata'; +import { MessageParticipantObjectMetadata } from 'src/business/modules/message/message-participant.object-metadata'; +import { MessageThreadObjectMetadata } from 'src/business/modules/message/message-thread.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.message, diff --git a/packages/twenty-server/src/business/modules/message/messaging.module.ts b/packages/twenty-server/src/business/modules/message/messaging.module.ts new file mode 100644 index 0000000000..e42a706d6a --- /dev/null +++ b/packages/twenty-server/src/business/modules/message/messaging.module.ts @@ -0,0 +1,76 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { HttpModule } from '@nestjs/axios'; + +import { ConnectedAccountModule } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.module'; +import { MessageChannelMessageAssociationModule } from 'src/business/modules/message/repositories/message-channel-message-association/message-channel-message-assocation.module'; +import { MessageChannelModule } from 'src/business/modules/message/repositories/message-channel/message-channel.module'; +import { MessageThreadModule } from 'src/business/modules/message/repositories/message-thread/message-thread.module'; +import { EnvironmentModule } from 'src/integrations/environment/environment.module'; +import { MessagingPersonListener } from 'src/business/modules/message/listeners/messaging-person.listener'; +import { MessageModule } from 'src/business/modules/message/repositories/message/message.module'; +import { GmailClientProvider } from 'src/business/modules/message/services/providers/gmail/gmail-client.provider'; +import { CreateContactService } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-contact/create-contact.service'; +import { CreateCompanyService } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-company/create-company.service'; +import { FetchMessagesByBatchesService } from 'src/business/modules/message/services/fetch-messages-by-batches.service'; +import { GmailFullSyncService } from 'src/business/modules/message/services/gmail-full-sync.service'; +import { GmailPartialSyncService } from 'src/business/modules/message/services/gmail-partial-sync.service'; +import { GoogleAPIsRefreshAccessTokenService } from 'src/business/modules/calendar-and-messaging/services/google-apis-refresh-access-token.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; +import { MessageParticipantModule } from 'src/business/modules/message/repositories/message-participant/message-participant.module'; +import { MessagingWorkspaceMemberListener } from 'src/business/modules/message/listeners/messaging-workspace-member.listener'; +import { MessagingMessageChannelListener } from 'src/business/modules/message/listeners/messaging-message-channel.listener'; +import { MessageService } from 'src/business/modules/message/repositories/message/message.service'; +import { WorkspaceMemberModule } from 'src/engine-workspace/repositories/workspace-member/workspace-member.module'; +import { FeatureFlagEntity } from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { CreateCompaniesAndContactsModule } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module'; +import { CompanyModule } from 'src/business/modules/message/repositories/company/company.module'; +import { PersonModule } from 'src/engine-workspace/repositories/person/person.module'; +import { SaveMessagesAndCreateContactsService } from 'src/business/modules/message/services/save-messages-and-create-contacts.service'; +import { MessagingConnectedAccountListener } from 'src/business/modules/message/listeners/messaging-connected-account.listener'; +import { BlocklistModule } from 'src/business/modules/calendar-and-messaging/repositories/blocklist/blocklist.module'; +import { FetchByBatchesService } from 'src/business/modules/message/services/fetch-by-batch.service'; +@Module({ + imports: [ + EnvironmentModule, + WorkspaceDataSourceModule, + ConnectedAccountModule, + MessageChannelModule, + MessageChannelMessageAssociationModule, + MessageModule, + MessageThreadModule, + MessageParticipantModule, + CreateCompaniesAndContactsModule, + WorkspaceMemberModule, + TypeOrmModule.forFeature([FeatureFlagEntity], 'core'), + CompanyModule, + PersonModule, + BlocklistModule, + HttpModule.register({ + baseURL: 'https://www.googleapis.com/batch/gmail/v1', + }), + ], + providers: [ + GmailFullSyncService, + GmailPartialSyncService, + FetchMessagesByBatchesService, + GoogleAPIsRefreshAccessTokenService, + GmailClientProvider, + CreateContactService, + CreateCompanyService, + MessagingPersonListener, + MessagingWorkspaceMemberListener, + MessagingMessageChannelListener, + MessageService, + SaveMessagesAndCreateContactsService, + MessagingConnectedAccountListener, + FetchByBatchesService, + ], + exports: [ + GmailPartialSyncService, + GmailFullSyncService, + GoogleAPIsRefreshAccessTokenService, + FetchByBatchesService, + ], +}) +export class MessagingModule {} diff --git a/packages/twenty-server/src/workspace/messaging/query-hooks/message/message-find-many.pre-query.hook.ts b/packages/twenty-server/src/business/modules/message/query-hooks/message/message-find-many.pre-query.hook.ts similarity index 73% rename from packages/twenty-server/src/workspace/messaging/query-hooks/message/message-find-many.pre-query.hook.ts rename to packages/twenty-server/src/business/modules/message/query-hooks/message/message-find-many.pre-query.hook.ts index 09d90da96c..14de89bc53 100644 --- a/packages/twenty-server/src/workspace/messaging/query-hooks/message/message-find-many.pre-query.hook.ts +++ b/packages/twenty-server/src/business/modules/message/query-hooks/message/message-find-many.pre-query.hook.ts @@ -7,13 +7,13 @@ import { import { groupBy } from 'lodash'; -import { WorkspacePreQueryHook } from 'src/workspace/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface'; -import { FindManyResolverArgs } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspacePreQueryHook } from 'src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface'; +import { FindManyResolverArgs } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { MessageChannelMessageAssociationService } from 'src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-association.service'; -import { MessageChannelService } from 'src/workspace/messaging/repositories/message-channel/message-channel.service'; -import { ConnectedAccountService } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.service'; -import { WorkspaceMemberService } from 'src/workspace/repositories/workspace-member/workspace-member.service'; +import { MessageChannelMessageAssociationService } from 'src/business/modules/message/repositories/message-channel-message-association/message-channel-message-association.service'; +import { MessageChannelService } from 'src/business/modules/message/repositories/message-channel/message-channel.service'; +import { ConnectedAccountService } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.service'; +import { WorkspaceMemberService } from 'src/engine-workspace/repositories/workspace-member/workspace-member.service'; @Injectable() export class MessageFindManyPreQueryHook implements WorkspacePreQueryHook { diff --git a/packages/twenty-server/src/workspace/messaging/query-hooks/message/message-find-one.pre-query-hook.ts b/packages/twenty-server/src/business/modules/message/query-hooks/message/message-find-one.pre-query-hook.ts similarity index 58% rename from packages/twenty-server/src/workspace/messaging/query-hooks/message/message-find-one.pre-query-hook.ts rename to packages/twenty-server/src/business/modules/message/query-hooks/message/message-find-one.pre-query-hook.ts index c5e3fa8696..a23663404f 100644 --- a/packages/twenty-server/src/workspace/messaging/query-hooks/message/message-find-one.pre-query-hook.ts +++ b/packages/twenty-server/src/business/modules/message/query-hooks/message/message-find-one.pre-query-hook.ts @@ -1,8 +1,8 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { BadRequestException, Injectable } from '@nestjs/common'; -import { WorkspacePreQueryHook } from 'src/workspace/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface'; -import { FindOneResolverArgs } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspacePreQueryHook } from 'src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface'; +import { FindOneResolverArgs } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; @Injectable() export class MessageFindOnePreQueryHook implements WorkspacePreQueryHook { diff --git a/packages/twenty-server/src/business/modules/message/query-hooks/messaging-query-hook.module.ts b/packages/twenty-server/src/business/modules/message/query-hooks/messaging-query-hook.module.ts new file mode 100644 index 0000000000..14293b38c6 --- /dev/null +++ b/packages/twenty-server/src/business/modules/message/query-hooks/messaging-query-hook.module.ts @@ -0,0 +1,28 @@ +import { Module } from '@nestjs/common'; + +import { MessageFindManyPreQueryHook } from 'src/business/modules/message/query-hooks/message/message-find-many.pre-query.hook'; +import { MessageFindOnePreQueryHook } from 'src/business/modules/message/query-hooks/message/message-find-one.pre-query-hook'; +import { ConnectedAccountModule } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.module'; +import { MessageChannelMessageAssociationModule } from 'src/business/modules/message/repositories/message-channel-message-association/message-channel-message-assocation.module'; +import { MessageChannelModule } from 'src/business/modules/message/repositories/message-channel/message-channel.module'; +import { WorkspaceMemberModule } from 'src/engine-workspace/repositories/workspace-member/workspace-member.module'; + +@Module({ + imports: [ + MessageChannelMessageAssociationModule, + MessageChannelModule, + ConnectedAccountModule, + WorkspaceMemberModule, + ], + providers: [ + { + provide: MessageFindOnePreQueryHook.name, + useClass: MessageFindOnePreQueryHook, + }, + { + provide: MessageFindManyPreQueryHook.name, + useClass: MessageFindManyPreQueryHook, + }, + ], +}) +export class MessagingQueryHookModule {} diff --git a/packages/twenty-server/src/workspace/messaging/repositories/company/company.module.ts b/packages/twenty-server/src/business/modules/message/repositories/company/company.module.ts similarity index 53% rename from packages/twenty-server/src/workspace/messaging/repositories/company/company.module.ts rename to packages/twenty-server/src/business/modules/message/repositories/company/company.module.ts index bab9d7b823..eb82ec64f2 100644 --- a/packages/twenty-server/src/workspace/messaging/repositories/company/company.module.ts +++ b/packages/twenty-server/src/business/modules/message/repositories/company/company.module.ts @@ -1,7 +1,7 @@ import { Module } from '@nestjs/common'; -import { CompanyService } from 'src/workspace/messaging/repositories/company/company.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; +import { CompanyService } from 'src/business/modules/message/repositories/company/company.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; // TODO: Move outside of the messaging module @Module({ diff --git a/packages/twenty-server/src/workspace/messaging/repositories/company/company.service.ts b/packages/twenty-server/src/business/modules/message/repositories/company/company.service.ts similarity index 93% rename from packages/twenty-server/src/workspace/messaging/repositories/company/company.service.ts rename to packages/twenty-server/src/business/modules/message/repositories/company/company.service.ts index a3a1698ccf..d4aa7c8a2a 100644 --- a/packages/twenty-server/src/workspace/messaging/repositories/company/company.service.ts +++ b/packages/twenty-server/src/business/modules/message/repositories/company/company.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; export type CompanyToCreate = { id: string; diff --git a/packages/twenty-server/src/business/modules/message/repositories/message-channel-message-association/message-channel-message-assocation.module.ts b/packages/twenty-server/src/business/modules/message/repositories/message-channel-message-association/message-channel-message-assocation.module.ts new file mode 100644 index 0000000000..9019827de8 --- /dev/null +++ b/packages/twenty-server/src/business/modules/message/repositories/message-channel-message-association/message-channel-message-assocation.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; + +import { MessageChannelMessageAssociationService } from 'src/business/modules/message/repositories/message-channel-message-association/message-channel-message-association.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; + +@Module({ + imports: [WorkspaceDataSourceModule], + providers: [MessageChannelMessageAssociationService], + exports: [MessageChannelMessageAssociationService], +}) +export class MessageChannelMessageAssociationModule {} diff --git a/packages/twenty-server/src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-association.service.ts b/packages/twenty-server/src/business/modules/message/repositories/message-channel-message-association/message-channel-message-association.service.ts similarity index 95% rename from packages/twenty-server/src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-association.service.ts rename to packages/twenty-server/src/business/modules/message/repositories/message-channel-message-association/message-channel-message-association.service.ts index 15a4edefd1..83aefc1717 100644 --- a/packages/twenty-server/src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-association.service.ts +++ b/packages/twenty-server/src/business/modules/message/repositories/message-channel-message-association/message-channel-message-association.service.ts @@ -2,9 +2,9 @@ import { Injectable } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { MessageChannelMessageAssociationObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-channel-message-association.object-metadata'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { MessageChannelMessageAssociationObjectMetadata } from 'src/business/modules/message/message-channel-message-association.object-metadata'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; @Injectable() export class MessageChannelMessageAssociationService { diff --git a/packages/twenty-server/src/business/modules/message/repositories/message-channel/message-channel.module.ts b/packages/twenty-server/src/business/modules/message/repositories/message-channel/message-channel.module.ts new file mode 100644 index 0000000000..9524ca8228 --- /dev/null +++ b/packages/twenty-server/src/business/modules/message/repositories/message-channel/message-channel.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; + +import { MessageChannelService } from 'src/business/modules/message/repositories/message-channel/message-channel.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; + +@Module({ + imports: [WorkspaceDataSourceModule], + providers: [MessageChannelService], + exports: [MessageChannelService], +}) +export class MessageChannelModule {} diff --git a/packages/twenty-server/src/workspace/messaging/repositories/message-channel/message-channel.service.ts b/packages/twenty-server/src/business/modules/message/repositories/message-channel/message-channel.service.ts similarity index 87% rename from packages/twenty-server/src/workspace/messaging/repositories/message-channel/message-channel.service.ts rename to packages/twenty-server/src/business/modules/message/repositories/message-channel/message-channel.service.ts index 4754afe918..9723f52cd7 100644 --- a/packages/twenty-server/src/workspace/messaging/repositories/message-channel/message-channel.service.ts +++ b/packages/twenty-server/src/business/modules/message/repositories/message-channel/message-channel.service.ts @@ -2,9 +2,9 @@ import { Injectable } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { MessageChannelObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-channel.object-metadata'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { MessageChannelObjectMetadata } from 'src/business/modules/message/message-channel.object-metadata'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; @Injectable() export class MessageChannelService { diff --git a/packages/twenty-server/src/business/modules/message/repositories/message-participant/message-participant.module.ts b/packages/twenty-server/src/business/modules/message/repositories/message-participant/message-participant.module.ts new file mode 100644 index 0000000000..eab29afbf1 --- /dev/null +++ b/packages/twenty-server/src/business/modules/message/repositories/message-participant/message-participant.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; + +import { MessageParticipantService } from 'src/business/modules/message/repositories/message-participant/message-participant.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; +import { PersonModule } from 'src/engine-workspace/repositories/person/person.module'; + +@Module({ + imports: [WorkspaceDataSourceModule, PersonModule], + providers: [MessageParticipantService], + exports: [MessageParticipantService], +}) +export class MessageParticipantModule {} diff --git a/packages/twenty-server/src/workspace/messaging/repositories/message-participant/message-participant.service.ts b/packages/twenty-server/src/business/modules/message/repositories/message-participant/message-participant.service.ts similarity index 94% rename from packages/twenty-server/src/workspace/messaging/repositories/message-participant/message-participant.service.ts rename to packages/twenty-server/src/business/modules/message/repositories/message-participant/message-participant.service.ts index ac08fb6129..0c4d093ae4 100644 --- a/packages/twenty-server/src/workspace/messaging/repositories/message-participant/message-participant.service.ts +++ b/packages/twenty-server/src/business/modules/message/repositories/message-participant/message-participant.service.ts @@ -2,14 +2,14 @@ import { Injectable } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { MessageParticipantObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-participant.object-metadata'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { MessageParticipantObjectMetadata } from 'src/business/modules/message/message-participant.object-metadata'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; import { ParticipantWithId, ParticipantWithMessageId, -} from 'src/workspace/messaging/types/gmail-message'; -import { PersonService } from 'src/workspace/repositories/person/person.service'; +} from 'src/business/modules/message/types/gmail-message'; +import { PersonService } from 'src/engine-workspace/repositories/person/person.service'; @Injectable() export class MessageParticipantService { diff --git a/packages/twenty-server/src/business/modules/message/repositories/message-thread/message-thread.module.ts b/packages/twenty-server/src/business/modules/message/repositories/message-thread/message-thread.module.ts new file mode 100644 index 0000000000..6502cbfe5d --- /dev/null +++ b/packages/twenty-server/src/business/modules/message/repositories/message-thread/message-thread.module.ts @@ -0,0 +1,17 @@ +import { Module, forwardRef } from '@nestjs/common'; + +import { MessageChannelMessageAssociationModule } from 'src/business/modules/message/repositories/message-channel-message-association/message-channel-message-assocation.module'; +import { MessageThreadService } from 'src/business/modules/message/repositories/message-thread/message-thread.service'; +import { MessageModule } from 'src/business/modules/message/repositories/message/message.module'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; + +@Module({ + imports: [ + WorkspaceDataSourceModule, + MessageChannelMessageAssociationModule, + forwardRef(() => MessageModule), + ], + providers: [MessageThreadService], + exports: [MessageThreadService], +}) +export class MessageThreadModule {} diff --git a/packages/twenty-server/src/workspace/messaging/repositories/message-thread/message-thread.service.ts b/packages/twenty-server/src/business/modules/message/repositories/message-thread/message-thread.service.ts similarity index 86% rename from packages/twenty-server/src/workspace/messaging/repositories/message-thread/message-thread.service.ts rename to packages/twenty-server/src/business/modules/message/repositories/message-thread/message-thread.service.ts index be51802ae7..823fc74ceb 100644 --- a/packages/twenty-server/src/workspace/messaging/repositories/message-thread/message-thread.service.ts +++ b/packages/twenty-server/src/business/modules/message/repositories/message-thread/message-thread.service.ts @@ -3,10 +3,10 @@ import { Inject, Injectable, forwardRef } from '@nestjs/common'; import { EntityManager } from 'typeorm'; import { v4 } from 'uuid'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { DataSourceEntity } from 'src/metadata/data-source/data-source.entity'; -import { MessageChannelMessageAssociationService } from 'src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-association.service'; -import { MessageService } from 'src/workspace/messaging/repositories/message/message.service'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { DataSourceEntity } from 'src/engine-metadata/data-source/data-source.entity'; +import { MessageChannelMessageAssociationService } from 'src/business/modules/message/repositories/message-channel-message-association/message-channel-message-association.service'; +import { MessageService } from 'src/business/modules/message/repositories/message/message.service'; @Injectable() export class MessageThreadService { diff --git a/packages/twenty-server/src/business/modules/message/repositories/message/message.module.ts b/packages/twenty-server/src/business/modules/message/repositories/message/message.module.ts new file mode 100644 index 0000000000..cfe909ae7c --- /dev/null +++ b/packages/twenty-server/src/business/modules/message/repositories/message/message.module.ts @@ -0,0 +1,23 @@ +import { Module, forwardRef } from '@nestjs/common'; + +import { MessageChannelModule } from 'src/business/modules/message/repositories/message-channel/message-channel.module'; +import { MessageChannelMessageAssociationModule } from 'src/business/modules/message/repositories/message-channel-message-association/message-channel-message-assocation.module'; +import { MessageParticipantModule } from 'src/business/modules/message/repositories/message-participant/message-participant.module'; +import { MessageThreadModule } from 'src/business/modules/message/repositories/message-thread/message-thread.module'; +import { MessageService } from 'src/business/modules/message/repositories/message/message.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; +import { CreateCompaniesAndContactsModule } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module'; + +@Module({ + imports: [ + WorkspaceDataSourceModule, + forwardRef(() => MessageThreadModule), + MessageParticipantModule, + MessageChannelMessageAssociationModule, + MessageChannelModule, + CreateCompaniesAndContactsModule, + ], + providers: [MessageService], + exports: [MessageService], +}) +export class MessageModule {} diff --git a/packages/twenty-server/src/workspace/messaging/repositories/message/message.service.ts b/packages/twenty-server/src/business/modules/message/repositories/message/message.service.ts similarity index 91% rename from packages/twenty-server/src/workspace/messaging/repositories/message/message.service.ts rename to packages/twenty-server/src/business/modules/message/repositories/message/message.service.ts index f64740a655..405076cd27 100644 --- a/packages/twenty-server/src/workspace/messaging/repositories/message/message.service.ts +++ b/packages/twenty-server/src/business/modules/message/repositories/message/message.service.ts @@ -3,15 +3,15 @@ import { Inject, Injectable, Logger, forwardRef } from '@nestjs/common'; import { DataSource, EntityManager } from 'typeorm'; import { v4 } from 'uuid'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { MessageObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message.object-metadata'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; -import { DataSourceEntity } from 'src/metadata/data-source/data-source.entity'; -import { GmailMessage } from 'src/workspace/messaging/types/gmail-message'; -import { ConnectedAccountObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata'; -import { MessageChannelMessageAssociationService } from 'src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-association.service'; -import { MessageThreadService } from 'src/workspace/messaging/repositories/message-thread/message-thread.service'; -import { MessageChannelService } from 'src/workspace/messaging/repositories/message-channel/message-channel.service'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { MessageObjectMetadata } from 'src/business/modules/message/message.object-metadata'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; +import { DataSourceEntity } from 'src/engine-metadata/data-source/data-source.entity'; +import { GmailMessage } from 'src/business/modules/message/types/gmail-message'; +import { ConnectedAccountObjectMetadata } from 'src/business/modules/connected-account/connected-account.object-metadata'; +import { MessageChannelMessageAssociationService } from 'src/business/modules/message/repositories/message-channel-message-association/message-channel-message-association.service'; +import { MessageThreadService } from 'src/business/modules/message/repositories/message-thread/message-thread.service'; +import { MessageChannelService } from 'src/business/modules/message/repositories/message-channel/message-channel.service'; @Injectable() export class MessageService { diff --git a/packages/twenty-server/src/workspace/messaging/services/fetch-by-batch.service.ts b/packages/twenty-server/src/business/modules/message/services/fetch-by-batch.service.ts similarity index 93% rename from packages/twenty-server/src/workspace/messaging/services/fetch-by-batch.service.ts rename to packages/twenty-server/src/business/modules/message/services/fetch-by-batch.service.ts index d64af2e576..0e1af2b8e7 100644 --- a/packages/twenty-server/src/workspace/messaging/services/fetch-by-batch.service.ts +++ b/packages/twenty-server/src/business/modules/message/services/fetch-by-batch.service.ts @@ -3,8 +3,8 @@ import { Injectable } from '@nestjs/common'; import { AxiosResponse } from 'axios'; -import { BatchQueries } from 'src/workspace/calendar-and-messaging/types/batch-queries'; -import { GmailMessageParsedResponse } from 'src/workspace/messaging/types/gmail-message-parsed-response'; +import { BatchQueries } from 'src/business/modules/calendar-and-messaging/types/batch-queries'; +import { GmailMessageParsedResponse } from 'src/business/modules/message/types/gmail-message-parsed-response'; @Injectable() export class FetchByBatchesService { diff --git a/packages/twenty-server/src/workspace/messaging/services/fetch-messages-by-batches.service.spec.ts b/packages/twenty-server/src/business/modules/message/services/fetch-messages-by-batches.service.spec.ts similarity index 100% rename from packages/twenty-server/src/workspace/messaging/services/fetch-messages-by-batches.service.spec.ts rename to packages/twenty-server/src/business/modules/message/services/fetch-messages-by-batches.service.spec.ts diff --git a/packages/twenty-server/src/workspace/messaging/services/fetch-messages-by-batches.service.ts b/packages/twenty-server/src/business/modules/message/services/fetch-messages-by-batches.service.ts similarity index 93% rename from packages/twenty-server/src/workspace/messaging/services/fetch-messages-by-batches.service.ts rename to packages/twenty-server/src/business/modules/message/services/fetch-messages-by-batches.service.ts index 267d0b749c..1223f38215 100644 --- a/packages/twenty-server/src/workspace/messaging/services/fetch-messages-by-batches.service.ts +++ b/packages/twenty-server/src/business/modules/message/services/fetch-messages-by-batches.service.ts @@ -7,10 +7,10 @@ import planer from 'planer'; import { GmailMessage, Participant, -} from 'src/workspace/messaging/types/gmail-message'; -import { MessageQuery } from 'src/workspace/messaging/types/message-or-thread-query'; -import { GmailMessageParsedResponse } from 'src/workspace/messaging/types/gmail-message-parsed-response'; -import { FetchByBatchesService } from 'src/workspace/messaging/services/fetch-by-batch.service'; +} from 'src/business/modules/message/types/gmail-message'; +import { MessageQuery } from 'src/business/modules/message/types/message-or-thread-query'; +import { GmailMessageParsedResponse } from 'src/business/modules/message/types/gmail-message-parsed-response'; +import { FetchByBatchesService } from 'src/business/modules/message/services/fetch-by-batch.service'; @Injectable() export class FetchMessagesByBatchesService { diff --git a/packages/twenty-server/src/workspace/messaging/services/gmail-full-sync.service.ts b/packages/twenty-server/src/business/modules/message/services/gmail-full-sync.service.ts similarity index 85% rename from packages/twenty-server/src/workspace/messaging/services/gmail-full-sync.service.ts rename to packages/twenty-server/src/business/modules/message/services/gmail-full-sync.service.ts index f0cc30c0d9..a3d67f4d45 100644 --- a/packages/twenty-server/src/workspace/messaging/services/gmail-full-sync.service.ts +++ b/packages/twenty-server/src/business/modules/message/services/gmail-full-sync.service.ts @@ -3,25 +3,25 @@ import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; -import { FetchMessagesByBatchesService } from 'src/workspace/messaging/services/fetch-messages-by-batches.service'; -import { GmailClientProvider } from 'src/workspace/messaging/services/providers/gmail/gmail-client.provider'; +import { FetchMessagesByBatchesService } from 'src/business/modules/message/services/fetch-messages-by-batches.service'; +import { GmailClientProvider } from 'src/business/modules/message/services/providers/gmail/gmail-client.provider'; import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; import { GmailFullSyncJobData, GmailFullSyncJob, -} from 'src/workspace/messaging/jobs/gmail-full-sync.job'; -import { ConnectedAccountService } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.service'; -import { MessageChannelService } from 'src/workspace/messaging/repositories/message-channel/message-channel.service'; -import { MessageChannelMessageAssociationService } from 'src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-association.service'; -import { createQueriesFromMessageIds } from 'src/workspace/messaging/utils/create-queries-from-message-ids.util'; -import { gmailSearchFilterExcludeEmails } from 'src/workspace/messaging/utils/gmail-search-filter.util'; -import { BlocklistService } from 'src/workspace/calendar-and-messaging/repositories/blocklist/blocklist.service'; -import { SaveMessagesAndCreateContactsService } from 'src/workspace/messaging/services/save-messages-and-create-contacts.service'; +} from 'src/business/modules/message/jobs/gmail-full-sync.job'; +import { ConnectedAccountService } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.service'; +import { MessageChannelService } from 'src/business/modules/message/repositories/message-channel/message-channel.service'; +import { MessageChannelMessageAssociationService } from 'src/business/modules/message/repositories/message-channel-message-association/message-channel-message-association.service'; +import { createQueriesFromMessageIds } from 'src/business/modules/message/utils/create-queries-from-message-ids.util'; +import { gmailSearchFilterExcludeEmails } from 'src/business/modules/message/utils/gmail-search-filter.util'; +import { BlocklistService } from 'src/business/modules/calendar-and-messaging/repositories/blocklist/blocklist.service'; +import { SaveMessagesAndCreateContactsService } from 'src/business/modules/message/services/save-messages-and-create-contacts.service'; import { FeatureFlagEntity, FeatureFlagKeys, -} from 'src/core/feature-flag/feature-flag.entity'; +} from 'src/engine/modules/feature-flag/feature-flag.entity'; @Injectable() export class GmailFullSyncService { diff --git a/packages/twenty-server/src/workspace/messaging/services/gmail-partial-sync.service.ts b/packages/twenty-server/src/business/modules/message/services/gmail-partial-sync.service.ts similarity index 90% rename from packages/twenty-server/src/workspace/messaging/services/gmail-partial-sync.service.ts rename to packages/twenty-server/src/business/modules/message/services/gmail-partial-sync.service.ts index b91cf5819b..0649b0ee52 100644 --- a/packages/twenty-server/src/workspace/messaging/services/gmail-partial-sync.service.ts +++ b/packages/twenty-server/src/business/modules/message/services/gmail-partial-sync.service.ts @@ -4,26 +4,26 @@ import { InjectRepository } from '@nestjs/typeorm'; import { gmail_v1 } from 'googleapis'; import { Repository } from 'typeorm'; -import { FetchMessagesByBatchesService } from 'src/workspace/messaging/services/fetch-messages-by-batches.service'; -import { GmailClientProvider } from 'src/workspace/messaging/services/providers/gmail/gmail-client.provider'; +import { FetchMessagesByBatchesService } from 'src/business/modules/message/services/fetch-messages-by-batches.service'; +import { GmailClientProvider } from 'src/business/modules/message/services/providers/gmail/gmail-client.provider'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { GmailFullSyncJob, GmailFullSyncJobData, -} from 'src/workspace/messaging/jobs/gmail-full-sync.job'; -import { ConnectedAccountService } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.service'; -import { MessageChannelService } from 'src/workspace/messaging/repositories/message-channel/message-channel.service'; -import { MessageService } from 'src/workspace/messaging/repositories/message/message.service'; -import { createQueriesFromMessageIds } from 'src/workspace/messaging/utils/create-queries-from-message-ids.util'; -import { GmailMessage } from 'src/workspace/messaging/types/gmail-message'; -import { isPersonEmail } from 'src/workspace/messaging/utils/is-person-email.util'; -import { BlocklistService } from 'src/workspace/calendar-and-messaging/repositories/blocklist/blocklist.service'; -import { SaveMessagesAndCreateContactsService } from 'src/workspace/messaging/services/save-messages-and-create-contacts.service'; +} from 'src/business/modules/message/jobs/gmail-full-sync.job'; +import { ConnectedAccountService } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.service'; +import { MessageChannelService } from 'src/business/modules/message/repositories/message-channel/message-channel.service'; +import { MessageService } from 'src/business/modules/message/repositories/message/message.service'; +import { createQueriesFromMessageIds } from 'src/business/modules/message/utils/create-queries-from-message-ids.util'; +import { GmailMessage } from 'src/business/modules/message/types/gmail-message'; +import { isPersonEmail } from 'src/business/modules/message/utils/is-person-email.util'; +import { BlocklistService } from 'src/business/modules/calendar-and-messaging/repositories/blocklist/blocklist.service'; +import { SaveMessagesAndCreateContactsService } from 'src/business/modules/message/services/save-messages-and-create-contacts.service'; import { FeatureFlagEntity, FeatureFlagKeys, -} from 'src/core/feature-flag/feature-flag.entity'; +} from 'src/engine/modules/feature-flag/feature-flag.entity'; @Injectable() export class GmailPartialSyncService { diff --git a/packages/twenty-server/src/workspace/messaging/services/providers/gmail/gmail-client.provider.ts b/packages/twenty-server/src/business/modules/message/services/providers/gmail/gmail-client.provider.ts similarity index 90% rename from packages/twenty-server/src/workspace/messaging/services/providers/gmail/gmail-client.provider.ts rename to packages/twenty-server/src/business/modules/message/services/providers/gmail/gmail-client.provider.ts index fa74f383a4..a8e397d349 100644 --- a/packages/twenty-server/src/workspace/messaging/services/providers/gmail/gmail-client.provider.ts +++ b/packages/twenty-server/src/business/modules/message/services/providers/gmail/gmail-client.provider.ts @@ -22,8 +22,9 @@ export class GmailClientProvider { private async getOAuth2Client(refreshToken: string): Promise { const gmailClientId = this.environmentService.get('AUTH_GOOGLE_CLIENT_ID'); - const gmailClientSecret = - this.environmentService.get('AUTH_GOOGLE_CLIENT_SECRET'); + const gmailClientSecret = this.environmentService.get( + 'AUTH_GOOGLE_CLIENT_SECRET', + ); const oAuth2Client = new google.auth.OAuth2( gmailClientId, diff --git a/packages/twenty-server/src/workspace/messaging/services/providers/messaging-providers.module.ts b/packages/twenty-server/src/business/modules/message/services/providers/messaging-providers.module.ts similarity index 71% rename from packages/twenty-server/src/workspace/messaging/services/providers/messaging-providers.module.ts rename to packages/twenty-server/src/business/modules/message/services/providers/messaging-providers.module.ts index eb2cc40a1a..cbe4c1c0fb 100644 --- a/packages/twenty-server/src/workspace/messaging/services/providers/messaging-providers.module.ts +++ b/packages/twenty-server/src/business/modules/message/services/providers/messaging-providers.module.ts @@ -1,7 +1,7 @@ import { Module } from '@nestjs/common'; import { EnvironmentModule } from 'src/integrations/environment/environment.module'; -import { GmailClientProvider } from 'src/workspace/messaging/services/providers/gmail/gmail-client.provider'; +import { GmailClientProvider } from 'src/business/modules/message/services/providers/gmail/gmail-client.provider'; @Module({ imports: [EnvironmentModule], diff --git a/packages/twenty-server/src/workspace/messaging/services/save-messages-and-create-contacts.service.ts b/packages/twenty-server/src/business/modules/message/services/save-messages-and-create-contacts.service.ts similarity index 84% rename from packages/twenty-server/src/workspace/messaging/services/save-messages-and-create-contacts.service.ts rename to packages/twenty-server/src/business/modules/message/services/save-messages-and-create-contacts.service.ts index 654a0c9e19..138c3932cf 100644 --- a/packages/twenty-server/src/workspace/messaging/services/save-messages-and-create-contacts.service.ts +++ b/packages/twenty-server/src/business/modules/message/services/save-messages-and-create-contacts.service.ts @@ -2,17 +2,17 @@ import { Injectable, Logger } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { MessageChannelService } from 'src/workspace/messaging/repositories/message-channel/message-channel.service'; -import { MessageParticipantService } from 'src/workspace/messaging/repositories/message-participant/message-participant.service'; -import { MessageService } from 'src/workspace/messaging/repositories/message/message.service'; -import { CreateCompanyAndContactService } from 'src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.service'; +import { MessageChannelService } from 'src/business/modules/message/repositories/message-channel/message-channel.service'; +import { MessageParticipantService } from 'src/business/modules/message/repositories/message-participant/message-participant.service'; +import { MessageService } from 'src/business/modules/message/repositories/message/message.service'; +import { CreateCompanyAndContactService } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.service'; import { GmailMessage, ParticipantWithMessageId, -} from 'src/workspace/messaging/types/gmail-message'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { ConnectedAccountObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; +} from 'src/business/modules/message/types/gmail-message'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { ConnectedAccountObjectMetadata } from 'src/business/modules/connected-account/connected-account.object-metadata'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; @Injectable() export class SaveMessagesAndCreateContactsService { diff --git a/packages/twenty-server/src/business/modules/message/services/thread-cleaner/thread-cleaner.module.ts b/packages/twenty-server/src/business/modules/message/services/thread-cleaner/thread-cleaner.module.ts new file mode 100644 index 0000000000..80b969eabf --- /dev/null +++ b/packages/twenty-server/src/business/modules/message/services/thread-cleaner/thread-cleaner.module.ts @@ -0,0 +1,19 @@ +import { Module } from '@nestjs/common'; + +import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; +import { MessageThreadModule } from 'src/business/modules/message/repositories/message-thread/message-thread.module'; +import { MessageModule } from 'src/business/modules/message/repositories/message/message.module'; +import { ThreadCleanerService } from 'src/business/modules/message/services/thread-cleaner/thread-cleaner.service'; + +@Module({ + imports: [ + DataSourceModule, + TypeORMModule, + MessageThreadModule, + MessageModule, + ], + providers: [ThreadCleanerService], + exports: [ThreadCleanerService], +}) +export class ThreadCleanerModule {} diff --git a/packages/twenty-server/src/workspace/messaging/services/thread-cleaner/thread-cleaner.service.ts b/packages/twenty-server/src/business/modules/message/services/thread-cleaner/thread-cleaner.service.ts similarity index 69% rename from packages/twenty-server/src/workspace/messaging/services/thread-cleaner/thread-cleaner.service.ts rename to packages/twenty-server/src/business/modules/message/services/thread-cleaner/thread-cleaner.service.ts index 04d684bbca..8219e5b9c6 100644 --- a/packages/twenty-server/src/workspace/messaging/services/thread-cleaner/thread-cleaner.service.ts +++ b/packages/twenty-server/src/business/modules/message/services/thread-cleaner/thread-cleaner.service.ts @@ -1,10 +1,10 @@ import { Injectable } from '@nestjs/common'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; -import { MessageThreadService } from 'src/workspace/messaging/repositories/message-thread/message-thread.service'; -import { MessageService } from 'src/workspace/messaging/repositories/message/message.service'; -import { deleteUsingPagination } from 'src/workspace/messaging/services/thread-cleaner/utils/delete-using-pagination.util'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; +import { MessageThreadService } from 'src/business/modules/message/repositories/message-thread/message-thread.service'; +import { MessageService } from 'src/business/modules/message/repositories/message/message.service'; +import { deleteUsingPagination } from 'src/business/modules/message/services/thread-cleaner/utils/delete-using-pagination.util'; @Injectable() export class ThreadCleanerService { diff --git a/packages/twenty-server/src/workspace/messaging/services/thread-cleaner/utils/delete-using-pagination.util.spec.ts b/packages/twenty-server/src/business/modules/message/services/thread-cleaner/utils/delete-using-pagination.util.spec.ts similarity index 100% rename from packages/twenty-server/src/workspace/messaging/services/thread-cleaner/utils/delete-using-pagination.util.spec.ts rename to packages/twenty-server/src/business/modules/message/services/thread-cleaner/utils/delete-using-pagination.util.spec.ts diff --git a/packages/twenty-server/src/workspace/messaging/services/thread-cleaner/utils/delete-using-pagination.util.ts b/packages/twenty-server/src/business/modules/message/services/thread-cleaner/utils/delete-using-pagination.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/messaging/services/thread-cleaner/utils/delete-using-pagination.util.ts rename to packages/twenty-server/src/business/modules/message/services/thread-cleaner/utils/delete-using-pagination.util.ts diff --git a/packages/twenty-server/src/workspace/messaging/types/gmail-message-parsed-response.ts b/packages/twenty-server/src/business/modules/message/types/gmail-message-parsed-response.ts similarity index 100% rename from packages/twenty-server/src/workspace/messaging/types/gmail-message-parsed-response.ts rename to packages/twenty-server/src/business/modules/message/types/gmail-message-parsed-response.ts diff --git a/packages/twenty-server/src/workspace/messaging/types/gmail-message.ts b/packages/twenty-server/src/business/modules/message/types/gmail-message.ts similarity index 100% rename from packages/twenty-server/src/workspace/messaging/types/gmail-message.ts rename to packages/twenty-server/src/business/modules/message/types/gmail-message.ts diff --git a/packages/twenty-server/src/workspace/messaging/types/gmail-thread.ts b/packages/twenty-server/src/business/modules/message/types/gmail-thread.ts similarity index 100% rename from packages/twenty-server/src/workspace/messaging/types/gmail-thread.ts rename to packages/twenty-server/src/business/modules/message/types/gmail-thread.ts diff --git a/packages/twenty-server/src/workspace/messaging/types/message-or-thread-query.ts b/packages/twenty-server/src/business/modules/message/types/message-or-thread-query.ts similarity index 100% rename from packages/twenty-server/src/workspace/messaging/types/message-or-thread-query.ts rename to packages/twenty-server/src/business/modules/message/types/message-or-thread-query.ts diff --git a/packages/twenty-server/src/workspace/messaging/utils/create-queries-from-message-ids.util.ts b/packages/twenty-server/src/business/modules/message/utils/create-queries-from-message-ids.util.ts similarity index 71% rename from packages/twenty-server/src/workspace/messaging/utils/create-queries-from-message-ids.util.ts rename to packages/twenty-server/src/business/modules/message/utils/create-queries-from-message-ids.util.ts index 5263601c57..936ee78732 100644 --- a/packages/twenty-server/src/workspace/messaging/utils/create-queries-from-message-ids.util.ts +++ b/packages/twenty-server/src/business/modules/message/utils/create-queries-from-message-ids.util.ts @@ -1,4 +1,4 @@ -import { MessageQuery } from 'src/workspace/messaging/types/message-or-thread-query'; +import { MessageQuery } from 'src/business/modules/message/types/message-or-thread-query'; export const createQueriesFromMessageIds = ( messageExternalIds: string[], diff --git a/packages/twenty-server/src/workspace/messaging/utils/filter-out-participants-from-company-or-workspace.util.ts b/packages/twenty-server/src/business/modules/message/utils/filter-out-participants-from-company-or-workspace.util.ts similarity index 60% rename from packages/twenty-server/src/workspace/messaging/utils/filter-out-participants-from-company-or-workspace.util.ts rename to packages/twenty-server/src/business/modules/message/utils/filter-out-participants-from-company-or-workspace.util.ts index d9e272fd9f..076efa26b2 100644 --- a/packages/twenty-server/src/workspace/messaging/utils/filter-out-participants-from-company-or-workspace.util.ts +++ b/packages/twenty-server/src/business/modules/message/utils/filter-out-participants-from-company-or-workspace.util.ts @@ -1,7 +1,7 @@ -import { Participant } from 'src/workspace/messaging/types/gmail-message'; -import { getDomainNameFromHandle } from 'src/workspace/messaging/utils/get-domain-name-from-handle.util'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; +import { Participant } from 'src/business/modules/message/types/gmail-message'; +import { getDomainNameFromHandle } from 'src/business/modules/message/utils/get-domain-name-from-handle.util'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; export function filterOutParticipantsFromCompanyOrWorkspace( participants: Participant[], diff --git a/packages/twenty-server/src/workspace/messaging/utils/get-company-name-from-domain-name.util.ts b/packages/twenty-server/src/business/modules/message/utils/get-company-name-from-domain-name.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/messaging/utils/get-company-name-from-domain-name.util.ts rename to packages/twenty-server/src/business/modules/message/utils/get-company-name-from-domain-name.util.ts diff --git a/packages/twenty-server/src/workspace/messaging/utils/get-domain-name-from-handle.util.ts b/packages/twenty-server/src/business/modules/message/utils/get-domain-name-from-handle.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/messaging/utils/get-domain-name-from-handle.util.ts rename to packages/twenty-server/src/business/modules/message/utils/get-domain-name-from-handle.util.ts diff --git a/packages/twenty-server/src/workspace/messaging/utils/get-first-name-and-last-name-from-handle-and-display-name.util.ts b/packages/twenty-server/src/business/modules/message/utils/get-first-name-and-last-name-from-handle-and-display-name.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/messaging/utils/get-first-name-and-last-name-from-handle-and-display-name.util.ts rename to packages/twenty-server/src/business/modules/message/utils/get-first-name-and-last-name-from-handle-and-display-name.util.ts diff --git a/packages/twenty-server/src/workspace/messaging/utils/get-unique-participants-and-handles.util.ts b/packages/twenty-server/src/business/modules/message/utils/get-unique-participants-and-handles.util.ts similarity index 86% rename from packages/twenty-server/src/workspace/messaging/utils/get-unique-participants-and-handles.util.ts rename to packages/twenty-server/src/business/modules/message/utils/get-unique-participants-and-handles.util.ts index 9e01ac0242..340839badc 100644 --- a/packages/twenty-server/src/workspace/messaging/utils/get-unique-participants-and-handles.util.ts +++ b/packages/twenty-server/src/business/modules/message/utils/get-unique-participants-and-handles.util.ts @@ -1,6 +1,6 @@ import { uniq, uniqBy } from 'lodash'; -import { Participant } from 'src/workspace/messaging/types/gmail-message'; +import { Participant } from 'src/business/modules/message/types/gmail-message'; export function getUniqueParticipantsAndHandles(participants: Participant[]): { uniqueParticipants: Participant[]; uniqueHandles: string[]; diff --git a/packages/twenty-server/src/workspace/messaging/utils/gmail-search-filter.util.ts b/packages/twenty-server/src/business/modules/message/utils/gmail-search-filter.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/messaging/utils/gmail-search-filter.util.ts rename to packages/twenty-server/src/business/modules/message/utils/gmail-search-filter.util.ts diff --git a/packages/twenty-server/src/workspace/messaging/utils/is-person-email.util.ts b/packages/twenty-server/src/business/modules/message/utils/is-person-email.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/messaging/utils/is-person-email.util.ts rename to packages/twenty-server/src/business/modules/message/utils/is-person-email.util.ts diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/opportunity.object-metadata.ts b/packages/twenty-server/src/business/modules/opportunity/opportunity.object-metadata.ts similarity index 71% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/opportunity.object-metadata.ts rename to packages/twenty-server/src/business/modules/opportunity/opportunity.object-metadata.ts index eaae986ddb..070bd1e45f 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/opportunity.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/opportunity/opportunity.object-metadata.ts @@ -1,23 +1,23 @@ -import { CurrencyMetadata } from 'src/metadata/field-metadata/composite-types/currency.composite-type'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { CurrencyMetadata } from 'src/engine-metadata/field-metadata/composite-types/currency.composite-type'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType, RelationOnDeleteAction, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { opportunityStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; -import { ActivityTargetObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/activity-target.object-metadata'; -import { AttachmentObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/attachment.object-metadata'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { CompanyObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/company.object-metadata'; -import { FavoriteObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/favorite.object-metadata'; -import { PersonObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata'; -import { PipelineStepObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/pipeline-step.object-metadata'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { opportunityStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; +import { ActivityTargetObjectMetadata } from 'src/business/modules/activity/activity-target.object-metadata'; +import { AttachmentObjectMetadata } from 'src/business/modules/attachment/attachment.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { CompanyObjectMetadata } from 'src/business/modules/company/company.object-metadata'; +import { FavoriteObjectMetadata } from 'src/business/modules/favorite/favorite.object-metadata'; +import { PersonObjectMetadata } from 'src/business/modules/person/person.object-metadata'; +import { PipelineStepObjectMetadata } from 'src/business/modules/pipeline-step/pipeline-step.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.opportunity, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata.ts b/packages/twenty-server/src/business/modules/person/person.object-metadata.ts similarity index 71% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata.ts rename to packages/twenty-server/src/business/modules/person/person.object-metadata.ts index 61c00cbb3a..e499e6fe71 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/person/person.object-metadata.ts @@ -1,26 +1,26 @@ -import { FullNameMetadata } from 'src/metadata/field-metadata/composite-types/full-name.composite-type'; -import { LinkMetadata } from 'src/metadata/field-metadata/composite-types/link.composite-type'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FullNameMetadata } from 'src/engine-metadata/field-metadata/composite-types/full-name.composite-type'; +import { LinkMetadata } from 'src/engine-metadata/field-metadata/composite-types/link.composite-type'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType, RelationOnDeleteAction, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { personStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; -import { ActivityTargetObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/activity-target.object-metadata'; -import { AttachmentObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/attachment.object-metadata'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { CalendarEventAttendeeObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-event-attendee.object-metadata'; -import { CompanyObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/company.object-metadata'; -import { FavoriteObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/favorite.object-metadata'; -import { MessageParticipantObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-participant.object-metadata'; -import { OpportunityObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/opportunity.object-metadata'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { personStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { Gate } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/gate.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; +import { ActivityTargetObjectMetadata } from 'src/business/modules/activity/activity-target.object-metadata'; +import { AttachmentObjectMetadata } from 'src/business/modules/attachment/attachment.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { CalendarEventAttendeeObjectMetadata } from 'src/business/modules/calendar/calendar-event-attendee.object-metadata'; +import { CompanyObjectMetadata } from 'src/business/modules/company/company.object-metadata'; +import { FavoriteObjectMetadata } from 'src/business/modules/favorite/favorite.object-metadata'; +import { MessageParticipantObjectMetadata } from 'src/business/modules/message/message-participant.object-metadata'; +import { OpportunityObjectMetadata } from 'src/business/modules/opportunity/opportunity.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.person, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/pipeline-step.object-metadata.ts b/packages/twenty-server/src/business/modules/pipeline-step/pipeline-step.object-metadata.ts similarity index 53% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/pipeline-step.object-metadata.ts rename to packages/twenty-server/src/business/modules/pipeline-step/pipeline-step.object-metadata.ts index dd3942ac6c..1794961f69 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/pipeline-step.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/pipeline-step/pipeline-step.object-metadata.ts @@ -1,14 +1,14 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { pipelineStepStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { OpportunityObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/opportunity.object-metadata'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { RelationMetadataType } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { pipelineStepStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { OpportunityObjectMetadata } from 'src/business/modules/opportunity/opportunity.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.pipelineStep, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/view-field.object-metadata.ts b/packages/twenty-server/src/business/modules/view/view-field.object-metadata.ts similarity index 60% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/view-field.object-metadata.ts rename to packages/twenty-server/src/business/modules/view/view-field.object-metadata.ts index 475e60604d..6a96954fe1 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/view-field.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/view/view-field.object-metadata.ts @@ -1,12 +1,12 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { viewFieldStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { ViewObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/view.object-metadata'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { viewFieldStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { ViewObjectMetadata } from 'src/business/modules/view/view.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.viewField, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/view-filter.object-metadata.ts b/packages/twenty-server/src/business/modules/view/view-filter.object-metadata.ts similarity index 58% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/view-filter.object-metadata.ts rename to packages/twenty-server/src/business/modules/view/view-filter.object-metadata.ts index 898592d62b..bf68a32fc6 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/view-filter.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/view/view-filter.object-metadata.ts @@ -1,12 +1,12 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { viewFilterStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { ViewObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/view.object-metadata'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { viewFilterStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { ViewObjectMetadata } from 'src/business/modules/view/view.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.viewFilter, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/view-sort.object-metadata.ts b/packages/twenty-server/src/business/modules/view/view-sort.object-metadata.ts similarity index 50% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/view-sort.object-metadata.ts rename to packages/twenty-server/src/business/modules/view/view-sort.object-metadata.ts index c0f83e0b75..7aea069db7 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/view-sort.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/view/view-sort.object-metadata.ts @@ -1,12 +1,12 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { viewSortStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { ViewObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/view.object-metadata'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { viewSortStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { ViewObjectMetadata } from 'src/business/modules/view/view.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.viewSort, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/view.object-metadata.ts b/packages/twenty-server/src/business/modules/view/view.object-metadata.ts similarity index 66% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/view.object-metadata.ts rename to packages/twenty-server/src/business/modules/view/view.object-metadata.ts index 49df2c6465..514ccdf6a0 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/view.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/view/view.object-metadata.ts @@ -1,16 +1,16 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { viewStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { ViewFieldObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/view-field.object-metadata'; -import { ViewFilterObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/view-filter.object-metadata'; -import { ViewSortObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/view-sort.object-metadata'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { RelationMetadataType } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { viewStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { ViewFieldObjectMetadata } from 'src/business/modules/view/view-field.object-metadata'; +import { ViewFilterObjectMetadata } from 'src/business/modules/view/view-filter.object-metadata'; +import { ViewSortObjectMetadata } from 'src/business/modules/view/view-sort.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.view, diff --git a/packages/twenty-server/src/business/modules/webhook/webhook.object-metadata.ts b/packages/twenty-server/src/business/modules/webhook/webhook.object-metadata.ts new file mode 100644 index 0000000000..9e90c63aef --- /dev/null +++ b/packages/twenty-server/src/business/modules/webhook/webhook.object-metadata.ts @@ -0,0 +1,36 @@ +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { webhookStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; + +@ObjectMetadata({ + standardId: standardObjectIds.webhook, + namePlural: 'webhooks', + labelSingular: 'Webhook', + labelPlural: 'Webhooks', + description: 'A webhook', + icon: 'IconRobot', +}) +@IsSystem() +export class WebhookObjectMetadata extends BaseObjectMetadata { + @FieldMetadata({ + standardId: webhookStandardFieldIds.targetUrl, + type: FieldMetadataType.TEXT, + label: 'Target Url', + description: 'Webhook target url', + icon: 'IconLink', + }) + targetUrl: string; + + @FieldMetadata({ + standardId: webhookStandardFieldIds.operation, + type: FieldMetadataType.TEXT, + label: 'Operation', + description: 'Webhook operation', + icon: 'IconCheckbox', + }) + operation: string; +} diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata.ts b/packages/twenty-server/src/business/modules/workspace/workspace-member.object-metadata.ts similarity index 74% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata.ts rename to packages/twenty-server/src/business/modules/workspace/workspace-member.object-metadata.ts index 7d0ce00797..c1de6e5e6a 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata.ts +++ b/packages/twenty-server/src/business/modules/workspace/workspace-member.object-metadata.ts @@ -1,26 +1,26 @@ -import { FullNameMetadata } from 'src/metadata/field-metadata/composite-types/full-name.composite-type'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FullNameMetadata } from 'src/engine-metadata/field-metadata/composite-types/full-name.composite-type'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType, RelationOnDeleteAction, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { workspaceMemberStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; -import { ActivityObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/activity.object-metadata'; -import { AttachmentObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/attachment.object-metadata'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { BlocklistObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/blocklist.object-metadata'; -import { CalendarEventAttendeeObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-event-attendee.object-metadata'; -import { CommentObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/comment.object-metadata'; -import { CompanyObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/company.object-metadata'; -import { ConnectedAccountObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata'; -import { FavoriteObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/favorite.object-metadata'; -import { MessageParticipantObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-participant.object-metadata'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { workspaceMemberStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { Gate } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/gate.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { ObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; +import { ActivityObjectMetadata } from 'src/business/modules/activity/activity.object-metadata'; +import { AttachmentObjectMetadata } from 'src/business/modules/attachment/attachment.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { BlocklistObjectMetadata } from 'src/business/modules/calendar/blocklist.object-metadata'; +import { CalendarEventAttendeeObjectMetadata } from 'src/business/modules/calendar/calendar-event-attendee.object-metadata'; +import { CommentObjectMetadata } from 'src/business/modules/comment/comment.object-metadata'; +import { CompanyObjectMetadata } from 'src/business/modules/company/company.object-metadata'; +import { ConnectedAccountObjectMetadata } from 'src/business/modules/connected-account/connected-account.object-metadata'; +import { FavoriteObjectMetadata } from 'src/business/modules/favorite/favorite.object-metadata'; +import { MessageParticipantObjectMetadata } from 'src/business/modules/message/message-participant.object-metadata'; @ObjectMetadata({ standardId: standardObjectIds.workspaceMember, diff --git a/packages/twenty-server/src/command.module.ts b/packages/twenty-server/src/command.module.ts index 383b7f6053..4ed9b4d4eb 100644 --- a/packages/twenty-server/src/command.module.ts +++ b/packages/twenty-server/src/command.module.ts @@ -1,15 +1,15 @@ import { Module } from '@nestjs/common'; import { DatabaseCommandModule } from 'src/database/commands/database-command.module'; -import { FetchWorkspaceMessagesCommandsModule } from 'src/workspace/messaging/commands/fetch-workspace-messages-commands.module'; -import { WorkspaceHealthCommandModule } from 'src/workspace/workspace-health/commands/workspace-health-command.module'; -import { WorkspaceCleanerModule } from 'src/workspace/workspace-cleaner/workspace-cleaner.module'; -import { WorkspaceCalendarSyncCommandsModule } from 'src/workspace/calendar/commands/workspace-calendar-sync-commands.module'; +import { FetchWorkspaceMessagesCommandsModule } from 'src/business/modules/message/commands/fetch-workspace-messages-commands.module'; +import { WorkspaceHealthCommandModule } from 'src/engine/workspace-manager/workspace-health/commands/workspace-health-command.module'; +import { WorkspaceCleanerModule } from 'src/engine/workspace-manager/workspace-cleaner/workspace-cleaner.module'; +import { WorkspaceCalendarSyncCommandsModule } from 'src/business/modules/calendar/commands/workspace-calendar-sync-commands.module'; import { AppModule } from './app.module'; -import { WorkspaceSyncMetadataCommandsModule } from './workspace/workspace-sync-metadata/commands/workspace-sync-metadata-commands.module'; -import { WorkspaceMigrationRunnerCommandsModule } from './workspace/workspace-migration-runner/commands/workspace-sync-metadata-commands.module'; +import { WorkspaceSyncMetadataCommandsModule } from './engine/workspace-manager/workspace-sync-metadata/commands/workspace-sync-metadata-commands.module'; +import { WorkspaceMigrationRunnerCommandsModule } from './engine/workspace-manager/workspace-migration-runner/commands/workspace-sync-metadata-commands.module'; @Module({ imports: [ diff --git a/packages/twenty-server/src/command.ts b/packages/twenty-server/src/command.ts index f811c92be8..5281c14c8f 100644 --- a/packages/twenty-server/src/command.ts +++ b/packages/twenty-server/src/command.ts @@ -4,7 +4,7 @@ import { CommandModule } from './command.module'; import { LoggerService } from './integrations/logger/logger.service'; import { ExceptionHandlerService } from './integrations/exception-handler/exception-handler.service'; -import { filterException } from './filters/utils/global-exception-handler.util'; +import { filterException } from './engine/filters/utils/global-exception-handler.util'; async function bootstrap() { const errorHandler = (err: Error) => { diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/api-rest-query-builder.factory.spec.ts b/packages/twenty-server/src/core/api-rest/api-rest-query-builder/api-rest-query-builder.factory.spec.ts deleted file mode 100644 index 2a27133b64..0000000000 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/api-rest-query-builder.factory.spec.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; - -import { ApiRestQueryBuilderFactory } from 'src/core/api-rest/api-rest-query-builder/api-rest-query-builder.factory'; -import { DeleteQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/delete-query.factory'; -import { CreateQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/create-query.factory'; -import { UpdateQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/update-query.factory'; -import { FindOneQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/find-one-query.factory'; -import { FindManyQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/find-many-query.factory'; -import { DeleteVariablesFactory } from 'src/core/api-rest/api-rest-query-builder/factories/delete-variables.factory'; -import { CreateVariablesFactory } from 'src/core/api-rest/api-rest-query-builder/factories/create-variables.factory'; -import { UpdateVariablesFactory } from 'src/core/api-rest/api-rest-query-builder/factories/update-variables.factory'; -import { GetVariablesFactory } from 'src/core/api-rest/api-rest-query-builder/factories/get-variables.factory'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { TokenService } from 'src/core/auth/services/token.service'; -import { EnvironmentService } from 'src/integrations/environment/environment.service'; - -describe('ApiRestQueryBuilderFactory', () => { - let service: ApiRestQueryBuilderFactory; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [ - ApiRestQueryBuilderFactory, - { provide: DeleteQueryFactory, useValue: {} }, - { provide: CreateQueryFactory, useValue: {} }, - { provide: UpdateQueryFactory, useValue: {} }, - { provide: FindOneQueryFactory, useValue: {} }, - { provide: FindManyQueryFactory, useValue: {} }, - { provide: DeleteVariablesFactory, useValue: {} }, - { provide: CreateVariablesFactory, useValue: {} }, - { provide: UpdateVariablesFactory, useValue: {} }, - { provide: GetVariablesFactory, useValue: {} }, - { provide: ObjectMetadataService, useValue: {} }, - { provide: TokenService, useValue: {} }, - { provide: EnvironmentService, useValue: {} }, - ], - }).compile(); - - service = module.get( - ApiRestQueryBuilderFactory, - ); - }); - it('should be defined', () => { - expect(service).toBeDefined(); - }); -}); diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/factories.ts b/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/factories.ts deleted file mode 100644 index 3f948058de..0000000000 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/factories.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { DeleteQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/delete-query.factory'; -import { CreateQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/create-query.factory'; -import { UpdateQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/update-query.factory'; -import { FindOneQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/find-one-query.factory'; -import { FindManyQueryFactory } from 'src/core/api-rest/api-rest-query-builder/factories/find-many-query.factory'; -import { DeleteVariablesFactory } from 'src/core/api-rest/api-rest-query-builder/factories/delete-variables.factory'; -import { CreateVariablesFactory } from 'src/core/api-rest/api-rest-query-builder/factories/create-variables.factory'; -import { UpdateVariablesFactory } from 'src/core/api-rest/api-rest-query-builder/factories/update-variables.factory'; -import { GetVariablesFactory } from 'src/core/api-rest/api-rest-query-builder/factories/get-variables.factory'; -import { LastCursorInputFactory } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/last-cursor-input.factory'; -import { LimitInputFactory } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/limit-input.factory'; -import { OrderByInputFactory } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/order-by-input.factory'; -import { FilterInputFactory } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-input.factory'; - -export const apiRestQueryBuilderFactories = [ - DeleteQueryFactory, - CreateQueryFactory, - UpdateQueryFactory, - FindOneQueryFactory, - FindManyQueryFactory, - DeleteVariablesFactory, - CreateVariablesFactory, - UpdateVariablesFactory, - GetVariablesFactory, - LastCursorInputFactory, - LimitInputFactory, - OrderByInputFactory, - FilterInputFactory, -]; diff --git a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-input.factory.ts b/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-input.factory.ts deleted file mode 100644 index 3a6499ffd8..0000000000 --- a/packages/twenty-server/src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-input.factory.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Injectable } from '@nestjs/common'; - -import { Request } from 'express'; - -import { addDefaultConjunctionIfMissing } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils'; -import { checkFilterQuery } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/check-filter-query.utils'; -import { parseFilter } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils'; -import { FieldValue } from 'src/core/api-rest/types/api-rest-field-value.type'; - -@Injectable() -export class FilterInputFactory { - create(request: Request, objectMetadata): Record { - let filterQuery = request.query.filter; - - if (typeof filterQuery !== 'string') { - return {}; - } - - checkFilterQuery(filterQuery); - - filterQuery = addDefaultConjunctionIfMissing(filterQuery); - - return parseFilter(filterQuery, objectMetadata.objectMetadataItem); - } -} diff --git a/packages/twenty-server/src/core/api-rest/api-rest.module.ts b/packages/twenty-server/src/core/api-rest/api-rest.module.ts deleted file mode 100644 index 36e714d918..0000000000 --- a/packages/twenty-server/src/core/api-rest/api-rest.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Module } from '@nestjs/common'; -import { HttpModule } from '@nestjs/axios'; - -import { ApiRestController } from 'src/core/api-rest/api-rest.controller'; -import { ApiRestService } from 'src/core/api-rest/api-rest.service'; -import { ApiRestQueryBuilderModule } from 'src/core/api-rest/api-rest-query-builder/api-rest-query-builder.module'; -import { AuthModule } from 'src/core/auth/auth.module'; -import { ApiRestMetadataController } from 'src/core/api-rest/metadata-rest.controller'; -import { ApiRestMetadataService } from 'src/core/api-rest/metadata-rest.service'; - -@Module({ - imports: [ApiRestQueryBuilderModule, AuthModule, HttpModule], - controllers: [ApiRestMetadataController, ApiRestController], - providers: [ApiRestMetadataService, ApiRestService], - exports: [ApiRestMetadataService], -}) -export class ApiRestModule {} diff --git a/packages/twenty-server/src/core/auth/types/jwt-data.type.ts b/packages/twenty-server/src/core/auth/types/jwt-data.type.ts deleted file mode 100644 index c93ee8d9df..0000000000 --- a/packages/twenty-server/src/core/auth/types/jwt-data.type.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { User } from 'src/core/user/user.entity'; -import { Workspace } from 'src/core/workspace/workspace.entity'; - -export type JwtData = { - user?: User | undefined; - workspace: Workspace; -}; diff --git a/packages/twenty-server/src/core/billing/billing.module.ts b/packages/twenty-server/src/core/billing/billing.module.ts deleted file mode 100644 index a875613f0e..0000000000 --- a/packages/twenty-server/src/core/billing/billing.module.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Module } from '@nestjs/common'; -import { TypeOrmModule } from '@nestjs/typeorm'; - -import { BillingController } from 'src/core/billing/billing.controller'; -import { BillingService } from 'src/core/billing/billing.service'; -import { StripeModule } from 'src/core/billing/stripe/stripe.module'; -import { BillingSubscription } from 'src/core/billing/entities/billing-subscription.entity'; -import { BillingSubscriptionItem } from 'src/core/billing/entities/billing-subscription-item.entity'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { BillingResolver } from 'src/core/billing/billing.resolver'; -import { BillingWorkspaceMemberListener } from 'src/core/billing/listeners/billing-workspace-member.listener'; -import { UserWorkspaceModule } from 'src/core/user-workspace/user-workspace.module'; - -@Module({ - imports: [ - StripeModule, - UserWorkspaceModule, - TypeOrmModule.forFeature( - [BillingSubscription, BillingSubscriptionItem, Workspace], - 'core', - ), - ], - controllers: [BillingController], - providers: [BillingService, BillingResolver, BillingWorkspaceMemberListener], - exports: [BillingService], -}) -export class BillingModule {} diff --git a/packages/twenty-server/src/core/core.module.ts b/packages/twenty-server/src/core/core.module.ts deleted file mode 100644 index 9e6959110e..0000000000 --- a/packages/twenty-server/src/core/core.module.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { WorkspaceModule } from 'src/core/workspace/workspace.module'; -import { UserModule } from 'src/core/user/user.module'; -import { RefreshTokenModule } from 'src/core/refresh-token/refresh-token.module'; -import { AuthModule } from 'src/core/auth/auth.module'; -import { ApiRestModule } from 'src/core/api-rest/api-rest.module'; -import { FeatureFlagModule } from 'src/core/feature-flag/feature-flag.module'; -import { OpenApiModule } from 'src/core/open-api/open-api.module'; -import { TimelineMessagingModule } from 'src/core/messaging/timeline-messaging.module'; -import { BillingModule } from 'src/core/billing/billing.module'; - -import { AnalyticsModule } from './analytics/analytics.module'; -import { FileModule } from './file/file.module'; -import { ClientConfigModule } from './client-config/client-config.module'; - -@Module({ - imports: [ - AnalyticsModule, - ApiRestModule, - AuthModule, - BillingModule, - ClientConfigModule, - FeatureFlagModule, - FileModule, - OpenApiModule, - RefreshTokenModule, - TimelineMessagingModule, - UserModule, - WorkspaceModule, - ], - exports: [ - AnalyticsModule, - AuthModule, - FeatureFlagModule, - TimelineMessagingModule, - UserModule, - WorkspaceModule, - ], -}) -export class CoreModule {} diff --git a/packages/twenty-server/src/core/feature-flag/interfaces/feature-flag-map.interface.ts b/packages/twenty-server/src/core/feature-flag/interfaces/feature-flag-map.interface.ts deleted file mode 100644 index 9ec6c9b73e..0000000000 --- a/packages/twenty-server/src/core/feature-flag/interfaces/feature-flag-map.interface.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { FeatureFlagKeys } from 'src/core/feature-flag/feature-flag.entity'; - -export type FeatureFlagMap = Record<`${FeatureFlagKeys}`, boolean>; diff --git a/packages/twenty-server/src/core/messaging/timeline-messaging.module.ts b/packages/twenty-server/src/core/messaging/timeline-messaging.module.ts deleted file mode 100644 index 1eb1f0dccb..0000000000 --- a/packages/twenty-server/src/core/messaging/timeline-messaging.module.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { TimelineMessagingResolver } from 'src/core/messaging/timeline-messaging.resolver'; -import { TimelineMessagingService } from 'src/core/messaging/timeline-messaging.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; -import { UserModule } from 'src/core/user/user.module'; -@Module({ - imports: [WorkspaceDataSourceModule, UserModule], - exports: [], - providers: [TimelineMessagingResolver, TimelineMessagingService], -}) -export class TimelineMessagingModule {} diff --git a/packages/twenty-server/src/core/open-api/open-api.module.ts b/packages/twenty-server/src/core/open-api/open-api.module.ts deleted file mode 100644 index eb9425e65e..0000000000 --- a/packages/twenty-server/src/core/open-api/open-api.module.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { OpenApiController } from 'src/core/open-api/open-api.controller'; -import { OpenApiService } from 'src/core/open-api/open-api.service'; -import { AuthModule } from 'src/core/auth/auth.module'; -import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module'; - -@Module({ - imports: [ObjectMetadataModule, AuthModule], - controllers: [OpenApiController], - providers: [OpenApiService], -}) -export class OpenApiModule {} diff --git a/packages/twenty-server/src/database/commands/data-seed-demo-workspace/data-seed-demo-workspace.module.ts b/packages/twenty-server/src/database/commands/data-seed-demo-workspace/data-seed-demo-workspace.module.ts index 62d2a54774..1a3bc3e2ee 100644 --- a/packages/twenty-server/src/database/commands/data-seed-demo-workspace/data-seed-demo-workspace.module.ts +++ b/packages/twenty-server/src/database/commands/data-seed-demo-workspace/data-seed-demo-workspace.module.ts @@ -1,7 +1,7 @@ import { Module } from '@nestjs/common'; import { EnvironmentModule } from 'src/integrations/environment/environment.module'; -import { WorkspaceManagerModule } from 'src/workspace/workspace-manager/workspace-manager.module'; +import { WorkspaceManagerModule } from 'src/engine/workspace-manager/workspace-manager.module'; import { DataSeedDemoWorkspaceService } from 'src/database/commands/data-seed-demo-workspace/services/data-seed-demo-workspace.service'; @Module({ diff --git a/packages/twenty-server/src/database/commands/data-seed-demo-workspace/services/data-seed-demo-workspace.service.ts b/packages/twenty-server/src/database/commands/data-seed-demo-workspace/services/data-seed-demo-workspace.service.ts index cb0721f287..fbf959cd10 100644 --- a/packages/twenty-server/src/database/commands/data-seed-demo-workspace/services/data-seed-demo-workspace.service.ts +++ b/packages/twenty-server/src/database/commands/data-seed-demo-workspace/services/data-seed-demo-workspace.service.ts @@ -3,7 +3,7 @@ import { Injectable } from '@nestjs/common'; import { DataSource } from 'typeorm'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { WorkspaceManagerService } from 'src/workspace/workspace-manager/workspace-manager.service'; +import { WorkspaceManagerService } from 'src/engine/workspace-manager/workspace-manager.service'; import { deleteCoreSchema, seedCoreSchema, @@ -26,7 +26,8 @@ export class DataSeedDemoWorkspaceService { }); await dataSource.initialize(); - const demoWorkspaceIds = this.environmentService.get('DEMO_WORKSPACE_IDS'); + const demoWorkspaceIds = + this.environmentService.get('DEMO_WORKSPACE_IDS'); if (demoWorkspaceIds.length === 0) { throw new Error( diff --git a/packages/twenty-server/src/database/commands/data-seed-dev-workspace.command.ts b/packages/twenty-server/src/database/commands/data-seed-dev-workspace.command.ts index 40a3c69d01..1bf8793d94 100644 --- a/packages/twenty-server/src/database/commands/data-seed-dev-workspace.command.ts +++ b/packages/twenty-server/src/database/commands/data-seed-dev-workspace.command.ts @@ -1,7 +1,7 @@ import { Command, CommandRunner } from 'nest-commander'; import { DataSource } from 'typeorm'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; import { seedCompanies } from 'src/database/typeorm-seeds/workspace/companies'; import { seedViews } from 'src/database/typeorm-seeds/workspace/views'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; @@ -11,9 +11,9 @@ import { seedWorkspaceMember } from 'src/database/typeorm-seeds/workspace/worksp import { seedPeople } from 'src/database/typeorm-seeds/workspace/people'; import { seedCoreSchema } from 'src/database/typeorm-seeds/core'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { WorkspaceSyncMetadataService } from 'src/workspace/workspace-sync-metadata/workspace-sync-metadata.service'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; +import { WorkspaceSyncMetadataService } from 'src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.service'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; // TODO: implement dry-run @Command({ diff --git a/packages/twenty-server/src/database/commands/database-command.module.ts b/packages/twenty-server/src/database/commands/database-command.module.ts index 47b9794d16..a6e2790d98 100644 --- a/packages/twenty-server/src/database/commands/database-command.module.ts +++ b/packages/twenty-server/src/database/commands/database-command.module.ts @@ -1,15 +1,15 @@ import { Module } from '@nestjs/common'; import { ConfirmationQuestion } from 'src/database/commands/questions/confirmation.question'; -import { WorkspaceManagerModule } from 'src/workspace/workspace-manager/workspace-manager.module'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; +import { WorkspaceManagerModule } from 'src/engine/workspace-manager/workspace-manager.module'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { WorkspaceModule } from 'src/core/workspace/workspace.module'; +import { WorkspaceModule } from 'src/engine/modules/workspace/workspace.module'; import { DataSeedWorkspaceCommand } from 'src/database/commands/data-seed-dev-workspace.command'; import { DataSeedDemoWorkspaceCronCommand } from 'src/database/commands/data-seed-demo-workspace/crons/data-seed-demo-workspace.cron.command'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; -import { WorkspaceSyncMetadataModule } from 'src/workspace/workspace-sync-metadata/workspace-sync-metadata.module'; -import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; +import { WorkspaceSyncMetadataModule } from 'src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.module'; +import { ObjectMetadataModule } from 'src/engine-metadata/object-metadata/object-metadata.module'; import { WorkspaceAddTotalCountCommand } from 'src/database/commands/workspace-add-total-count.command'; import { DataSeedDemoWorkspaceCommand } from 'src/database/commands/data-seed-demo-workspace/data-seed-demo-workspace-command'; import { DataSeedDemoWorkspaceModule } from 'src/database/commands/data-seed-demo-workspace/data-seed-demo-workspace.module'; 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 80a6ce941e..7391c5a81f 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 @@ -1,6 +1,6 @@ import { DataSource } from 'typeorm'; -import { FeatureFlagKeys } from 'src/core/feature-flag/feature-flag.entity'; +import { FeatureFlagKeys } from 'src/engine/modules/feature-flag/feature-flag.entity'; const tableName = 'featureFlag'; diff --git a/packages/twenty-server/src/database/typeorm-seeds/workspace/people.ts b/packages/twenty-server/src/database/typeorm-seeds/workspace/people.ts index c621af6acc..690ccd396f 100644 --- a/packages/twenty-server/src/database/typeorm-seeds/workspace/people.ts +++ b/packages/twenty-server/src/database/typeorm-seeds/workspace/people.ts @@ -29,7 +29,7 @@ export const seedPeople = async ( city: 'Seattle', companyId: 'fe256b39-3ec3-4fe3-8997-b76aa0bfa408', email: 'christoph.calisto@linkedin.com', - position: 0, + position: 1, }, { id: '0aa00beb-ac73-4797-824e-87a1f5aea9e0', @@ -39,7 +39,7 @@ export const seedPeople = async ( city: 'Los Angeles', companyId: 'fe256b39-3ec3-4fe3-8997-b76aa0bfa408', email: 'sylvie.palmer@linkedin.com', - position: 1, + position: 2, }, { id: '93c72d2e-f517-42fd-80ae-14173b3b70ae', @@ -49,7 +49,7 @@ export const seedPeople = async ( city: 'Seattle', companyId: '118995f3-5d81-46d6-bf83-f7fd33ea6102', email: 'christopher.gonzalez@qonto.com', - position: 2, + position: 3, }, { id: 'eeeacacf-eee1-4690-ad2c-8619e5b56a2e', @@ -59,7 +59,7 @@ export const seedPeople = async ( city: 'Los Angeles', companyId: '118995f3-5d81-46d6-bf83-f7fd33ea6102', email: 'ashley.parker@qonto.com', - position: 3, + position: 4, }, { id: '9b324a88-6784-4449-afdf-dc62cb8702f2', @@ -69,7 +69,7 @@ export const seedPeople = async ( city: 'Seattle', companyId: '460b6fb1-ed89-413a-b31a-962986e67bb4', email: 'nicholas.wright@microsoft.com', - position: 4, + position: 5, }, { id: '1d151852-490f-4466-8391-733cfd66a0c8', @@ -79,7 +79,7 @@ export const seedPeople = async ( city: 'New York', companyId: '460b6fb1-ed89-413a-b31a-962986e67bb4', email: 'isabella.scott@microsoft.com', - position: 5, + position: 6, }, { id: '98406e26-80f1-4dff-b570-a74942528de3', @@ -89,7 +89,7 @@ export const seedPeople = async ( city: 'Seattle', companyId: '460b6fb1-ed89-413a-b31a-962986e67bb4', email: 'matthew.green@microsoft.com', - position: 6, + position: 7, }, { id: 'a2e78a5f-338b-46df-8811-fa08c7d19d35', @@ -99,7 +99,7 @@ export const seedPeople = async ( city: 'New York', companyId: '0d940997-c21e-4ec2-873b-de4264d89025', email: 'elizabeth.baker@airbnb.com', - position: 7, + position: 8, }, { id: 'ca1f5bf3-64ad-4b0e-bbfd-e9fd795b7016', @@ -109,7 +109,7 @@ export const seedPeople = async ( city: 'San Francisco', companyId: '0d940997-c21e-4ec2-873b-de4264d89025', email: 'christopher.nelson@airbnb.com', - position: 8, + position: 9, }, { id: '56955422-5d54-41b7-ba36-f0d20e1417ae', @@ -119,7 +119,7 @@ export const seedPeople = async ( city: 'New York', companyId: '0d940997-c21e-4ec2-873b-de4264d89025', email: 'avery.carter@airbnb.com', - position: 9, + position: 10, }, { id: '755035db-623d-41fe-92e7-dd45b7c568e1', @@ -129,7 +129,7 @@ export const seedPeople = async ( city: 'Los Angeles', companyId: '0d940997-c21e-4ec2-873b-de4264d89025', email: 'ethan.mitchell@google.com', - position: 10, + position: 11, }, { id: '240da2ec-2d40-4e49-8df4-9c6a049190ef', @@ -139,7 +139,7 @@ export const seedPeople = async ( city: 'Seattle', companyId: '0d940997-c21e-4ec2-873b-de4264d89025', email: 'madison.perez@google.com', - position: 11, + position: 12, }, { id: '240da2ec-2d40-4e49-8df4-9c6a049190df', @@ -149,7 +149,7 @@ export const seedPeople = async ( city: 'Seattle', companyId: '0d940997-c21e-4ec2-873b-de4264d89025', email: 'bertrand.voulzy@google.com', - position: 12, + position: 13, }, { id: '240da2ec-2d40-4e49-8df4-9c6a049191de', @@ -159,7 +159,7 @@ export const seedPeople = async ( city: 'Seattle', companyId: 'a7bc68d5-f79e-40dd-bd06-c36e6abb4678', email: 'louis.duss@google.com', - position: 13, + position: 14, }, { id: '240da2ec-2d40-4e49-8df4-9c6a049191df', @@ -169,7 +169,7 @@ export const seedPeople = async ( city: 'Seattle', companyId: 'a674fa6c-1455-4c57-afaf-dd5dc086361d', email: 'lorie.vladim@google.com', - position: 14, + position: 15, }, ]) .execute(); diff --git a/packages/twenty-server/src/database/typeorm-seeds/workspace/views.ts b/packages/twenty-server/src/database/typeorm-seeds/workspace/views.ts index 7a5915a8ff..db118df5f2 100644 --- a/packages/twenty-server/src/database/typeorm-seeds/workspace/views.ts +++ b/packages/twenty-server/src/database/typeorm-seeds/workspace/views.ts @@ -1,6 +1,6 @@ import { DataSource } from 'typeorm'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; export const seedViews = async ( workspaceDataSource: DataSource, diff --git a/packages/twenty-server/src/database/typeorm/core/core.datasource.ts b/packages/twenty-server/src/database/typeorm/core/core.datasource.ts index 7125558e43..c3187df96c 100644 --- a/packages/twenty-server/src/database/typeorm/core/core.datasource.ts +++ b/packages/twenty-server/src/database/typeorm/core/core.datasource.ts @@ -11,7 +11,7 @@ export const typeORMCoreModuleOptions: TypeOrmModuleOptions = { type: 'postgres', logging: ['error'], schema: 'core', - entities: ['dist/src/core/**/*.entity{.ts,.js}'], + entities: ['dist/src/engine/modules/**/*.entity{.ts,.js}'], synchronize: false, migrationsRun: false, migrationsTableName: '_typeorm_migrations', diff --git a/packages/twenty-server/src/database/typeorm/metadata/metadata.datasource.ts b/packages/twenty-server/src/database/typeorm/metadata/metadata.datasource.ts index 92a75a8738..94a65ab877 100644 --- a/packages/twenty-server/src/database/typeorm/metadata/metadata.datasource.ts +++ b/packages/twenty-server/src/database/typeorm/metadata/metadata.datasource.ts @@ -11,7 +11,7 @@ export const typeORMMetadataModuleOptions: TypeOrmModuleOptions = { type: 'postgres', logging: ['error'], schema: 'metadata', - entities: ['dist/src/metadata/**/*.entity{.ts,.js}'], + entities: ['dist/src/engine-metadata/**/*.entity{.ts,.js}'], synchronize: false, migrationsRun: false, migrationsTableName: '_typeorm_migrations', diff --git a/packages/twenty-server/src/database/typeorm/typeorm.service.ts b/packages/twenty-server/src/database/typeorm/typeorm.service.ts index 9cf3d2501e..893a6abc0a 100644 --- a/packages/twenty-server/src/database/typeorm/typeorm.service.ts +++ b/packages/twenty-server/src/database/typeorm/typeorm.service.ts @@ -3,14 +3,14 @@ import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common'; import { DataSource } from 'typeorm'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { DataSourceEntity } from 'src/metadata/data-source/data-source.entity'; -import { User } from 'src/core/user/user.entity'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { RefreshToken } from 'src/core/refresh-token/refresh-token.entity'; -import { FeatureFlagEntity } from 'src/core/feature-flag/feature-flag.entity'; -import { BillingSubscription } from 'src/core/billing/entities/billing-subscription.entity'; -import { BillingSubscriptionItem } from 'src/core/billing/entities/billing-subscription-item.entity'; -import { UserWorkspace } from 'src/core/user-workspace/user-workspace.entity'; +import { DataSourceEntity } from 'src/engine-metadata/data-source/data-source.entity'; +import { User } from 'src/engine/modules/user/user.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { RefreshToken } from 'src/engine/modules/refresh-token/refresh-token.entity'; +import { FeatureFlagEntity } from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { BillingSubscription } from 'src/engine/modules/billing/entities/billing-subscription.entity'; +import { BillingSubscriptionItem } from 'src/engine/modules/billing/entities/billing-subscription-item.entity'; +import { UserWorkspace } from 'src/engine/modules/user-workspace/user-workspace.entity'; @Injectable() export class TypeORMService implements OnModuleInit, OnModuleDestroy { diff --git a/packages/twenty-server/src/graphql-config/factories/create-context.factory.ts b/packages/twenty-server/src/engine-graphql-config/factories/create-context.factory.ts similarity index 77% rename from packages/twenty-server/src/graphql-config/factories/create-context.factory.ts rename to packages/twenty-server/src/engine-graphql-config/factories/create-context.factory.ts index 1186898cc7..0e7e3e5887 100644 --- a/packages/twenty-server/src/graphql-config/factories/create-context.factory.ts +++ b/packages/twenty-server/src/engine-graphql-config/factories/create-context.factory.ts @@ -2,9 +2,9 @@ import { Injectable } from '@nestjs/common'; import { YogaDriverServerContext } from '@graphql-yoga/nestjs'; -import { GraphQLContext } from 'src/graphql-config/interfaces/graphql-context.interface'; +import { GraphQLContext } from 'src/engine-graphql-config/interfaces/graphql-context.interface'; -import { TokenService } from 'src/core/auth/services/token.service'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; @Injectable() export class CreateContextFactory { diff --git a/packages/twenty-server/src/graphql-config/factories/index.ts b/packages/twenty-server/src/engine-graphql-config/factories/index.ts similarity index 100% rename from packages/twenty-server/src/graphql-config/factories/index.ts rename to packages/twenty-server/src/engine-graphql-config/factories/index.ts diff --git a/packages/twenty-server/src/engine-graphql-config/graphql-config.module.ts b/packages/twenty-server/src/engine-graphql-config/graphql-config.module.ts new file mode 100644 index 0000000000..6604f6412c --- /dev/null +++ b/packages/twenty-server/src/engine-graphql-config/graphql-config.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; + +import { FoundationModule } from 'src/engine/modules/foundation.module'; +import { graphQLFactories } from 'src/engine-graphql-config/factories'; + +@Module({ + imports: [FoundationModule], + providers: [...graphQLFactories], + exports: [...graphQLFactories], +}) +export class GraphQLConfigModule {} diff --git a/packages/twenty-server/src/graphql-config/graphql-config.service.ts b/packages/twenty-server/src/engine-graphql-config/graphql-config.service.ts similarity index 88% rename from packages/twenty-server/src/graphql-config/graphql-config.service.ts rename to packages/twenty-server/src/engine-graphql-config/graphql-config.service.ts index 62b91ee162..994024cd56 100644 --- a/packages/twenty-server/src/graphql-config/graphql-config.service.ts +++ b/packages/twenty-server/src/engine-graphql-config/graphql-config.service.ts @@ -12,18 +12,18 @@ import { JsonWebTokenError, TokenExpiredError } from 'jsonwebtoken'; import { GraphQLSchemaWithContext, YogaInitialContext } from 'graphql-yoga'; import * as Sentry from '@sentry/node'; -import { TokenService } from 'src/core/auth/services/token.service'; -import { CoreModule } from 'src/core/core.module'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { WorkspaceFactory } from 'src/workspace/workspace.factory'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; +import { FoundationModule } from 'src/engine/modules/foundation.module'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { WorkspaceFactory } from 'src/engine/graphql/workspace.factory'; import { ExceptionHandlerService } from 'src/integrations/exception-handler/exception-handler.service'; -import { handleExceptionAndConvertToGraphQLError } from 'src/filters/utils/global-exception-handler.util'; -import { renderApolloPlayground } from 'src/workspace/utils/render-apollo-playground.util'; +import { handleExceptionAndConvertToGraphQLError } from 'src/engine/filters/utils/global-exception-handler.util'; +import { renderApolloPlayground } from 'src/engine-workspace/utils/render-apollo-playground.util'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; import { useExceptionHandler } from 'src/integrations/exception-handler/hooks/use-exception-handler.hook'; -import { User } from 'src/core/user/user.entity'; +import { User } from 'src/engine/modules/user/user.entity'; import { useThrottler } from 'src/integrations/throttler/hooks/use-throttler'; -import { JwtData } from 'src/core/auth/types/jwt-data.type'; +import { JwtData } from 'src/engine/modules/auth/types/jwt-data.type'; import { useSentryTracing } from 'src/integrations/tracing/useSentryTracing'; import { CreateContextFactory } from './factories/create-context.factory'; @@ -67,7 +67,7 @@ export class GraphQLConfigService const config: YogaDriverConfig = { context: (context) => this.createContextFactory.create(context), autoSchemaFile: true, - include: [CoreModule], + include: [FoundationModule], conditionalSchema: async (context) => { let user: User | undefined; let workspace: Workspace | undefined; diff --git a/packages/twenty-server/src/graphql-config/interfaces/graphql-context.interface.ts b/packages/twenty-server/src/engine-graphql-config/interfaces/graphql-context.interface.ts similarity index 57% rename from packages/twenty-server/src/graphql-config/interfaces/graphql-context.interface.ts rename to packages/twenty-server/src/engine-graphql-config/interfaces/graphql-context.interface.ts index ab5a5d3c83..eb7d254238 100644 --- a/packages/twenty-server/src/graphql-config/interfaces/graphql-context.interface.ts +++ b/packages/twenty-server/src/engine-graphql-config/interfaces/graphql-context.interface.ts @@ -1,7 +1,7 @@ import { YogaDriverServerContext } from '@graphql-yoga/nestjs'; -import { User } from 'src/core/user/user.entity'; -import { Workspace } from 'src/core/workspace/workspace.entity'; +import { User } from 'src/engine/modules/user/user.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; export interface GraphQLContext extends YogaDriverServerContext<'express'> { user?: User; diff --git a/packages/twenty-server/src/metadata/data-source/data-source.entity.ts b/packages/twenty-server/src/engine-metadata/data-source/data-source.entity.ts similarity index 89% rename from packages/twenty-server/src/metadata/data-source/data-source.entity.ts rename to packages/twenty-server/src/engine-metadata/data-source/data-source.entity.ts index 55b10cd5f8..af1904194e 100644 --- a/packages/twenty-server/src/metadata/data-source/data-source.entity.ts +++ b/packages/twenty-server/src/engine-metadata/data-source/data-source.entity.ts @@ -8,7 +8,7 @@ import { OneToMany, } from 'typeorm'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; export type DataSourceType = DataSourceOptions['type']; diff --git a/packages/twenty-server/src/metadata/data-source/data-source.module.ts b/packages/twenty-server/src/engine-metadata/data-source/data-source.module.ts similarity index 100% rename from packages/twenty-server/src/metadata/data-source/data-source.module.ts rename to packages/twenty-server/src/engine-metadata/data-source/data-source.module.ts diff --git a/packages/twenty-server/src/metadata/data-source/data-source.service.ts b/packages/twenty-server/src/engine-metadata/data-source/data-source.service.ts similarity index 100% rename from packages/twenty-server/src/metadata/data-source/data-source.service.ts rename to packages/twenty-server/src/engine-metadata/data-source/data-source.service.ts diff --git a/packages/twenty-server/src/metadata/decorators/is-valid-name.decorator.ts b/packages/twenty-server/src/engine-metadata/decorators/is-valid-name.decorator.ts similarity index 100% rename from packages/twenty-server/src/metadata/decorators/is-valid-name.decorator.ts rename to packages/twenty-server/src/engine-metadata/decorators/is-valid-name.decorator.ts diff --git a/packages/twenty-server/src/metadata/field-metadata/composite-types/currency.composite-type.ts b/packages/twenty-server/src/engine-metadata/field-metadata/composite-types/currency.composite-type.ts similarity index 82% rename from packages/twenty-server/src/metadata/field-metadata/composite-types/currency.composite-type.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/composite-types/currency.composite-type.ts index c88f38de8e..84b2714f15 100644 --- a/packages/twenty-server/src/metadata/field-metadata/composite-types/currency.composite-type.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/composite-types/currency.composite-type.ts @@ -1,8 +1,8 @@ -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { generateTargetColumnMap } from 'src/metadata/field-metadata/utils/generate-target-column-map.util'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { generateTargetColumnMap } from 'src/engine-metadata/field-metadata/utils/generate-target-column-map.util'; export const currencyFields = ( fieldMetadata?: FieldMetadataInterface, diff --git a/packages/twenty-server/src/metadata/field-metadata/composite-types/full-name.composite-type.ts b/packages/twenty-server/src/engine-metadata/field-metadata/composite-types/full-name.composite-type.ts similarity index 82% rename from packages/twenty-server/src/metadata/field-metadata/composite-types/full-name.composite-type.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/composite-types/full-name.composite-type.ts index 5417e5e4c7..bb39128fef 100644 --- a/packages/twenty-server/src/metadata/field-metadata/composite-types/full-name.composite-type.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/composite-types/full-name.composite-type.ts @@ -1,8 +1,8 @@ -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { generateTargetColumnMap } from 'src/metadata/field-metadata/utils/generate-target-column-map.util'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { generateTargetColumnMap } from 'src/engine-metadata/field-metadata/utils/generate-target-column-map.util'; export const fullNameFields = ( fieldMetadata?: FieldMetadataInterface, diff --git a/packages/twenty-server/src/engine-metadata/field-metadata/composite-types/index.ts b/packages/twenty-server/src/engine-metadata/field-metadata/composite-types/index.ts new file mode 100644 index 0000000000..5ea08efd56 --- /dev/null +++ b/packages/twenty-server/src/engine-metadata/field-metadata/composite-types/index.ts @@ -0,0 +1,19 @@ +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; + +import { currencyFields } from 'src/engine-metadata/field-metadata/composite-types/currency.composite-type'; +import { fullNameFields } from 'src/engine-metadata/field-metadata/composite-types/full-name.composite-type'; +import { linkFields } from 'src/engine-metadata/field-metadata/composite-types/link.composite-type'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; + +export type CompositeFieldsDefinitionFunction = ( + fieldMetadata?: FieldMetadataInterface, +) => FieldMetadataInterface[]; + +export const compositeDefinitions = new Map< + string, + CompositeFieldsDefinitionFunction +>([ + [FieldMetadataType.LINK, linkFields], + [FieldMetadataType.CURRENCY, currencyFields], + [FieldMetadataType.FULL_NAME, fullNameFields], +]); diff --git a/packages/twenty-server/src/metadata/field-metadata/composite-types/link.composite-type.ts b/packages/twenty-server/src/engine-metadata/field-metadata/composite-types/link.composite-type.ts similarity index 81% rename from packages/twenty-server/src/metadata/field-metadata/composite-types/link.composite-type.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/composite-types/link.composite-type.ts index c642b2446e..d46511482c 100644 --- a/packages/twenty-server/src/metadata/field-metadata/composite-types/link.composite-type.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/composite-types/link.composite-type.ts @@ -1,8 +1,8 @@ -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { generateTargetColumnMap } from 'src/metadata/field-metadata/utils/generate-target-column-map.util'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { generateTargetColumnMap } from 'src/engine-metadata/field-metadata/utils/generate-target-column-map.util'; export const linkFields = ( fieldMetadata?: FieldMetadataInterface, diff --git a/packages/twenty-server/src/metadata/field-metadata/dtos/create-field.input.ts b/packages/twenty-server/src/engine-metadata/field-metadata/dtos/create-field.input.ts similarity index 85% rename from packages/twenty-server/src/metadata/field-metadata/dtos/create-field.input.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/dtos/create-field.input.ts index 1929bb4b5d..d105dfe85e 100644 --- a/packages/twenty-server/src/metadata/field-metadata/dtos/create-field.input.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/dtos/create-field.input.ts @@ -3,7 +3,7 @@ import { Field, InputType, OmitType } from '@nestjs/graphql'; import { IsUUID, ValidateNested } from 'class-validator'; import { Type } from 'class-transformer'; -import { FieldMetadataDTO } from 'src/metadata/field-metadata/dtos/field-metadata.dto'; +import { FieldMetadataDTO } from 'src/engine-metadata/field-metadata/dtos/field-metadata.dto'; @InputType() export class CreateFieldInput extends OmitType( diff --git a/packages/twenty-server/src/metadata/field-metadata/dtos/default-value.input.ts b/packages/twenty-server/src/engine-metadata/field-metadata/dtos/default-value.input.ts similarity index 100% rename from packages/twenty-server/src/metadata/field-metadata/dtos/default-value.input.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/dtos/default-value.input.ts diff --git a/packages/twenty-server/src/metadata/field-metadata/dtos/field-metadata.dto.ts b/packages/twenty-server/src/engine-metadata/field-metadata/dtos/field-metadata.dto.ts similarity index 71% rename from packages/twenty-server/src/metadata/field-metadata/dtos/field-metadata.dto.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/dtos/field-metadata.dto.ts index 2b3ffa7e0d..37dea5a5c1 100644 --- a/packages/twenty-server/src/metadata/field-metadata/dtos/field-metadata.dto.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/dtos/field-metadata.dto.ts @@ -26,15 +26,15 @@ import { Validate, } from 'class-validator'; -import { FieldMetadataOptions } from 'src/metadata/field-metadata/interfaces/field-metadata-options.interface'; -import { FieldMetadataDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +import { FieldMetadataOptions } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-options.interface'; +import { FieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; -import { RelationMetadataDTO } from 'src/metadata/relation-metadata/dtos/relation-metadata.dto'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { BeforeDeleteOneField } from 'src/metadata/field-metadata/hooks/before-delete-one-field.hook'; -import { IsFieldMetadataDefaultValue } from 'src/metadata/field-metadata/validators/is-field-metadata-default-value.validator'; -import { IsFieldMetadataOptions } from 'src/metadata/field-metadata/validators/is-field-metadata-options.validator'; -import { IsValidName } from 'src/metadata/decorators/is-valid-name.decorator'; +import { RelationMetadataDTO } from 'src/engine-metadata/relation-metadata/dtos/relation-metadata.dto'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { BeforeDeleteOneField } from 'src/engine-metadata/field-metadata/hooks/before-delete-one-field.hook'; +import { IsFieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/validators/is-field-metadata-default-value.validator'; +import { IsFieldMetadataOptions } from 'src/engine-metadata/field-metadata/validators/is-field-metadata-options.validator'; +import { IsValidName } from 'src/engine-metadata/decorators/is-valid-name.decorator'; registerEnumType(FieldMetadataType, { name: 'FieldMetadataType', diff --git a/packages/twenty-server/src/metadata/field-metadata/dtos/options.input.ts b/packages/twenty-server/src/engine-metadata/field-metadata/dtos/options.input.ts similarity index 77% rename from packages/twenty-server/src/metadata/field-metadata/dtos/options.input.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/dtos/options.input.ts index 4ef3d036da..c40baa7f56 100644 --- a/packages/twenty-server/src/metadata/field-metadata/dtos/options.input.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/dtos/options.input.ts @@ -1,6 +1,6 @@ import { IsString, IsNumber, IsOptional, IsNotEmpty } from 'class-validator'; -import { IsValidGraphQLEnumName } from 'src/metadata/field-metadata/validators/is-valid-graphql-enum-name.validator'; +import { IsValidGraphQLEnumName } from 'src/engine-metadata/field-metadata/validators/is-valid-graphql-enum-name.validator'; export class FieldMetadataDefaultOption { @IsOptional() diff --git a/packages/twenty-server/src/metadata/field-metadata/dtos/relation-definition.dto.ts b/packages/twenty-server/src/engine-metadata/field-metadata/dtos/relation-definition.dto.ts similarity index 77% rename from packages/twenty-server/src/metadata/field-metadata/dtos/relation-definition.dto.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/dtos/relation-definition.dto.ts index 3501109476..96514fedec 100644 --- a/packages/twenty-server/src/metadata/field-metadata/dtos/relation-definition.dto.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/dtos/relation-definition.dto.ts @@ -2,9 +2,9 @@ import { Field, ObjectType, registerEnumType } from '@nestjs/graphql'; import { IsEnum, IsNotEmpty } from 'class-validator'; -import { FieldMetadataDTO } from 'src/metadata/field-metadata/dtos/field-metadata.dto'; -import { ObjectMetadataDTO } from 'src/metadata/object-metadata/dtos/object-metadata.dto'; -import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { FieldMetadataDTO } from 'src/engine-metadata/field-metadata/dtos/field-metadata.dto'; +import { ObjectMetadataDTO } from 'src/engine-metadata/object-metadata/dtos/object-metadata.dto'; +import { RelationMetadataType } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; export enum RelationDefinitionType { ONE_TO_ONE = RelationMetadataType.ONE_TO_ONE, diff --git a/packages/twenty-server/src/metadata/field-metadata/dtos/update-field.input.ts b/packages/twenty-server/src/engine-metadata/field-metadata/dtos/update-field.input.ts similarity index 89% rename from packages/twenty-server/src/metadata/field-metadata/dtos/update-field.input.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/dtos/update-field.input.ts index 2395c9ba88..ab44d88dcc 100644 --- a/packages/twenty-server/src/metadata/field-metadata/dtos/update-field.input.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/dtos/update-field.input.ts @@ -10,7 +10,7 @@ import { import { Type } from 'class-transformer'; import { IsNotEmpty, IsUUID, ValidateNested } from 'class-validator'; -import { FieldMetadataDTO } from 'src/metadata/field-metadata/dtos/field-metadata.dto'; +import { FieldMetadataDTO } from 'src/engine-metadata/field-metadata/dtos/field-metadata.dto'; @InputType() export class UpdateFieldInput extends OmitType( diff --git a/packages/twenty-server/src/metadata/field-metadata/field-metadata.entity.ts b/packages/twenty-server/src/engine-metadata/field-metadata/field-metadata.entity.ts similarity index 78% rename from packages/twenty-server/src/metadata/field-metadata/field-metadata.entity.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/field-metadata.entity.ts index a014f394f0..f42446afa4 100644 --- a/packages/twenty-server/src/metadata/field-metadata/field-metadata.entity.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/field-metadata.entity.ts @@ -10,13 +10,13 @@ import { UpdateDateColumn, } from 'typeorm'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; -import { FieldMetadataTargetColumnMap } from 'src/metadata/field-metadata/interfaces/field-metadata-target-column-map.interface'; -import { FieldMetadataDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; -import { FieldMetadataOptions } from 'src/metadata/field-metadata/interfaces/field-metadata-options.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; +import { FieldMetadataTargetColumnMap } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-target-column-map.interface'; +import { FieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +import { FieldMetadataOptions } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-options.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { RelationMetadataEntity } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; export enum FieldMetadataType { UUID = 'UUID', diff --git a/packages/twenty-server/src/metadata/field-metadata/field-metadata.module.ts b/packages/twenty-server/src/engine-metadata/field-metadata/field-metadata.module.ts similarity index 66% rename from packages/twenty-server/src/metadata/field-metadata/field-metadata.module.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/field-metadata.module.ts index be44027872..89662c32a0 100644 --- a/packages/twenty-server/src/metadata/field-metadata/field-metadata.module.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/field-metadata.module.ts @@ -7,17 +7,17 @@ import { import { NestjsQueryTypeOrmModule } from '@ptc-org/nestjs-query-typeorm'; import { SortDirection } from '@ptc-org/nestjs-query-core'; -import { WorkspaceMigrationRunnerModule } from 'src/workspace/workspace-migration-runner/workspace-migration-runner.module'; -import { WorkspaceMigrationModule } from 'src/metadata/workspace-migration/workspace-migration.module'; -import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; +import { WorkspaceMigrationRunnerModule } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.module'; +import { WorkspaceMigrationModule } from 'src/engine-metadata/workspace-migration/workspace-migration.module'; +import { ObjectMetadataModule } from 'src/engine-metadata/object-metadata/object-metadata.module'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { IsFieldMetadataDefaultValue } from 'src/metadata/field-metadata/validators/is-field-metadata-default-value.validator'; -import { FieldMetadataResolver } from 'src/metadata/field-metadata/field-metadata.resolver'; -import { FieldMetadataDTO } from 'src/metadata/field-metadata/dtos/field-metadata.dto'; -import { IsFieldMetadataOptions } from 'src/metadata/field-metadata/validators/is-field-metadata-options.validator'; -import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { IsFieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/validators/is-field-metadata-default-value.validator'; +import { FieldMetadataResolver } from 'src/engine-metadata/field-metadata/field-metadata.resolver'; +import { FieldMetadataDTO } from 'src/engine-metadata/field-metadata/dtos/field-metadata.dto'; +import { IsFieldMetadataOptions } from 'src/engine-metadata/field-metadata/validators/is-field-metadata-options.validator'; +import { RelationMetadataEntity } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; import { FieldMetadataService } from './field-metadata.service'; import { FieldMetadataEntity } from './field-metadata.entity'; diff --git a/packages/twenty-server/src/metadata/field-metadata/field-metadata.resolver.ts b/packages/twenty-server/src/engine-metadata/field-metadata/field-metadata.resolver.ts similarity index 60% rename from packages/twenty-server/src/metadata/field-metadata/field-metadata.resolver.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/field-metadata.resolver.ts index 5c519fca72..6f465de5f6 100644 --- a/packages/twenty-server/src/metadata/field-metadata/field-metadata.resolver.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/field-metadata.resolver.ts @@ -7,14 +7,14 @@ import { Resolver, } from '@nestjs/graphql'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { AuthWorkspace } from 'src/decorators/auth/auth-workspace.decorator'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; -import { CreateOneFieldMetadataInput } from 'src/metadata/field-metadata/dtos/create-field.input'; -import { FieldMetadataDTO } from 'src/metadata/field-metadata/dtos/field-metadata.dto'; -import { RelationDefinitionDTO } from 'src/metadata/field-metadata/dtos/relation-definition.dto'; -import { UpdateOneFieldMetadataInput } from 'src/metadata/field-metadata/dtos/update-field.input'; -import { FieldMetadataService } from 'src/metadata/field-metadata/field-metadata.service'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; +import { CreateOneFieldMetadataInput } from 'src/engine-metadata/field-metadata/dtos/create-field.input'; +import { FieldMetadataDTO } from 'src/engine-metadata/field-metadata/dtos/field-metadata.dto'; +import { RelationDefinitionDTO } from 'src/engine-metadata/field-metadata/dtos/relation-definition.dto'; +import { UpdateOneFieldMetadataInput } from 'src/engine-metadata/field-metadata/dtos/update-field.input'; +import { FieldMetadataService } from 'src/engine-metadata/field-metadata/field-metadata.service'; @UseGuards(JwtAuthGuard) @Resolver(() => FieldMetadataDTO) diff --git a/packages/twenty-server/src/metadata/field-metadata/field-metadata.service.ts b/packages/twenty-server/src/engine-metadata/field-metadata/field-metadata.service.ts similarity index 89% rename from packages/twenty-server/src/metadata/field-metadata/field-metadata.service.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/field-metadata.service.ts index 2a618e0cdc..e4fcfec4bb 100644 --- a/packages/twenty-server/src/metadata/field-metadata/field-metadata.service.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/field-metadata.service.ts @@ -10,31 +10,31 @@ import { v4 as uuidV4 } from 'uuid'; import { FindOneOptions, Repository } from 'typeorm'; import { TypeOrmQueryService } from '@ptc-org/nestjs-query-typeorm'; -import { WorkspaceMigrationRunnerService } from 'src/workspace/workspace-migration-runner/workspace-migration-runner.service'; -import { WorkspaceMigrationService } from 'src/metadata/workspace-migration/workspace-migration.service'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { CreateFieldInput } from 'src/metadata/field-metadata/dtos/create-field.input'; +import { WorkspaceMigrationRunnerService } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service'; +import { WorkspaceMigrationService } from 'src/engine-metadata/workspace-migration/workspace-migration.service'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { CreateFieldInput } from 'src/engine-metadata/field-metadata/dtos/create-field.input'; import { WorkspaceMigrationColumnActionType, WorkspaceMigrationTableAction, -} from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { generateTargetColumnMap } from 'src/metadata/field-metadata/utils/generate-target-column-map.util'; +} from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { generateTargetColumnMap } from 'src/engine-metadata/field-metadata/utils/generate-target-column-map.util'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; -import { UpdateFieldInput } from 'src/metadata/field-metadata/dtos/update-field.input'; -import { WorkspaceMigrationFactory } from 'src/metadata/workspace-migration/workspace-migration.factory'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; -import { generateMigrationName } from 'src/metadata/workspace-migration/utils/generate-migration-name.util'; -import { generateNullable } from 'src/metadata/field-metadata/utils/generate-nullable'; -import { FieldMetadataDTO } from 'src/metadata/field-metadata/dtos/field-metadata.dto'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; +import { UpdateFieldInput } from 'src/engine-metadata/field-metadata/dtos/update-field.input'; +import { WorkspaceMigrationFactory } from 'src/engine-metadata/workspace-migration/workspace-migration.factory'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; +import { generateMigrationName } from 'src/engine-metadata/workspace-migration/utils/generate-migration-name.util'; +import { generateNullable } from 'src/engine-metadata/field-metadata/utils/generate-nullable'; +import { FieldMetadataDTO } from 'src/engine-metadata/field-metadata/dtos/field-metadata.dto'; import { RelationDefinitionDTO, RelationDefinitionType, -} from 'src/metadata/field-metadata/dtos/relation-definition.dto'; +} from 'src/engine-metadata/field-metadata/dtos/relation-definition.dto'; import { RelationMetadataEntity, RelationMetadataType, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; import { FieldMetadataEntity, diff --git a/packages/twenty-server/src/metadata/field-metadata/hooks/before-delete-one-field.hook.ts b/packages/twenty-server/src/engine-metadata/field-metadata/hooks/before-delete-one-field.hook.ts similarity index 87% rename from packages/twenty-server/src/metadata/field-metadata/hooks/before-delete-one-field.hook.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/hooks/before-delete-one-field.hook.ts index 1e3ae4dce7..fa85f76e26 100644 --- a/packages/twenty-server/src/metadata/field-metadata/hooks/before-delete-one-field.hook.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/hooks/before-delete-one-field.hook.ts @@ -9,8 +9,8 @@ import { DeleteOneInputType, } from '@ptc-org/nestjs-query-graphql'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { FieldMetadataService } from 'src/metadata/field-metadata/field-metadata.service'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataService } from 'src/engine-metadata/field-metadata/field-metadata.service'; @Injectable() export class BeforeDeleteOneField implements BeforeDeleteOneHook { diff --git a/packages/twenty-server/src/metadata/field-metadata/interfaces/field-metadata-default-value.interface.ts b/packages/twenty-server/src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface.ts similarity index 94% rename from packages/twenty-server/src/metadata/field-metadata/interfaces/field-metadata-default-value.interface.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface.ts index da192d86b7..cfe99ebf64 100644 --- a/packages/twenty-server/src/metadata/field-metadata/interfaces/field-metadata-default-value.interface.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface.ts @@ -9,8 +9,8 @@ import { FieldMetadataDefaultValueStringArray, FieldMetadataDynamicDefaultValueNow, FieldMetadataDynamicDefaultValueUuid, -} from 'src/metadata/field-metadata/dtos/default-value.input'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +} from 'src/engine-metadata/field-metadata/dtos/default-value.input'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; type FieldMetadataScalarDefaultValue = | FieldMetadataDefaultValueString diff --git a/packages/twenty-server/src/metadata/field-metadata/interfaces/field-metadata-options.interface.ts b/packages/twenty-server/src/engine-metadata/field-metadata/interfaces/field-metadata-options.interface.ts similarity index 81% rename from packages/twenty-server/src/metadata/field-metadata/interfaces/field-metadata-options.interface.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/interfaces/field-metadata-options.interface.ts index 12d56b1cd0..5a7c966591 100644 --- a/packages/twenty-server/src/metadata/field-metadata/interfaces/field-metadata-options.interface.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/interfaces/field-metadata-options.interface.ts @@ -1,8 +1,8 @@ import { FieldMetadataComplexOption, FieldMetadataDefaultOption, -} from 'src/metadata/field-metadata/dtos/options.input'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +} from 'src/engine-metadata/field-metadata/dtos/options.input'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; type FieldMetadataOptionsMapping = { [FieldMetadataType.RATING]: FieldMetadataDefaultOption[]; diff --git a/packages/twenty-server/src/metadata/field-metadata/interfaces/field-metadata-target-column-map.interface.ts b/packages/twenty-server/src/engine-metadata/field-metadata/interfaces/field-metadata-target-column-map.interface.ts similarity index 91% rename from packages/twenty-server/src/metadata/field-metadata/interfaces/field-metadata-target-column-map.interface.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/interfaces/field-metadata-target-column-map.interface.ts index cf6d7992b4..39e573e183 100644 --- a/packages/twenty-server/src/metadata/field-metadata/interfaces/field-metadata-target-column-map.interface.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/interfaces/field-metadata-target-column-map.interface.ts @@ -1,4 +1,4 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; export interface FieldMetadataTargetColumnMapValue { value: string; diff --git a/packages/twenty-server/src/engine-metadata/field-metadata/interfaces/field-metadata.interface.ts b/packages/twenty-server/src/engine-metadata/field-metadata/interfaces/field-metadata.interface.ts new file mode 100644 index 0000000000..6991e11131 --- /dev/null +++ b/packages/twenty-server/src/engine-metadata/field-metadata/interfaces/field-metadata.interface.ts @@ -0,0 +1,25 @@ +import { FieldMetadataTargetColumnMap } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-target-column-map.interface'; +import { FieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +import { FieldMetadataOptions } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-options.interface'; + +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { RelationMetadataEntity } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; + +export interface FieldMetadataInterface< + T extends FieldMetadataType | 'default' = 'default', +> { + id: string; + type: FieldMetadataType; + name: string; + label: string; + targetColumnMap: FieldMetadataTargetColumnMap; + defaultValue?: FieldMetadataDefaultValue; + options?: FieldMetadataOptions; + objectMetadataId: string; + workspaceId?: string; + description?: string; + isNullable?: boolean; + fromRelationMetadata?: RelationMetadataEntity; + toRelationMetadata?: RelationMetadataEntity; + isCustom?: boolean; +} diff --git a/packages/twenty-server/src/metadata/field-metadata/interfaces/object-metadata.interface.ts b/packages/twenty-server/src/engine-metadata/field-metadata/interfaces/object-metadata.interface.ts similarity index 100% rename from packages/twenty-server/src/metadata/field-metadata/interfaces/object-metadata.interface.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/interfaces/object-metadata.interface.ts diff --git a/packages/twenty-server/src/metadata/field-metadata/interfaces/relation-metadata.interface.ts b/packages/twenty-server/src/engine-metadata/field-metadata/interfaces/relation-metadata.interface.ts similarity index 84% rename from packages/twenty-server/src/metadata/field-metadata/interfaces/relation-metadata.interface.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/interfaces/relation-metadata.interface.ts index 9778d1f41d..cbb094a318 100644 --- a/packages/twenty-server/src/metadata/field-metadata/interfaces/relation-metadata.interface.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/interfaces/relation-metadata.interface.ts @@ -1,4 +1,4 @@ -import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { RelationMetadataType } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; import { ObjectMetadataInterface } from './object-metadata.interface'; import { FieldMetadataInterface } from './field-metadata.interface'; diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/__tests__/generate-nullable.spec.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/__tests__/generate-nullable.spec.ts similarity index 86% rename from packages/twenty-server/src/metadata/field-metadata/utils/__tests__/generate-nullable.spec.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/__tests__/generate-nullable.spec.ts index a916999687..f1393dc1c1 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/__tests__/generate-nullable.spec.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/__tests__/generate-nullable.spec.ts @@ -1,5 +1,5 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { generateNullable } from 'src/metadata/field-metadata/utils/generate-nullable'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { generateNullable } from 'src/engine-metadata/field-metadata/utils/generate-nullable'; describe('generateNullable', () => { it('should generate a nullable value false for TEXT, EMAIL, PHONE no matter what the input is', () => { diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/__tests__/generate-target-column-map.spec.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/__tests__/generate-target-column-map.spec.ts similarity index 82% rename from packages/twenty-server/src/metadata/field-metadata/utils/__tests__/generate-target-column-map.spec.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/__tests__/generate-target-column-map.spec.ts index dbedbe8bea..c7e53f0fe2 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/__tests__/generate-target-column-map.spec.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/__tests__/generate-target-column-map.spec.ts @@ -1,7 +1,7 @@ import { BadRequestException } from '@nestjs/common'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { generateTargetColumnMap } from 'src/metadata/field-metadata/utils/generate-target-column-map.util'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { generateTargetColumnMap } from 'src/engine-metadata/field-metadata/utils/generate-target-column-map.util'; describe('generateTargetColumnMap', () => { it('should generate a target column map for a given type', () => { diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/__tests__/serialize-default-value.spec.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/__tests__/serialize-default-value.spec.ts similarity index 93% rename from packages/twenty-server/src/metadata/field-metadata/utils/__tests__/serialize-default-value.spec.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/__tests__/serialize-default-value.spec.ts index 5df7b03193..4e0489b902 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/__tests__/serialize-default-value.spec.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/__tests__/serialize-default-value.spec.ts @@ -1,6 +1,6 @@ import { BadRequestException } from '@nestjs/common'; -import { serializeDefaultValue } from 'src/metadata/field-metadata/utils/serialize-default-value'; +import { serializeDefaultValue } from 'src/engine-metadata/field-metadata/utils/serialize-default-value'; describe('serializeDefaultValue', () => { it('should return null for undefined defaultValue', () => { diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/__tests__/validate-default-value-based-on-type.spec.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/__tests__/validate-default-value-based-on-type.spec.ts similarity index 95% rename from packages/twenty-server/src/metadata/field-metadata/utils/__tests__/validate-default-value-based-on-type.spec.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/__tests__/validate-default-value-based-on-type.spec.ts index 8e7f9eea95..83752ae8bb 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/__tests__/validate-default-value-based-on-type.spec.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/__tests__/validate-default-value-based-on-type.spec.ts @@ -1,5 +1,5 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { validateDefaultValueForType } from 'src/metadata/field-metadata/utils/validate-default-value-for-type.util'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { validateDefaultValueForType } from 'src/engine-metadata/field-metadata/utils/validate-default-value-for-type.util'; describe('validateDefaultValueForType', () => { it('should return true for null defaultValue', () => { diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/generate-default-value.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/generate-default-value.ts similarity index 73% rename from packages/twenty-server/src/metadata/field-metadata/utils/generate-default-value.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/generate-default-value.ts index 91d733c809..02e8cff1e2 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/generate-default-value.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/generate-default-value.ts @@ -1,6 +1,6 @@ -import { FieldMetadataDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +import { FieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; export function generateDefaultValue( type: FieldMetadataType, diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/generate-nullable.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/generate-nullable.ts similarity index 76% rename from packages/twenty-server/src/metadata/field-metadata/utils/generate-nullable.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/generate-nullable.ts index 4f0c0c94ef..16f7eb3527 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/generate-nullable.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/generate-nullable.ts @@ -1,4 +1,4 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; export function generateNullable( type: FieldMetadataType, diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/generate-rating-optionts.util.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/generate-rating-optionts.util.ts similarity index 80% rename from packages/twenty-server/src/metadata/field-metadata/utils/generate-rating-optionts.util.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/generate-rating-optionts.util.ts index f4cc90dc21..665563b12a 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/generate-rating-optionts.util.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/generate-rating-optionts.util.ts @@ -1,6 +1,6 @@ import { v4 as uuidV4 } from 'uuid'; -import { FieldMetadataDefaultOption } from 'src/metadata/field-metadata/dtos/options.input'; +import { FieldMetadataDefaultOption } from 'src/engine-metadata/field-metadata/dtos/options.input'; const range = { start: 1, diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/generate-target-column-map.util.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/generate-target-column-map.util.ts similarity index 83% rename from packages/twenty-server/src/metadata/field-metadata/utils/generate-target-column-map.util.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/generate-target-column-map.util.ts index 2ef171dd4d..c44dffbfc0 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/generate-target-column-map.util.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/generate-target-column-map.util.ts @@ -1,9 +1,9 @@ import { BadRequestException } from '@nestjs/common'; -import { FieldMetadataTargetColumnMap } from 'src/metadata/field-metadata/interfaces/field-metadata-target-column-map.interface'; +import { FieldMetadataTargetColumnMap } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-target-column-map.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { createCustomColumnName } from 'src/metadata/utils/create-custom-column-name.util'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { createCustomColumnName } from 'src/engine-metadata/utils/create-custom-column-name.util'; /** * Generate a target column map for a given type, this is used to map the field to the correct column(s) in the database. diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/is-composite-field-metadata-type.util.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/is-composite-field-metadata-type.util.ts similarity index 77% rename from packages/twenty-server/src/metadata/field-metadata/utils/is-composite-field-metadata-type.util.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/is-composite-field-metadata-type.util.ts index bc8dd6a55e..032617d389 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/is-composite-field-metadata-type.util.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/is-composite-field-metadata-type.util.ts @@ -1,4 +1,4 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; export const isCompositeFieldMetadataType = ( type: FieldMetadataType, diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/is-enum-field-metadata-type.util.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/is-enum-field-metadata-type.util.ts similarity index 80% rename from packages/twenty-server/src/metadata/field-metadata/utils/is-enum-field-metadata-type.util.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/is-enum-field-metadata-type.util.ts index 88dbd6404f..1262c8b5bf 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/is-enum-field-metadata-type.util.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/is-enum-field-metadata-type.util.ts @@ -1,4 +1,4 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; export type EnumFieldMetadataUnionType = | FieldMetadataType.RATING diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/serialize-default-value.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/serialize-default-value.ts similarity index 81% rename from packages/twenty-server/src/metadata/field-metadata/utils/serialize-default-value.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/serialize-default-value.ts index 8c48c1abfe..0cb3f0e1de 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/serialize-default-value.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/serialize-default-value.ts @@ -1,8 +1,8 @@ import { BadRequestException } from '@nestjs/common'; -import { FieldMetadataDefaultSerializableValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +import { FieldMetadataDefaultSerializableValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; -import { serializeTypeDefaultValue } from 'src/metadata/field-metadata/utils/serialize-type-default-value.util'; +import { serializeTypeDefaultValue } from 'src/engine-metadata/field-metadata/utils/serialize-type-default-value.util'; export const serializeDefaultValue = ( defaultValue?: FieldMetadataDefaultSerializableValue, diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/serialize-type-default-value.util.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/serialize-type-default-value.util.ts similarity index 70% rename from packages/twenty-server/src/metadata/field-metadata/utils/serialize-type-default-value.util.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/serialize-type-default-value.util.ts index 1dd606ac10..f31a92d9a9 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/serialize-type-default-value.util.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/serialize-type-default-value.util.ts @@ -1,4 +1,4 @@ -import { FieldMetadataDynamicDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +import { FieldMetadataDynamicDefaultValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; export const serializeTypeDefaultValue = ( defaultValue?: FieldMetadataDynamicDefaultValue, diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/validate-default-value-for-type.util.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/validate-default-value-for-type.util.ts similarity index 88% rename from packages/twenty-server/src/metadata/field-metadata/utils/validate-default-value-for-type.util.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/validate-default-value-for-type.util.ts index 1735544d9b..3c936497de 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/validate-default-value-for-type.util.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/validate-default-value-for-type.util.ts @@ -1,9 +1,9 @@ import { plainToInstance } from 'class-transformer'; import { validateSync } from 'class-validator'; -import { FieldMetadataDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +import { FieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { FieldMetadataDefaultValueBoolean, FieldMetadataDefaultValueCurrency, @@ -15,7 +15,7 @@ import { FieldMetadataDefaultValueStringArray, FieldMetadataDynamicDefaultValueNow, FieldMetadataDynamicDefaultValueUuid, -} from 'src/metadata/field-metadata/dtos/default-value.input'; +} from 'src/engine-metadata/field-metadata/dtos/default-value.input'; export const defaultValueValidatorsMap = { [FieldMetadataType.UUID]: [ diff --git a/packages/twenty-server/src/metadata/field-metadata/utils/validate-options-for-type.util.ts b/packages/twenty-server/src/engine-metadata/field-metadata/utils/validate-options-for-type.util.ts similarity index 83% rename from packages/twenty-server/src/metadata/field-metadata/utils/validate-options-for-type.util.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/utils/validate-options-for-type.util.ts index 5cd778c821..e68b328b00 100644 --- a/packages/twenty-server/src/metadata/field-metadata/utils/validate-options-for-type.util.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/utils/validate-options-for-type.util.ts @@ -1,13 +1,13 @@ import { plainToInstance } from 'class-transformer'; import { validateSync } from 'class-validator'; -import { FieldMetadataOptions } from 'src/metadata/field-metadata/interfaces/field-metadata-options.interface'; +import { FieldMetadataOptions } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-options.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { FieldMetadataComplexOption, FieldMetadataDefaultOption, -} from 'src/metadata/field-metadata/dtos/options.input'; +} from 'src/engine-metadata/field-metadata/dtos/options.input'; import { isEnumFieldMetadataType } from './is-enum-field-metadata-type.util'; diff --git a/packages/twenty-server/src/metadata/field-metadata/validators/is-field-metadata-default-value.validator.ts b/packages/twenty-server/src/engine-metadata/field-metadata/validators/is-field-metadata-default-value.validator.ts similarity index 75% rename from packages/twenty-server/src/metadata/field-metadata/validators/is-field-metadata-default-value.validator.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/validators/is-field-metadata-default-value.validator.ts index 0eeea4f4e1..a9eaf4f699 100644 --- a/packages/twenty-server/src/metadata/field-metadata/validators/is-field-metadata-default-value.validator.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/validators/is-field-metadata-default-value.validator.ts @@ -6,14 +6,14 @@ import { ValidatorConstraintInterface, } from 'class-validator'; -import { FieldMetadataDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +import { FieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; -import { FieldMetadataService } from 'src/metadata/field-metadata/field-metadata.service'; +import { FieldMetadataService } from 'src/engine-metadata/field-metadata/field-metadata.service'; import { FieldMetadataEntity, FieldMetadataType, -} from 'src/metadata/field-metadata/field-metadata.entity'; -import { validateDefaultValueForType } from 'src/metadata/field-metadata/utils/validate-default-value-for-type.util'; +} from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { validateDefaultValueForType } from 'src/engine-metadata/field-metadata/utils/validate-default-value-for-type.util'; @Injectable() @ValidatorConstraint({ name: 'isFieldMetadataDefaultValue', async: true }) diff --git a/packages/twenty-server/src/metadata/field-metadata/validators/is-field-metadata-options.validator.ts b/packages/twenty-server/src/engine-metadata/field-metadata/validators/is-field-metadata-options.validator.ts similarity index 74% rename from packages/twenty-server/src/metadata/field-metadata/validators/is-field-metadata-options.validator.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/validators/is-field-metadata-options.validator.ts index 74051cb1ff..783bafdfb9 100644 --- a/packages/twenty-server/src/metadata/field-metadata/validators/is-field-metadata-options.validator.ts +++ b/packages/twenty-server/src/engine-metadata/field-metadata/validators/is-field-metadata-options.validator.ts @@ -2,14 +2,14 @@ import { Injectable } from '@nestjs/common'; import { ValidationArguments, ValidatorConstraint } from 'class-validator'; -import { FieldMetadataOptions } from 'src/metadata/field-metadata/interfaces/field-metadata-options.interface'; +import { FieldMetadataOptions } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-options.interface'; -import { FieldMetadataService } from 'src/metadata/field-metadata/field-metadata.service'; +import { FieldMetadataService } from 'src/engine-metadata/field-metadata/field-metadata.service'; import { FieldMetadataEntity, FieldMetadataType, -} from 'src/metadata/field-metadata/field-metadata.entity'; -import { validateOptionsForType } from 'src/metadata/field-metadata/utils/validate-options-for-type.util'; +} from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { validateOptionsForType } from 'src/engine-metadata/field-metadata/utils/validate-options-for-type.util'; @Injectable() @ValidatorConstraint({ name: 'isFieldMetadataOptions', async: true }) diff --git a/packages/twenty-server/src/metadata/field-metadata/validators/is-valid-graphql-enum-name.validator.ts b/packages/twenty-server/src/engine-metadata/field-metadata/validators/is-valid-graphql-enum-name.validator.ts similarity index 100% rename from packages/twenty-server/src/metadata/field-metadata/validators/is-valid-graphql-enum-name.validator.ts rename to packages/twenty-server/src/engine-metadata/field-metadata/validators/is-valid-graphql-enum-name.validator.ts diff --git a/packages/twenty-server/src/metadata/metadata.module-factory.ts b/packages/twenty-server/src/engine-metadata/metadata.module-factory.ts similarity index 85% rename from packages/twenty-server/src/metadata/metadata.module-factory.ts rename to packages/twenty-server/src/engine-metadata/metadata.module-factory.ts index 428626040c..882dd492a7 100644 --- a/packages/twenty-server/src/metadata/metadata.module-factory.ts +++ b/packages/twenty-server/src/engine-metadata/metadata.module-factory.ts @@ -1,13 +1,13 @@ import { YogaDriverConfig } from '@graphql-yoga/nestjs'; import GraphQLJSON from 'graphql-type-json'; -import { CreateContextFactory } from 'src/graphql-config/factories/create-context.factory'; +import { CreateContextFactory } from 'src/engine-graphql-config/factories/create-context.factory'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; import { ExceptionHandlerService } from 'src/integrations/exception-handler/exception-handler.service'; import { useExceptionHandler } from 'src/integrations/exception-handler/hooks/use-exception-handler.hook'; import { useThrottler } from 'src/integrations/throttler/hooks/use-throttler'; -import { MetadataModule } from 'src/metadata/metadata.module'; -import { renderApolloPlayground } from 'src/workspace/utils/render-apollo-playground.util'; +import { MetadataModule } from 'src/engine-metadata/metadata.module'; +import { renderApolloPlayground } from 'src/engine-workspace/utils/render-apollo-playground.util'; export const metadataModuleFactory = async ( environmentService: EnvironmentService, diff --git a/packages/twenty-server/src/metadata/metadata.module.ts b/packages/twenty-server/src/engine-metadata/metadata.module.ts similarity index 69% rename from packages/twenty-server/src/metadata/metadata.module.ts rename to packages/twenty-server/src/engine-metadata/metadata.module.ts index 19bade105b..f012d1ab55 100644 --- a/packages/twenty-server/src/metadata/metadata.module.ts +++ b/packages/twenty-server/src/engine-metadata/metadata.module.ts @@ -3,13 +3,13 @@ import { GraphQLModule } from '@nestjs/graphql'; import { YogaDriverConfig, YogaDriver } from '@graphql-yoga/nestjs'; -import { WorkspaceMigrationRunnerModule } from 'src/workspace/workspace-migration-runner/workspace-migration-runner.module'; -import { WorkspaceMigrationModule } from 'src/metadata/workspace-migration/workspace-migration.module'; -import { metadataModuleFactory } from 'src/metadata/metadata.module-factory'; +import { WorkspaceMigrationRunnerModule } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.module'; +import { WorkspaceMigrationModule } from 'src/engine-metadata/workspace-migration/workspace-migration.module'; +import { metadataModuleFactory } from 'src/engine-metadata/metadata.module-factory'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; import { ExceptionHandlerService } from 'src/integrations/exception-handler/exception-handler.service'; -import { GraphQLConfigModule } from 'src/graphql-config/graphql-config.module'; -import { CreateContextFactory } from 'src/graphql-config/factories/create-context.factory'; +import { GraphQLConfigModule } from 'src/engine-graphql-config/graphql-config.module'; +import { CreateContextFactory } from 'src/engine-graphql-config/factories/create-context.factory'; import { DataSourceModule } from './data-source/data-source.module'; import { FieldMetadataModule } from './field-metadata/field-metadata.module'; diff --git a/packages/twenty-server/src/metadata/object-metadata/dtos/create-object.input.ts b/packages/twenty-server/src/engine-metadata/object-metadata/dtos/create-object.input.ts similarity index 83% rename from packages/twenty-server/src/metadata/object-metadata/dtos/create-object.input.ts rename to packages/twenty-server/src/engine-metadata/object-metadata/dtos/create-object.input.ts index 7691925307..c6e031944b 100644 --- a/packages/twenty-server/src/metadata/object-metadata/dtos/create-object.input.ts +++ b/packages/twenty-server/src/engine-metadata/object-metadata/dtos/create-object.input.ts @@ -3,8 +3,8 @@ import { Field, HideField, InputType } from '@nestjs/graphql'; import { BeforeCreateOne } from '@ptc-org/nestjs-query-graphql'; import { IsNotEmpty, IsOptional, IsString, IsUUID } from 'class-validator'; -import { IsValidName } from 'src/metadata/decorators/is-valid-name.decorator'; -import { BeforeCreateOneObject } from 'src/metadata/object-metadata/hooks/before-create-one-object.hook'; +import { IsValidName } from 'src/engine-metadata/decorators/is-valid-name.decorator'; +import { BeforeCreateOneObject } from 'src/engine-metadata/object-metadata/hooks/before-create-one-object.hook'; @InputType() @BeforeCreateOne(BeforeCreateOneObject) diff --git a/packages/twenty-server/src/metadata/object-metadata/dtos/delete-object.input.ts b/packages/twenty-server/src/engine-metadata/object-metadata/dtos/delete-object.input.ts similarity index 72% rename from packages/twenty-server/src/metadata/object-metadata/dtos/delete-object.input.ts rename to packages/twenty-server/src/engine-metadata/object-metadata/dtos/delete-object.input.ts index 9fea1518d2..ab5a433181 100644 --- a/packages/twenty-server/src/metadata/object-metadata/dtos/delete-object.input.ts +++ b/packages/twenty-server/src/engine-metadata/object-metadata/dtos/delete-object.input.ts @@ -2,7 +2,7 @@ import { ID, InputType } from '@nestjs/graphql'; import { BeforeDeleteOne, IDField } from '@ptc-org/nestjs-query-graphql'; -import { BeforeDeleteOneObject } from 'src/metadata/object-metadata/hooks/before-delete-one-object.hook'; +import { BeforeDeleteOneObject } from 'src/engine-metadata/object-metadata/hooks/before-delete-one-object.hook'; @InputType() @BeforeDeleteOne(BeforeDeleteOneObject) diff --git a/packages/twenty-server/src/metadata/object-metadata/dtos/object-metadata.dto.ts b/packages/twenty-server/src/engine-metadata/object-metadata/dtos/object-metadata.dto.ts similarity index 85% rename from packages/twenty-server/src/metadata/object-metadata/dtos/object-metadata.dto.ts rename to packages/twenty-server/src/engine-metadata/object-metadata/dtos/object-metadata.dto.ts index 2f6a646317..48a9ef3286 100644 --- a/packages/twenty-server/src/metadata/object-metadata/dtos/object-metadata.dto.ts +++ b/packages/twenty-server/src/engine-metadata/object-metadata/dtos/object-metadata.dto.ts @@ -9,8 +9,8 @@ import { QueryOptions, } from '@ptc-org/nestjs-query-graphql'; -import { FieldMetadataDTO } from 'src/metadata/field-metadata/dtos/field-metadata.dto'; -import { BeforeDeleteOneObject } from 'src/metadata/object-metadata/hooks/before-delete-one-object.hook'; +import { FieldMetadataDTO } from 'src/engine-metadata/field-metadata/dtos/field-metadata.dto'; +import { BeforeDeleteOneObject } from 'src/engine-metadata/object-metadata/hooks/before-delete-one-object.hook'; @ObjectType('object') @Authorize({ diff --git a/packages/twenty-server/src/metadata/object-metadata/dtos/update-object.input.ts b/packages/twenty-server/src/engine-metadata/object-metadata/dtos/update-object.input.ts similarity index 84% rename from packages/twenty-server/src/metadata/object-metadata/dtos/update-object.input.ts rename to packages/twenty-server/src/engine-metadata/object-metadata/dtos/update-object.input.ts index 444a053202..28f5b957d2 100644 --- a/packages/twenty-server/src/metadata/object-metadata/dtos/update-object.input.ts +++ b/packages/twenty-server/src/engine-metadata/object-metadata/dtos/update-object.input.ts @@ -3,8 +3,8 @@ import { Field, InputType } from '@nestjs/graphql'; import { BeforeUpdateOne } from '@ptc-org/nestjs-query-graphql'; import { IsBoolean, IsOptional, IsString, IsUUID } from 'class-validator'; -import { IsValidName } from 'src/metadata/decorators/is-valid-name.decorator'; -import { BeforeUpdateOneObject } from 'src/metadata/object-metadata/hooks/before-update-one-object.hook'; +import { IsValidName } from 'src/engine-metadata/decorators/is-valid-name.decorator'; +import { BeforeUpdateOneObject } from 'src/engine-metadata/object-metadata/hooks/before-update-one-object.hook'; @InputType() @BeforeUpdateOne(BeforeUpdateOneObject) diff --git a/packages/twenty-server/src/metadata/object-metadata/hooks/before-create-one-object.hook.ts b/packages/twenty-server/src/engine-metadata/object-metadata/hooks/before-create-one-object.hook.ts similarity index 90% rename from packages/twenty-server/src/metadata/object-metadata/hooks/before-create-one-object.hook.ts rename to packages/twenty-server/src/engine-metadata/object-metadata/hooks/before-create-one-object.hook.ts index cebe75b0e0..b876313c77 100644 --- a/packages/twenty-server/src/metadata/object-metadata/hooks/before-create-one-object.hook.ts +++ b/packages/twenty-server/src/engine-metadata/object-metadata/hooks/before-create-one-object.hook.ts @@ -9,7 +9,7 @@ import { CreateOneInputType, } from '@ptc-org/nestjs-query-graphql'; -import { CreateObjectInput } from 'src/metadata/object-metadata/dtos/create-object.input'; +import { CreateObjectInput } from 'src/engine-metadata/object-metadata/dtos/create-object.input'; const coreObjectNames = [ 'featureFlag', diff --git a/packages/twenty-server/src/metadata/object-metadata/hooks/before-delete-one-object.hook.ts b/packages/twenty-server/src/engine-metadata/object-metadata/hooks/before-delete-one-object.hook.ts similarity index 91% rename from packages/twenty-server/src/metadata/object-metadata/hooks/before-delete-one-object.hook.ts rename to packages/twenty-server/src/engine-metadata/object-metadata/hooks/before-delete-one-object.hook.ts index 69bbe7cf46..9d9a440440 100644 --- a/packages/twenty-server/src/metadata/object-metadata/hooks/before-delete-one-object.hook.ts +++ b/packages/twenty-server/src/engine-metadata/object-metadata/hooks/before-delete-one-object.hook.ts @@ -9,7 +9,7 @@ import { DeleteOneInputType, } from '@ptc-org/nestjs-query-graphql'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; @Injectable() export class BeforeDeleteOneObject implements BeforeDeleteOneHook { diff --git a/packages/twenty-server/src/metadata/object-metadata/hooks/before-update-one-object.hook.ts b/packages/twenty-server/src/engine-metadata/object-metadata/hooks/before-update-one-object.hook.ts similarity index 91% rename from packages/twenty-server/src/metadata/object-metadata/hooks/before-update-one-object.hook.ts rename to packages/twenty-server/src/engine-metadata/object-metadata/hooks/before-update-one-object.hook.ts index e6fd71aa97..5e43f76b9b 100644 --- a/packages/twenty-server/src/metadata/object-metadata/hooks/before-update-one-object.hook.ts +++ b/packages/twenty-server/src/engine-metadata/object-metadata/hooks/before-update-one-object.hook.ts @@ -11,10 +11,10 @@ import { } from '@ptc-org/nestjs-query-graphql'; import { Equal, In, Repository } from 'typeorm'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; -import { UpdateObjectInput } from 'src/metadata/object-metadata/dtos/update-object.input'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { UpdateObjectInput } from 'src/engine-metadata/object-metadata/dtos/update-object.input'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; @Injectable() export class BeforeUpdateOneObject diff --git a/packages/twenty-server/src/metadata/object-metadata/object-metadata.entity.ts b/packages/twenty-server/src/engine-metadata/object-metadata/object-metadata.entity.ts similarity index 84% rename from packages/twenty-server/src/metadata/object-metadata/object-metadata.entity.ts rename to packages/twenty-server/src/engine-metadata/object-metadata/object-metadata.entity.ts index 71072b3dd6..83c03536e4 100644 --- a/packages/twenty-server/src/metadata/object-metadata/object-metadata.entity.ts +++ b/packages/twenty-server/src/engine-metadata/object-metadata/object-metadata.entity.ts @@ -9,11 +9,11 @@ import { ManyToOne, } from 'typeorm'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; -import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { DataSourceEntity } from 'src/metadata/data-source/data-source.entity'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { RelationMetadataEntity } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { DataSourceEntity } from 'src/engine-metadata/data-source/data-source.entity'; @Entity('objectMetadata') @Unique('IndexOnNameSingularAndWorkspaceIdUnique', [ diff --git a/packages/twenty-server/src/metadata/object-metadata/object-metadata.module.ts b/packages/twenty-server/src/engine-metadata/object-metadata/object-metadata.module.ts similarity index 72% rename from packages/twenty-server/src/metadata/object-metadata/object-metadata.module.ts rename to packages/twenty-server/src/engine-metadata/object-metadata/object-metadata.module.ts index e4c688042a..54686f3f09 100644 --- a/packages/twenty-server/src/metadata/object-metadata/object-metadata.module.ts +++ b/packages/twenty-server/src/engine-metadata/object-metadata/object-metadata.module.ts @@ -7,14 +7,14 @@ import { import { NestjsQueryTypeOrmModule } from '@ptc-org/nestjs-query-typeorm'; import { SortDirection } from '@ptc-org/nestjs-query-core'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; -import { WorkspaceMigrationRunnerModule } from 'src/workspace/workspace-migration-runner/workspace-migration-runner.module'; -import { WorkspaceMigrationModule } from 'src/metadata/workspace-migration/workspace-migration.module'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; +import { WorkspaceMigrationRunnerModule } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.module'; +import { WorkspaceMigrationModule } from 'src/engine-metadata/workspace-migration/workspace-migration.module'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; -import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { ObjectMetadataResolver } from 'src/metadata/object-metadata/object-metadata.resolver'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { RelationMetadataEntity } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { ObjectMetadataResolver } from 'src/engine-metadata/object-metadata/object-metadata.resolver'; import { ObjectMetadataService } from './object-metadata.service'; import { ObjectMetadataEntity } from './object-metadata.entity'; diff --git a/packages/twenty-server/src/metadata/object-metadata/object-metadata.resolver.ts b/packages/twenty-server/src/engine-metadata/object-metadata/object-metadata.resolver.ts similarity index 50% rename from packages/twenty-server/src/metadata/object-metadata/object-metadata.resolver.ts rename to packages/twenty-server/src/engine-metadata/object-metadata/object-metadata.resolver.ts index bb5f050f8d..37c3a46349 100644 --- a/packages/twenty-server/src/metadata/object-metadata/object-metadata.resolver.ts +++ b/packages/twenty-server/src/engine-metadata/object-metadata/object-metadata.resolver.ts @@ -1,12 +1,12 @@ import { UseGuards } from '@nestjs/common'; import { Args, Mutation, Resolver } from '@nestjs/graphql'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { AuthWorkspace } from 'src/decorators/auth/auth-workspace.decorator'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; -import { ObjectMetadataDTO } from 'src/metadata/object-metadata/dtos/object-metadata.dto'; -import { DeleteOneObjectInput } from 'src/metadata/object-metadata/dtos/delete-object.input'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; +import { ObjectMetadataDTO } from 'src/engine-metadata/object-metadata/dtos/object-metadata.dto'; +import { DeleteOneObjectInput } from 'src/engine-metadata/object-metadata/dtos/delete-object.input'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; @UseGuards(JwtAuthGuard) @Resolver(() => ObjectMetadataDTO) diff --git a/packages/twenty-server/src/metadata/object-metadata/object-metadata.service.ts b/packages/twenty-server/src/engine-metadata/object-metadata/object-metadata.service.ts similarity index 95% rename from packages/twenty-server/src/metadata/object-metadata/object-metadata.service.ts rename to packages/twenty-server/src/engine-metadata/object-metadata/object-metadata.service.ts index 0f60226e7b..7090aa4def 100644 --- a/packages/twenty-server/src/metadata/object-metadata/object-metadata.service.ts +++ b/packages/twenty-server/src/engine-metadata/object-metadata/object-metadata.service.ts @@ -11,38 +11,38 @@ import { FindManyOptions, FindOneOptions, Repository } from 'typeorm'; import { TypeOrmQueryService } from '@ptc-org/nestjs-query-typeorm'; import { Query, QueryOptions } from '@ptc-org/nestjs-query-core'; -import { WorkspaceMigrationService } from 'src/metadata/workspace-migration/workspace-migration.service'; -import { WorkspaceMigrationRunnerService } from 'src/workspace/workspace-migration-runner/workspace-migration-runner.service'; +import { WorkspaceMigrationService } from 'src/engine-metadata/workspace-migration/workspace-migration.service'; +import { WorkspaceMigrationRunnerService } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service'; import { WorkspaceMigrationColumnActionType, WorkspaceMigrationColumnCreate, WorkspaceMigrationColumnDrop, WorkspaceMigrationTableAction, -} from 'src/metadata/workspace-migration/workspace-migration.entity'; +} from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; import { FieldMetadataEntity, FieldMetadataType, -} from 'src/metadata/field-metadata/field-metadata.entity'; +} from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; import { RelationMetadataEntity, RelationMetadataType, RelationOnDeleteAction, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { computeCustomName } from 'src/workspace/utils/compute-custom-name.util'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; -import { DeleteOneObjectInput } from 'src/metadata/object-metadata/dtos/delete-object.input'; -import { RelationToDelete } from 'src/metadata/relation-metadata/types/relation-to-delete'; -import { generateMigrationName } from 'src/metadata/workspace-migration/utils/generate-migration-name.util'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { computeCustomName } from 'src/engine-workspace/utils/compute-custom-name.util'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; +import { DeleteOneObjectInput } from 'src/engine-metadata/object-metadata/dtos/delete-object.input'; +import { RelationToDelete } from 'src/engine-metadata/relation-metadata/types/relation-to-delete'; +import { generateMigrationName } from 'src/engine-metadata/workspace-migration/utils/generate-migration-name.util'; import { activityTargetStandardFieldIds, attachmentStandardFieldIds, baseObjectStandardFieldIds, customObjectStandardFieldIds, favoriteStandardFieldIds, -} from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { createDeterministicUuid } from 'src/workspace/workspace-sync-metadata/utils/create-deterministic-uuid.util'; +} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { createDeterministicUuid } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/create-deterministic-uuid.util'; import { ObjectMetadataEntity } from './object-metadata.entity'; diff --git a/packages/twenty-server/src/metadata/relation-metadata/dtos/create-relation.input.ts b/packages/twenty-server/src/engine-metadata/relation-metadata/dtos/create-relation.input.ts similarity index 85% rename from packages/twenty-server/src/metadata/relation-metadata/dtos/create-relation.input.ts rename to packages/twenty-server/src/engine-metadata/relation-metadata/dtos/create-relation.input.ts index 278ee15b42..a37f022cbb 100644 --- a/packages/twenty-server/src/metadata/relation-metadata/dtos/create-relation.input.ts +++ b/packages/twenty-server/src/engine-metadata/relation-metadata/dtos/create-relation.input.ts @@ -9,8 +9,8 @@ import { IsUUID, } from 'class-validator'; -import { BeforeCreateOneRelation } from 'src/metadata/relation-metadata/hooks/before-create-one-relation.hook'; -import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { BeforeCreateOneRelation } from 'src/engine-metadata/relation-metadata/hooks/before-create-one-relation.hook'; +import { RelationMetadataType } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; @InputType() @BeforeCreateOne(BeforeCreateOneRelation) diff --git a/packages/twenty-server/src/metadata/relation-metadata/dtos/relation-metadata.dto.ts b/packages/twenty-server/src/engine-metadata/relation-metadata/dtos/relation-metadata.dto.ts similarity index 80% rename from packages/twenty-server/src/metadata/relation-metadata/dtos/relation-metadata.dto.ts rename to packages/twenty-server/src/engine-metadata/relation-metadata/dtos/relation-metadata.dto.ts index c4ebe77b71..37928b4b7d 100644 --- a/packages/twenty-server/src/metadata/relation-metadata/dtos/relation-metadata.dto.ts +++ b/packages/twenty-server/src/engine-metadata/relation-metadata/dtos/relation-metadata.dto.ts @@ -15,9 +15,9 @@ import { Relation, } from '@ptc-org/nestjs-query-graphql'; -import { ObjectMetadataDTO } from 'src/metadata/object-metadata/dtos/object-metadata.dto'; -import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { BeforeDeleteOneRelation } from 'src/metadata/relation-metadata/hooks/before-delete-one-field.hook'; +import { ObjectMetadataDTO } from 'src/engine-metadata/object-metadata/dtos/object-metadata.dto'; +import { RelationMetadataType } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { BeforeDeleteOneRelation } from 'src/engine-metadata/relation-metadata/hooks/before-delete-one-field.hook'; registerEnumType(RelationMetadataType, { name: 'RelationMetadataType', diff --git a/packages/twenty-server/src/metadata/relation-metadata/hooks/before-create-one-relation.hook.ts b/packages/twenty-server/src/engine-metadata/relation-metadata/hooks/before-create-one-relation.hook.ts similarity index 85% rename from packages/twenty-server/src/metadata/relation-metadata/hooks/before-create-one-relation.hook.ts rename to packages/twenty-server/src/engine-metadata/relation-metadata/hooks/before-create-one-relation.hook.ts index 57f2dd9f98..f1dadd4dd2 100644 --- a/packages/twenty-server/src/metadata/relation-metadata/hooks/before-create-one-relation.hook.ts +++ b/packages/twenty-server/src/engine-metadata/relation-metadata/hooks/before-create-one-relation.hook.ts @@ -5,7 +5,7 @@ import { CreateOneInputType, } from '@ptc-org/nestjs-query-graphql'; -import { CreateRelationInput } from 'src/metadata/relation-metadata/dtos/create-relation.input'; +import { CreateRelationInput } from 'src/engine-metadata/relation-metadata/dtos/create-relation.input'; @Injectable() export class BeforeCreateOneRelation diff --git a/packages/twenty-server/src/metadata/relation-metadata/hooks/before-delete-one-field.hook.ts b/packages/twenty-server/src/engine-metadata/relation-metadata/hooks/before-delete-one-field.hook.ts similarity index 92% rename from packages/twenty-server/src/metadata/relation-metadata/hooks/before-delete-one-field.hook.ts rename to packages/twenty-server/src/engine-metadata/relation-metadata/hooks/before-delete-one-field.hook.ts index 457796aedb..91fe67a1c1 100644 --- a/packages/twenty-server/src/metadata/relation-metadata/hooks/before-delete-one-field.hook.ts +++ b/packages/twenty-server/src/engine-metadata/relation-metadata/hooks/before-delete-one-field.hook.ts @@ -9,7 +9,7 @@ import { DeleteOneInputType, } from '@ptc-org/nestjs-query-graphql'; -import { RelationMetadataService } from 'src/metadata/relation-metadata/relation-metadata.service'; +import { RelationMetadataService } from 'src/engine-metadata/relation-metadata/relation-metadata.service'; @Injectable() export class BeforeDeleteOneRelation implements BeforeDeleteOneHook { diff --git a/packages/twenty-server/src/metadata/relation-metadata/relation-metadata.entity.ts b/packages/twenty-server/src/engine-metadata/relation-metadata/relation-metadata.entity.ts similarity index 86% rename from packages/twenty-server/src/metadata/relation-metadata/relation-metadata.entity.ts rename to packages/twenty-server/src/engine-metadata/relation-metadata/relation-metadata.entity.ts index 6b6f8f6573..8fe38dbc87 100644 --- a/packages/twenty-server/src/metadata/relation-metadata/relation-metadata.entity.ts +++ b/packages/twenty-server/src/engine-metadata/relation-metadata/relation-metadata.entity.ts @@ -9,10 +9,10 @@ import { UpdateDateColumn, } from 'typeorm'; -import { RelationMetadataInterface } from 'src/metadata/field-metadata/interfaces/relation-metadata.interface'; +import { RelationMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/relation-metadata.interface'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; export enum RelationMetadataType { ONE_TO_ONE = 'ONE_TO_ONE', diff --git a/packages/twenty-server/src/metadata/relation-metadata/relation-metadata.module.ts b/packages/twenty-server/src/engine-metadata/relation-metadata/relation-metadata.module.ts similarity index 74% rename from packages/twenty-server/src/metadata/relation-metadata/relation-metadata.module.ts rename to packages/twenty-server/src/engine-metadata/relation-metadata/relation-metadata.module.ts index c3e8d3ad02..e00f40e4f8 100644 --- a/packages/twenty-server/src/metadata/relation-metadata/relation-metadata.module.ts +++ b/packages/twenty-server/src/engine-metadata/relation-metadata/relation-metadata.module.ts @@ -6,11 +6,11 @@ import { } from '@ptc-org/nestjs-query-graphql'; import { NestjsQueryTypeOrmModule } from '@ptc-org/nestjs-query-typeorm'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; -import { FieldMetadataModule } from 'src/metadata/field-metadata/field-metadata.module'; -import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module'; -import { WorkspaceMigrationModule } from 'src/metadata/workspace-migration/workspace-migration.module'; -import { WorkspaceMigrationRunnerModule } from 'src/workspace/workspace-migration-runner/workspace-migration-runner.module'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; +import { FieldMetadataModule } from 'src/engine-metadata/field-metadata/field-metadata.module'; +import { ObjectMetadataModule } from 'src/engine-metadata/object-metadata/object-metadata.module'; +import { WorkspaceMigrationModule } from 'src/engine-metadata/workspace-migration/workspace-migration.module'; +import { WorkspaceMigrationRunnerModule } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.module'; import { RelationMetadataService } from './relation-metadata.service'; import { RelationMetadataEntity } from './relation-metadata.entity'; diff --git a/packages/twenty-server/src/metadata/relation-metadata/relation-metadata.service.ts b/packages/twenty-server/src/engine-metadata/relation-metadata/relation-metadata.service.ts similarity index 87% rename from packages/twenty-server/src/metadata/relation-metadata/relation-metadata.service.ts rename to packages/twenty-server/src/engine-metadata/relation-metadata/relation-metadata.service.ts index 2179337888..78da004866 100644 --- a/packages/twenty-server/src/metadata/relation-metadata/relation-metadata.service.ts +++ b/packages/twenty-server/src/engine-metadata/relation-metadata/relation-metadata.service.ts @@ -11,18 +11,18 @@ import { FindOneOptions, In, Repository } from 'typeorm'; import camelCase from 'lodash.camelcase'; import { v4 as uuidV4 } from 'uuid'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { FieldMetadataService } from 'src/metadata/field-metadata/field-metadata.service'; -import { CreateRelationInput } from 'src/metadata/relation-metadata/dtos/create-relation.input'; -import { WorkspaceMigrationRunnerService } from 'src/workspace/workspace-migration-runner/workspace-migration-runner.service'; -import { WorkspaceMigrationService } from 'src/metadata/workspace-migration/workspace-migration.service'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { WorkspaceMigrationColumnActionType } from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { createCustomColumnName } from 'src/metadata/utils/create-custom-column-name.util'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; -import { createRelationForeignKeyColumnName } from 'src/metadata/relation-metadata/utils/create-relation-foreign-key-column-name.util'; -import { generateMigrationName } from 'src/metadata/workspace-migration/utils/generate-migration-name.util'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { FieldMetadataService } from 'src/engine-metadata/field-metadata/field-metadata.service'; +import { CreateRelationInput } from 'src/engine-metadata/relation-metadata/dtos/create-relation.input'; +import { WorkspaceMigrationRunnerService } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service'; +import { WorkspaceMigrationService } from 'src/engine-metadata/workspace-migration/workspace-migration.service'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { WorkspaceMigrationColumnActionType } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { createCustomColumnName } from 'src/engine-metadata/utils/create-custom-column-name.util'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; +import { createRelationForeignKeyColumnName } from 'src/engine-metadata/relation-metadata/utils/create-relation-foreign-key-column-name.util'; +import { generateMigrationName } from 'src/engine-metadata/workspace-migration/utils/generate-migration-name.util'; import { RelationMetadataEntity, diff --git a/packages/twenty-server/src/metadata/relation-metadata/types/relation-to-delete.ts b/packages/twenty-server/src/engine-metadata/relation-metadata/types/relation-to-delete.ts similarity index 100% rename from packages/twenty-server/src/metadata/relation-metadata/types/relation-to-delete.ts rename to packages/twenty-server/src/engine-metadata/relation-metadata/types/relation-to-delete.ts diff --git a/packages/twenty-server/src/metadata/relation-metadata/utils/create-relation-foreign-key-column-name.util.ts b/packages/twenty-server/src/engine-metadata/relation-metadata/utils/create-relation-foreign-key-column-name.util.ts similarity index 77% rename from packages/twenty-server/src/metadata/relation-metadata/utils/create-relation-foreign-key-column-name.util.ts rename to packages/twenty-server/src/engine-metadata/relation-metadata/utils/create-relation-foreign-key-column-name.util.ts index efd5278cb2..40d2b0f2aa 100644 --- a/packages/twenty-server/src/metadata/relation-metadata/utils/create-relation-foreign-key-column-name.util.ts +++ b/packages/twenty-server/src/engine-metadata/relation-metadata/utils/create-relation-foreign-key-column-name.util.ts @@ -1,4 +1,4 @@ -import { createCustomColumnName } from 'src/metadata/utils/create-custom-column-name.util'; +import { createCustomColumnName } from 'src/engine-metadata/utils/create-custom-column-name.util'; import { camelCase } from 'src/utils/camel-case'; export const createRelationForeignKeyColumnName = ( diff --git a/packages/twenty-server/src/metadata/relation-metadata/utils/create-relation-foreign-key-field-metadata-name.util.ts b/packages/twenty-server/src/engine-metadata/relation-metadata/utils/create-relation-foreign-key-field-metadata-name.util.ts similarity index 100% rename from packages/twenty-server/src/metadata/relation-metadata/utils/create-relation-foreign-key-field-metadata-name.util.ts rename to packages/twenty-server/src/engine-metadata/relation-metadata/utils/create-relation-foreign-key-field-metadata-name.util.ts diff --git a/packages/twenty-server/src/metadata/utils/create-custom-column-name.util.ts b/packages/twenty-server/src/engine-metadata/utils/create-custom-column-name.util.ts similarity index 100% rename from packages/twenty-server/src/metadata/utils/create-custom-column-name.util.ts rename to packages/twenty-server/src/engine-metadata/utils/create-custom-column-name.util.ts diff --git a/packages/twenty-server/src/metadata/workspace-cache-version/workspace-cache-version.entity.ts b/packages/twenty-server/src/engine-metadata/workspace-cache-version/workspace-cache-version.entity.ts similarity index 100% rename from packages/twenty-server/src/metadata/workspace-cache-version/workspace-cache-version.entity.ts rename to packages/twenty-server/src/engine-metadata/workspace-cache-version/workspace-cache-version.entity.ts diff --git a/packages/twenty-server/src/metadata/workspace-cache-version/workspace-cache-version.module.ts b/packages/twenty-server/src/engine-metadata/workspace-cache-version/workspace-cache-version.module.ts similarity index 57% rename from packages/twenty-server/src/metadata/workspace-cache-version/workspace-cache-version.module.ts rename to packages/twenty-server/src/engine-metadata/workspace-cache-version/workspace-cache-version.module.ts index 3eaa886ec2..621892ff58 100644 --- a/packages/twenty-server/src/metadata/workspace-cache-version/workspace-cache-version.module.ts +++ b/packages/twenty-server/src/engine-metadata/workspace-cache-version/workspace-cache-version.module.ts @@ -1,8 +1,8 @@ import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; -import { WorkspaceCacheVersionEntity } from 'src/metadata/workspace-cache-version/workspace-cache-version.entity'; -import { WorkspaceCacheVersionService } from 'src/metadata/workspace-cache-version/workspace-cache-version.service'; +import { WorkspaceCacheVersionEntity } from 'src/engine-metadata/workspace-cache-version/workspace-cache-version.entity'; +import { WorkspaceCacheVersionService } from 'src/engine-metadata/workspace-cache-version/workspace-cache-version.service'; @Module({ imports: [ diff --git a/packages/twenty-server/src/metadata/workspace-cache-version/workspace-cache-version.service.ts b/packages/twenty-server/src/engine-metadata/workspace-cache-version/workspace-cache-version.service.ts similarity index 89% rename from packages/twenty-server/src/metadata/workspace-cache-version/workspace-cache-version.service.ts rename to packages/twenty-server/src/engine-metadata/workspace-cache-version/workspace-cache-version.service.ts index 9ca2dae8d2..7730d11e5b 100644 --- a/packages/twenty-server/src/metadata/workspace-cache-version/workspace-cache-version.service.ts +++ b/packages/twenty-server/src/engine-metadata/workspace-cache-version/workspace-cache-version.service.ts @@ -3,7 +3,7 @@ import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; -import { WorkspaceCacheVersionEntity } from 'src/metadata/workspace-cache-version/workspace-cache-version.entity'; +import { WorkspaceCacheVersionEntity } from 'src/engine-metadata/workspace-cache-version/workspace-cache-version.entity'; @Injectable() export class WorkspaceCacheVersionService { diff --git a/packages/twenty-server/src/metadata/workspace-migration/factories/basic-column-action.factory.ts b/packages/twenty-server/src/engine-metadata/workspace-migration/factories/basic-column-action.factory.ts similarity index 78% rename from packages/twenty-server/src/metadata/workspace-migration/factories/basic-column-action.factory.ts rename to packages/twenty-server/src/engine-metadata/workspace-migration/factories/basic-column-action.factory.ts index 23050b6296..35b772d13d 100644 --- a/packages/twenty-server/src/metadata/workspace-migration/factories/basic-column-action.factory.ts +++ b/packages/twenty-server/src/engine-metadata/workspace-migration/factories/basic-column-action.factory.ts @@ -1,18 +1,18 @@ import { Injectable, Logger } from '@nestjs/common'; -import { WorkspaceColumnActionOptions } from 'src/metadata/workspace-migration/interfaces/workspace-column-action-options.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; -import { FieldMetadataDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +import { WorkspaceColumnActionOptions } from 'src/engine-metadata/workspace-migration/interfaces/workspace-column-action-options.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; +import { FieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { WorkspaceMigrationColumnActionType, WorkspaceMigrationColumnAlter, WorkspaceMigrationColumnCreate, -} from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { serializeDefaultValue } from 'src/metadata/field-metadata/utils/serialize-default-value'; -import { fieldMetadataTypeToColumnType } from 'src/metadata/workspace-migration/utils/field-metadata-type-to-column-type.util'; -import { ColumnActionAbstractFactory } from 'src/metadata/workspace-migration/factories/column-action-abstract.factory'; +} from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { serializeDefaultValue } from 'src/engine-metadata/field-metadata/utils/serialize-default-value'; +import { fieldMetadataTypeToColumnType } from 'src/engine-metadata/workspace-migration/utils/field-metadata-type-to-column-type.util'; +import { ColumnActionAbstractFactory } from 'src/engine-metadata/workspace-migration/factories/column-action-abstract.factory'; export type BasicFieldMetadataType = | FieldMetadataType.UUID diff --git a/packages/twenty-server/src/metadata/workspace-migration/factories/column-action-abstract.factory.ts b/packages/twenty-server/src/engine-metadata/workspace-migration/factories/column-action-abstract.factory.ts similarity index 77% rename from packages/twenty-server/src/metadata/workspace-migration/factories/column-action-abstract.factory.ts rename to packages/twenty-server/src/engine-metadata/workspace-migration/factories/column-action-abstract.factory.ts index b4e4bbac2d..40a5eec244 100644 --- a/packages/twenty-server/src/metadata/workspace-migration/factories/column-action-abstract.factory.ts +++ b/packages/twenty-server/src/engine-metadata/workspace-migration/factories/column-action-abstract.factory.ts @@ -1,17 +1,17 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { Logger } from '@nestjs/common'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; -import { WorkspaceColumnActionOptions } from 'src/metadata/workspace-migration/interfaces/workspace-column-action-options.interface'; -import { WorkspaceColumnActionFactory } from 'src/metadata/workspace-migration/interfaces/workspace-column-action-factory.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; +import { WorkspaceColumnActionOptions } from 'src/engine-metadata/workspace-migration/interfaces/workspace-column-action-options.interface'; +import { WorkspaceColumnActionFactory } from 'src/engine-metadata/workspace-migration/interfaces/workspace-column-action-factory.interface'; import { WorkspaceMigrationColumnActionType, WorkspaceMigrationColumnAction, WorkspaceMigrationColumnCreate, WorkspaceMigrationColumnAlter, -} from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +} from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; export class ColumnActionAbstractFactory< T extends FieldMetadataType | 'default', diff --git a/packages/twenty-server/src/metadata/workspace-migration/factories/enum-column-action.factory.ts b/packages/twenty-server/src/engine-metadata/workspace-migration/factories/enum-column-action.factory.ts similarity index 83% rename from packages/twenty-server/src/metadata/workspace-migration/factories/enum-column-action.factory.ts rename to packages/twenty-server/src/engine-metadata/workspace-migration/factories/enum-column-action.factory.ts index 991899e45d..4f39f4959a 100644 --- a/packages/twenty-server/src/metadata/workspace-migration/factories/enum-column-action.factory.ts +++ b/packages/twenty-server/src/engine-metadata/workspace-migration/factories/enum-column-action.factory.ts @@ -1,17 +1,17 @@ import { Injectable, Logger } from '@nestjs/common'; -import { WorkspaceColumnActionOptions } from 'src/metadata/workspace-migration/interfaces/workspace-column-action-options.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { WorkspaceColumnActionOptions } from 'src/engine-metadata/workspace-migration/interfaces/workspace-column-action-options.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { WorkspaceMigrationColumnActionType, WorkspaceMigrationColumnAlter, WorkspaceMigrationColumnCreate, -} from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { serializeDefaultValue } from 'src/metadata/field-metadata/utils/serialize-default-value'; -import { fieldMetadataTypeToColumnType } from 'src/metadata/workspace-migration/utils/field-metadata-type-to-column-type.util'; -import { ColumnActionAbstractFactory } from 'src/metadata/workspace-migration/factories/column-action-abstract.factory'; +} from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { serializeDefaultValue } from 'src/engine-metadata/field-metadata/utils/serialize-default-value'; +import { fieldMetadataTypeToColumnType } from 'src/engine-metadata/workspace-migration/utils/field-metadata-type-to-column-type.util'; +import { ColumnActionAbstractFactory } from 'src/engine-metadata/workspace-migration/factories/column-action-abstract.factory'; export type EnumFieldMetadataType = | FieldMetadataType.RATING diff --git a/packages/twenty-server/src/engine-metadata/workspace-migration/factories/factories.ts b/packages/twenty-server/src/engine-metadata/workspace-migration/factories/factories.ts new file mode 100644 index 0000000000..9248ffcaa1 --- /dev/null +++ b/packages/twenty-server/src/engine-metadata/workspace-migration/factories/factories.ts @@ -0,0 +1,7 @@ +import { BasicColumnActionFactory } from 'src/engine-metadata/workspace-migration/factories/basic-column-action.factory'; +import { EnumColumnActionFactory } from 'src/engine-metadata/workspace-migration/factories/enum-column-action.factory'; + +export const workspaceColumnActionFactories = [ + BasicColumnActionFactory, + EnumColumnActionFactory, +]; diff --git a/packages/twenty-server/src/metadata/workspace-migration/interfaces/workspace-column-action-factory.interface.ts b/packages/twenty-server/src/engine-metadata/workspace-migration/interfaces/workspace-column-action-factory.interface.ts similarity index 54% rename from packages/twenty-server/src/metadata/workspace-migration/interfaces/workspace-column-action-factory.interface.ts rename to packages/twenty-server/src/engine-metadata/workspace-migration/interfaces/workspace-column-action-factory.interface.ts index 44c05d0294..9b02f358b1 100644 --- a/packages/twenty-server/src/metadata/workspace-migration/interfaces/workspace-column-action-factory.interface.ts +++ b/packages/twenty-server/src/engine-metadata/workspace-migration/interfaces/workspace-column-action-factory.interface.ts @@ -1,11 +1,11 @@ -import { WorkspaceColumnActionOptions } from 'src/metadata/workspace-migration/interfaces/workspace-column-action-options.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { WorkspaceColumnActionOptions } from 'src/engine-metadata/workspace-migration/interfaces/workspace-column-action-options.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { WorkspaceMigrationColumnActionType, WorkspaceMigrationColumnAction, -} from 'src/metadata/workspace-migration/workspace-migration.entity'; +} from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; export interface WorkspaceColumnActionFactory< T extends FieldMetadataType | 'default', diff --git a/packages/twenty-server/src/metadata/workspace-migration/interfaces/workspace-column-action-options.interface.ts b/packages/twenty-server/src/engine-metadata/workspace-migration/interfaces/workspace-column-action-options.interface.ts similarity index 100% rename from packages/twenty-server/src/metadata/workspace-migration/interfaces/workspace-column-action-options.interface.ts rename to packages/twenty-server/src/engine-metadata/workspace-migration/interfaces/workspace-column-action-options.interface.ts diff --git a/packages/twenty-server/src/metadata/workspace-migration/utils/field-metadata-type-to-column-type.util.ts b/packages/twenty-server/src/engine-metadata/workspace-migration/utils/field-metadata-type-to-column-type.util.ts similarity index 92% rename from packages/twenty-server/src/metadata/workspace-migration/utils/field-metadata-type-to-column-type.util.ts rename to packages/twenty-server/src/engine-metadata/workspace-migration/utils/field-metadata-type-to-column-type.util.ts index ddee422a68..848040f8b7 100644 --- a/packages/twenty-server/src/metadata/workspace-migration/utils/field-metadata-type-to-column-type.util.ts +++ b/packages/twenty-server/src/engine-metadata/workspace-migration/utils/field-metadata-type-to-column-type.util.ts @@ -1,4 +1,4 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; export const fieldMetadataTypeToColumnType = ( fieldMetadataType: Type, diff --git a/packages/twenty-server/src/metadata/workspace-migration/utils/generate-migration-name.util.ts b/packages/twenty-server/src/engine-metadata/workspace-migration/utils/generate-migration-name.util.ts similarity index 100% rename from packages/twenty-server/src/metadata/workspace-migration/utils/generate-migration-name.util.ts rename to packages/twenty-server/src/engine-metadata/workspace-migration/utils/generate-migration-name.util.ts diff --git a/packages/twenty-server/src/metadata/workspace-migration/workspace-migration.entity.ts b/packages/twenty-server/src/engine-metadata/workspace-migration/workspace-migration.entity.ts similarity index 95% rename from packages/twenty-server/src/metadata/workspace-migration/workspace-migration.entity.ts rename to packages/twenty-server/src/engine-metadata/workspace-migration/workspace-migration.entity.ts index e47bd2ecfb..856f296fe2 100644 --- a/packages/twenty-server/src/metadata/workspace-migration/workspace-migration.entity.ts +++ b/packages/twenty-server/src/engine-metadata/workspace-migration/workspace-migration.entity.ts @@ -5,7 +5,7 @@ import { PrimaryGeneratedColumn, } from 'typeorm'; -import { RelationOnDeleteAction } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { RelationOnDeleteAction } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; export enum WorkspaceMigrationColumnActionType { CREATE = 'CREATE', diff --git a/packages/twenty-server/src/metadata/workspace-migration/workspace-migration.factory.ts b/packages/twenty-server/src/engine-metadata/workspace-migration/workspace-migration.factory.ts similarity index 83% rename from packages/twenty-server/src/metadata/workspace-migration/workspace-migration.factory.ts rename to packages/twenty-server/src/engine-metadata/workspace-migration/workspace-migration.factory.ts index ccab76b29c..c3709df5f1 100644 --- a/packages/twenty-server/src/metadata/workspace-migration/workspace-migration.factory.ts +++ b/packages/twenty-server/src/engine-metadata/workspace-migration/workspace-migration.factory.ts @@ -1,18 +1,18 @@ import { Injectable, Logger } from '@nestjs/common'; -import { WorkspaceColumnActionFactory } from 'src/metadata/workspace-migration/interfaces/workspace-column-action-factory.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; -import { WorkspaceColumnActionOptions } from 'src/metadata/workspace-migration/interfaces/workspace-column-action-options.interface'; +import { WorkspaceColumnActionFactory } from 'src/engine-metadata/workspace-migration/interfaces/workspace-column-action-factory.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; +import { WorkspaceColumnActionOptions } from 'src/engine-metadata/workspace-migration/interfaces/workspace-column-action-options.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { BasicColumnActionFactory } from 'src/metadata/workspace-migration/factories/basic-column-action.factory'; -import { EnumColumnActionFactory } from 'src/metadata/workspace-migration/factories/enum-column-action.factory'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { BasicColumnActionFactory } from 'src/engine-metadata/workspace-migration/factories/basic-column-action.factory'; +import { EnumColumnActionFactory } from 'src/engine-metadata/workspace-migration/factories/enum-column-action.factory'; import { WorkspaceMigrationColumnAction, WorkspaceMigrationColumnActionType, -} from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { isCompositeFieldMetadataType } from 'src/metadata/field-metadata/utils/is-composite-field-metadata-type.util'; -import { compositeDefinitions } from 'src/metadata/field-metadata/composite-types'; +} from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { isCompositeFieldMetadataType } from 'src/engine-metadata/field-metadata/utils/is-composite-field-metadata-type.util'; +import { compositeDefinitions } from 'src/engine-metadata/field-metadata/composite-types'; @Injectable() export class WorkspaceMigrationFactory { diff --git a/packages/twenty-server/src/metadata/workspace-migration/workspace-migration.module.ts b/packages/twenty-server/src/engine-metadata/workspace-migration/workspace-migration.module.ts similarity index 71% rename from packages/twenty-server/src/metadata/workspace-migration/workspace-migration.module.ts rename to packages/twenty-server/src/engine-metadata/workspace-migration/workspace-migration.module.ts index 50661b2e8c..00592c97c8 100644 --- a/packages/twenty-server/src/metadata/workspace-migration/workspace-migration.module.ts +++ b/packages/twenty-server/src/engine-metadata/workspace-migration/workspace-migration.module.ts @@ -1,8 +1,8 @@ import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; -import { workspaceColumnActionFactories } from 'src/metadata/workspace-migration/factories/factories'; -import { WorkspaceMigrationFactory } from 'src/metadata/workspace-migration/workspace-migration.factory'; +import { workspaceColumnActionFactories } from 'src/engine-metadata/workspace-migration/factories/factories'; +import { WorkspaceMigrationFactory } from 'src/engine-metadata/workspace-migration/workspace-migration.factory'; import { WorkspaceMigrationService } from './workspace-migration.service'; import { WorkspaceMigrationEntity } from './workspace-migration.entity'; diff --git a/packages/twenty-server/src/metadata/workspace-migration/workspace-migration.service.ts b/packages/twenty-server/src/engine-metadata/workspace-migration/workspace-migration.service.ts similarity index 100% rename from packages/twenty-server/src/metadata/workspace-migration/workspace-migration.service.ts rename to packages/twenty-server/src/engine-metadata/workspace-migration/workspace-migration.service.ts diff --git a/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module.ts b/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module.ts new file mode 100644 index 0000000000..f8f32010e5 --- /dev/null +++ b/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module.ts @@ -0,0 +1,21 @@ +import { Module } from '@nestjs/common'; + +import { PersonModule } from 'src/engine-workspace/repositories/person/person.module'; +import { WorkspaceMemberModule } from 'src/engine-workspace/repositories/workspace-member/workspace-member.module'; +import { CreateCompanyAndContactService } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.service'; +import { CreateCompanyModule } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-company/create-company.module'; +import { CreateContactModule } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-contact/create-contact.module'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; + +@Module({ + imports: [ + WorkspaceDataSourceModule, + CreateContactModule, + CreateCompanyModule, + WorkspaceMemberModule, + PersonModule, + ], + providers: [CreateCompanyAndContactService], + exports: [CreateCompanyAndContactService], +}) +export class CreateCompaniesAndContactsModule {} diff --git a/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.service.ts b/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.service.ts similarity index 77% rename from packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.service.ts rename to packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.service.ts index c9cc641ee6..db386ef7e5 100644 --- a/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.service.ts +++ b/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.service.ts @@ -3,14 +3,14 @@ import { Injectable } from '@nestjs/common'; import { EntityManager } from 'typeorm'; import compact from 'lodash/compact'; -import { Participant } from 'src/workspace/messaging/types/gmail-message'; -import { getDomainNameFromHandle } from 'src/workspace/messaging/utils/get-domain-name-from-handle.util'; -import { CreateCompanyService } from 'src/workspace/auto-companies-and-contacts-creation/create-company/create-company.service'; -import { CreateContactService } from 'src/workspace/auto-companies-and-contacts-creation/create-contact/create-contact.service'; -import { PersonService } from 'src/workspace/repositories/person/person.service'; -import { WorkspaceMemberService } from 'src/workspace/repositories/workspace-member/workspace-member.service'; -import { getUniqueParticipantsAndHandles } from 'src/workspace/messaging/utils/get-unique-participants-and-handles.util'; -import { filterOutParticipantsFromCompanyOrWorkspace } from 'src/workspace/messaging/utils/filter-out-participants-from-company-or-workspace.util'; +import { Participant } from 'src/business/modules/message/types/gmail-message'; +import { getDomainNameFromHandle } from 'src/business/modules/message/utils/get-domain-name-from-handle.util'; +import { CreateCompanyService } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-company/create-company.service'; +import { CreateContactService } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-contact/create-contact.service'; +import { PersonService } from 'src/engine-workspace/repositories/person/person.service'; +import { WorkspaceMemberService } from 'src/engine-workspace/repositories/workspace-member/workspace-member.service'; +import { getUniqueParticipantsAndHandles } from 'src/business/modules/message/utils/get-unique-participants-and-handles.util'; +import { filterOutParticipantsFromCompanyOrWorkspace } from 'src/business/modules/message/utils/filter-out-participants-from-company-or-workspace.util'; import { isWorkEmail } from 'src/utils/is-work-email'; @Injectable() diff --git a/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company/create-company.module.ts b/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company/create-company.module.ts new file mode 100644 index 0000000000..e413edeadb --- /dev/null +++ b/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company/create-company.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; + +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; +import { CreateCompanyService } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-company/create-company.service'; +import { CompanyModule } from 'src/business/modules/message/repositories/company/company.module'; + +@Module({ + imports: [WorkspaceDataSourceModule, CompanyModule], + providers: [CreateCompanyService], + exports: [CreateCompanyService], +}) +export class CreateCompanyModule {} diff --git a/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company/create-company.service.ts b/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company/create-company.service.ts similarity index 92% rename from packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company/create-company.service.ts rename to packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company/create-company.service.ts index 017a23efa6..cc755090f3 100644 --- a/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company/create-company.service.ts +++ b/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-company/create-company.service.ts @@ -4,8 +4,8 @@ import { EntityManager } from 'typeorm'; import { v4 } from 'uuid'; import axios, { AxiosInstance } from 'axios'; -import { CompanyService } from 'src/workspace/messaging/repositories/company/company.service'; -import { getCompanyNameFromDomainName } from 'src/workspace/messaging/utils/get-company-name-from-domain-name.util'; +import { CompanyService } from 'src/business/modules/message/repositories/company/company.service'; +import { getCompanyNameFromDomainName } from 'src/business/modules/message/utils/get-company-name-from-domain-name.util'; @Injectable() export class CreateCompanyService { private readonly httpService: AxiosInstance; diff --git a/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-contact/create-contact.module.ts b/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-contact/create-contact.module.ts new file mode 100644 index 0000000000..612877ec57 --- /dev/null +++ b/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-contact/create-contact.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; + +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; +import { CreateContactService } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-contact/create-contact.service'; +import { PersonModule } from 'src/engine-workspace/repositories/person/person.module'; + +@Module({ + imports: [WorkspaceDataSourceModule, PersonModule], + providers: [CreateContactService], + exports: [CreateContactService], +}) +export class CreateContactModule {} diff --git a/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-contact/create-contact.service.ts b/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-contact/create-contact.service.ts similarity index 87% rename from packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-contact/create-contact.service.ts rename to packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-contact/create-contact.service.ts index 81966d104c..03e4dfe91f 100644 --- a/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-contact/create-contact.service.ts +++ b/packages/twenty-server/src/engine-workspace/auto-companies-and-contacts-creation/create-contact/create-contact.service.ts @@ -3,8 +3,8 @@ import { Injectable } from '@nestjs/common'; import { EntityManager } from 'typeorm'; import { v4 } from 'uuid'; -import { PersonService } from 'src/workspace/repositories/person/person.service'; -import { getFirstNameAndLastNameFromHandleAndDisplayName } from 'src/workspace/messaging/utils/get-first-name-and-last-name-from-handle-and-display-name.util'; +import { PersonService } from 'src/engine-workspace/repositories/person/person.service'; +import { getFirstNameAndLastNameFromHandleAndDisplayName } from 'src/business/modules/message/utils/get-first-name-and-last-name-from-handle-and-display-name.util'; type ContactToCreate = { handle: string; diff --git a/packages/twenty-server/src/engine-workspace/repositories/person/person.module.ts b/packages/twenty-server/src/engine-workspace/repositories/person/person.module.ts new file mode 100644 index 0000000000..fc501bab62 --- /dev/null +++ b/packages/twenty-server/src/engine-workspace/repositories/person/person.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; + +import { PersonService } from 'src/engine-workspace/repositories/person/person.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; + +@Module({ + imports: [WorkspaceDataSourceModule], + providers: [PersonService], + exports: [PersonService], +}) +export class PersonModule {} diff --git a/packages/twenty-server/src/workspace/repositories/person/person.service.ts b/packages/twenty-server/src/engine-workspace/repositories/person/person.service.ts similarity index 84% rename from packages/twenty-server/src/workspace/repositories/person/person.service.ts rename to packages/twenty-server/src/engine-workspace/repositories/person/person.service.ts index 912014db51..1438d3a774 100644 --- a/packages/twenty-server/src/workspace/repositories/person/person.service.ts +++ b/packages/twenty-server/src/engine-workspace/repositories/person/person.service.ts @@ -2,9 +2,9 @@ import { Injectable } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; -import { PersonObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; +import { PersonObjectMetadata } from 'src/business/modules/person/person.object-metadata'; // TODO: Move outside of the messaging module @Injectable() diff --git a/packages/twenty-server/src/engine-workspace/repositories/workspace-member/workspace-member.module.ts b/packages/twenty-server/src/engine-workspace/repositories/workspace-member/workspace-member.module.ts new file mode 100644 index 0000000000..587f62c9dc --- /dev/null +++ b/packages/twenty-server/src/engine-workspace/repositories/workspace-member/workspace-member.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; + +import { WorkspaceMemberService } from 'src/engine-workspace/repositories/workspace-member/workspace-member.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; + +@Module({ + imports: [WorkspaceDataSourceModule], + providers: [WorkspaceMemberService], + exports: [WorkspaceMemberService], +}) +export class WorkspaceMemberModule {} diff --git a/packages/twenty-server/src/workspace/repositories/workspace-member/workspace-member.service.ts b/packages/twenty-server/src/engine-workspace/repositories/workspace-member/workspace-member.service.ts similarity index 85% rename from packages/twenty-server/src/workspace/repositories/workspace-member/workspace-member.service.ts rename to packages/twenty-server/src/engine-workspace/repositories/workspace-member/workspace-member.service.ts index 42b6705997..65a338467a 100644 --- a/packages/twenty-server/src/workspace/repositories/workspace-member/workspace-member.service.ts +++ b/packages/twenty-server/src/engine-workspace/repositories/workspace-member/workspace-member.service.ts @@ -2,9 +2,9 @@ import { Injectable, NotFoundException } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; -import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; +import { ObjectRecord } from 'src/engine/workspace-manager/workspace-sync-metadata/types/object-record'; // TODO: Move outside of the messaging module @Injectable() diff --git a/packages/twenty-server/src/workspace/services/scalars-explorer.service.ts b/packages/twenty-server/src/engine-workspace/services/scalars-explorer.service.ts similarity index 93% rename from packages/twenty-server/src/workspace/services/scalars-explorer.service.ts rename to packages/twenty-server/src/engine-workspace/services/scalars-explorer.service.ts index a3576ed808..c8a958cbab 100644 --- a/packages/twenty-server/src/workspace/services/scalars-explorer.service.ts +++ b/packages/twenty-server/src/engine-workspace/services/scalars-explorer.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common'; import { GraphQLScalarType, GraphQLSchema, isScalarType } from 'graphql'; -import { scalars } from 'src/workspace/workspace-schema-builder/graphql-types/scalars'; +import { scalars } from 'src/engine/graphql/workspace-schema-builder/graphql-types/scalars'; @Injectable() export class ScalarsExplorerService { diff --git a/packages/twenty-server/src/workspace/utils/__tests__/deduce-relation-direction.spec.ts b/packages/twenty-server/src/engine-workspace/utils/__tests__/deduce-relation-direction.spec.ts similarity index 85% rename from packages/twenty-server/src/workspace/utils/__tests__/deduce-relation-direction.spec.ts rename to packages/twenty-server/src/engine-workspace/utils/__tests__/deduce-relation-direction.spec.ts index 048e372f0c..764320b491 100644 --- a/packages/twenty-server/src/workspace/utils/__tests__/deduce-relation-direction.spec.ts +++ b/packages/twenty-server/src/engine-workspace/utils/__tests__/deduce-relation-direction.spec.ts @@ -1,12 +1,12 @@ -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; -import { RelationMetadataInterface } from 'src/metadata/field-metadata/interfaces/relation-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; +import { RelationMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/relation-metadata.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { RelationMetadataType } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; import { deduceRelationDirection, RelationDirection, -} from 'src/workspace/utils/deduce-relation-direction.util'; +} from 'src/engine-workspace/utils/deduce-relation-direction.util'; describe('deduceRelationDirection', () => { it('should return FROM when the current object Metadata ID matches fromObjectMetadataId and id matches fromFieldMetadataId', () => { diff --git a/packages/twenty-server/src/workspace/utils/__tests__/get-resolver-name.spec.ts b/packages/twenty-server/src/engine-workspace/utils/__tests__/get-resolver-name.spec.ts similarity index 79% rename from packages/twenty-server/src/workspace/utils/__tests__/get-resolver-name.spec.ts rename to packages/twenty-server/src/engine-workspace/utils/__tests__/get-resolver-name.spec.ts index 2c2a5b66f1..ebb8d7f763 100644 --- a/packages/twenty-server/src/workspace/utils/__tests__/get-resolver-name.spec.ts +++ b/packages/twenty-server/src/engine-workspace/utils/__tests__/get-resolver-name.spec.ts @@ -1,6 +1,6 @@ -import { WorkspaceResolverBuilderMethodNames } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceResolverBuilderMethodNames } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { getResolverName } from 'src/workspace/utils/get-resolver-name.util'; +import { getResolverName } from 'src/engine-workspace/utils/get-resolver-name.util'; describe('getResolverName', () => { const metadata = { diff --git a/packages/twenty-server/src/workspace/utils/compute-custom-name.util.ts b/packages/twenty-server/src/engine-workspace/utils/compute-custom-name.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/utils/compute-custom-name.util.ts rename to packages/twenty-server/src/engine-workspace/utils/compute-custom-name.util.ts diff --git a/packages/twenty-server/src/workspace/utils/compute-field-target-column.util.ts b/packages/twenty-server/src/engine-workspace/utils/compute-field-target-column.util.ts similarity index 52% rename from packages/twenty-server/src/workspace/utils/compute-field-target-column.util.ts rename to packages/twenty-server/src/engine-workspace/utils/compute-field-target-column.util.ts index aad29d0ec9..b60b6da640 100644 --- a/packages/twenty-server/src/workspace/utils/compute-field-target-column.util.ts +++ b/packages/twenty-server/src/engine-workspace/utils/compute-field-target-column.util.ts @@ -1,8 +1,8 @@ -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; -import { isCompositeFieldMetadataType } from 'src/metadata/field-metadata/utils/is-composite-field-metadata-type.util'; -import { BasicFieldMetadataType } from 'src/metadata/workspace-migration/factories/basic-column-action.factory'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { isCompositeFieldMetadataType } from 'src/engine-metadata/field-metadata/utils/is-composite-field-metadata-type.util'; +import { BasicFieldMetadataType } from 'src/engine-metadata/workspace-migration/factories/basic-column-action.factory'; import { computeCustomName } from './compute-custom-name.util'; diff --git a/packages/twenty-server/src/workspace/utils/compute-object-target-table.util.ts b/packages/twenty-server/src/engine-workspace/utils/compute-object-target-table.util.ts similarity index 69% rename from packages/twenty-server/src/workspace/utils/compute-object-target-table.util.ts rename to packages/twenty-server/src/engine-workspace/utils/compute-object-target-table.util.ts index 98f49dacc4..5f7ee91749 100644 --- a/packages/twenty-server/src/workspace/utils/compute-object-target-table.util.ts +++ b/packages/twenty-server/src/engine-workspace/utils/compute-object-target-table.util.ts @@ -1,4 +1,4 @@ -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { computeCustomName } from './compute-custom-name.util'; diff --git a/packages/twenty-server/src/workspace/utils/deduce-relation-direction.util.ts b/packages/twenty-server/src/engine-workspace/utils/deduce-relation-direction.util.ts similarity index 76% rename from packages/twenty-server/src/workspace/utils/deduce-relation-direction.util.ts rename to packages/twenty-server/src/engine-workspace/utils/deduce-relation-direction.util.ts index 4799329336..0122752b29 100644 --- a/packages/twenty-server/src/workspace/utils/deduce-relation-direction.util.ts +++ b/packages/twenty-server/src/engine-workspace/utils/deduce-relation-direction.util.ts @@ -1,5 +1,5 @@ -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; -import { RelationMetadataInterface } from 'src/metadata/field-metadata/interfaces/relation-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; +import { RelationMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/relation-metadata.interface'; export enum RelationDirection { FROM = 'from', diff --git a/packages/twenty-server/src/workspace/utils/get-resolver-name.util.ts b/packages/twenty-server/src/engine-workspace/utils/get-resolver-name.util.ts similarity index 82% rename from packages/twenty-server/src/workspace/utils/get-resolver-name.util.ts rename to packages/twenty-server/src/engine-workspace/utils/get-resolver-name.util.ts index e2de8f2d5d..6440fbceb6 100644 --- a/packages/twenty-server/src/workspace/utils/get-resolver-name.util.ts +++ b/packages/twenty-server/src/engine-workspace/utils/get-resolver-name.util.ts @@ -1,5 +1,5 @@ -import { WorkspaceResolverBuilderMethodNames } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceResolverBuilderMethodNames } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { camelCase } from 'src/utils/camel-case'; import { pascalCase } from 'src/utils/pascal-case'; diff --git a/packages/twenty-server/src/workspace/utils/is-relation-field-metadata-type.util.ts b/packages/twenty-server/src/engine-workspace/utils/is-relation-field-metadata-type.util.ts similarity index 63% rename from packages/twenty-server/src/workspace/utils/is-relation-field-metadata-type.util.ts rename to packages/twenty-server/src/engine-workspace/utils/is-relation-field-metadata-type.util.ts index f42b593ac9..12c119d9f3 100644 --- a/packages/twenty-server/src/workspace/utils/is-relation-field-metadata-type.util.ts +++ b/packages/twenty-server/src/engine-workspace/utils/is-relation-field-metadata-type.util.ts @@ -1,4 +1,4 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; export const isRelationFieldMetadataType = ( type: FieldMetadataType, diff --git a/packages/twenty-server/src/workspace/utils/render-apollo-playground.util.ts b/packages/twenty-server/src/engine-workspace/utils/render-apollo-playground.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/utils/render-apollo-playground.util.ts rename to packages/twenty-server/src/engine-workspace/utils/render-apollo-playground.util.ts diff --git a/packages/twenty-server/src/constants/settings/index.ts b/packages/twenty-server/src/engine/constants/settings/index.ts similarity index 100% rename from packages/twenty-server/src/constants/settings/index.ts rename to packages/twenty-server/src/engine/constants/settings/index.ts diff --git a/packages/twenty-server/src/constants/settings/interfaces/settings.interface.ts b/packages/twenty-server/src/engine/constants/settings/interfaces/settings.interface.ts similarity index 77% rename from packages/twenty-server/src/constants/settings/interfaces/settings.interface.ts rename to packages/twenty-server/src/engine/constants/settings/interfaces/settings.interface.ts index c268aff280..9f659e0ddb 100644 --- a/packages/twenty-server/src/constants/settings/interfaces/settings.interface.ts +++ b/packages/twenty-server/src/engine/constants/settings/interfaces/settings.interface.ts @@ -1,4 +1,4 @@ -import { FileFolder } from 'src/core/file/interfaces/file-folder.interface'; +import { FileFolder } from 'src/engine/modules/file/interfaces/file-folder.interface'; import { ShortCropSize } from 'src/utils/image'; diff --git a/packages/twenty-server/src/decorators/ability/user-ability.decorator.ts b/packages/twenty-server/src/engine/decorators/ability/user-ability.decorator.ts similarity index 100% rename from packages/twenty-server/src/decorators/ability/user-ability.decorator.ts rename to packages/twenty-server/src/engine/decorators/ability/user-ability.decorator.ts diff --git a/packages/twenty-server/src/decorators/auth/auth-user.decorator.ts b/packages/twenty-server/src/engine/decorators/auth/auth-user.decorator.ts similarity index 100% rename from packages/twenty-server/src/decorators/auth/auth-user.decorator.ts rename to packages/twenty-server/src/engine/decorators/auth/auth-user.decorator.ts diff --git a/packages/twenty-server/src/decorators/auth/auth-workspace.decorator.ts b/packages/twenty-server/src/engine/decorators/auth/auth-workspace.decorator.ts similarity index 100% rename from packages/twenty-server/src/decorators/auth/auth-workspace.decorator.ts rename to packages/twenty-server/src/engine/decorators/auth/auth-workspace.decorator.ts diff --git a/packages/twenty-server/src/filters/utils/global-exception-handler.util.ts b/packages/twenty-server/src/engine/filters/utils/global-exception-handler.util.ts similarity index 97% rename from packages/twenty-server/src/filters/utils/global-exception-handler.util.ts rename to packages/twenty-server/src/engine/filters/utils/global-exception-handler.util.ts index d57619fe0f..51739c32c1 100644 --- a/packages/twenty-server/src/filters/utils/global-exception-handler.util.ts +++ b/packages/twenty-server/src/engine/filters/utils/global-exception-handler.util.ts @@ -9,7 +9,7 @@ import { ValidationError, NotFoundError, ConflictError, -} from 'src/filters/utils/graphql-errors.util'; +} from 'src/engine/filters/utils/graphql-errors.util'; import { ExceptionHandlerService } from 'src/integrations/exception-handler/exception-handler.service'; const graphQLPredefinedExceptions = { diff --git a/packages/twenty-server/src/filters/utils/graphql-errors.util.ts b/packages/twenty-server/src/engine/filters/utils/graphql-errors.util.ts similarity index 100% rename from packages/twenty-server/src/filters/utils/graphql-errors.util.ts rename to packages/twenty-server/src/engine/filters/utils/graphql-errors.util.ts diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/__tests__/args-string.factory.spec.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/__tests__/args-string.factory.spec.ts similarity index 93% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/__tests__/args-string.factory.spec.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/__tests__/args-string.factory.spec.ts index 67b95c2ea1..8049ff7376 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/__tests__/args-string.factory.spec.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/__tests__/args-string.factory.spec.ts @@ -1,7 +1,7 @@ import { TestingModule, Test } from '@nestjs/testing'; -import { ArgsAliasFactory } from 'src/workspace/workspace-query-builder/factories/args-alias.factory'; -import { ArgsStringFactory } from 'src/workspace/workspace-query-builder/factories/args-string.factory'; +import { ArgsAliasFactory } from 'src/engine/graphql/workspace-query-builder/factories/args-alias.factory'; +import { ArgsStringFactory } from 'src/engine/graphql/workspace-query-builder/factories/args-string.factory'; describe('ArgsStringFactory', () => { let service: ArgsStringFactory; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/__tests__/find-duplicates-query.factory.spec.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/__tests__/find-duplicates-query.factory.spec.ts similarity index 88% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/__tests__/find-duplicates-query.factory.spec.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/__tests__/find-duplicates-query.factory.spec.ts index bae840648c..17dbade3ed 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/__tests__/find-duplicates-query.factory.spec.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/__tests__/find-duplicates-query.factory.spec.ts @@ -1,12 +1,12 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { RecordFilter } from 'src/workspace/workspace-query-builder/interfaces/record.interface'; -import { FindDuplicatesResolverArgs } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { RecordFilter } from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; +import { FindDuplicatesResolverArgs } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { ArgsAliasFactory } from 'src/workspace/workspace-query-builder/factories/args-alias.factory'; -import { FieldsStringFactory } from 'src/workspace/workspace-query-builder/factories/fields-string.factory'; -import { FindDuplicatesQueryFactory } from 'src/workspace/workspace-query-builder/factories/find-duplicates-query.factory'; -import { workspaceQueryBuilderOptions } from 'src/workspace/workspace-query-builder/utils-test/workspace-query-builder-options'; +import { ArgsAliasFactory } from 'src/engine/graphql/workspace-query-builder/factories/args-alias.factory'; +import { FieldsStringFactory } from 'src/engine/graphql/workspace-query-builder/factories/fields-string.factory'; +import { FindDuplicatesQueryFactory } from 'src/engine/graphql/workspace-query-builder/factories/find-duplicates-query.factory'; +import { workspaceQueryBuilderOptions } from 'src/engine/graphql/workspace-query-builder/utils-test/workspace-query-builder-options'; describe('FindDuplicatesQueryFactory', () => { let service: FindDuplicatesQueryFactory; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/__tests__/record-position-query.factory.spec.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/__tests__/record-position-query.factory.spec.ts similarity index 96% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/__tests__/record-position-query.factory.spec.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/__tests__/record-position-query.factory.spec.ts index c8484f24f0..7c70104527 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/__tests__/record-position-query.factory.spec.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/__tests__/record-position-query.factory.spec.ts @@ -1,7 +1,7 @@ import { RecordPositionQueryFactory, RecordPositionQueryType, -} from 'src/workspace/workspace-query-builder/factories/record-position-query.factory'; +} from 'src/engine/graphql/workspace-query-builder/factories/record-position-query.factory'; describe('RecordPositionQueryFactory', () => { const objectMetadataItem = { diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/args-alias.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/args-alias.factory.ts similarity index 94% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/args-alias.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/args-alias.factory.ts index ae80ffd22c..a31cb422dc 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/args-alias.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/args-alias.factory.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; @Injectable() export class ArgsAliasFactory { diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/args-string.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/args-string.factory.ts similarity index 89% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/args-string.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/args-string.factory.ts index cabda5d559..d51c121aad 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/args-string.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/args-string.factory.ts @@ -1,8 +1,8 @@ import { Injectable } from '@nestjs/common'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; -import { stringifyWithoutKeyQuote } from 'src/workspace/workspace-query-builder/utils/stringify-without-key-quote.util'; +import { stringifyWithoutKeyQuote } from 'src/engine/graphql/workspace-query-builder/utils/stringify-without-key-quote.util'; import { ArgsAliasFactory } from './args-alias.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/create-many-query.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/create-many-query.factory.ts similarity index 67% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/create-many-query.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/create-many-query.factory.ts index 9db70306fc..5b55267080 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/create-many-query.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/create-many-query.factory.ts @@ -2,12 +2,12 @@ import { Injectable, Logger } from '@nestjs/common'; import { v4 as uuidv4 } from 'uuid'; -import { WorkspaceQueryBuilderOptions } from 'src/workspace/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; -import { Record as IRecord } from 'src/workspace/workspace-query-builder/interfaces/record.interface'; -import { CreateManyResolverArgs } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceQueryBuilderOptions } from 'src/engine/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; +import { Record as IRecord } from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; +import { CreateManyResolverArgs } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { stringifyWithoutKeyQuote } from 'src/workspace/workspace-query-builder/utils/stringify-without-key-quote.util'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; +import { stringifyWithoutKeyQuote } from 'src/engine/graphql/workspace-query-builder/utils/stringify-without-key-quote.util'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; import { FieldsStringFactory } from './fields-string.factory'; import { ArgsAliasFactory } from './args-alias.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/delete-many-query.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/delete-many-query.factory.ts similarity index 65% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/delete-many-query.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/delete-many-query.factory.ts index b0082b5b77..8581537e43 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/delete-many-query.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/delete-many-query.factory.ts @@ -1,10 +1,10 @@ import { Injectable } from '@nestjs/common'; -import { WorkspaceQueryBuilderOptions } from 'src/workspace/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; -import { DeleteManyResolverArgs } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceQueryBuilderOptions } from 'src/engine/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; +import { DeleteManyResolverArgs } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { stringifyWithoutKeyQuote } from 'src/workspace/workspace-query-builder/utils/stringify-without-key-quote.util'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; +import { stringifyWithoutKeyQuote } from 'src/engine/graphql/workspace-query-builder/utils/stringify-without-key-quote.util'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; import { FieldsStringFactory } from './fields-string.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/delete-one-query.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/delete-one-query.factory.ts similarity index 69% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/delete-one-query.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/delete-one-query.factory.ts index 65112ec0fb..d6f12e8abc 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/delete-one-query.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/delete-one-query.factory.ts @@ -1,9 +1,9 @@ import { Injectable, Logger } from '@nestjs/common'; -import { WorkspaceQueryBuilderOptions } from 'src/workspace/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; -import { DeleteOneResolverArgs } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceQueryBuilderOptions } from 'src/engine/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; +import { DeleteOneResolverArgs } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; import { FieldsStringFactory } from './fields-string.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/factories.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/factories.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/factories.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/factories.ts diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/field-alias.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/field-alias.factory.ts similarity index 87% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/field-alias.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/field-alias.factory.ts index fd2f684e12..ff0afdf479 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/field-alias.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/field-alias.factory.ts @@ -1,6 +1,6 @@ import { Injectable, Logger } from '@nestjs/common'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; @Injectable() export class FieldAliasFactory { diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/fields-string.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/fields-string.factory.ts similarity index 89% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/fields-string.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/fields-string.factory.ts index 1358a48dd5..636efe8f56 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/fields-string.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/fields-string.factory.ts @@ -4,10 +4,10 @@ import { GraphQLResolveInfo } from 'graphql'; import graphqlFields from 'graphql-fields'; import isEmpty from 'lodash.isempty'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; -import { isRelationFieldMetadataType } from 'src/workspace/utils/is-relation-field-metadata-type.util'; +import { isRelationFieldMetadataType } from 'src/engine-workspace/utils/is-relation-field-metadata-type.util'; import { FieldAliasFactory } from './field-alias.factory'; import { RelationFieldAliasFactory } from './relation-field-alias.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/find-duplicates-query.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/find-duplicates-query.factory.ts similarity index 78% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/find-duplicates-query.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/find-duplicates-query.factory.ts index ad2ea30b0f..9c3ca711fb 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/find-duplicates-query.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/find-duplicates-query.factory.ts @@ -2,16 +2,16 @@ import { Injectable, Logger } from '@nestjs/common'; import isEmpty from 'lodash.isempty'; -import { WorkspaceQueryBuilderOptions } from 'src/workspace/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; -import { RecordFilter } from 'src/workspace/workspace-query-builder/interfaces/record.interface'; -import { FindDuplicatesResolverArgs } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceQueryBuilderOptions } from 'src/engine/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; +import { RecordFilter } from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; +import { FindDuplicatesResolverArgs } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; -import { stringifyWithoutKeyQuote } from 'src/workspace/workspace-query-builder/utils/stringify-without-key-quote.util'; -import { ArgsAliasFactory } from 'src/workspace/workspace-query-builder/factories/args-alias.factory'; -import { duplicateCriteriaCollection } from 'src/workspace/workspace-resolver-builder/constants/duplicate-criteria.constants'; -import { settings } from 'src/constants/settings'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; +import { stringifyWithoutKeyQuote } from 'src/engine/graphql/workspace-query-builder/utils/stringify-without-key-quote.util'; +import { ArgsAliasFactory } from 'src/engine/graphql/workspace-query-builder/factories/args-alias.factory'; +import { duplicateCriteriaCollection } from 'src/engine/graphql/workspace-resolver-builder/constants/duplicate-criteria.constants'; +import { settings } from 'src/engine/constants/settings'; import { FieldsStringFactory } from './fields-string.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/find-many-query.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/find-many-query.factory.ts similarity index 72% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/find-many-query.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/find-many-query.factory.ts index f5a5b57358..eb1f029efc 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/find-many-query.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/find-many-query.factory.ts @@ -1,13 +1,13 @@ import { Injectable, Logger } from '@nestjs/common'; -import { WorkspaceQueryBuilderOptions } from 'src/workspace/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; +import { WorkspaceQueryBuilderOptions } from 'src/engine/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; import { RecordFilter, RecordOrderBy, -} from 'src/workspace/workspace-query-builder/interfaces/record.interface'; -import { FindManyResolverArgs } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +} from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; +import { FindManyResolverArgs } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; import { ArgsStringFactory } from './args-string.factory'; import { FieldsStringFactory } from './fields-string.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/find-one-query.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/find-one-query.factory.ts similarity index 70% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/find-one-query.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/find-one-query.factory.ts index 89dbf5ce1e..727f9d5533 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/find-one-query.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/find-one-query.factory.ts @@ -1,10 +1,10 @@ import { Injectable, Logger } from '@nestjs/common'; -import { WorkspaceQueryBuilderOptions } from 'src/workspace/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; -import { RecordFilter } from 'src/workspace/workspace-query-builder/interfaces/record.interface'; -import { FindOneResolverArgs } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceQueryBuilderOptions } from 'src/engine/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; +import { RecordFilter } from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; +import { FindOneResolverArgs } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; import { ArgsStringFactory } from './args-string.factory'; import { FieldsStringFactory } from './fields-string.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/record-position-query.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/record-position-query.factory.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/record-position-query.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/record-position-query.factory.ts diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/relation-field-alias.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/relation-field-alias.factory.ts similarity index 83% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/relation-field-alias.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/relation-field-alias.factory.ts index 383db4e530..df767655ed 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/relation-field-alias.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/relation-field-alias.factory.ts @@ -2,18 +2,18 @@ import { forwardRef, Inject, Injectable, Logger } from '@nestjs/common'; import { GraphQLResolveInfo } from 'graphql'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; -import { isRelationFieldMetadataType } from 'src/workspace/utils/is-relation-field-metadata-type.util'; -import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { isRelationFieldMetadataType } from 'src/engine-workspace/utils/is-relation-field-metadata-type.util'; +import { RelationMetadataType } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; import { deduceRelationDirection, RelationDirection, -} from 'src/workspace/utils/deduce-relation-direction.util'; -import { getFieldArgumentsByKey } from 'src/workspace/workspace-query-builder/utils/get-field-arguments-by-key.util'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; +} from 'src/engine-workspace/utils/deduce-relation-direction.util'; +import { getFieldArgumentsByKey } from 'src/engine/graphql/workspace-query-builder/utils/get-field-arguments-by-key.util'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; import { FieldsStringFactory } from './fields-string.factory'; import { ArgsStringFactory } from './args-string.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/update-many-query.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/update-many-query.factory.ts similarity index 62% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/update-many-query.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/update-many-query.factory.ts index 37d7ed501a..a767c206fb 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/update-many-query.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/update-many-query.factory.ts @@ -3,14 +3,14 @@ import { Injectable } from '@nestjs/common'; import { Record as IRecord, RecordFilter, -} from 'src/workspace/workspace-query-builder/interfaces/record.interface'; -import { WorkspaceQueryBuilderOptions } from 'src/workspace/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; -import { UpdateManyResolverArgs } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +} from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; +import { WorkspaceQueryBuilderOptions } from 'src/engine/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; +import { UpdateManyResolverArgs } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { stringifyWithoutKeyQuote } from 'src/workspace/workspace-query-builder/utils/stringify-without-key-quote.util'; -import { FieldsStringFactory } from 'src/workspace/workspace-query-builder/factories/fields-string.factory'; -import { ArgsAliasFactory } from 'src/workspace/workspace-query-builder/factories/args-alias.factory'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; +import { stringifyWithoutKeyQuote } from 'src/engine/graphql/workspace-query-builder/utils/stringify-without-key-quote.util'; +import { FieldsStringFactory } from 'src/engine/graphql/workspace-query-builder/factories/fields-string.factory'; +import { ArgsAliasFactory } from 'src/engine/graphql/workspace-query-builder/factories/args-alias.factory'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; export interface UpdateManyQueryFactoryOptions extends WorkspaceQueryBuilderOptions { diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/factories/update-one-query.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/update-one-query.factory.ts similarity index 68% rename from packages/twenty-server/src/workspace/workspace-query-builder/factories/update-one-query.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/update-one-query.factory.ts index 73fbb6d1eb..4b8b6072f6 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/factories/update-one-query.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/factories/update-one-query.factory.ts @@ -1,11 +1,11 @@ import { Injectable, Logger } from '@nestjs/common'; -import { WorkspaceQueryBuilderOptions } from 'src/workspace/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; -import { Record as IRecord } from 'src/workspace/workspace-query-builder/interfaces/record.interface'; -import { UpdateOneResolverArgs } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceQueryBuilderOptions } from 'src/engine/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; +import { Record as IRecord } from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; +import { UpdateOneResolverArgs } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { stringifyWithoutKeyQuote } from 'src/workspace/workspace-query-builder/utils/stringify-without-key-quote.util'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; +import { stringifyWithoutKeyQuote } from 'src/engine/graphql/workspace-query-builder/utils/stringify-without-key-quote.util'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; import { FieldsStringFactory } from './fields-string.factory'; import { ArgsAliasFactory } from './args-alias.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/interfaces/record.interface.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/interfaces/record.interface.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-query-builder/interfaces/record.interface.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/interfaces/record.interface.ts diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/interfaces/workspace-query-builder-options.interface.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface.ts similarity index 55% rename from packages/twenty-server/src/workspace/workspace-query-builder/interfaces/workspace-query-builder-options.interface.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface.ts index 976cda78d6..15d5af7996 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/interfaces/workspace-query-builder-options.interface.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface.ts @@ -1,7 +1,7 @@ import { GraphQLResolveInfo } from 'graphql'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; export interface WorkspaceQueryBuilderOptions { objectMetadataItem: ObjectMetadataInterface; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/utils-test/workspace-query-builder-options.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/utils-test/workspace-query-builder-options.ts similarity index 59% rename from packages/twenty-server/src/workspace/workspace-query-builder/utils-test/workspace-query-builder-options.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/utils-test/workspace-query-builder-options.ts index 7b052cdb30..b57b755db2 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/utils-test/workspace-query-builder-options.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/utils-test/workspace-query-builder-options.ts @@ -1,7 +1,7 @@ import { GraphQLResolveInfo } from 'graphql'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; -import { WorkspaceQueryBuilderOptions } from 'src/workspace/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceQueryBuilderOptions } from 'src/engine/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; import { objectMetadataItem } from 'src/utils/utils-test/object-metadata-item'; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/utils/__tests__/stringify-without-key-quote.spec.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/utils/__tests__/stringify-without-key-quote.spec.ts similarity index 92% rename from packages/twenty-server/src/workspace/workspace-query-builder/utils/__tests__/stringify-without-key-quote.spec.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/utils/__tests__/stringify-without-key-quote.spec.ts index 0bfad15744..66dd4517a4 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/utils/__tests__/stringify-without-key-quote.spec.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/utils/__tests__/stringify-without-key-quote.spec.ts @@ -1,4 +1,4 @@ -import { stringifyWithoutKeyQuote } from 'src/workspace/workspace-query-builder/utils/stringify-without-key-quote.util'; +import { stringifyWithoutKeyQuote } from 'src/engine/graphql/workspace-query-builder/utils/stringify-without-key-quote.util'; describe('stringifyWithoutKeyQuote', () => { test('should stringify object correctly without quotes around keys', () => { diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/utils/get-field-arguments-by-key.util.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/utils/get-field-arguments-by-key.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-query-builder/utils/get-field-arguments-by-key.util.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/utils/get-field-arguments-by-key.util.ts diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/utils/stringify-without-key-quote.util.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/utils/stringify-without-key-quote.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-query-builder/utils/stringify-without-key-quote.util.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/utils/stringify-without-key-quote.util.ts diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/workspace-query-builder.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/workspace-query-builder.factory.ts similarity index 92% rename from packages/twenty-server/src/workspace/workspace-query-builder/workspace-query-builder.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/workspace-query-builder.factory.ts index a1e1a4e0b4..65abfa013f 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/workspace-query-builder.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/workspace-query-builder.factory.ts @@ -1,11 +1,11 @@ import { Injectable, Logger } from '@nestjs/common'; -import { WorkspaceQueryBuilderOptions } from 'src/workspace/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; +import { WorkspaceQueryBuilderOptions } from 'src/engine/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface'; import { Record as IRecord, RecordFilter, RecordOrderBy, -} from 'src/workspace/workspace-query-builder/interfaces/record.interface'; +} from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; import { FindManyResolverArgs, FindOneResolverArgs, @@ -15,7 +15,7 @@ import { UpdateManyResolverArgs, DeleteManyResolverArgs, FindDuplicatesResolverArgs, -} from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +} from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; import { FindManyQueryFactory } from './factories/find-many-query.factory'; import { FindOneQueryFactory } from './factories/find-one-query.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-query-builder/workspace-query-builder.module.ts b/packages/twenty-server/src/engine/graphql/workspace-query-builder/workspace-query-builder.module.ts similarity index 58% rename from packages/twenty-server/src/workspace/workspace-query-builder/workspace-query-builder.module.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-builder/workspace-query-builder.module.ts index b4ead5ae62..1ae38791c1 100644 --- a/packages/twenty-server/src/workspace/workspace-query-builder/workspace-query-builder.module.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-builder/workspace-query-builder.module.ts @@ -1,8 +1,8 @@ import { Module } from '@nestjs/common'; -import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module'; -import { FieldsStringFactory } from 'src/workspace/workspace-query-builder/factories/fields-string.factory'; -import { RecordPositionQueryFactory } from 'src/workspace/workspace-query-builder/factories/record-position-query.factory'; +import { ObjectMetadataModule } from 'src/engine-metadata/object-metadata/object-metadata.module'; +import { FieldsStringFactory } from 'src/engine/graphql/workspace-query-builder/factories/fields-string.factory'; +import { RecordPositionQueryFactory } from 'src/engine/graphql/workspace-query-builder/factories/record-position-query.factory'; import { WorkspaceQueryBuilderFactory } from './workspace-query-builder.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/factories/__tests__/query-runner-args.factory.spec.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/__tests__/query-runner-args.factory.spec.ts similarity index 72% rename from packages/twenty-server/src/workspace/workspace-query-runner/factories/__tests__/query-runner-args.factory.spec.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/__tests__/query-runner-args.factory.spec.ts index e1d6efa990..8e1f4b8a2c 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/factories/__tests__/query-runner-args.factory.spec.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/__tests__/query-runner-args.factory.spec.ts @@ -1,11 +1,11 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { WorkspaceQueryRunnerOptions } from 'src/workspace/workspace-query-runner/interfaces/query-runner-option.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { WorkspaceQueryRunnerOptions } from 'src/engine/graphql/workspace-query-runner/interfaces/query-runner-option.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; -import { QueryRunnerArgsFactory } from 'src/workspace/workspace-query-runner/factories/query-runner-args.factory'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { RecordPositionFactory } from 'src/workspace/workspace-query-runner/factories/record-position.factory'; +import { QueryRunnerArgsFactory } from 'src/engine/graphql/workspace-query-runner/factories/query-runner-args.factory'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { RecordPositionFactory } from 'src/engine/graphql/workspace-query-runner/factories/record-position.factory'; describe('QueryRunnerArgsFactory', () => { const recordPositionFactory = { diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/factories/__tests__/record-position.factory.spec.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/__tests__/record-position.factory.spec.ts similarity index 83% rename from packages/twenty-server/src/workspace/workspace-query-runner/factories/__tests__/record-position.factory.spec.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/__tests__/record-position.factory.spec.ts index 4966fe7d1a..2daa76157e 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/factories/__tests__/record-position.factory.spec.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/__tests__/record-position.factory.spec.ts @@ -1,8 +1,8 @@ import { TestingModule, Test } from '@nestjs/testing'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { RecordPositionQueryFactory } from 'src/workspace/workspace-query-builder/factories/record-position-query.factory'; -import { RecordPositionFactory } from 'src/workspace/workspace-query-runner/factories/record-position.factory'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { RecordPositionQueryFactory } from 'src/engine/graphql/workspace-query-builder/factories/record-position-query.factory'; +import { RecordPositionFactory } from 'src/engine/graphql/workspace-query-runner/factories/record-position.factory'; describe('RecordPositionFactory', () => { const recordPositionQueryFactory = { diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/factories/index.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/index.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-query-runner/factories/index.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/index.ts diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/factories/query-runner-args.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/query-runner-args.factory.ts similarity index 84% rename from packages/twenty-server/src/workspace/workspace-query-runner/factories/query-runner-args.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/query-runner-args.factory.ts index 3769424433..80c6f8b612 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/factories/query-runner-args.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/query-runner-args.factory.ts @@ -1,9 +1,9 @@ import { Injectable } from '@nestjs/common'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; -import { WorkspaceQueryRunnerOptions } from 'src/workspace/workspace-query-runner/interfaces/query-runner-option.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; +import { WorkspaceQueryRunnerOptions } from 'src/engine/graphql/workspace-query-runner/interfaces/query-runner-option.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { RecordPositionFactory } from './record-position.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/factories/record-position.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/record-position.factory.ts similarity index 84% rename from packages/twenty-server/src/workspace/workspace-query-runner/factories/record-position.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/record-position.factory.ts index 1c31b16570..97ab15c20f 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/factories/record-position.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/factories/record-position.factory.ts @@ -1,10 +1,10 @@ import { Injectable } from '@nestjs/common'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; import { RecordPositionQueryFactory, RecordPositionQueryType, -} from 'src/workspace/workspace-query-builder/factories/record-position-query.factory'; +} from 'src/engine/graphql/workspace-query-builder/factories/record-position-query.factory'; @Injectable() export class RecordPositionFactory { diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/interfaces/pg-graphql.interface.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/interfaces/pg-graphql.interface.ts similarity index 72% rename from packages/twenty-server/src/workspace/workspace-query-runner/interfaces/pg-graphql.interface.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/interfaces/pg-graphql.interface.ts index b0bb89aa5b..98c71a1209 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/interfaces/pg-graphql.interface.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/interfaces/pg-graphql.interface.ts @@ -1,4 +1,4 @@ -import { Record as IRecord } from 'src/workspace/workspace-query-builder/interfaces/record.interface'; +import { Record as IRecord } from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; export interface PGGraphQLResponse { resolve: { diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/interfaces/query-runner-option.interface.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/interfaces/query-runner-option.interface.ts similarity index 59% rename from packages/twenty-server/src/workspace/workspace-query-runner/interfaces/query-runner-option.interface.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/interfaces/query-runner-option.interface.ts index a0d5deb7cf..9a94a9d719 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/interfaces/query-runner-option.interface.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/interfaces/query-runner-option.interface.ts @@ -1,7 +1,7 @@ import { GraphQLResolveInfo } from 'graphql'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; export interface WorkspaceQueryRunnerOptions { workspaceId: string; diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/jobs/call-webhook-jobs.job.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/jobs/call-webhook-jobs.job.ts similarity index 85% rename from packages/twenty-server/src/workspace/workspace-query-runner/jobs/call-webhook-jobs.job.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/jobs/call-webhook-jobs.job.ts index 844e073c3d..45108bca4d 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/jobs/call-webhook-jobs.job.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/jobs/call-webhook-jobs.job.ts @@ -1,17 +1,17 @@ import { Inject, Injectable, Logger } from '@nestjs/common'; import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/message-queue-job.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { CallWebhookJob, CallWebhookJobData, -} from 'src/workspace/workspace-query-runner/jobs/call-webhook.job'; +} from 'src/engine/graphql/workspace-query-runner/jobs/call-webhook.job'; export enum CallWebhookJobsJobOperation { create = 'create', diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/jobs/call-webhook.job.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/jobs/call-webhook.job.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-query-runner/jobs/call-webhook.job.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/jobs/call-webhook.job.ts diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/jobs/record-position-backfill.job.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/jobs/record-position-backfill.job.ts similarity index 84% rename from packages/twenty-server/src/workspace/workspace-query-runner/jobs/record-position-backfill.job.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/jobs/record-position-backfill.job.ts index 938acfe46b..dcc5ab8bf4 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/jobs/record-position-backfill.job.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/jobs/record-position-backfill.job.ts @@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common'; import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/message-queue-job.interface'; -import { RecordPositionBackfillService } from 'src/workspace/workspace-query-runner/services/record-position-backfill-service'; +import { RecordPositionBackfillService } from 'src/engine/graphql/workspace-query-runner/services/record-position-backfill-service'; export type RecordPositionBackfillJobData = { workspaceId: string; diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/listeners/record-position.listener.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/listeners/record-position.listener.ts similarity index 94% rename from packages/twenty-server/src/workspace/workspace-query-runner/listeners/record-position.listener.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/listeners/record-position.listener.ts index 63537cc322..3ea32791ab 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/listeners/record-position.listener.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/listeners/record-position.listener.ts @@ -10,7 +10,7 @@ import { MessageQueueService } from 'src/integrations/message-queue/services/mes import { RecordPositionBackfillJob, RecordPositionBackfillJobData, -} from 'src/workspace/workspace-query-runner/jobs/record-position-backfill.job'; +} from 'src/engine/graphql/workspace-query-runner/jobs/record-position-backfill.job'; @Injectable() export class RecordPositionListener { diff --git a/packages/twenty-server/src/engine/graphql/workspace-query-runner/services/record-position-backfill-module.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/services/record-position-backfill-module.ts new file mode 100644 index 0000000000..a56ccb85b8 --- /dev/null +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/services/record-position-backfill-module.ts @@ -0,0 +1,17 @@ +import { Module } from '@nestjs/common'; + +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; +import { RecordPositionQueryFactory } from 'src/engine/graphql/workspace-query-builder/factories/record-position-query.factory'; +import { RecordPositionFactory } from 'src/engine/graphql/workspace-query-runner/factories/record-position.factory'; +import { RecordPositionBackfillService } from 'src/engine/graphql/workspace-query-runner/services/record-position-backfill-service'; + +@Module({ + imports: [WorkspaceDataSourceModule], + providers: [ + RecordPositionFactory, + RecordPositionQueryFactory, + RecordPositionBackfillService, + ], + exports: [RecordPositionBackfillService], +}) +export class RecordPositionBackfillModule {} diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/services/record-position-backfill-service.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/services/record-position-backfill-service.ts similarity index 72% rename from packages/twenty-server/src/workspace/workspace-query-runner/services/record-position-backfill-service.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/services/record-position-backfill-service.ts index 762ed1254e..13b7b0e9a4 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/services/record-position-backfill-service.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/services/record-position-backfill-service.ts @@ -1,13 +1,13 @@ import { Injectable } from '@nestjs/common'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; import { RecordPositionQueryFactory, RecordPositionQueryType, -} from 'src/workspace/workspace-query-builder/factories/record-position-query.factory'; -import { RecordPositionFactory } from 'src/workspace/workspace-query-runner/factories/record-position.factory'; +} from 'src/engine/graphql/workspace-query-builder/factories/record-position-query.factory'; +import { RecordPositionFactory } from 'src/engine/graphql/workspace-query-runner/factories/record-position.factory'; @Injectable() export class RecordPositionBackfillService { diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/utils/__tests__/parse-result.spec.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/utils/__tests__/parse-result.spec.ts similarity index 96% rename from packages/twenty-server/src/workspace/workspace-query-runner/utils/__tests__/parse-result.spec.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/utils/__tests__/parse-result.spec.ts index 2e5c67f5ce..0ec0a5d65a 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/utils/__tests__/parse-result.spec.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/utils/__tests__/parse-result.spec.ts @@ -2,7 +2,7 @@ import { isSpecialKey, handleSpecialKey, parseResult, -} from 'src/workspace/workspace-query-runner/utils/parse-result.util'; +} from 'src/engine/graphql/workspace-query-runner/utils/parse-result.util'; describe('isSpecialKey', () => { test('should return true if the key starts with "___"', () => { diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/utils/compute-pg-graphql-error.util.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/utils/compute-pg-graphql-error.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-query-runner/utils/compute-pg-graphql-error.util.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/utils/compute-pg-graphql-error.util.ts diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/utils/parse-result.util.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/utils/parse-result.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-query-runner/utils/parse-result.util.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/utils/parse-result.util.ts diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface.ts similarity index 55% rename from packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface.ts index 37a5fc7117..7ab7f16465 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface.ts @@ -1,4 +1,4 @@ -import { ResolverArgs } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { ResolverArgs } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; export interface WorkspacePreQueryHook { execute( diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/types/workspace-query-hook.type.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/types/workspace-query-hook.type.ts similarity index 92% rename from packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/types/workspace-query-hook.type.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/types/workspace-query-hook.type.ts index 9cc680bdf3..55e731b536 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/types/workspace-query-hook.type.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/types/workspace-query-hook.type.ts @@ -8,7 +8,7 @@ import { FindOneResolverArgs, UpdateManyResolverArgs, UpdateOneResolverArgs, -} from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +} from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; export type ExecutePreHookMethod = | 'createMany' diff --git a/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.config.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.config.ts new file mode 100644 index 0000000000..b3adbf44ac --- /dev/null +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.config.ts @@ -0,0 +1,11 @@ +import { MessageFindManyPreQueryHook } from 'src/business/modules/message/query-hooks/message/message-find-many.pre-query.hook'; +import { MessageFindOnePreQueryHook } from 'src/business/modules/message/query-hooks/message/message-find-one.pre-query-hook'; +import { WorkspaceQueryHook } from 'src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/types/workspace-query-hook.type'; + +// TODO: move to a decorator +export const workspacePreQueryHooks: WorkspaceQueryHook = { + message: { + findOne: [MessageFindOnePreQueryHook.name], + findMany: [MessageFindManyPreQueryHook.name], + }, +}; diff --git a/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.module.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.module.ts new file mode 100644 index 0000000000..a62b078129 --- /dev/null +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; + +import { MessagingQueryHookModule } from 'src/business/modules/message/query-hooks/messaging-query-hook.module'; +import { WorkspacePreQueryHookService } from 'src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.service'; + +@Module({ + imports: [MessagingQueryHookModule], + providers: [WorkspacePreQueryHookService], + exports: [WorkspacePreQueryHookService], +}) +export class WorkspacePreQueryHookModule {} diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.service.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.service.ts similarity index 67% rename from packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.service.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.service.ts index 1b0d61b946..e18fc942f5 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.service.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.service.ts @@ -1,13 +1,13 @@ import { Injectable } from '@nestjs/common'; import { ModuleRef } from '@nestjs/core'; -import { WorkspacePreQueryHook } from 'src/workspace/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface'; +import { WorkspacePreQueryHook } from 'src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/interfaces/workspace-pre-query-hook.interface'; import { ExecutePreHookMethod, WorkspacePreQueryHookPayload, -} from 'src/workspace/workspace-query-runner/workspace-pre-query-hook/types/workspace-query-hook.type'; -import { workspacePreQueryHooks } from 'src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.config'; +} from 'src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/types/workspace-query-hook.type'; +import { workspacePreQueryHooks } from 'src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.config'; @Injectable() export class WorkspacePreQueryHookService { diff --git a/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-query-runner.module.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-query-runner.module.ts new file mode 100644 index 0000000000..4399fc492a --- /dev/null +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-query-runner.module.ts @@ -0,0 +1,24 @@ +import { Module } from '@nestjs/common'; + +import { WorkspaceQueryBuilderModule } from 'src/engine/graphql/workspace-query-builder/workspace-query-builder.module'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; +import { WorkspacePreQueryHookModule } from 'src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.module'; +import { workspaceQueryRunnerFactories } from 'src/engine/graphql/workspace-query-runner/factories'; +import { RecordPositionListener } from 'src/engine/graphql/workspace-query-runner/listeners/record-position.listener'; + +import { WorkspaceQueryRunnerService } from './workspace-query-runner.service'; + +@Module({ + imports: [ + WorkspaceQueryBuilderModule, + WorkspaceDataSourceModule, + WorkspacePreQueryHookModule, + ], + providers: [ + WorkspaceQueryRunnerService, + ...workspaceQueryRunnerFactories, + RecordPositionListener, + ], + exports: [WorkspaceQueryRunnerService], +}) +export class WorkspaceQueryRunnerModule {} diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-query-runner.service.ts b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-query-runner.service.ts similarity index 91% rename from packages/twenty-server/src/workspace/workspace-query-runner/workspace-query-runner.service.ts rename to packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-query-runner.service.ts index 68ba040804..6206bcf09b 100644 --- a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-query-runner.service.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-query-runner/workspace-query-runner.service.ts @@ -13,7 +13,7 @@ import { Record as IRecord, RecordFilter, RecordOrderBy, -} from 'src/workspace/workspace-query-builder/interfaces/record.interface'; +} from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; import { CreateManyResolverArgs, CreateOneResolverArgs, @@ -24,27 +24,27 @@ import { FindOneResolverArgs, UpdateManyResolverArgs, UpdateOneResolverArgs, -} from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +} from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; -import { WorkspaceQueryBuilderFactory } from 'src/workspace/workspace-query-builder/workspace-query-builder.factory'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; +import { WorkspaceQueryBuilderFactory } from 'src/engine/graphql/workspace-query-builder/workspace-query-builder.factory'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { CallWebhookJobsJob, CallWebhookJobsJobData, CallWebhookJobsJobOperation, -} from 'src/workspace/workspace-query-runner/jobs/call-webhook-jobs.job'; -import { parseResult } from 'src/workspace/workspace-query-runner/utils/parse-result.util'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; +} from 'src/engine/graphql/workspace-query-runner/jobs/call-webhook-jobs.job'; +import { parseResult } from 'src/engine/graphql/workspace-query-runner/utils/parse-result.util'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; import { ObjectRecordDeleteEvent } from 'src/integrations/event-emitter/types/object-record-delete.event'; import { ObjectRecordCreateEvent } from 'src/integrations/event-emitter/types/object-record-create.event'; import { ObjectRecordUpdateEvent } from 'src/integrations/event-emitter/types/object-record-update.event'; -import { WorkspacePreQueryHookService } from 'src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.service'; +import { WorkspacePreQueryHookService } from 'src/engine/graphql/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.service'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { NotFoundError } from 'src/filters/utils/graphql-errors.util'; -import { QueryRunnerArgsFactory } from 'src/workspace/workspace-query-runner/factories/query-runner-args.factory'; +import { NotFoundError } from 'src/engine/filters/utils/graphql-errors.util'; +import { QueryRunnerArgsFactory } from 'src/engine/graphql/workspace-query-runner/factories/query-runner-args.factory'; import { WorkspaceQueryRunnerOptions } from './interfaces/query-runner-option.interface'; import { @@ -306,8 +306,9 @@ export class WorkspaceQueryRunnerService { options: WorkspaceQueryRunnerOptions, ): Promise { const { workspaceId, objectMetadataItem } = options; - const maximumRecordAffected = - this.environmentService.get('MUTATION_MAXIMUM_RECORD_AFFECTED'); + const maximumRecordAffected = this.environmentService.get( + 'MUTATION_MAXIMUM_RECORD_AFFECTED', + ); const query = await this.workspaceQueryBuilderFactory.updateMany(args, { ...options, atMost: maximumRecordAffected, @@ -338,8 +339,9 @@ export class WorkspaceQueryRunnerService { options: WorkspaceQueryRunnerOptions, ): Promise { const { workspaceId, objectMetadataItem } = options; - const maximumRecordAffected = - this.environmentService.get('MUTATION_MAXIMUM_RECORD_AFFECTED'); + const maximumRecordAffected = this.environmentService.get( + 'MUTATION_MAXIMUM_RECORD_AFFECTED', + ); const query = await this.workspaceQueryBuilderFactory.deleteMany(args, { ...options, atMost: maximumRecordAffected, diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/constants/duplicate-criteria.constants.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/constants/duplicate-criteria.constants.ts similarity index 87% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/constants/duplicate-criteria.constants.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/constants/duplicate-criteria.constants.ts index e9abb45b14..dd7193745c 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/constants/duplicate-criteria.constants.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/constants/duplicate-criteria.constants.ts @@ -1,4 +1,4 @@ -import { RecordDuplicateCriteria } from 'src/workspace/workspace-query-builder/interfaces/record.interface'; +import { RecordDuplicateCriteria } from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; /** * objectName: directly reference the name of the object from the metadata tables. diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/create-many-resolver.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/create-many-resolver.factory.ts similarity index 63% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/factories/create-many-resolver.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/create-many-resolver.factory.ts index eb606ee235..53f3f90491 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/create-many-resolver.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/create-many-resolver.factory.ts @@ -3,11 +3,11 @@ import { Injectable } from '@nestjs/common'; import { CreateManyResolverArgs, Resolver, -} from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { WorkspaceSchemaBuilderContext } from 'src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; -import { WorkspaceResolverBuilderFactoryInterface } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; +} from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceSchemaBuilderContext } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; +import { WorkspaceResolverBuilderFactoryInterface } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; -import { WorkspaceQueryRunnerService } from 'src/workspace/workspace-query-runner/workspace-query-runner.service'; +import { WorkspaceQueryRunnerService } from 'src/engine/graphql/workspace-query-runner/workspace-query-runner.service'; @Injectable() export class CreateManyResolverFactory diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/create-one-resolver.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/create-one-resolver.factory.ts similarity index 63% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/factories/create-one-resolver.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/create-one-resolver.factory.ts index f895db2dee..37845421bf 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/create-one-resolver.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/create-one-resolver.factory.ts @@ -3,11 +3,11 @@ import { Injectable } from '@nestjs/common'; import { CreateOneResolverArgs, Resolver, -} from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { WorkspaceSchemaBuilderContext } from 'src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; -import { WorkspaceResolverBuilderFactoryInterface } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; +} from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceSchemaBuilderContext } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; +import { WorkspaceResolverBuilderFactoryInterface } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; -import { WorkspaceQueryRunnerService } from 'src/workspace/workspace-query-runner/workspace-query-runner.service'; +import { WorkspaceQueryRunnerService } from 'src/engine/graphql/workspace-query-runner/workspace-query-runner.service'; @Injectable() export class CreateOneResolverFactory diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/delete-many-resolver.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/delete-many-resolver.factory.ts similarity index 63% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/factories/delete-many-resolver.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/delete-many-resolver.factory.ts index 37deb71910..6f55c21102 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/delete-many-resolver.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/delete-many-resolver.factory.ts @@ -3,11 +3,11 @@ import { Injectable } from '@nestjs/common'; import { DeleteManyResolverArgs, Resolver, -} from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { WorkspaceSchemaBuilderContext } from 'src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; -import { WorkspaceResolverBuilderFactoryInterface } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; +} from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceSchemaBuilderContext } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; +import { WorkspaceResolverBuilderFactoryInterface } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; -import { WorkspaceQueryRunnerService } from 'src/workspace/workspace-query-runner/workspace-query-runner.service'; +import { WorkspaceQueryRunnerService } from 'src/engine/graphql/workspace-query-runner/workspace-query-runner.service'; @Injectable() export class DeleteManyResolverFactory diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/delete-one-resolver.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/delete-one-resolver.factory.ts similarity index 63% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/factories/delete-one-resolver.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/delete-one-resolver.factory.ts index 28c5706d06..6d3ff14adb 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/delete-one-resolver.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/delete-one-resolver.factory.ts @@ -3,11 +3,11 @@ import { Injectable } from '@nestjs/common'; import { DeleteOneResolverArgs, Resolver, -} from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { WorkspaceSchemaBuilderContext } from 'src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; -import { WorkspaceResolverBuilderFactoryInterface } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; +} from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceSchemaBuilderContext } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; +import { WorkspaceResolverBuilderFactoryInterface } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; -import { WorkspaceQueryRunnerService } from 'src/workspace/workspace-query-runner/workspace-query-runner.service'; +import { WorkspaceQueryRunnerService } from 'src/engine/graphql/workspace-query-runner/workspace-query-runner.service'; @Injectable() export class DeleteOneResolverFactory diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/execute-quick-action-on-one-resolver.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/execute-quick-action-on-one-resolver.factory.ts similarity index 69% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/factories/execute-quick-action-on-one-resolver.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/execute-quick-action-on-one-resolver.factory.ts index a2138d0030..c99f023c4c 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/execute-quick-action-on-one-resolver.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/execute-quick-action-on-one-resolver.factory.ts @@ -5,14 +5,14 @@ import { FindOneResolverArgs, ExecuteQuickActionOnOneResolverArgs, DeleteOneResolverArgs, -} from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { Record as IRecord } from 'src/workspace/workspace-query-builder/interfaces/record.interface'; -import { WorkspaceSchemaBuilderContext } from 'src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; -import { WorkspaceResolverBuilderFactoryInterface } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; -import { WorkspaceQueryRunnerOptions } from 'src/workspace/workspace-query-runner/interfaces/query-runner-option.interface'; +} from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { Record as IRecord } from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; +import { WorkspaceSchemaBuilderContext } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; +import { WorkspaceResolverBuilderFactoryInterface } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; +import { WorkspaceQueryRunnerOptions } from 'src/engine/graphql/workspace-query-runner/interfaces/query-runner-option.interface'; -import { WorkspaceQueryRunnerService } from 'src/workspace/workspace-query-runner/workspace-query-runner.service'; -import { QuickActionsService } from 'src/core/quick-actions/quick-actions.service'; +import { WorkspaceQueryRunnerService } from 'src/engine/graphql/workspace-query-runner/workspace-query-runner.service'; +import { QuickActionsService } from 'src/engine/modules/quick-actions/quick-actions.service'; @Injectable() export class ExecuteQuickActionOnOneResolverFactory diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/factories.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/factories.ts similarity index 92% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/factories/factories.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/factories.ts index 2ee2f27064..da369eeddd 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/factories.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/factories.ts @@ -1,4 +1,4 @@ -import { UpdateManyResolverFactory } from 'src/workspace/workspace-resolver-builder/factories/update-many-resolver.factory'; +import { UpdateManyResolverFactory } from 'src/engine/graphql/workspace-resolver-builder/factories/update-many-resolver.factory'; import { FindDuplicatesResolverFactory } from './find-duplicates-resolver.factory'; import { FindManyResolverFactory } from './find-many-resolver.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/find-duplicates-resolver.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/find-duplicates-resolver.factory.ts similarity index 64% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/factories/find-duplicates-resolver.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/find-duplicates-resolver.factory.ts index 3d2e3ac185..edb4edcf95 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/find-duplicates-resolver.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/find-duplicates-resolver.factory.ts @@ -3,11 +3,11 @@ import { Injectable } from '@nestjs/common'; import { FindDuplicatesResolverArgs, Resolver, -} from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { WorkspaceSchemaBuilderContext } from 'src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; -import { WorkspaceResolverBuilderFactoryInterface } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; +} from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceSchemaBuilderContext } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; +import { WorkspaceResolverBuilderFactoryInterface } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; -import { WorkspaceQueryRunnerService } from 'src/workspace/workspace-query-runner/workspace-query-runner.service'; +import { WorkspaceQueryRunnerService } from 'src/engine/graphql/workspace-query-runner/workspace-query-runner.service'; @Injectable() export class FindDuplicatesResolverFactory diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/find-many-resolver.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/find-many-resolver.factory.ts similarity index 63% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/factories/find-many-resolver.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/find-many-resolver.factory.ts index 3009ea39e3..686dd4b0f2 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/find-many-resolver.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/find-many-resolver.factory.ts @@ -3,11 +3,11 @@ import { Injectable } from '@nestjs/common'; import { FindManyResolverArgs, Resolver, -} from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { WorkspaceSchemaBuilderContext } from 'src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; -import { WorkspaceResolverBuilderFactoryInterface } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; +} from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceSchemaBuilderContext } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; +import { WorkspaceResolverBuilderFactoryInterface } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; -import { WorkspaceQueryRunnerService } from 'src/workspace/workspace-query-runner/workspace-query-runner.service'; +import { WorkspaceQueryRunnerService } from 'src/engine/graphql/workspace-query-runner/workspace-query-runner.service'; @Injectable() export class FindManyResolverFactory diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/find-one-resolver.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/find-one-resolver.factory.ts similarity index 63% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/factories/find-one-resolver.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/find-one-resolver.factory.ts index 114b8ef4e5..83d4294a10 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/find-one-resolver.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/find-one-resolver.factory.ts @@ -3,11 +3,11 @@ import { Injectable } from '@nestjs/common'; import { FindOneResolverArgs, Resolver, -} from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { WorkspaceSchemaBuilderContext } from 'src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; -import { WorkspaceResolverBuilderFactoryInterface } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; +} from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceSchemaBuilderContext } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; +import { WorkspaceResolverBuilderFactoryInterface } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; -import { WorkspaceQueryRunnerService } from 'src/workspace/workspace-query-runner/workspace-query-runner.service'; +import { WorkspaceQueryRunnerService } from 'src/engine/graphql/workspace-query-runner/workspace-query-runner.service'; @Injectable() export class FindOneResolverFactory diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/update-many-resolver.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/update-many-resolver.factory.ts similarity index 63% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/factories/update-many-resolver.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/update-many-resolver.factory.ts index ba3d79c34a..4f4904bafd 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/update-many-resolver.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/update-many-resolver.factory.ts @@ -3,11 +3,11 @@ import { Injectable } from '@nestjs/common'; import { Resolver, UpdateManyResolverArgs, -} from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { WorkspaceSchemaBuilderContext } from 'src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; -import { WorkspaceResolverBuilderFactoryInterface } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; +} from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceSchemaBuilderContext } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; +import { WorkspaceResolverBuilderFactoryInterface } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; -import { WorkspaceQueryRunnerService } from 'src/workspace/workspace-query-runner/workspace-query-runner.service'; +import { WorkspaceQueryRunnerService } from 'src/engine/graphql/workspace-query-runner/workspace-query-runner.service'; @Injectable() export class UpdateManyResolverFactory diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/update-one-resolver.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/update-one-resolver.factory.ts similarity index 63% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/factories/update-one-resolver.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/update-one-resolver.factory.ts index a6ba683669..751963e9fe 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/factories/update-one-resolver.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/factories/update-one-resolver.factory.ts @@ -3,11 +3,11 @@ import { Injectable } from '@nestjs/common'; import { Resolver, UpdateOneResolverArgs, -} from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { WorkspaceSchemaBuilderContext } from 'src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; -import { WorkspaceResolverBuilderFactoryInterface } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; +} from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceSchemaBuilderContext } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; +import { WorkspaceResolverBuilderFactoryInterface } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface'; -import { WorkspaceQueryRunnerService } from 'src/workspace/workspace-query-runner/workspace-query-runner.service'; +import { WorkspaceQueryRunnerService } from 'src/engine/graphql/workspace-query-runner/workspace-query-runner.service'; @Injectable() export class UpdateOneResolverFactory diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/interfaces/pg-graphql.interface.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/interfaces/pg-graphql.interface.ts similarity index 70% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/interfaces/pg-graphql.interface.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/interfaces/pg-graphql.interface.ts index 4bca0075e2..f5f7256622 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/interfaces/pg-graphql.interface.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/interfaces/pg-graphql.interface.ts @@ -1,4 +1,4 @@ -import { Record as IRecord } from 'src/workspace/workspace-query-builder/interfaces/record.interface'; +import { Record as IRecord } from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; export interface PGGraphQLResponse { resolve: { diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface.ts similarity index 56% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface.ts index d1c8800399..848847abee 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolver-builder-factory.interface.ts @@ -1,4 +1,4 @@ -import { WorkspaceSchemaBuilderContext } from 'src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; +import { WorkspaceSchemaBuilderContext } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface'; import { Resolver } from './workspace-resolvers-builder.interface'; diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface.ts similarity index 91% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface.ts index 66675ee6b1..78355c86b9 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface.ts @@ -4,9 +4,9 @@ import { Record, RecordFilter, RecordOrderBy, -} from 'src/workspace/workspace-query-builder/interfaces/record.interface'; +} from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; -import { workspaceResolverBuilderMethodNames } from 'src/workspace/workspace-resolver-builder/factories/factories'; +import { workspaceResolverBuilderMethodNames } from 'src/engine/graphql/workspace-resolver-builder/factories/factories'; export type Resolver = GraphQLFieldResolver; diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/workspace-resolver-builder.module.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/workspace-resolver-builder.module.ts similarity index 67% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/workspace-resolver-builder.module.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/workspace-resolver-builder.module.ts index 2e6e1dccdf..34eed955d0 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/workspace-resolver-builder.module.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/workspace-resolver-builder.module.ts @@ -1,7 +1,7 @@ import { Module } from '@nestjs/common'; -import { WorkspaceQueryRunnerModule } from 'src/workspace/workspace-query-runner/workspace-query-runner.module'; -import { QuickActionsModule } from 'src/core/quick-actions/quick-actions.module'; +import { WorkspaceQueryRunnerModule } from 'src/engine/graphql/workspace-query-runner/workspace-query-runner.module'; +import { QuickActionsModule } from 'src/engine/modules/quick-actions/quick-actions.module'; import { WorkspaceResolverFactory } from './workspace-resolver.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-resolver-builder/workspace-resolver.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/workspace-resolver.factory.ts similarity index 88% rename from packages/twenty-server/src/workspace/workspace-resolver-builder/workspace-resolver.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-resolver-builder/workspace-resolver.factory.ts index ff955425e2..096aae9b75 100644 --- a/packages/twenty-server/src/workspace/workspace-resolver-builder/workspace-resolver.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-resolver-builder/workspace-resolver.factory.ts @@ -2,12 +2,12 @@ import { Injectable, Logger } from '@nestjs/common'; import { IResolvers } from '@graphql-tools/utils'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; -import { getResolverName } from 'src/workspace/utils/get-resolver-name.util'; -import { UpdateManyResolverFactory } from 'src/workspace/workspace-resolver-builder/factories/update-many-resolver.factory'; -import { DeleteManyResolverFactory } from 'src/workspace/workspace-resolver-builder/factories/delete-many-resolver.factory'; -import { ExecuteQuickActionOnOneResolverFactory } from 'src/workspace/workspace-resolver-builder/factories/execute-quick-action-on-one-resolver.factory'; +import { getResolverName } from 'src/engine-workspace/utils/get-resolver-name.util'; +import { UpdateManyResolverFactory } from 'src/engine/graphql/workspace-resolver-builder/factories/update-many-resolver.factory'; +import { DeleteManyResolverFactory } from 'src/engine/graphql/workspace-resolver-builder/factories/delete-many-resolver.factory'; +import { ExecuteQuickActionOnOneResolverFactory } from 'src/engine/graphql/workspace-resolver-builder/factories/execute-quick-action-on-one-resolver.factory'; import { FindDuplicatesResolverFactory } from './factories/find-duplicates-resolver.factory'; import { FindManyResolverFactory } from './factories/find-many-resolver.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/args.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/args.factory.ts similarity index 82% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/args.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/args.factory.ts index 646f31ce07..5940e3b64a 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/args.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/args.factory.ts @@ -2,11 +2,11 @@ import { Injectable, Logger } from '@nestjs/common'; import { GraphQLFieldConfigArgumentMap } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { ArgsMetadata } from 'src/workspace/workspace-schema-builder/interfaces/param-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { ArgsMetadata } from 'src/engine/graphql/workspace-schema-builder/interfaces/param-metadata.interface'; -import { TypeDefinitionsStorage } from 'src/workspace/workspace-schema-builder/storages/type-definitions.storage'; -import { TypeMapperService } from 'src/workspace/workspace-schema-builder/services/type-mapper.service'; +import { TypeDefinitionsStorage } from 'src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage'; +import { TypeMapperService } from 'src/engine/graphql/workspace-schema-builder/services/type-mapper.service'; @Injectable() export class ArgsFactory { diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/connection-type-definition.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/connection-type-definition.factory.ts similarity index 88% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/connection-type-definition.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/connection-type-definition.factory.ts index 5d40ca1dbb..beecc865ac 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/connection-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/connection-type-definition.factory.ts @@ -2,8 +2,8 @@ import { Injectable, Logger } from '@nestjs/common'; import { GraphQLFieldConfigMap, GraphQLInt, GraphQLObjectType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { pascalCase } from 'src/utils/pascal-case'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/connection-type.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/connection-type.factory.ts similarity index 73% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/connection-type.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/connection-type.factory.ts index 05256efa4c..13ea80d236 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/connection-type.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/connection-type.factory.ts @@ -2,15 +2,15 @@ import { Injectable, Logger } from '@nestjs/common'; import { GraphQLOutputType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { TypeMapperService, TypeOptions, -} from 'src/workspace/workspace-schema-builder/services/type-mapper.service'; -import { TypeDefinitionsStorage } from 'src/workspace/workspace-schema-builder/storages/type-definitions.storage'; -import { PageInfoType } from 'src/workspace/workspace-schema-builder/graphql-types/object'; +} from 'src/engine/graphql/workspace-schema-builder/services/type-mapper.service'; +import { TypeDefinitionsStorage } from 'src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage'; +import { PageInfoType } from 'src/engine/graphql/workspace-schema-builder/graphql-types/object'; import { ConnectionTypeDefinitionKind } from './connection-type-definition.factory'; import { ObjectTypeDefinitionKind } from './object-type-definition.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/edge-type-definition.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/edge-type-definition.factory.ts similarity index 87% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/edge-type-definition.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/edge-type-definition.factory.ts index 5cecd9320b..61e2dab449 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/edge-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/edge-type-definition.factory.ts @@ -2,8 +2,8 @@ import { Injectable, Logger } from '@nestjs/common'; import { GraphQLFieldConfigMap, GraphQLObjectType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { pascalCase } from 'src/utils/pascal-case'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/edge-type.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/edge-type.factory.ts similarity index 72% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/edge-type.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/edge-type.factory.ts index 003c29ce12..65b7fe94a9 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/edge-type.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/edge-type.factory.ts @@ -2,15 +2,15 @@ import { Injectable, Logger } from '@nestjs/common'; import { GraphQLOutputType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { TypeMapperService, TypeOptions, -} from 'src/workspace/workspace-schema-builder/services/type-mapper.service'; -import { TypeDefinitionsStorage } from 'src/workspace/workspace-schema-builder/storages/type-definitions.storage'; -import { CursorScalarType } from 'src/workspace/workspace-schema-builder/graphql-types/scalars'; +} from 'src/engine/graphql/workspace-schema-builder/services/type-mapper.service'; +import { TypeDefinitionsStorage } from 'src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage'; +import { CursorScalarType } from 'src/engine/graphql/workspace-schema-builder/graphql-types/scalars'; import { ObjectTypeDefinitionKind } from './object-type-definition.factory'; import { EdgeTypeDefinitionKind } from './edge-type-definition.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/enum-type-definition.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/enum-type-definition.factory.ts similarity index 80% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/enum-type-definition.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/enum-type-definition.factory.ts index 778a5f74e6..1a2cd5889c 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/enum-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/enum-type-definition.factory.ts @@ -2,16 +2,16 @@ import { Injectable, Logger } from '@nestjs/common'; import { GraphQLEnumType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; import { pascalCase } from 'src/utils/pascal-case'; import { FieldMetadataComplexOption, FieldMetadataDefaultOption, -} from 'src/metadata/field-metadata/dtos/options.input'; -import { isEnumFieldMetadataType } from 'src/metadata/field-metadata/utils/is-enum-field-metadata-type.util'; +} from 'src/engine-metadata/field-metadata/dtos/options.input'; +import { isEnumFieldMetadataType } from 'src/engine-metadata/field-metadata/utils/is-enum-field-metadata-type.util'; export interface EnumTypeDefinition { target: string; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/extend-object-type-definition.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/extend-object-type-definition.factory.ts similarity index 82% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/extend-object-type-definition.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/extend-object-type-definition.factory.ts index f288a74b3e..2a66698099 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/extend-object-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/extend-object-type-definition.factory.ts @@ -6,18 +6,18 @@ import { GraphQLObjectType, } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; -import { TypeDefinitionsStorage } from 'src/workspace/workspace-schema-builder/storages/type-definitions.storage'; -import { objectContainsRelationField } from 'src/workspace/workspace-schema-builder/utils/object-contains-relation-field'; -import { getResolverArgs } from 'src/workspace/workspace-schema-builder/utils/get-resolver-args.util'; -import { isRelationFieldMetadataType } from 'src/workspace/utils/is-relation-field-metadata-type.util'; +import { TypeDefinitionsStorage } from 'src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage'; +import { objectContainsRelationField } from 'src/engine/graphql/workspace-schema-builder/utils/object-contains-relation-field'; +import { getResolverArgs } from 'src/engine/graphql/workspace-schema-builder/utils/get-resolver-args.util'; +import { isRelationFieldMetadataType } from 'src/engine-workspace/utils/is-relation-field-metadata-type.util'; import { RelationDirection, deduceRelationDirection, -} from 'src/workspace/utils/deduce-relation-direction.util'; -import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; +} from 'src/engine-workspace/utils/deduce-relation-direction.util'; +import { RelationMetadataType } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; import { RelationTypeFactory } from './relation-type.factory'; import { ArgsFactory } from './args.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/factories.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/factories.ts similarity index 93% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/factories.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/factories.ts index 3d9feba653..65fafba8dc 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/factories.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/factories.ts @@ -1,4 +1,4 @@ -import { EnumTypeDefinitionFactory } from 'src/workspace/workspace-schema-builder/factories/enum-type-definition.factory'; +import { EnumTypeDefinitionFactory } from 'src/engine/graphql/workspace-schema-builder/factories/enum-type-definition.factory'; import { ArgsFactory } from './args.factory'; import { InputTypeFactory } from './input-type.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/filter-type-definition.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/filter-type-definition.factory.ts similarity index 83% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/filter-type-definition.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/filter-type-definition.factory.ts index 934aadd5c3..46aff0b726 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/filter-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/filter-type-definition.factory.ts @@ -2,12 +2,12 @@ import { Injectable } from '@nestjs/common'; import { GraphQLInputFieldConfigMap, GraphQLInputObjectType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { pascalCase } from 'src/utils/pascal-case'; -import { TypeMapperService } from 'src/workspace/workspace-schema-builder/services/type-mapper.service'; -import { isRelationFieldMetadataType } from 'src/workspace/utils/is-relation-field-metadata-type.util'; +import { TypeMapperService } from 'src/engine/graphql/workspace-schema-builder/services/type-mapper.service'; +import { isRelationFieldMetadataType } from 'src/engine-workspace/utils/is-relation-field-metadata-type.util'; import { FilterTypeFactory } from './filter-type.factory'; import { diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/filter-type.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/filter-type.factory.ts similarity index 75% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/filter-type.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/filter-type.factory.ts index 434f2c1381..cd621fd757 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/filter-type.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/filter-type.factory.ts @@ -7,17 +7,17 @@ import { GraphQLScalarType, } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; import { TypeMapperService, TypeOptions, -} from 'src/workspace/workspace-schema-builder/services/type-mapper.service'; -import { TypeDefinitionsStorage } from 'src/workspace/workspace-schema-builder/storages/type-definitions.storage'; -import { isCompositeFieldMetadataType } from 'src/metadata/field-metadata/utils/is-composite-field-metadata-type.util'; -import { isEnumFieldMetadataType } from 'src/metadata/field-metadata/utils/is-enum-field-metadata-type.util'; -import { FilterIs } from 'src/workspace/workspace-schema-builder/graphql-types/input/filter-is.input-type'; +} from 'src/engine/graphql/workspace-schema-builder/services/type-mapper.service'; +import { TypeDefinitionsStorage } from 'src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage'; +import { isCompositeFieldMetadataType } from 'src/engine-metadata/field-metadata/utils/is-composite-field-metadata-type.util'; +import { isEnumFieldMetadataType } from 'src/engine-metadata/field-metadata/utils/is-enum-field-metadata-type.util'; +import { FilterIs } from 'src/engine/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type'; import { InputTypeDefinitionKind } from './input-type-definition.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/input-type-definition.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/input-type-definition.factory.ts similarity index 81% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/input-type-definition.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/input-type-definition.factory.ts index d10fa4f033..4f8bc56463 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/input-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/input-type-definition.factory.ts @@ -2,12 +2,12 @@ import { Injectable } from '@nestjs/common'; import { GraphQLInputFieldConfigMap, GraphQLInputObjectType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { pascalCase } from 'src/utils/pascal-case'; -import { isRelationFieldMetadataType } from 'src/workspace/utils/is-relation-field-metadata-type.util'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { isRelationFieldMetadataType } from 'src/engine-workspace/utils/is-relation-field-metadata-type.util'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { InputTypeFactory } from './input-type.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/input-type.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/input-type.factory.ts similarity index 72% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/input-type.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/input-type.factory.ts index 2bd22552bd..8b38786188 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/input-type.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/input-type.factory.ts @@ -2,15 +2,15 @@ import { Injectable, Logger } from '@nestjs/common'; import { GraphQLInputType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; import { TypeMapperService, TypeOptions, -} from 'src/workspace/workspace-schema-builder/services/type-mapper.service'; -import { TypeDefinitionsStorage } from 'src/workspace/workspace-schema-builder/storages/type-definitions.storage'; -import { isCompositeFieldMetadataType } from 'src/metadata/field-metadata/utils/is-composite-field-metadata-type.util'; +} from 'src/engine/graphql/workspace-schema-builder/services/type-mapper.service'; +import { TypeDefinitionsStorage } from 'src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage'; +import { isCompositeFieldMetadataType } from 'src/engine-metadata/field-metadata/utils/is-composite-field-metadata-type.util'; import { InputTypeDefinitionKind } from './input-type-definition.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/mutation-type.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/mutation-type.factory.ts similarity index 67% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/mutation-type.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/mutation-type.factory.ts index 5a5fbddcd2..b527311252 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/mutation-type.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/mutation-type.factory.ts @@ -2,9 +2,9 @@ import { Injectable } from '@nestjs/common'; import { GraphQLObjectType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { WorkspaceResolverBuilderMutationMethodNames } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { WorkspaceResolverBuilderMutationMethodNames } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { ObjectTypeName, RootTypeFactory } from './root-type.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/object-type-definition.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/object-type-definition.factory.ts similarity index 80% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/object-type-definition.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/object-type-definition.factory.ts index af30aea5c0..c97632e29f 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/object-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/object-type-definition.factory.ts @@ -2,12 +2,12 @@ import { Injectable } from '@nestjs/common'; import { GraphQLFieldConfigMap, GraphQLObjectType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { pascalCase } from 'src/utils/pascal-case'; -import { isRelationFieldMetadataType } from 'src/workspace/utils/is-relation-field-metadata-type.util'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { isRelationFieldMetadataType } from 'src/engine-workspace/utils/is-relation-field-metadata-type.util'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { OutputTypeFactory } from './output-type.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/order-by-type-definition.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/order-by-type-definition.factory.ts similarity index 82% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/order-by-type-definition.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/order-by-type-definition.factory.ts index 29c5bc8e99..fc079c31c5 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/order-by-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/order-by-type-definition.factory.ts @@ -2,11 +2,11 @@ import { Injectable } from '@nestjs/common'; import { GraphQLInputFieldConfigMap, GraphQLInputObjectType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { pascalCase } from 'src/utils/pascal-case'; -import { isRelationFieldMetadataType } from 'src/workspace/utils/is-relation-field-metadata-type.util'; +import { isRelationFieldMetadataType } from 'src/engine-workspace/utils/is-relation-field-metadata-type.util'; import { InputTypeDefinition, diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/order-by-type.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/order-by-type.factory.ts similarity index 69% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/order-by-type.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/order-by-type.factory.ts index 21eb11460c..0175c9b03a 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/order-by-type.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/order-by-type.factory.ts @@ -2,15 +2,15 @@ import { Injectable, Logger } from '@nestjs/common'; import { GraphQLInputType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; import { TypeMapperService, TypeOptions, -} from 'src/workspace/workspace-schema-builder/services/type-mapper.service'; -import { TypeDefinitionsStorage } from 'src/workspace/workspace-schema-builder/storages/type-definitions.storage'; -import { isCompositeFieldMetadataType } from 'src/metadata/field-metadata/utils/is-composite-field-metadata-type.util'; +} from 'src/engine/graphql/workspace-schema-builder/services/type-mapper.service'; +import { TypeDefinitionsStorage } from 'src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage'; +import { isCompositeFieldMetadataType } from 'src/engine-metadata/field-metadata/utils/is-composite-field-metadata-type.util'; import { InputTypeDefinitionKind } from './input-type-definition.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/orphaned-types.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/orphaned-types.factory.ts similarity index 82% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/orphaned-types.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/orphaned-types.factory.ts index 72e767a4b8..6cff06f660 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/orphaned-types.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/orphaned-types.factory.ts @@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common'; import { GraphQLNamedType } from 'graphql'; -import { TypeDefinitionsStorage } from 'src/workspace/workspace-schema-builder/storages/type-definitions.storage'; +import { TypeDefinitionsStorage } from 'src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage'; @Injectable() export class OrphanedTypesFactory { diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/output-type.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/output-type.factory.ts similarity index 71% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/output-type.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/output-type.factory.ts index 5f2883f077..127f8e30e8 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/output-type.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/output-type.factory.ts @@ -2,15 +2,15 @@ import { Injectable, Logger } from '@nestjs/common'; import { GraphQLOutputType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; import { TypeMapperService, TypeOptions, -} from 'src/workspace/workspace-schema-builder/services/type-mapper.service'; -import { TypeDefinitionsStorage } from 'src/workspace/workspace-schema-builder/storages/type-definitions.storage'; -import { isCompositeFieldMetadataType } from 'src/metadata/field-metadata/utils/is-composite-field-metadata-type.util'; +} from 'src/engine/graphql/workspace-schema-builder/services/type-mapper.service'; +import { TypeDefinitionsStorage } from 'src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage'; +import { isCompositeFieldMetadataType } from 'src/engine-metadata/field-metadata/utils/is-composite-field-metadata-type.util'; import { ObjectTypeDefinitionKind } from './object-type-definition.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/query-type.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/query-type.factory.ts similarity index 61% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/query-type.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/query-type.factory.ts index b837db1798..981a4becae 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/query-type.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/query-type.factory.ts @@ -2,9 +2,9 @@ import { Injectable } from '@nestjs/common'; import { GraphQLObjectType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { WorkspaceResolverBuilderQueryMethodNames } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { WorkspaceResolverBuilderQueryMethodNames } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { ObjectTypeName, RootTypeFactory } from './root-type.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/relation-type.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/relation-type.factory.ts similarity index 74% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/relation-type.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/relation-type.factory.ts index 266c08ac2c..b93ae26a54 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/relation-type.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/relation-type.factory.ts @@ -2,12 +2,12 @@ import { Injectable, Logger } from '@nestjs/common'; import { GraphQLOutputType } from 'graphql'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; -import { RelationMetadataInterface } from 'src/metadata/field-metadata/interfaces/relation-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; +import { RelationMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/relation-metadata.interface'; -import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { TypeDefinitionsStorage } from 'src/workspace/workspace-schema-builder/storages/type-definitions.storage'; -import { RelationDirection } from 'src/workspace/utils/deduce-relation-direction.util'; +import { RelationMetadataType } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { TypeDefinitionsStorage } from 'src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage'; +import { RelationDirection } from 'src/engine-workspace/utils/deduce-relation-direction.util'; import { ObjectTypeDefinitionKind } from './object-type-definition.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/root-type.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/root-type.factory.ts similarity index 79% rename from packages/twenty-server/src/workspace/workspace-schema-builder/factories/root-type.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/root-type.factory.ts index d7fd5e627d..ae2a768ff3 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/factories/root-type.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/factories/root-type.factory.ts @@ -2,14 +2,14 @@ import { Injectable, Logger } from '@nestjs/common'; import { GraphQLFieldConfigMap, GraphQLObjectType } from 'graphql'; -import { WorkspaceBuildSchemaOptions } from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { WorkspaceResolverBuilderMethodNames } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceBuildSchemaOptions } from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +import { WorkspaceResolverBuilderMethodNames } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; -import { TypeDefinitionsStorage } from 'src/workspace/workspace-schema-builder/storages/type-definitions.storage'; -import { getResolverName } from 'src/workspace/utils/get-resolver-name.util'; -import { getResolverArgs } from 'src/workspace/workspace-schema-builder/utils/get-resolver-args.util'; -import { TypeMapperService } from 'src/workspace/workspace-schema-builder/services/type-mapper.service'; +import { TypeDefinitionsStorage } from 'src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage'; +import { getResolverName } from 'src/engine-workspace/utils/get-resolver-name.util'; +import { getResolverArgs } from 'src/engine/graphql/workspace-schema-builder/utils/get-resolver-args.util'; +import { TypeMapperService } from 'src/engine/graphql/workspace-schema-builder/services/type-mapper.service'; import { ArgsFactory } from './args.factory'; import { ObjectTypeDefinitionKind } from './object-type-definition.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/enum/index.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/enum/index.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/enum/index.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/enum/index.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/enum/order-by-direction.enum-type.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/enum/order-by-direction.enum-type.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/enum/order-by-direction.enum-type.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/enum/order-by-direction.enum-type.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/big-float-filter.input-type.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/big-float-filter.input-type.ts similarity index 70% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/big-float-filter.input-type.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/big-float-filter.input-type.ts index 31d68e36bb..895e9981ee 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/big-float-filter.input-type.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/big-float-filter.input-type.ts @@ -1,7 +1,7 @@ import { GraphQLInputObjectType, GraphQLList, GraphQLNonNull } from 'graphql'; -import { FilterIs } from 'src/workspace/workspace-schema-builder/graphql-types/input/filter-is.input-type'; -import { BigFloatScalarType } from 'src/workspace/workspace-schema-builder/graphql-types/scalars'; +import { FilterIs } from 'src/engine/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type'; +import { BigFloatScalarType } from 'src/engine/graphql/workspace-schema-builder/graphql-types/scalars'; export const BigFloatFilterType = new GraphQLInputObjectType({ name: 'BigFloatFilter', diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/big-int-filter.input-type.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/big-int-filter.input-type.ts similarity index 81% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/big-int-filter.input-type.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/big-int-filter.input-type.ts index e93eb2c7ae..fe0254f4e9 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/big-int-filter.input-type.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/big-int-filter.input-type.ts @@ -5,7 +5,7 @@ import { GraphQLInt, } from 'graphql'; -import { FilterIs } from 'src/workspace/workspace-schema-builder/graphql-types/input/filter-is.input-type'; +import { FilterIs } from 'src/engine/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type'; export const BigIntFilterType = new GraphQLInputObjectType({ name: 'BigIntFilter', diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/boolean-filter.input-type.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/boolean-filter.input-type.ts similarity index 67% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/boolean-filter.input-type.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/boolean-filter.input-type.ts index 6439478b81..ba3bfb0402 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/boolean-filter.input-type.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/boolean-filter.input-type.ts @@ -1,6 +1,6 @@ import { GraphQLBoolean, GraphQLInputObjectType } from 'graphql'; -import { FilterIs } from 'src/workspace/workspace-schema-builder/graphql-types/input/filter-is.input-type'; +import { FilterIs } from 'src/engine/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type'; export const BooleanFilterType = new GraphQLInputObjectType({ name: 'BooleanFilter', diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/date-filter.input-type.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/date-filter.input-type.ts similarity index 69% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/date-filter.input-type.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/date-filter.input-type.ts index 0ab2ef7be3..159e530ada 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/date-filter.input-type.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/date-filter.input-type.ts @@ -1,7 +1,7 @@ import { GraphQLInputObjectType, GraphQLList, GraphQLNonNull } from 'graphql'; -import { FilterIs } from 'src/workspace/workspace-schema-builder/graphql-types/input/filter-is.input-type'; -import { DateScalarType } from 'src/workspace/workspace-schema-builder/graphql-types/scalars'; +import { FilterIs } from 'src/engine/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type'; +import { DateScalarType } from 'src/engine/graphql/workspace-schema-builder/graphql-types/scalars'; export const DateFilterType = new GraphQLInputObjectType({ name: 'DateFilter', diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/date-time-filter.input-type.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/date-time-filter.input-type.ts similarity index 70% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/date-time-filter.input-type.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/date-time-filter.input-type.ts index 423640582c..18b85d3683 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/date-time-filter.input-type.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/date-time-filter.input-type.ts @@ -1,7 +1,7 @@ import { GraphQLInputObjectType, GraphQLList, GraphQLNonNull } from 'graphql'; -import { FilterIs } from 'src/workspace/workspace-schema-builder/graphql-types/input/filter-is.input-type'; -import { DateTimeScalarType } from 'src/workspace/workspace-schema-builder/graphql-types/scalars'; +import { FilterIs } from 'src/engine/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type'; +import { DateTimeScalarType } from 'src/engine/graphql/workspace-schema-builder/graphql-types/scalars'; export const DatetimeFilterType = new GraphQLInputObjectType({ name: 'DateTimeFilter', diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/filter-is.input-type.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/filter-is.input-type.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/float-filter.input-type.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/float-filter.input-type.ts similarity index 81% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/float-filter.input-type.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/float-filter.input-type.ts index 15346e4275..82da74d3d2 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/float-filter.input-type.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/float-filter.input-type.ts @@ -5,7 +5,7 @@ import { GraphQLNonNull, } from 'graphql'; -import { FilterIs } from 'src/workspace/workspace-schema-builder/graphql-types/input/filter-is.input-type'; +import { FilterIs } from 'src/engine/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type'; export const FloatFilterType = new GraphQLInputObjectType({ name: 'FloatFilter', diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/index.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/index.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/index.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/index.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/int-filter.input-type.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/int-filter.input-type.ts similarity index 80% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/int-filter.input-type.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/int-filter.input-type.ts index f8e76f70b8..b0022af2f2 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/int-filter.input-type.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/int-filter.input-type.ts @@ -5,7 +5,7 @@ import { GraphQLInt, } from 'graphql'; -import { FilterIs } from 'src/workspace/workspace-schema-builder/graphql-types/input/filter-is.input-type'; +import { FilterIs } from 'src/engine/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type'; export const IntFilterType = new GraphQLInputObjectType({ name: 'IntFilter', diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/string-filter.input-type.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/string-filter.input-type.ts similarity index 86% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/string-filter.input-type.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/string-filter.input-type.ts index 96ffd19cfd..3a7c9197db 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/string-filter.input-type.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/string-filter.input-type.ts @@ -5,7 +5,7 @@ import { GraphQLString, } from 'graphql'; -import { FilterIs } from 'src/workspace/workspace-schema-builder/graphql-types/input/filter-is.input-type'; +import { FilterIs } from 'src/engine/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type'; export const StringFilterType = new GraphQLInputObjectType({ name: 'StringFilter', diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/time-filter.input-type.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/time-filter.input-type.ts similarity index 69% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/time-filter.input-type.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/time-filter.input-type.ts index 81a1f895f0..bc08a3eb94 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/time-filter.input-type.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/time-filter.input-type.ts @@ -1,7 +1,7 @@ import { GraphQLInputObjectType, GraphQLList, GraphQLNonNull } from 'graphql'; -import { FilterIs } from 'src/workspace/workspace-schema-builder/graphql-types/input/filter-is.input-type'; -import { TimeScalarType } from 'src/workspace/workspace-schema-builder/graphql-types/scalars'; +import { FilterIs } from 'src/engine/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type'; +import { TimeScalarType } from 'src/engine/graphql/workspace-schema-builder/graphql-types/scalars'; export const TimeFilterType = new GraphQLInputObjectType({ name: 'TimeFilter', diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/uuid-filter.input-type.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/uuid-filter.input-type.ts similarity index 59% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/uuid-filter.input-type.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/uuid-filter.input-type.ts index c1ff25832e..3eebe14b7e 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/input/uuid-filter.input-type.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/input/uuid-filter.input-type.ts @@ -1,7 +1,7 @@ import { GraphQLInputObjectType, GraphQLList } from 'graphql'; -import { FilterIs } from 'src/workspace/workspace-schema-builder/graphql-types/input/filter-is.input-type'; -import { UUIDScalarType } from 'src/workspace/workspace-schema-builder/graphql-types/scalars'; +import { FilterIs } from 'src/engine/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type'; +import { UUIDScalarType } from 'src/engine/graphql/workspace-schema-builder/graphql-types/scalars'; export const UUIDFilterType = new GraphQLInputObjectType({ name: 'UUIDFilter', diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/object/index.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/object/index.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/object/index.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/object/index.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/object/page-into.object-type.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/object/page-into.object-type.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/object/page-into.object-type.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/object/page-into.object-type.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/big-float.scalar.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/big-float.scalar.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/big-float.scalar.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/big-float.scalar.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/big-int.scalar.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/big-int.scalar.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/big-int.scalar.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/big-int.scalar.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/cursor.scalar.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/cursor.scalar.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/cursor.scalar.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/cursor.scalar.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/date-time.scalar.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/date-time.scalar.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/date-time.scalar.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/date-time.scalar.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/date.scalar.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/date.scalar.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/date.scalar.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/date.scalar.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/index.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/index.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/index.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/index.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/position.scalar.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/position.scalar.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/position.scalar.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/position.scalar.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/time.scalar.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/time.scalar.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/time.scalar.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/time.scalar.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/uuid.scalar.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/uuid.scalar.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/graphql-types/scalars/uuid.scalar.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/graphql-types/scalars/uuid.scalar.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/interfaces/param-metadata.interface.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/interfaces/param-metadata.interface.ts similarity index 55% rename from packages/twenty-server/src/workspace/workspace-schema-builder/interfaces/param-metadata.interface.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/interfaces/param-metadata.interface.ts index 12a1ac1815..9fd1e13f99 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/interfaces/param-metadata.interface.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/interfaces/param-metadata.interface.ts @@ -1,5 +1,5 @@ -import { InputTypeDefinitionKind } from 'src/workspace/workspace-schema-builder/factories/input-type-definition.factory'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { InputTypeDefinitionKind } from 'src/engine/graphql/workspace-schema-builder/factories/input-type-definition.factory'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; export interface ArgMetadata { kind?: InputTypeDefinitionKind; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface.ts similarity index 53% rename from packages/twenty-server/src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface.ts index 4ca4b68e05..8da8a2c0bf 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/interfaces/workspace-schema-builder-context.interface.ts @@ -1,5 +1,5 @@ -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; export interface WorkspaceSchemaBuilderContext { workspaceId: string; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/services/type-mapper.service.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/services/type-mapper.service.ts similarity index 89% rename from packages/twenty-server/src/workspace/workspace-schema-builder/services/type-mapper.service.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/services/type-mapper.service.ts index 3ccc352768..82badbf68d 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/services/type-mapper.service.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/services/type-mapper.service.ts @@ -19,9 +19,9 @@ import { import { DateScalarMode, NumberScalarMode, -} from 'src/workspace/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; +} from 'src/engine/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { UUIDFilterType, StringFilterType, @@ -31,10 +31,10 @@ import { IntFilterType, BooleanFilterType, BigFloatFilterType, -} from 'src/workspace/workspace-schema-builder/graphql-types/input'; -import { OrderByDirectionType } from 'src/workspace/workspace-schema-builder/graphql-types/enum'; -import { BigFloatScalarType } from 'src/workspace/workspace-schema-builder/graphql-types/scalars'; -import { PositionScalarType } from 'src/workspace/workspace-schema-builder/graphql-types/scalars/position.scalar'; +} from 'src/engine/graphql/workspace-schema-builder/graphql-types/input'; +import { OrderByDirectionType } from 'src/engine/graphql/workspace-schema-builder/graphql-types/enum'; +import { BigFloatScalarType } from 'src/engine/graphql/workspace-schema-builder/graphql-types/scalars'; +import { PositionScalarType } from 'src/engine/graphql/workspace-schema-builder/graphql-types/scalars/position.scalar'; export interface TypeOptions { nullable?: boolean; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/storages/type-definitions.storage.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage.ts similarity index 84% rename from packages/twenty-server/src/workspace/workspace-schema-builder/storages/type-definitions.storage.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage.ts index 15abbc97a2..3a2045c37e 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/storages/type-definitions.storage.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/storages/type-definitions.storage.ts @@ -6,16 +6,16 @@ import { GraphQLObjectType, } from 'graphql'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { EnumTypeDefinition } from 'src/workspace/workspace-schema-builder/factories/enum-type-definition.factory'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { EnumTypeDefinition } from 'src/engine/graphql/workspace-schema-builder/factories/enum-type-definition.factory'; import { InputTypeDefinition, InputTypeDefinitionKind, -} from 'src/workspace/workspace-schema-builder/factories/input-type-definition.factory'; +} from 'src/engine/graphql/workspace-schema-builder/factories/input-type-definition.factory'; import { ObjectTypeDefinition, ObjectTypeDefinitionKind, -} from 'src/workspace/workspace-schema-builder/factories/object-type-definition.factory'; +} from 'src/engine/graphql/workspace-schema-builder/factories/object-type-definition.factory'; // Must be scoped on REQUEST level @Injectable({ scope: Scope.REQUEST }) diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/type-definitions.generator.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/type-definitions.generator.ts similarity index 90% rename from packages/twenty-server/src/workspace/workspace-schema-builder/type-definitions.generator.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/type-definitions.generator.ts index da56b36651..fa227d1c05 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/type-definitions.generator.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/type-definitions.generator.ts @@ -1,14 +1,14 @@ import { Injectable, Logger } from '@nestjs/common'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; -import { customTableDefaultColumns } from 'src/workspace/workspace-migration-runner/utils/custom-table-default-column.util'; -import { fullNameObjectDefinition } from 'src/metadata/field-metadata/composite-types/full-name.composite-type'; -import { currencyObjectDefinition } from 'src/metadata/field-metadata/composite-types/currency.composite-type'; -import { linkObjectDefinition } from 'src/metadata/field-metadata/composite-types/link.composite-type'; -import { EnumTypeDefinitionFactory } from 'src/workspace/workspace-schema-builder/factories/enum-type-definition.factory'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { customTableDefaultColumns } from 'src/engine/workspace-manager/workspace-migration-runner/utils/custom-table-default-column.util'; +import { fullNameObjectDefinition } from 'src/engine-metadata/field-metadata/composite-types/full-name.composite-type'; +import { currencyObjectDefinition } from 'src/engine-metadata/field-metadata/composite-types/currency.composite-type'; +import { linkObjectDefinition } from 'src/engine-metadata/field-metadata/composite-types/link.composite-type'; +import { EnumTypeDefinitionFactory } from 'src/engine/graphql/workspace-schema-builder/factories/enum-type-definition.factory'; import { TypeDefinitionsStorage } from './storages/type-definitions.storage'; import { diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/utils/__tests__/clean-entity-name.spec.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/__tests__/clean-entity-name.spec.ts similarity index 86% rename from packages/twenty-server/src/workspace/workspace-schema-builder/utils/__tests__/clean-entity-name.spec.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/__tests__/clean-entity-name.spec.ts index 32874b48ed..8069715d06 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/utils/__tests__/clean-entity-name.spec.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/__tests__/clean-entity-name.spec.ts @@ -1,4 +1,4 @@ -import { cleanEntityName } from 'src/workspace/workspace-schema-builder/utils/clean-entity-name.util'; +import { cleanEntityName } from 'src/engine/graphql/workspace-schema-builder/utils/clean-entity-name.util'; describe('cleanEntityName', () => { test('should camelCase strings', () => { diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/utils/__tests__/get-field-metadata-type.spec.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/__tests__/get-field-metadata-type.spec.ts similarity index 71% rename from packages/twenty-server/src/workspace/workspace-schema-builder/utils/__tests__/get-field-metadata-type.spec.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/__tests__/get-field-metadata-type.spec.ts index ee579c723e..8d5f189917 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/utils/__tests__/get-field-metadata-type.spec.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/__tests__/get-field-metadata-type.spec.ts @@ -1,5 +1,5 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { getFieldMetadataType } from 'src/workspace/workspace-schema-builder/utils/get-field-metadata-type.util'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { getFieldMetadataType } from 'src/engine/graphql/workspace-schema-builder/utils/get-field-metadata-type.util'; describe('getFieldMetadataType', () => { it.each([ diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/utils/__tests__/get-resolver-args.spec.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/__tests__/get-resolver-args.spec.ts similarity index 79% rename from packages/twenty-server/src/workspace/workspace-schema-builder/utils/__tests__/get-resolver-args.spec.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/__tests__/get-resolver-args.spec.ts index 35bc8011ca..d5ed07f98d 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/utils/__tests__/get-resolver-args.spec.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/__tests__/get-resolver-args.spec.ts @@ -1,8 +1,8 @@ -import { WorkspaceResolverBuilderMethodNames } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { WorkspaceResolverBuilderMethodNames } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { InputTypeDefinitionKind } from 'src/workspace/workspace-schema-builder/factories/input-type-definition.factory'; -import { getResolverArgs } from 'src/workspace/workspace-schema-builder/utils/get-resolver-args.util'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { InputTypeDefinitionKind } from 'src/engine/graphql/workspace-schema-builder/factories/input-type-definition.factory'; +import { getResolverArgs } from 'src/engine/graphql/workspace-schema-builder/utils/get-resolver-args.util'; describe('getResolverArgs', () => { const expectedOutputs = { diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/utils/clean-entity-name.util.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/clean-entity-name.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-schema-builder/utils/clean-entity-name.util.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/clean-entity-name.util.ts diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/utils/get-field-metadata-type.util.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/get-field-metadata-type.util.ts similarity index 83% rename from packages/twenty-server/src/workspace/workspace-schema-builder/utils/get-field-metadata-type.util.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/get-field-metadata-type.util.ts index a32fa34348..025309f21c 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/utils/get-field-metadata-type.util.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/get-field-metadata-type.util.ts @@ -1,4 +1,4 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; const typeOrmTypeMapping = new Map([ ['uuid', FieldMetadataType.UUID], diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/utils/get-resolver-args.util.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/get-resolver-args.util.ts similarity index 83% rename from packages/twenty-server/src/workspace/workspace-schema-builder/utils/get-resolver-args.util.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/get-resolver-args.util.ts index bdf67209c7..3502254827 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/utils/get-resolver-args.util.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/get-resolver-args.util.ts @@ -1,8 +1,8 @@ -import { WorkspaceResolverBuilderMethodNames } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { ArgMetadata } from 'src/workspace/workspace-schema-builder/interfaces/param-metadata.interface'; +import { WorkspaceResolverBuilderMethodNames } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { ArgMetadata } from 'src/engine/graphql/workspace-schema-builder/interfaces/param-metadata.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { InputTypeDefinitionKind } from 'src/workspace/workspace-schema-builder/factories/input-type-definition.factory'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { InputTypeDefinitionKind } from 'src/engine/graphql/workspace-schema-builder/factories/input-type-definition.factory'; export const getResolverArgs = ( type: WorkspaceResolverBuilderMethodNames, diff --git a/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/object-contains-relation-field.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/object-contains-relation-field.ts new file mode 100644 index 0000000000..e529a5e944 --- /dev/null +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/utils/object-contains-relation-field.ts @@ -0,0 +1,11 @@ +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; + +import { isRelationFieldMetadataType } from 'src/engine-workspace/utils/is-relation-field-metadata-type.util'; + +export const objectContainsRelationField = ( + objectMetadata: ObjectMetadataInterface, +): boolean => { + return objectMetadata.fields.some((field) => + isRelationFieldMetadataType(field.type), + ); +}; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/workspace-graphql-schema.factory.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/workspace-graphql-schema.factory.ts similarity index 86% rename from packages/twenty-server/src/workspace/workspace-schema-builder/workspace-graphql-schema.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/workspace-graphql-schema.factory.ts index 252bcf432b..12e09a16ba 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/workspace-graphql-schema.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/workspace-graphql-schema.factory.ts @@ -2,8 +2,8 @@ import { Injectable, Logger } from '@nestjs/common'; import { GraphQLSchema } from 'graphql'; -import { WorkspaceResolverBuilderMethods } from 'src/workspace/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { WorkspaceResolverBuilderMethods } from 'src/engine/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { TypeDefinitionsGenerator } from './type-definitions.generator'; diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/workspace-schema-builder.module.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/workspace-schema-builder.module.ts similarity index 82% rename from packages/twenty-server/src/workspace/workspace-schema-builder/workspace-schema-builder.module.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-builder/workspace-schema-builder.module.ts index 748c2efd52..cdcecb83c5 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/workspace-schema-builder.module.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-builder/workspace-schema-builder.module.ts @@ -1,7 +1,7 @@ import { Module } from '@nestjs/common'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; -import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; +import { ObjectMetadataModule } from 'src/engine-metadata/object-metadata/object-metadata.module'; import { TypeDefinitionsGenerator } from './type-definitions.generator'; import { WorkspaceGraphQLSchemaFactory } from './workspace-graphql-schema.factory'; diff --git a/packages/twenty-server/src/engine/graphql/workspace-schema-storage/workspace-schema-storage.module.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-storage/workspace-schema-storage.module.ts new file mode 100644 index 0000000000..5370a89cbb --- /dev/null +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-storage/workspace-schema-storage.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; + +import { ObjectMetadataModule } from 'src/engine-metadata/object-metadata/object-metadata.module'; +import { WorkspaceCacheVersionModule } from 'src/engine-metadata/workspace-cache-version/workspace-cache-version.module'; +import { WorkspaceSchemaStorageService } from 'src/engine/graphql/workspace-schema-storage/workspace-schema-storage.service'; + +@Module({ + imports: [ObjectMetadataModule, WorkspaceCacheVersionModule], + providers: [WorkspaceSchemaStorageService], + exports: [WorkspaceSchemaStorageService], +}) +export class WorkspaceSchemaStorageModule {} diff --git a/packages/twenty-server/src/workspace/workspace-schema-storage/workspace-schema-storage.service.ts b/packages/twenty-server/src/engine/graphql/workspace-schema-storage/workspace-schema-storage.service.ts similarity index 92% rename from packages/twenty-server/src/workspace/workspace-schema-storage/workspace-schema-storage.service.ts rename to packages/twenty-server/src/engine/graphql/workspace-schema-storage/workspace-schema-storage.service.ts index 449746e1ed..dfef2ce705 100644 --- a/packages/twenty-server/src/workspace/workspace-schema-storage/workspace-schema-storage.service.ts +++ b/packages/twenty-server/src/engine/graphql/workspace-schema-storage/workspace-schema-storage.service.ts @@ -2,8 +2,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { CacheStorageService } from 'src/integrations/cache-storage/cache-storage.service'; import { CacheStorageNamespace } from 'src/integrations/cache-storage/types/cache-storage-namespace.enum'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { WorkspaceCacheVersionService } from 'src/metadata/workspace-cache-version/workspace-cache-version.service'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { WorkspaceCacheVersionService } from 'src/engine-metadata/workspace-cache-version/workspace-cache-version.service'; @Injectable() export class WorkspaceSchemaStorageService { diff --git a/packages/twenty-server/src/workspace/workspace.factory.spec.ts b/packages/twenty-server/src/engine/graphql/workspace.factory.spec.ts similarity index 61% rename from packages/twenty-server/src/workspace/workspace.factory.spec.ts rename to packages/twenty-server/src/engine/graphql/workspace.factory.spec.ts index 6109069092..05cfa2fcb2 100644 --- a/packages/twenty-server/src/workspace/workspace.factory.spec.ts +++ b/packages/twenty-server/src/engine/graphql/workspace.factory.spec.ts @@ -1,15 +1,14 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { WorkspaceSchemaStorageService } from 'src/workspace/workspace-schema-storage/workspace-schema-storage.service'; -import { ScalarsExplorerService } from 'src/workspace/services/scalars-explorer.service'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { WorkspaceSchemaStorageService } from 'src/engine/graphql/workspace-schema-storage/workspace-schema-storage.service'; +import { ScalarsExplorerService } from 'src/engine-workspace/services/scalars-explorer.service'; +import { WorkspaceResolverFactory } from 'src/engine/graphql/workspace-resolver-builder/workspace-resolver.factory'; +import { WorkspaceGraphQLSchemaFactory } from 'src/engine/graphql/workspace-schema-builder/workspace-graphql-schema.factory'; import { WorkspaceFactory } from './workspace.factory'; -import { WorkspaceResolverFactory } from './workspace-resolver-builder/workspace-resolver.factory'; -import { WorkspaceGraphQLSchemaFactory } from './workspace-schema-builder/workspace-graphql-schema.factory'; - describe('WorkspaceFactory', () => { let service: WorkspaceFactory; diff --git a/packages/twenty-server/src/workspace/workspace.factory.ts b/packages/twenty-server/src/engine/graphql/workspace.factory.ts similarity index 80% rename from packages/twenty-server/src/workspace/workspace.factory.ts rename to packages/twenty-server/src/engine/graphql/workspace.factory.ts index ac9d7c710b..19eaa4556a 100644 --- a/packages/twenty-server/src/workspace/workspace.factory.ts +++ b/packages/twenty-server/src/engine/graphql/workspace.factory.ts @@ -4,14 +4,13 @@ import { GraphQLSchema, printSchema } from 'graphql'; import { makeExecutableSchema } from '@graphql-tools/schema'; import { gql } from 'graphql-tag'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; -import { WorkspaceSchemaStorageService } from 'src/workspace/workspace-schema-storage/workspace-schema-storage.service'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { ScalarsExplorerService } from 'src/workspace/services/scalars-explorer.service'; - -import { WorkspaceGraphQLSchemaFactory } from './workspace-schema-builder/workspace-graphql-schema.factory'; -import { workspaceResolverBuilderMethodNames } from './workspace-resolver-builder/factories/factories'; -import { WorkspaceResolverFactory } from './workspace-resolver-builder/workspace-resolver.factory'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; +import { WorkspaceSchemaStorageService } from 'src/engine/graphql/workspace-schema-storage/workspace-schema-storage.service'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { ScalarsExplorerService } from 'src/engine-workspace/services/scalars-explorer.service'; +import { WorkspaceGraphQLSchemaFactory } from 'src/engine/graphql/workspace-schema-builder/workspace-graphql-schema.factory'; +import { workspaceResolverBuilderMethodNames } from 'src/engine/graphql/workspace-resolver-builder/factories/factories'; +import { WorkspaceResolverFactory } from 'src/engine/graphql/workspace-resolver-builder/workspace-resolver.factory'; @Injectable() export class WorkspaceFactory { diff --git a/packages/twenty-server/src/engine/graphql/workspace.module.ts b/packages/twenty-server/src/engine/graphql/workspace.module.ts new file mode 100644 index 0000000000..143d06a8ad --- /dev/null +++ b/packages/twenty-server/src/engine/graphql/workspace.module.ts @@ -0,0 +1,25 @@ +import { Module } from '@nestjs/common'; + +import { MetadataModule } from 'src/engine-metadata/metadata.module'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; +import { WorkspaceSchemaStorageModule } from 'src/engine/graphql/workspace-schema-storage/workspace-schema-storage.module'; +import { ObjectMetadataModule } from 'src/engine-metadata/object-metadata/object-metadata.module'; +import { ScalarsExplorerService } from 'src/engine-workspace/services/scalars-explorer.service'; +import { WorkspaceSchemaBuilderModule } from 'src/engine/graphql/workspace-schema-builder/workspace-schema-builder.module'; +import { WorkspaceResolverBuilderModule } from 'src/engine/graphql/workspace-resolver-builder/workspace-resolver-builder.module'; + +import { WorkspaceFactory } from './workspace.factory'; + +@Module({ + imports: [ + MetadataModule, + DataSourceModule, + ObjectMetadataModule, + WorkspaceSchemaBuilderModule, + WorkspaceResolverBuilderModule, + WorkspaceSchemaStorageModule, + ], + providers: [WorkspaceFactory, ScalarsExplorerService], + exports: [WorkspaceFactory], +}) +export class WorkspaceModule {} diff --git a/packages/twenty-server/src/guards/jwt.auth.guard.ts b/packages/twenty-server/src/engine/guards/jwt.auth.guard.ts similarity index 100% rename from packages/twenty-server/src/guards/jwt.auth.guard.ts rename to packages/twenty-server/src/engine/guards/jwt.auth.guard.ts diff --git a/packages/twenty-server/src/guards/optional-jwt.auth.guard.ts b/packages/twenty-server/src/engine/guards/optional-jwt.auth.guard.ts similarity index 100% rename from packages/twenty-server/src/guards/optional-jwt.auth.guard.ts rename to packages/twenty-server/src/engine/guards/optional-jwt.auth.guard.ts diff --git a/packages/twenty-server/src/core/analytics/analytics.entity.ts b/packages/twenty-server/src/engine/modules/analytics/analytics.entity.ts similarity index 100% rename from packages/twenty-server/src/core/analytics/analytics.entity.ts rename to packages/twenty-server/src/engine/modules/analytics/analytics.entity.ts diff --git a/packages/twenty-server/src/core/analytics/analytics.module.ts b/packages/twenty-server/src/engine/modules/analytics/analytics.module.ts similarity index 100% rename from packages/twenty-server/src/core/analytics/analytics.module.ts rename to packages/twenty-server/src/engine/modules/analytics/analytics.module.ts diff --git a/packages/twenty-server/src/core/analytics/analytics.resolver.spec.ts b/packages/twenty-server/src/engine/modules/analytics/analytics.resolver.spec.ts similarity index 100% rename from packages/twenty-server/src/core/analytics/analytics.resolver.spec.ts rename to packages/twenty-server/src/engine/modules/analytics/analytics.resolver.spec.ts diff --git a/packages/twenty-server/src/core/analytics/analytics.resolver.ts b/packages/twenty-server/src/engine/modules/analytics/analytics.resolver.ts similarity index 69% rename from packages/twenty-server/src/core/analytics/analytics.resolver.ts rename to packages/twenty-server/src/engine/modules/analytics/analytics.resolver.ts index 29725c7cd2..79e55563c1 100644 --- a/packages/twenty-server/src/core/analytics/analytics.resolver.ts +++ b/packages/twenty-server/src/engine/modules/analytics/analytics.resolver.ts @@ -3,11 +3,11 @@ import { UseGuards } from '@nestjs/common'; import { Request } from 'express'; -import { OptionalJwtAuthGuard } from 'src/guards/optional-jwt.auth.guard'; -import { AuthWorkspace } from 'src/decorators/auth/auth-workspace.decorator'; -import { AuthUser } from 'src/decorators/auth/auth-user.decorator'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { User } from 'src/core/user/user.entity'; +import { OptionalJwtAuthGuard } from 'src/engine/guards/optional-jwt.auth.guard'; +import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator'; +import { AuthUser } from 'src/engine/decorators/auth/auth-user.decorator'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { User } from 'src/engine/modules/user/user.entity'; import { AnalyticsService } from './analytics.service'; import { Analytics } from './analytics.entity'; diff --git a/packages/twenty-server/src/core/analytics/analytics.service.spec.ts b/packages/twenty-server/src/engine/modules/analytics/analytics.service.spec.ts similarity index 100% rename from packages/twenty-server/src/core/analytics/analytics.service.spec.ts rename to packages/twenty-server/src/engine/modules/analytics/analytics.service.spec.ts diff --git a/packages/twenty-server/src/core/analytics/analytics.service.ts b/packages/twenty-server/src/engine/modules/analytics/analytics.service.ts similarity index 92% rename from packages/twenty-server/src/core/analytics/analytics.service.ts rename to packages/twenty-server/src/engine/modules/analytics/analytics.service.ts index cb3f822411..f0a6fdf425 100644 --- a/packages/twenty-server/src/core/analytics/analytics.service.ts +++ b/packages/twenty-server/src/engine/modules/analytics/analytics.service.ts @@ -5,8 +5,8 @@ import { Request } from 'express'; import { anonymize } from 'src/utils/anonymize'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { User } from 'src/core/user/user.entity'; -import { Workspace } from 'src/core/workspace/workspace.entity'; +import { User } from 'src/engine/modules/user/user.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; import { CreateAnalyticsInput } from './dto/create-analytics.input'; diff --git a/packages/twenty-server/src/core/analytics/dto/create-analytics.input.ts b/packages/twenty-server/src/engine/modules/analytics/dto/create-analytics.input.ts similarity index 100% rename from packages/twenty-server/src/core/analytics/dto/create-analytics.input.ts rename to packages/twenty-server/src/engine/modules/analytics/dto/create-analytics.input.ts diff --git a/packages/twenty-server/src/core/auth/auth.module.ts b/packages/twenty-server/src/engine/modules/auth/auth.module.ts similarity index 52% rename from packages/twenty-server/src/core/auth/auth.module.ts rename to packages/twenty-server/src/engine/modules/auth/auth.module.ts index 1ebeb8d697..241b375c0f 100644 --- a/packages/twenty-server/src/core/auth/auth.module.ts +++ b/packages/twenty-server/src/engine/modules/auth/auth.module.ts @@ -5,23 +5,23 @@ import { TypeOrmModule } from '@nestjs/typeorm'; import { HttpModule } from '@nestjs/axios'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { FileModule } from 'src/core/file/file.module'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { User } from 'src/core/user/user.entity'; -import { RefreshToken } from 'src/core/refresh-token/refresh-token.entity'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; -import { UserModule } from 'src/core/user/user.module'; -import { WorkspaceManagerModule } from 'src/workspace/workspace-manager/workspace-manager.module'; +import { FileModule } from 'src/engine/modules/file/file.module'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { User } from 'src/engine/modules/user/user.entity'; +import { RefreshToken } from 'src/engine/modules/refresh-token/refresh-token.entity'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; +import { UserModule } from 'src/engine/modules/user/user.module'; +import { WorkspaceManagerModule } from 'src/engine/workspace-manager/workspace-manager.module'; import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { GoogleAuthController } from 'src/core/auth/controllers/google-auth.controller'; -import { GoogleAPIsAuthController } from 'src/core/auth/controllers/google-apis-auth.controller'; -import { VerifyAuthController } from 'src/core/auth/controllers/verify-auth.controller'; -import { TokenService } from 'src/core/auth/services/token.service'; -import { GoogleAPIsService } from 'src/core/auth/services/google-apis.service'; -import { UserWorkspaceModule } from 'src/core/user-workspace/user-workspace.module'; -import { SignUpService } from 'src/core/auth/services/sign-up.service'; -import { GoogleGmailAuthController } from 'src/core/auth/controllers/google-gmail-auth.controller'; -import { FeatureFlagEntity } from 'src/core/feature-flag/feature-flag.entity'; +import { GoogleAuthController } from 'src/engine/modules/auth/controllers/google-auth.controller'; +import { GoogleAPIsAuthController } from 'src/engine/modules/auth/controllers/google-apis-auth.controller'; +import { VerifyAuthController } from 'src/engine/modules/auth/controllers/verify-auth.controller'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; +import { GoogleAPIsService } from 'src/engine/modules/auth/services/google-apis.service'; +import { UserWorkspaceModule } from 'src/engine/modules/user-workspace/user-workspace.module'; +import { SignUpService } from 'src/engine/modules/auth/services/sign-up.service'; +import { GoogleGmailAuthController } from 'src/engine/modules/auth/controllers/google-gmail-auth.controller'; +import { FeatureFlagEntity } from 'src/engine/modules/feature-flag/feature-flag.entity'; import { AuthResolver } from './auth.resolver'; diff --git a/packages/twenty-server/src/core/auth/auth.resolver.spec.ts b/packages/twenty-server/src/engine/modules/auth/auth.resolver.spec.ts similarity index 78% rename from packages/twenty-server/src/core/auth/auth.resolver.spec.ts rename to packages/twenty-server/src/engine/modules/auth/auth.resolver.spec.ts index 0eb9ef2656..0057cb7ea4 100644 --- a/packages/twenty-server/src/core/auth/auth.resolver.spec.ts +++ b/packages/twenty-server/src/engine/modules/auth/auth.resolver.spec.ts @@ -1,10 +1,10 @@ import { Test, TestingModule } from '@nestjs/testing'; import { getRepositoryToken } from '@nestjs/typeorm'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { UserService } from 'src/core/user/services/user.service'; -import { UserWorkspaceService } from 'src/core/user-workspace/user-workspace.service'; -import { User } from 'src/core/user/user.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { UserService } from 'src/engine/modules/user/services/user.service'; +import { UserWorkspaceService } from 'src/engine/modules/user-workspace/user-workspace.service'; +import { User } from 'src/engine/modules/user/user.entity'; import { AuthResolver } from './auth.resolver'; diff --git a/packages/twenty-server/src/core/auth/auth.resolver.ts b/packages/twenty-server/src/engine/modules/auth/auth.resolver.ts similarity index 81% rename from packages/twenty-server/src/core/auth/auth.resolver.ts rename to packages/twenty-server/src/engine/modules/auth/auth.resolver.ts index 842baa162b..01eab3d856 100644 --- a/packages/twenty-server/src/core/auth/auth.resolver.ts +++ b/packages/twenty-server/src/engine/modules/auth/auth.resolver.ts @@ -10,23 +10,23 @@ import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; -import { AuthUser } from 'src/decorators/auth/auth-user.decorator'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; +import { AuthUser } from 'src/engine/decorators/auth/auth-user.decorator'; import { assert } from 'src/utils/assert'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { AuthWorkspace } from 'src/decorators/auth/auth-workspace.decorator'; -import { User } from 'src/core/user/user.entity'; -import { ApiKeyTokenInput } from 'src/core/auth/dto/api-key-token.input'; -import { ValidatePasswordResetToken } from 'src/core/auth/dto/validate-password-reset-token.entity'; -import { TransientToken } from 'src/core/auth/dto/transient-token.entity'; -import { UserService } from 'src/core/user/services/user.service'; -import { ValidatePasswordResetTokenInput } from 'src/core/auth/dto/validate-password-reset-token.input'; -import { UpdatePasswordViaResetTokenInput } from 'src/core/auth/dto/update-password-via-reset-token.input'; -import { EmailPasswordResetLink } from 'src/core/auth/dto/email-password-reset-link.entity'; -import { InvalidatePassword } from 'src/core/auth/dto/invalidate-password.entity'; -import { EmailPasswordResetLinkInput } from 'src/core/auth/dto/email-password-reset-link.input'; -import { GenerateJwtInput } from 'src/core/auth/dto/generate-jwt.input'; -import { UserWorkspaceService } from 'src/core/user-workspace/user-workspace.service'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator'; +import { User } from 'src/engine/modules/user/user.entity'; +import { ApiKeyTokenInput } from 'src/engine/modules/auth/dto/api-key-token.input'; +import { ValidatePasswordResetToken } from 'src/engine/modules/auth/dto/validate-password-reset-token.entity'; +import { TransientToken } from 'src/engine/modules/auth/dto/transient-token.entity'; +import { UserService } from 'src/engine/modules/user/services/user.service'; +import { ValidatePasswordResetTokenInput } from 'src/engine/modules/auth/dto/validate-password-reset-token.input'; +import { UpdatePasswordViaResetTokenInput } from 'src/engine/modules/auth/dto/update-password-via-reset-token.input'; +import { EmailPasswordResetLink } from 'src/engine/modules/auth/dto/email-password-reset-link.entity'; +import { InvalidatePassword } from 'src/engine/modules/auth/dto/invalidate-password.entity'; +import { EmailPasswordResetLinkInput } from 'src/engine/modules/auth/dto/email-password-reset-link.input'; +import { GenerateJwtInput } from 'src/engine/modules/auth/dto/generate-jwt.input'; +import { UserWorkspaceService } from 'src/engine/modules/user-workspace/user-workspace.service'; import { ApiKeyToken, AuthTokens } from './dto/token.entity'; import { TokenService } from './services/token.service'; diff --git a/packages/twenty-server/src/core/auth/auth.util.ts b/packages/twenty-server/src/engine/modules/auth/auth.util.ts similarity index 100% rename from packages/twenty-server/src/core/auth/auth.util.ts rename to packages/twenty-server/src/engine/modules/auth/auth.util.ts diff --git a/packages/twenty-server/src/core/auth/controllers/google-apis-auth.controller.ts b/packages/twenty-server/src/engine/modules/auth/controllers/google-apis-auth.controller.ts similarity index 78% rename from packages/twenty-server/src/core/auth/controllers/google-apis-auth.controller.ts rename to packages/twenty-server/src/engine/modules/auth/controllers/google-apis-auth.controller.ts index b7240e6a66..2f699b86f8 100644 --- a/packages/twenty-server/src/core/auth/controllers/google-apis-auth.controller.ts +++ b/packages/twenty-server/src/engine/modules/auth/controllers/google-apis-auth.controller.ts @@ -2,11 +2,11 @@ import { Controller, Get, Req, Res, UseGuards } from '@nestjs/common'; import { Response } from 'express'; -import { GoogleAPIsProviderEnabledGuard } from 'src/core/auth/guards/google-apis-provider-enabled.guard'; -import { GoogleAPIsOauthGuard } from 'src/core/auth/guards/google-apis-oauth.guard'; -import { GoogleAPIsRequest } from 'src/core/auth/strategies/google-apis.auth.strategy'; -import { GoogleAPIsService } from 'src/core/auth/services/google-apis.service'; -import { TokenService } from 'src/core/auth/services/token.service'; +import { GoogleAPIsProviderEnabledGuard } from 'src/engine/modules/auth/guards/google-apis-provider-enabled.guard'; +import { GoogleAPIsOauthGuard } from 'src/engine/modules/auth/guards/google-apis-oauth.guard'; +import { GoogleAPIsRequest } from 'src/engine/modules/auth/strategies/google-apis.auth.strategy'; +import { GoogleAPIsService } from 'src/engine/modules/auth/services/google-apis.service'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; @Controller('auth/google-apis') diff --git a/packages/twenty-server/src/core/auth/controllers/google-auth.controller.ts b/packages/twenty-server/src/engine/modules/auth/controllers/google-auth.controller.ts similarity index 77% rename from packages/twenty-server/src/core/auth/controllers/google-auth.controller.ts rename to packages/twenty-server/src/engine/modules/auth/controllers/google-auth.controller.ts index 396c43ef02..6e956aec99 100644 --- a/packages/twenty-server/src/core/auth/controllers/google-auth.controller.ts +++ b/packages/twenty-server/src/engine/modules/auth/controllers/google-auth.controller.ts @@ -4,13 +4,13 @@ import { InjectRepository } from '@nestjs/typeorm'; import { Response } from 'express'; import { Repository } from 'typeorm'; -import { GoogleRequest } from 'src/core/auth/strategies/google.auth.strategy'; -import { TokenService } from 'src/core/auth/services/token.service'; -import { GoogleProviderEnabledGuard } from 'src/core/auth/guards/google-provider-enabled.guard'; -import { GoogleOauthGuard } from 'src/core/auth/guards/google-oauth.guard'; -import { User } from 'src/core/user/user.entity'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { AuthService } from 'src/core/auth/services/auth.service'; +import { GoogleRequest } from 'src/engine/modules/auth/strategies/google.auth.strategy'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; +import { GoogleProviderEnabledGuard } from 'src/engine/modules/auth/guards/google-provider-enabled.guard'; +import { GoogleOauthGuard } from 'src/engine/modules/auth/guards/google-oauth.guard'; +import { User } from 'src/engine/modules/user/user.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { AuthService } from 'src/engine/modules/auth/services/auth.service'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; diff --git a/packages/twenty-server/src/core/auth/controllers/google-gmail-auth.controller.ts b/packages/twenty-server/src/engine/modules/auth/controllers/google-gmail-auth.controller.ts similarity index 78% rename from packages/twenty-server/src/core/auth/controllers/google-gmail-auth.controller.ts rename to packages/twenty-server/src/engine/modules/auth/controllers/google-gmail-auth.controller.ts index fe34900696..21682154d8 100644 --- a/packages/twenty-server/src/core/auth/controllers/google-gmail-auth.controller.ts +++ b/packages/twenty-server/src/engine/modules/auth/controllers/google-gmail-auth.controller.ts @@ -2,11 +2,11 @@ import { Controller, Get, Req, Res, UseGuards } from '@nestjs/common'; import { Response } from 'express'; -import { GoogleAPIsOauthGuard } from 'src/core/auth/guards/google-apis-oauth.guard'; -import { GoogleAPIsProviderEnabledGuard } from 'src/core/auth/guards/google-apis-provider-enabled.guard'; -import { GoogleAPIsService } from 'src/core/auth/services/google-apis.service'; -import { TokenService } from 'src/core/auth/services/token.service'; -import { GoogleAPIsRequest } from 'src/core/auth/strategies/google-apis.auth.strategy'; +import { GoogleAPIsOauthGuard } from 'src/engine/modules/auth/guards/google-apis-oauth.guard'; +import { GoogleAPIsProviderEnabledGuard } from 'src/engine/modules/auth/guards/google-apis-provider-enabled.guard'; +import { GoogleAPIsService } from 'src/engine/modules/auth/services/google-apis.service'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; +import { GoogleAPIsRequest } from 'src/engine/modules/auth/strategies/google-apis.auth.strategy'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; @Controller('auth/google-gmail') diff --git a/packages/twenty-server/src/core/auth/controllers/verify-auth.controller.spec.ts b/packages/twenty-server/src/engine/modules/auth/controllers/verify-auth.controller.spec.ts similarity index 81% rename from packages/twenty-server/src/core/auth/controllers/verify-auth.controller.spec.ts rename to packages/twenty-server/src/engine/modules/auth/controllers/verify-auth.controller.spec.ts index 3c9c726254..8c205fc57d 100644 --- a/packages/twenty-server/src/core/auth/controllers/verify-auth.controller.spec.ts +++ b/packages/twenty-server/src/engine/modules/auth/controllers/verify-auth.controller.spec.ts @@ -1,7 +1,7 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { AuthService } from 'src/core/auth/services/auth.service'; -import { TokenService } from 'src/core/auth/services/token.service'; +import { AuthService } from 'src/engine/modules/auth/services/auth.service'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; import { VerifyAuthController } from './verify-auth.controller'; diff --git a/packages/twenty-server/src/core/auth/controllers/verify-auth.controller.ts b/packages/twenty-server/src/engine/modules/auth/controllers/verify-auth.controller.ts similarity index 62% rename from packages/twenty-server/src/core/auth/controllers/verify-auth.controller.ts rename to packages/twenty-server/src/engine/modules/auth/controllers/verify-auth.controller.ts index b427ad9744..5bedbe9e78 100644 --- a/packages/twenty-server/src/core/auth/controllers/verify-auth.controller.ts +++ b/packages/twenty-server/src/engine/modules/auth/controllers/verify-auth.controller.ts @@ -1,9 +1,9 @@ import { Body, Controller, Post } from '@nestjs/common'; -import { AuthService } from 'src/core/auth/services/auth.service'; -import { VerifyInput } from 'src/core/auth/dto/verify.input'; -import { Verify } from 'src/core/auth/dto/verify.entity'; -import { TokenService } from 'src/core/auth/services/token.service'; +import { AuthService } from 'src/engine/modules/auth/services/auth.service'; +import { VerifyInput } from 'src/engine/modules/auth/dto/verify.input'; +import { Verify } from 'src/engine/modules/auth/dto/verify.entity'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; @Controller('auth/verify') export class VerifyAuthController { diff --git a/packages/twenty-server/src/core/auth/dto/api-key-token.input.ts b/packages/twenty-server/src/engine/modules/auth/dto/api-key-token.input.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/api-key-token.input.ts rename to packages/twenty-server/src/engine/modules/auth/dto/api-key-token.input.ts diff --git a/packages/twenty-server/src/core/auth/dto/challenge.input.ts b/packages/twenty-server/src/engine/modules/auth/dto/challenge.input.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/challenge.input.ts rename to packages/twenty-server/src/engine/modules/auth/dto/challenge.input.ts diff --git a/packages/twenty-server/src/core/auth/dto/email-password-reset-link.entity.ts b/packages/twenty-server/src/engine/modules/auth/dto/email-password-reset-link.entity.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/email-password-reset-link.entity.ts rename to packages/twenty-server/src/engine/modules/auth/dto/email-password-reset-link.entity.ts diff --git a/packages/twenty-server/src/core/auth/dto/email-password-reset-link.input.ts b/packages/twenty-server/src/engine/modules/auth/dto/email-password-reset-link.input.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/email-password-reset-link.input.ts rename to packages/twenty-server/src/engine/modules/auth/dto/email-password-reset-link.input.ts diff --git a/packages/twenty-server/src/core/auth/dto/generate-jwt.input.ts b/packages/twenty-server/src/engine/modules/auth/dto/generate-jwt.input.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/generate-jwt.input.ts rename to packages/twenty-server/src/engine/modules/auth/dto/generate-jwt.input.ts diff --git a/packages/twenty-server/src/core/auth/dto/impersonate.input.ts b/packages/twenty-server/src/engine/modules/auth/dto/impersonate.input.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/impersonate.input.ts rename to packages/twenty-server/src/engine/modules/auth/dto/impersonate.input.ts diff --git a/packages/twenty-server/src/core/auth/dto/invalidate-password.entity.ts b/packages/twenty-server/src/engine/modules/auth/dto/invalidate-password.entity.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/invalidate-password.entity.ts rename to packages/twenty-server/src/engine/modules/auth/dto/invalidate-password.entity.ts diff --git a/packages/twenty-server/src/core/auth/dto/login-token.entity.ts b/packages/twenty-server/src/engine/modules/auth/dto/login-token.entity.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/login-token.entity.ts rename to packages/twenty-server/src/engine/modules/auth/dto/login-token.entity.ts diff --git a/packages/twenty-server/src/core/auth/dto/password-reset-token.input.ts b/packages/twenty-server/src/engine/modules/auth/dto/password-reset-token.input.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/password-reset-token.input.ts rename to packages/twenty-server/src/engine/modules/auth/dto/password-reset-token.input.ts diff --git a/packages/twenty-server/src/core/auth/dto/refresh-token.input.ts b/packages/twenty-server/src/engine/modules/auth/dto/refresh-token.input.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/refresh-token.input.ts rename to packages/twenty-server/src/engine/modules/auth/dto/refresh-token.input.ts diff --git a/packages/twenty-server/src/core/auth/dto/save-connected-account.ts b/packages/twenty-server/src/engine/modules/auth/dto/save-connected-account.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/save-connected-account.ts rename to packages/twenty-server/src/engine/modules/auth/dto/save-connected-account.ts diff --git a/packages/twenty-server/src/core/auth/dto/sign-up.input.ts b/packages/twenty-server/src/engine/modules/auth/dto/sign-up.input.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/sign-up.input.ts rename to packages/twenty-server/src/engine/modules/auth/dto/sign-up.input.ts diff --git a/packages/twenty-server/src/core/auth/dto/token.entity.ts b/packages/twenty-server/src/engine/modules/auth/dto/token.entity.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/token.entity.ts rename to packages/twenty-server/src/engine/modules/auth/dto/token.entity.ts diff --git a/packages/twenty-server/src/core/auth/dto/transient-token.entity.ts b/packages/twenty-server/src/engine/modules/auth/dto/transient-token.entity.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/transient-token.entity.ts rename to packages/twenty-server/src/engine/modules/auth/dto/transient-token.entity.ts diff --git a/packages/twenty-server/src/core/auth/dto/update-password-via-reset-token.input.ts b/packages/twenty-server/src/engine/modules/auth/dto/update-password-via-reset-token.input.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/update-password-via-reset-token.input.ts rename to packages/twenty-server/src/engine/modules/auth/dto/update-password-via-reset-token.input.ts diff --git a/packages/twenty-server/src/core/auth/dto/update-password.entity.ts b/packages/twenty-server/src/engine/modules/auth/dto/update-password.entity.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/update-password.entity.ts rename to packages/twenty-server/src/engine/modules/auth/dto/update-password.entity.ts diff --git a/packages/twenty-server/src/core/auth/dto/user-exists.entity.ts b/packages/twenty-server/src/engine/modules/auth/dto/user-exists.entity.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/user-exists.entity.ts rename to packages/twenty-server/src/engine/modules/auth/dto/user-exists.entity.ts diff --git a/packages/twenty-server/src/core/auth/dto/user-exists.input.ts b/packages/twenty-server/src/engine/modules/auth/dto/user-exists.input.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/user-exists.input.ts rename to packages/twenty-server/src/engine/modules/auth/dto/user-exists.input.ts diff --git a/packages/twenty-server/src/core/auth/dto/validate-password-reset-token.entity.ts b/packages/twenty-server/src/engine/modules/auth/dto/validate-password-reset-token.entity.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/validate-password-reset-token.entity.ts rename to packages/twenty-server/src/engine/modules/auth/dto/validate-password-reset-token.entity.ts diff --git a/packages/twenty-server/src/core/auth/dto/validate-password-reset-token.input.ts b/packages/twenty-server/src/engine/modules/auth/dto/validate-password-reset-token.input.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/validate-password-reset-token.input.ts rename to packages/twenty-server/src/engine/modules/auth/dto/validate-password-reset-token.input.ts diff --git a/packages/twenty-server/src/core/auth/dto/verify.entity.ts b/packages/twenty-server/src/engine/modules/auth/dto/verify.entity.ts similarity index 77% rename from packages/twenty-server/src/core/auth/dto/verify.entity.ts rename to packages/twenty-server/src/engine/modules/auth/dto/verify.entity.ts index 2035999312..2ad7b1aa97 100644 --- a/packages/twenty-server/src/core/auth/dto/verify.entity.ts +++ b/packages/twenty-server/src/engine/modules/auth/dto/verify.entity.ts @@ -1,6 +1,6 @@ import { Field, ObjectType } from '@nestjs/graphql'; -import { User } from 'src/core/user/user.entity'; +import { User } from 'src/engine/modules/user/user.entity'; import { AuthTokens } from './token.entity'; diff --git a/packages/twenty-server/src/core/auth/dto/verify.input.ts b/packages/twenty-server/src/engine/modules/auth/dto/verify.input.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/verify.input.ts rename to packages/twenty-server/src/engine/modules/auth/dto/verify.input.ts diff --git a/packages/twenty-server/src/core/auth/dto/workspace-invite-hash-valid.entity.ts b/packages/twenty-server/src/engine/modules/auth/dto/workspace-invite-hash-valid.entity.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/workspace-invite-hash-valid.entity.ts rename to packages/twenty-server/src/engine/modules/auth/dto/workspace-invite-hash-valid.entity.ts diff --git a/packages/twenty-server/src/core/auth/dto/workspace-invite-hash.input.ts b/packages/twenty-server/src/engine/modules/auth/dto/workspace-invite-hash.input.ts similarity index 100% rename from packages/twenty-server/src/core/auth/dto/workspace-invite-hash.input.ts rename to packages/twenty-server/src/engine/modules/auth/dto/workspace-invite-hash.input.ts diff --git a/packages/twenty-server/src/core/auth/guards/google-apis-oauth.guard.ts b/packages/twenty-server/src/engine/modules/auth/guards/google-apis-oauth.guard.ts similarity index 100% rename from packages/twenty-server/src/core/auth/guards/google-apis-oauth.guard.ts rename to packages/twenty-server/src/engine/modules/auth/guards/google-apis-oauth.guard.ts diff --git a/packages/twenty-server/src/core/auth/guards/google-apis-provider-enabled.guard.ts b/packages/twenty-server/src/engine/modules/auth/guards/google-apis-provider-enabled.guard.ts similarity index 88% rename from packages/twenty-server/src/core/auth/guards/google-apis-provider-enabled.guard.ts rename to packages/twenty-server/src/engine/modules/auth/guards/google-apis-provider-enabled.guard.ts index 38f5124ac5..81bfd12d1f 100644 --- a/packages/twenty-server/src/core/auth/guards/google-apis-provider-enabled.guard.ts +++ b/packages/twenty-server/src/engine/modules/auth/guards/google-apis-provider-enabled.guard.ts @@ -2,7 +2,7 @@ import { Injectable, CanActivate, NotFoundException } from '@nestjs/common'; import { Observable } from 'rxjs'; -import { GoogleAPIsStrategy } from 'src/core/auth/strategies/google-apis.auth.strategy'; +import { GoogleAPIsStrategy } from 'src/engine/modules/auth/strategies/google-apis.auth.strategy'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; @Injectable() diff --git a/packages/twenty-server/src/core/auth/guards/google-gmail-provider-enabled.guard.ts b/packages/twenty-server/src/engine/modules/auth/guards/google-gmail-provider-enabled.guard.ts similarity index 86% rename from packages/twenty-server/src/core/auth/guards/google-gmail-provider-enabled.guard.ts rename to packages/twenty-server/src/engine/modules/auth/guards/google-gmail-provider-enabled.guard.ts index a4c5a500c8..8fdca62a89 100644 --- a/packages/twenty-server/src/core/auth/guards/google-gmail-provider-enabled.guard.ts +++ b/packages/twenty-server/src/engine/modules/auth/guards/google-gmail-provider-enabled.guard.ts @@ -2,7 +2,7 @@ import { Injectable, CanActivate, NotFoundException } from '@nestjs/common'; import { Observable } from 'rxjs'; -import { GoogleAPIsStrategy } from 'src/core/auth/strategies/google-apis.auth.strategy'; +import { GoogleAPIsStrategy } from 'src/engine/modules/auth/strategies/google-apis.auth.strategy'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; @Injectable() diff --git a/packages/twenty-server/src/core/auth/guards/google-oauth.guard.ts b/packages/twenty-server/src/engine/modules/auth/guards/google-oauth.guard.ts similarity index 100% rename from packages/twenty-server/src/core/auth/guards/google-oauth.guard.ts rename to packages/twenty-server/src/engine/modules/auth/guards/google-oauth.guard.ts diff --git a/packages/twenty-server/src/core/auth/guards/google-provider-enabled.guard.ts b/packages/twenty-server/src/engine/modules/auth/guards/google-provider-enabled.guard.ts similarity index 87% rename from packages/twenty-server/src/core/auth/guards/google-provider-enabled.guard.ts rename to packages/twenty-server/src/engine/modules/auth/guards/google-provider-enabled.guard.ts index 91a84cdbfd..9f016d6c9c 100644 --- a/packages/twenty-server/src/core/auth/guards/google-provider-enabled.guard.ts +++ b/packages/twenty-server/src/engine/modules/auth/guards/google-provider-enabled.guard.ts @@ -3,7 +3,7 @@ import { Injectable, CanActivate, NotFoundException } from '@nestjs/common'; import { Observable } from 'rxjs'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { GoogleStrategy } from 'src/core/auth/strategies/google.auth.strategy'; +import { GoogleStrategy } from 'src/engine/modules/auth/strategies/google.auth.strategy'; @Injectable() export class GoogleProviderEnabledGuard implements CanActivate { diff --git a/packages/twenty-server/src/core/auth/services/auth.service.spec.ts b/packages/twenty-server/src/engine/modules/auth/services/auth.service.spec.ts similarity index 78% rename from packages/twenty-server/src/core/auth/services/auth.service.spec.ts rename to packages/twenty-server/src/engine/modules/auth/services/auth.service.spec.ts index 696dae6901..0fa78b16b2 100644 --- a/packages/twenty-server/src/core/auth/services/auth.service.spec.ts +++ b/packages/twenty-server/src/engine/modules/auth/services/auth.service.spec.ts @@ -1,13 +1,13 @@ import { Test, TestingModule } from '@nestjs/testing'; import { getRepositoryToken } from '@nestjs/typeorm'; -import { UserService } from 'src/core/user/services/user.service'; -import { WorkspaceManagerService } from 'src/workspace/workspace-manager/workspace-manager.service'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { User } from 'src/core/user/user.entity'; +import { UserService } from 'src/engine/modules/user/services/user.service'; +import { WorkspaceManagerService } from 'src/engine/workspace-manager/workspace-manager.service'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { User } from 'src/engine/modules/user/user.entity'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; import { EmailService } from 'src/integrations/email/email.service'; -import { SignUpService } from 'src/core/auth/services/sign-up.service'; +import { SignUpService } from 'src/engine/modules/auth/services/sign-up.service'; import { AuthService } from './auth.service'; import { TokenService } from './token.service'; diff --git a/packages/twenty-server/src/core/auth/services/auth.service.ts b/packages/twenty-server/src/engine/modules/auth/services/auth.service.ts similarity index 85% rename from packages/twenty-server/src/core/auth/services/auth.service.ts rename to packages/twenty-server/src/engine/modules/auth/services/auth.service.ts index 9e8c5941b7..8503b91ffd 100644 --- a/packages/twenty-server/src/core/auth/services/auth.service.ts +++ b/packages/twenty-server/src/engine/modules/auth/services/auth.service.ts @@ -10,23 +10,23 @@ import { Repository } from 'typeorm'; import { render } from '@react-email/components'; import { PasswordUpdateNotifyEmail } from 'twenty-emails'; -import { ChallengeInput } from 'src/core/auth/dto/challenge.input'; +import { ChallengeInput } from 'src/engine/modules/auth/dto/challenge.input'; import { assert } from 'src/utils/assert'; import { PASSWORD_REGEX, compareHash, hashPassword, -} from 'src/core/auth/auth.util'; -import { Verify } from 'src/core/auth/dto/verify.entity'; -import { UserExists } from 'src/core/auth/dto/user-exists.entity'; -import { WorkspaceInviteHashValid } from 'src/core/auth/dto/workspace-invite-hash-valid.entity'; -import { User } from 'src/core/user/user.entity'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { UserService } from 'src/core/user/services/user.service'; +} from 'src/engine/modules/auth/auth.util'; +import { Verify } from 'src/engine/modules/auth/dto/verify.entity'; +import { UserExists } from 'src/engine/modules/auth/dto/user-exists.entity'; +import { WorkspaceInviteHashValid } from 'src/engine/modules/auth/dto/workspace-invite-hash-valid.entity'; +import { User } from 'src/engine/modules/user/user.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { UserService } from 'src/engine/modules/user/services/user.service'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; import { EmailService } from 'src/integrations/email/email.service'; -import { UpdatePassword } from 'src/core/auth/dto/update-password.entity'; -import { SignUpService } from 'src/core/auth/services/sign-up.service'; +import { UpdatePassword } from 'src/engine/modules/auth/dto/update-password.entity'; +import { SignUpService } from 'src/engine/modules/auth/services/sign-up.service'; import { TokenService } from './token.service'; @@ -205,7 +205,9 @@ export class AuthService { }); this.emailService.send({ - from: `${this.environmentService.get('EMAIL_FROM_NAME')} <${this.environmentService.get('EMAIL_FROM_ADDRESS')}>`, + from: `${this.environmentService.get( + 'EMAIL_FROM_NAME', + )} <${this.environmentService.get('EMAIL_FROM_ADDRESS')}>`, to: user.email, subject: 'Your Password Has Been Successfully Changed', text, diff --git a/packages/twenty-server/src/core/auth/services/google-apis.service.ts b/packages/twenty-server/src/engine/modules/auth/services/google-apis.service.ts similarity index 91% rename from packages/twenty-server/src/core/auth/services/google-apis.service.ts rename to packages/twenty-server/src/engine/modules/auth/services/google-apis.service.ts index 286e7cdd7c..bf0cb71cec 100644 --- a/packages/twenty-server/src/core/auth/services/google-apis.service.ts +++ b/packages/twenty-server/src/engine/modules/auth/services/google-apis.service.ts @@ -4,24 +4,24 @@ import { InjectRepository } from '@nestjs/typeorm'; import { v4 } from 'uuid'; import { Repository } from 'typeorm'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; -import { SaveConnectedAccountInput } from 'src/core/auth/dto/save-connected-account'; +import { SaveConnectedAccountInput } from 'src/engine/modules/auth/dto/save-connected-account'; import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; import { GmailFullSyncJob, GmailFullSyncJobData, -} from 'src/workspace/messaging/jobs/gmail-full-sync.job'; +} from 'src/business/modules/message/jobs/gmail-full-sync.job'; import { GoogleCalendarFullSyncJob, GoogleCalendarFullSyncJobData, -} from 'src/workspace/calendar/jobs/google-calendar-full-sync.job'; +} from 'src/business/modules/calendar/jobs/google-calendar-full-sync.job'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; import { FeatureFlagEntity, FeatureFlagKeys, -} from 'src/core/feature-flag/feature-flag.entity'; +} from 'src/engine/modules/feature-flag/feature-flag.entity'; @Injectable() export class GoogleAPIsService { diff --git a/packages/twenty-server/src/core/auth/services/sign-up.service.spec.ts b/packages/twenty-server/src/engine/modules/auth/services/sign-up.service.spec.ts similarity index 73% rename from packages/twenty-server/src/core/auth/services/sign-up.service.spec.ts rename to packages/twenty-server/src/engine/modules/auth/services/sign-up.service.spec.ts index a4423a7fb9..529d2acf47 100644 --- a/packages/twenty-server/src/core/auth/services/sign-up.service.spec.ts +++ b/packages/twenty-server/src/engine/modules/auth/services/sign-up.service.spec.ts @@ -2,12 +2,12 @@ import { Test, TestingModule } from '@nestjs/testing'; import { getRepositoryToken } from '@nestjs/typeorm'; import { HttpService } from '@nestjs/axios'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { User } from 'src/core/user/user.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { User } from 'src/engine/modules/user/user.entity'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { SignUpService } from 'src/core/auth/services/sign-up.service'; -import { FileUploadService } from 'src/core/file/services/file-upload.service'; -import { UserWorkspaceService } from 'src/core/user-workspace/user-workspace.service'; +import { SignUpService } from 'src/engine/modules/auth/services/sign-up.service'; +import { FileUploadService } from 'src/engine/modules/file/services/file-upload.service'; +import { UserWorkspaceService } from 'src/engine/modules/user-workspace/user-workspace.service'; describe('SignUpService', () => { let service: SignUpService; diff --git a/packages/twenty-server/src/core/auth/services/sign-up.service.ts b/packages/twenty-server/src/engine/modules/auth/services/sign-up.service.ts similarity index 92% rename from packages/twenty-server/src/core/auth/services/sign-up.service.ts rename to packages/twenty-server/src/engine/modules/auth/services/sign-up.service.ts index 723282c093..f58334cedc 100644 --- a/packages/twenty-server/src/core/auth/services/sign-up.service.ts +++ b/packages/twenty-server/src/engine/modules/auth/services/sign-up.service.ts @@ -10,16 +10,19 @@ import { Repository } from 'typeorm'; import { v4 } from 'uuid'; import FileType from 'file-type'; -import { FileFolder } from 'src/core/file/interfaces/file-folder.interface'; +import { FileFolder } from 'src/engine/modules/file/interfaces/file-folder.interface'; import { assert } from 'src/utils/assert'; -import { PASSWORD_REGEX, hashPassword } from 'src/core/auth/auth.util'; -import { User } from 'src/core/user/user.entity'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { FileUploadService } from 'src/core/file/services/file-upload.service'; +import { + PASSWORD_REGEX, + hashPassword, +} from 'src/engine/modules/auth/auth.util'; +import { User } from 'src/engine/modules/user/user.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { FileUploadService } from 'src/engine/modules/file/services/file-upload.service'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; import { getImageBufferFromUrl } from 'src/utils/image'; -import { UserWorkspaceService } from 'src/core/user-workspace/user-workspace.service'; +import { UserWorkspaceService } from 'src/engine/modules/user-workspace/user-workspace.service'; export type SignUpServiceInput = { email: string; diff --git a/packages/twenty-server/src/core/auth/services/token.service.spec.ts b/packages/twenty-server/src/engine/modules/auth/services/token.service.spec.ts similarity index 77% rename from packages/twenty-server/src/core/auth/services/token.service.spec.ts rename to packages/twenty-server/src/engine/modules/auth/services/token.service.spec.ts index 80401f7924..18287d1f40 100644 --- a/packages/twenty-server/src/core/auth/services/token.service.spec.ts +++ b/packages/twenty-server/src/engine/modules/auth/services/token.service.spec.ts @@ -3,12 +3,12 @@ import { JwtService } from '@nestjs/jwt'; import { getRepositoryToken } from '@nestjs/typeorm'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { RefreshToken } from 'src/core/refresh-token/refresh-token.entity'; -import { User } from 'src/core/user/user.entity'; -import { JwtAuthStrategy } from 'src/core/auth/strategies/jwt.auth.strategy'; +import { RefreshToken } from 'src/engine/modules/refresh-token/refresh-token.entity'; +import { User } from 'src/engine/modules/user/user.entity'; +import { JwtAuthStrategy } from 'src/engine/modules/auth/strategies/jwt.auth.strategy'; import { EmailService } from 'src/integrations/email/email.service'; -import { UserWorkspaceService } from 'src/core/user-workspace/user-workspace.service'; -import { Workspace } from 'src/core/workspace/workspace.entity'; +import { UserWorkspaceService } from 'src/engine/modules/user-workspace/user-workspace.service'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; import { TokenService } from './token.service'; diff --git a/packages/twenty-server/src/core/auth/services/token.service.ts b/packages/twenty-server/src/engine/modules/auth/services/token.service.ts similarity index 91% rename from packages/twenty-server/src/core/auth/services/token.service.ts rename to packages/twenty-server/src/engine/modules/auth/services/token.service.ts index 41742a3ad3..55af71123b 100644 --- a/packages/twenty-server/src/core/auth/services/token.service.ts +++ b/packages/twenty-server/src/engine/modules/auth/services/token.service.ts @@ -24,24 +24,24 @@ import { PasswordResetLinkEmail } from 'twenty-emails'; import { JwtAuthStrategy, JwtPayload, -} from 'src/core/auth/strategies/jwt.auth.strategy'; +} from 'src/engine/modules/auth/strategies/jwt.auth.strategy'; import { assert } from 'src/utils/assert'; import { ApiKeyToken, AuthToken, AuthTokens, PasswordResetToken, -} from 'src/core/auth/dto/token.entity'; +} from 'src/engine/modules/auth/dto/token.entity'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { User } from 'src/core/user/user.entity'; -import { RefreshToken } from 'src/core/refresh-token/refresh-token.entity'; -import { ValidatePasswordResetToken } from 'src/core/auth/dto/validate-password-reset-token.entity'; +import { User } from 'src/engine/modules/user/user.entity'; +import { RefreshToken } from 'src/engine/modules/refresh-token/refresh-token.entity'; +import { ValidatePasswordResetToken } from 'src/engine/modules/auth/dto/validate-password-reset-token.entity'; import { EmailService } from 'src/integrations/email/email.service'; -import { InvalidatePassword } from 'src/core/auth/dto/invalidate-password.entity'; -import { EmailPasswordResetLink } from 'src/core/auth/dto/email-password-reset-link.entity'; -import { JwtData } from 'src/core/auth/types/jwt-data.type'; -import { UserWorkspaceService } from 'src/core/user-workspace/user-workspace.service'; -import { Workspace } from 'src/core/workspace/workspace.entity'; +import { InvalidatePassword } from 'src/engine/modules/auth/dto/invalidate-password.entity'; +import { EmailPasswordResetLink } from 'src/engine/modules/auth/dto/email-password-reset-link.entity'; +import { JwtData } from 'src/engine/modules/auth/types/jwt-data.type'; +import { UserWorkspaceService } from 'src/engine/modules/user-workspace/user-workspace.service'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; @Injectable() export class TokenService { @@ -147,7 +147,9 @@ export class TokenService { workspaceId: string, ): Promise { const secret = this.environmentService.get('LOGIN_TOKEN_SECRET'); - const expiresIn = this.environmentService.get('SHORT_TERM_TOKEN_EXPIRES_IN'); + const expiresIn = this.environmentService.get( + 'SHORT_TERM_TOKEN_EXPIRES_IN', + ); assert(expiresIn, '', InternalServerErrorException); const expiresAt = addMilliseconds(new Date().getTime(), ms(expiresIn)); @@ -231,7 +233,8 @@ export class TokenService { workspaceMemberId: string; workspaceId: string; }> { - const transientTokenSecret = this.environmentService.get('LOGIN_TOKEN_SECRET'); + const transientTokenSecret = + this.environmentService.get('LOGIN_TOKEN_SECRET'); const payload = await this.verifyJwt(transientToken, transientTokenSecret); @@ -382,7 +385,9 @@ export class TokenService { assert(user, 'User not found', NotFoundException); - const expiresIn = this.environmentService.get('PASSWORD_RESET_TOKEN_EXPIRES_IN'); + const expiresIn = this.environmentService.get( + 'PASSWORD_RESET_TOKEN_EXPIRES_IN', + ); assert( expiresIn, @@ -465,7 +470,9 @@ export class TokenService { }); this.emailService.send({ - from: `${this.environmentService.get('EMAIL_FROM_NAME')} <${this.environmentService.get('EMAIL_FROM_ADDRESS')}>`, + from: `${this.environmentService.get( + 'EMAIL_FROM_NAME', + )} <${this.environmentService.get('EMAIL_FROM_ADDRESS')}>`, to: email, subject: 'Action Needed to Reset Password', text, diff --git a/packages/twenty-server/src/core/auth/strategies/google-apis.auth.strategy.ts b/packages/twenty-server/src/engine/modules/auth/strategies/google-apis.auth.strategy.ts similarity index 100% rename from packages/twenty-server/src/core/auth/strategies/google-apis.auth.strategy.ts rename to packages/twenty-server/src/engine/modules/auth/strategies/google-apis.auth.strategy.ts diff --git a/packages/twenty-server/src/core/auth/strategies/google.auth.strategy.ts b/packages/twenty-server/src/engine/modules/auth/strategies/google.auth.strategy.ts similarity index 100% rename from packages/twenty-server/src/core/auth/strategies/google.auth.strategy.ts rename to packages/twenty-server/src/engine/modules/auth/strategies/google.auth.strategy.ts diff --git a/packages/twenty-server/src/core/auth/strategies/jwt.auth.strategy.ts b/packages/twenty-server/src/engine/modules/auth/strategies/jwt.auth.strategy.ts similarity index 91% rename from packages/twenty-server/src/core/auth/strategies/jwt.auth.strategy.ts rename to packages/twenty-server/src/engine/modules/auth/strategies/jwt.auth.strategy.ts index 613fd53252..3d20de2cff 100644 --- a/packages/twenty-server/src/core/auth/strategies/jwt.auth.strategy.ts +++ b/packages/twenty-server/src/engine/modules/auth/strategies/jwt.auth.strategy.ts @@ -11,10 +11,10 @@ import { Repository } from 'typeorm'; import { assert } from 'src/utils/assert'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { User } from 'src/core/user/user.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { User } from 'src/engine/modules/user/user.entity'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; export type JwtPayload = { sub: string; workspaceId: string; jti?: string }; export type PassportUser = { user?: User; workspace: Workspace }; diff --git a/packages/twenty-server/src/engine/modules/auth/types/jwt-data.type.ts b/packages/twenty-server/src/engine/modules/auth/types/jwt-data.type.ts new file mode 100644 index 0000000000..6117bdd02c --- /dev/null +++ b/packages/twenty-server/src/engine/modules/auth/types/jwt-data.type.ts @@ -0,0 +1,7 @@ +import { User } from 'src/engine/modules/user/user.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; + +export type JwtData = { + user?: User | undefined; + workspace: Workspace; +}; diff --git a/packages/twenty-server/src/core/billing/billing.controller.ts b/packages/twenty-server/src/engine/modules/billing/billing.controller.ts similarity index 88% rename from packages/twenty-server/src/core/billing/billing.controller.ts rename to packages/twenty-server/src/engine/modules/billing/billing.controller.ts index c0cb2dd97a..0587eb45f9 100644 --- a/packages/twenty-server/src/core/billing/billing.controller.ts +++ b/packages/twenty-server/src/engine/modules/billing/billing.controller.ts @@ -10,8 +10,11 @@ import { import { Response } from 'express'; -import { BillingService, WebhookEvent } from 'src/core/billing/billing.service'; -import { StripeService } from 'src/core/billing/stripe/stripe.service'; +import { + BillingService, + WebhookEvent, +} from 'src/engine/modules/billing/billing.service'; +import { StripeService } from 'src/engine/modules/billing/stripe/stripe.service'; @Controller('billing') export class BillingController { diff --git a/packages/twenty-server/src/engine/modules/billing/billing.module.ts b/packages/twenty-server/src/engine/modules/billing/billing.module.ts new file mode 100644 index 0000000000..bcdb7a6d4d --- /dev/null +++ b/packages/twenty-server/src/engine/modules/billing/billing.module.ts @@ -0,0 +1,27 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; + +import { BillingController } from 'src/engine/modules/billing/billing.controller'; +import { BillingService } from 'src/engine/modules/billing/billing.service'; +import { StripeModule } from 'src/engine/modules/billing/stripe/stripe.module'; +import { BillingSubscription } from 'src/engine/modules/billing/entities/billing-subscription.entity'; +import { BillingSubscriptionItem } from 'src/engine/modules/billing/entities/billing-subscription-item.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { BillingResolver } from 'src/engine/modules/billing/billing.resolver'; +import { BillingWorkspaceMemberListener } from 'src/engine/modules/billing/listeners/billing-workspace-member.listener'; +import { UserWorkspaceModule } from 'src/engine/modules/user-workspace/user-workspace.module'; + +@Module({ + imports: [ + StripeModule, + UserWorkspaceModule, + TypeOrmModule.forFeature( + [BillingSubscription, BillingSubscriptionItem, Workspace], + 'core', + ), + ], + controllers: [BillingController], + providers: [BillingService, BillingResolver, BillingWorkspaceMemberListener], + exports: [BillingService], +}) +export class BillingModule {} diff --git a/packages/twenty-server/src/core/billing/billing.resolver.ts b/packages/twenty-server/src/engine/modules/billing/billing.resolver.ts similarity index 76% rename from packages/twenty-server/src/core/billing/billing.resolver.ts rename to packages/twenty-server/src/engine/modules/billing/billing.resolver.ts index 6507b4d6ea..e031d6d902 100644 --- a/packages/twenty-server/src/core/billing/billing.resolver.ts +++ b/packages/twenty-server/src/engine/modules/billing/billing.resolver.ts @@ -4,16 +4,16 @@ import { UseGuards } from '@nestjs/common'; import { AvailableProduct, BillingService, -} from 'src/core/billing/billing.service'; -import { ProductInput } from 'src/core/billing/dto/product.input'; +} from 'src/engine/modules/billing/billing.service'; +import { ProductInput } from 'src/engine/modules/billing/dto/product.input'; import { assert } from 'src/utils/assert'; -import { ProductPricesEntity } from 'src/core/billing/dto/product-prices.entity'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; -import { AuthUser } from 'src/decorators/auth/auth-user.decorator'; -import { User } from 'src/core/user/user.entity'; -import { CheckoutSessionInput } from 'src/core/billing/dto/checkout-session.input'; -import { SessionEntity } from 'src/core/billing/dto/session.entity'; -import { BillingSessionInput } from 'src/core/billing/dto/billing-session.input'; +import { ProductPricesEntity } from 'src/engine/modules/billing/dto/product-prices.entity'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; +import { AuthUser } from 'src/engine/decorators/auth/auth-user.decorator'; +import { User } from 'src/engine/modules/user/user.entity'; +import { CheckoutSessionInput } from 'src/engine/modules/billing/dto/checkout-session.input'; +import { SessionEntity } from 'src/engine/modules/billing/dto/session.entity'; +import { BillingSessionInput } from 'src/engine/modules/billing/dto/billing-session.input'; @Resolver() export class BillingResolver { diff --git a/packages/twenty-server/src/core/billing/billing.service.ts b/packages/twenty-server/src/engine/modules/billing/billing.service.ts similarity index 91% rename from packages/twenty-server/src/core/billing/billing.service.ts rename to packages/twenty-server/src/engine/modules/billing/billing.service.ts index 4e321b44cc..00852acc16 100644 --- a/packages/twenty-server/src/core/billing/billing.service.ts +++ b/packages/twenty-server/src/engine/modules/billing/billing.service.ts @@ -5,14 +5,14 @@ import Stripe from 'stripe'; import { Not, Repository } from 'typeorm'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { StripeService } from 'src/core/billing/stripe/stripe.service'; -import { BillingSubscription } from 'src/core/billing/entities/billing-subscription.entity'; -import { BillingSubscriptionItem } from 'src/core/billing/entities/billing-subscription-item.entity'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { ProductPriceEntity } from 'src/core/billing/dto/product-price.entity'; -import { User } from 'src/core/user/user.entity'; +import { StripeService } from 'src/engine/modules/billing/stripe/stripe.service'; +import { BillingSubscription } from 'src/engine/modules/billing/entities/billing-subscription.entity'; +import { BillingSubscriptionItem } from 'src/engine/modules/billing/entities/billing-subscription-item.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { ProductPriceEntity } from 'src/engine/modules/billing/dto/product-price.entity'; +import { User } from 'src/engine/modules/user/user.entity'; import { assert } from 'src/utils/assert'; -import { UserWorkspaceService } from 'src/core/user-workspace/user-workspace.service'; +import { UserWorkspaceService } from 'src/engine/modules/user-workspace/user-workspace.service'; export enum AvailableProduct { BasePlan = 'base-plan', @@ -98,7 +98,9 @@ export class BillingService { async getBillingSubscriptionItem( workspaceId: string, - stripeProductId = this.environmentService.get('BILLING_STRIPE_BASE_PLAN_PRODUCT_ID'), + stripeProductId = this.environmentService.get( + 'BILLING_STRIPE_BASE_PLAN_PRODUCT_ID', + ), ) { const billingSubscription = await this.getCurrentBillingSubscription({ workspaceId, diff --git a/packages/twenty-server/src/core/billing/dto/billing-session.input.ts b/packages/twenty-server/src/engine/modules/billing/dto/billing-session.input.ts similarity index 100% rename from packages/twenty-server/src/core/billing/dto/billing-session.input.ts rename to packages/twenty-server/src/engine/modules/billing/dto/billing-session.input.ts diff --git a/packages/twenty-server/src/core/billing/dto/checkout-session.input.ts b/packages/twenty-server/src/engine/modules/billing/dto/checkout-session.input.ts similarity index 100% rename from packages/twenty-server/src/core/billing/dto/checkout-session.input.ts rename to packages/twenty-server/src/engine/modules/billing/dto/checkout-session.input.ts diff --git a/packages/twenty-server/src/core/billing/dto/product-price.entity.ts b/packages/twenty-server/src/engine/modules/billing/dto/product-price.entity.ts similarity index 100% rename from packages/twenty-server/src/core/billing/dto/product-price.entity.ts rename to packages/twenty-server/src/engine/modules/billing/dto/product-price.entity.ts diff --git a/packages/twenty-server/src/core/billing/dto/product-prices.entity.ts b/packages/twenty-server/src/engine/modules/billing/dto/product-prices.entity.ts similarity index 72% rename from packages/twenty-server/src/core/billing/dto/product-prices.entity.ts rename to packages/twenty-server/src/engine/modules/billing/dto/product-prices.entity.ts index 9b00588201..16a7011b87 100644 --- a/packages/twenty-server/src/core/billing/dto/product-prices.entity.ts +++ b/packages/twenty-server/src/engine/modules/billing/dto/product-prices.entity.ts @@ -1,6 +1,6 @@ import { Field, Int, ObjectType } from '@nestjs/graphql'; -import { ProductPriceEntity } from 'src/core/billing/dto/product-price.entity'; +import { ProductPriceEntity } from 'src/engine/modules/billing/dto/product-price.entity'; @ObjectType() export class ProductPricesEntity { diff --git a/packages/twenty-server/src/core/billing/dto/product.input.ts b/packages/twenty-server/src/engine/modules/billing/dto/product.input.ts similarity index 74% rename from packages/twenty-server/src/core/billing/dto/product.input.ts rename to packages/twenty-server/src/engine/modules/billing/dto/product.input.ts index 4b68eb1833..d13058c9fe 100644 --- a/packages/twenty-server/src/core/billing/dto/product.input.ts +++ b/packages/twenty-server/src/engine/modules/billing/dto/product.input.ts @@ -2,7 +2,7 @@ import { ArgsType, Field } from '@nestjs/graphql'; import { IsNotEmpty, IsString } from 'class-validator'; -import { AvailableProduct } from 'src/core/billing/billing.service'; +import { AvailableProduct } from 'src/engine/modules/billing/billing.service'; @ArgsType() export class ProductInput { diff --git a/packages/twenty-server/src/core/billing/dto/session.entity.ts b/packages/twenty-server/src/engine/modules/billing/dto/session.entity.ts similarity index 100% rename from packages/twenty-server/src/core/billing/dto/session.entity.ts rename to packages/twenty-server/src/engine/modules/billing/dto/session.entity.ts diff --git a/packages/twenty-server/src/core/billing/entities/billing-subscription-item.entity.ts b/packages/twenty-server/src/engine/modules/billing/entities/billing-subscription-item.entity.ts similarity index 92% rename from packages/twenty-server/src/core/billing/entities/billing-subscription-item.entity.ts rename to packages/twenty-server/src/engine/modules/billing/entities/billing-subscription-item.entity.ts index 4d30e50a43..871f2a1b34 100644 --- a/packages/twenty-server/src/core/billing/entities/billing-subscription-item.entity.ts +++ b/packages/twenty-server/src/engine/modules/billing/entities/billing-subscription-item.entity.ts @@ -8,7 +8,7 @@ import { UpdateDateColumn, } from 'typeorm'; -import { BillingSubscription } from 'src/core/billing/entities/billing-subscription.entity'; +import { BillingSubscription } from 'src/engine/modules/billing/entities/billing-subscription.entity'; @Entity({ name: 'billingSubscriptionItem', schema: 'core' }) @Unique('IndexOnBillingSubscriptionIdAndStripeProductIdUnique', [ diff --git a/packages/twenty-server/src/core/billing/entities/billing-subscription.entity.ts b/packages/twenty-server/src/engine/modules/billing/entities/billing-subscription.entity.ts similarity index 87% rename from packages/twenty-server/src/core/billing/entities/billing-subscription.entity.ts rename to packages/twenty-server/src/engine/modules/billing/entities/billing-subscription.entity.ts index 027af13b49..48b47f123c 100644 --- a/packages/twenty-server/src/core/billing/entities/billing-subscription.entity.ts +++ b/packages/twenty-server/src/engine/modules/billing/entities/billing-subscription.entity.ts @@ -13,8 +13,8 @@ import { import Stripe from 'stripe'; import { IDField } from '@ptc-org/nestjs-query-graphql'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { BillingSubscriptionItem } from 'src/core/billing/entities/billing-subscription-item.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { BillingSubscriptionItem } from 'src/engine/modules/billing/entities/billing-subscription-item.entity'; @Entity({ name: 'billingSubscription', schema: 'core' }) @ObjectType('BillingSubscription') diff --git a/packages/twenty-server/src/core/billing/jobs/update-subscription.job.ts b/packages/twenty-server/src/engine/modules/billing/jobs/update-subscription.job.ts similarity index 84% rename from packages/twenty-server/src/core/billing/jobs/update-subscription.job.ts rename to packages/twenty-server/src/engine/modules/billing/jobs/update-subscription.job.ts index e0443f094d..528a801be0 100644 --- a/packages/twenty-server/src/core/billing/jobs/update-subscription.job.ts +++ b/packages/twenty-server/src/engine/modules/billing/jobs/update-subscription.job.ts @@ -2,9 +2,9 @@ import { Injectable, Logger } from '@nestjs/common'; import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/message-queue-job.interface'; -import { BillingService } from 'src/core/billing/billing.service'; -import { UserWorkspaceService } from 'src/core/user-workspace/user-workspace.service'; -import { StripeService } from 'src/core/billing/stripe/stripe.service'; +import { BillingService } from 'src/engine/modules/billing/billing.service'; +import { UserWorkspaceService } from 'src/engine/modules/user-workspace/user-workspace.service'; +import { StripeService } from 'src/engine/modules/billing/stripe/stripe.service'; export type UpdateSubscriptionJobData = { workspaceId: string }; @Injectable() export class UpdateSubscriptionJob diff --git a/packages/twenty-server/src/core/billing/listeners/billing-workspace-member.listener.ts b/packages/twenty-server/src/engine/modules/billing/listeners/billing-workspace-member.listener.ts similarity index 83% rename from packages/twenty-server/src/core/billing/listeners/billing-workspace-member.listener.ts rename to packages/twenty-server/src/engine/modules/billing/listeners/billing-workspace-member.listener.ts index e70f347221..e6808d9365 100644 --- a/packages/twenty-server/src/core/billing/listeners/billing-workspace-member.listener.ts +++ b/packages/twenty-server/src/engine/modules/billing/listeners/billing-workspace-member.listener.ts @@ -4,11 +4,11 @@ import { OnEvent } from '@nestjs/event-emitter'; import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; import { ObjectRecordCreateEvent } from 'src/integrations/event-emitter/types/object-record-create.event'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; import { UpdateSubscriptionJob, UpdateSubscriptionJobData, -} from 'src/core/billing/jobs/update-subscription.job'; +} from 'src/engine/modules/billing/jobs/update-subscription.job'; @Injectable() export class BillingWorkspaceMemberListener { diff --git a/packages/twenty-server/src/core/billing/stripe/stripe.module.ts b/packages/twenty-server/src/engine/modules/billing/stripe/stripe.module.ts similarity index 63% rename from packages/twenty-server/src/core/billing/stripe/stripe.module.ts rename to packages/twenty-server/src/engine/modules/billing/stripe/stripe.module.ts index e5cc9df34c..83eb8ec281 100644 --- a/packages/twenty-server/src/core/billing/stripe/stripe.module.ts +++ b/packages/twenty-server/src/engine/modules/billing/stripe/stripe.module.ts @@ -1,6 +1,6 @@ import { Module } from '@nestjs/common'; -import { StripeService } from 'src/core/billing/stripe/stripe.service'; +import { StripeService } from 'src/engine/modules/billing/stripe/stripe.service'; @Module({ providers: [StripeService], diff --git a/packages/twenty-server/src/core/billing/stripe/stripe.service.ts b/packages/twenty-server/src/engine/modules/billing/stripe/stripe.service.ts similarity index 90% rename from packages/twenty-server/src/core/billing/stripe/stripe.service.ts rename to packages/twenty-server/src/engine/modules/billing/stripe/stripe.service.ts index 2ca32c6311..4e5cc08ffe 100644 --- a/packages/twenty-server/src/core/billing/stripe/stripe.service.ts +++ b/packages/twenty-server/src/engine/modules/billing/stripe/stripe.service.ts @@ -3,7 +3,7 @@ import { Injectable, Logger } from '@nestjs/common'; import Stripe from 'stripe'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { User } from 'src/core/user/user.entity'; +import { User } from 'src/engine/modules/user/user.entity'; @Injectable() export class StripeService { @@ -18,8 +18,9 @@ export class StripeService { } constructEventFromPayload(signature: string, payload: Buffer) { - const webhookSecret = - this.environmentService.get('BILLING_STRIPE_WEBHOOK_SECRET'); + const webhookSecret = this.environmentService.get( + 'BILLING_STRIPE_WEBHOOK_SECRET', + ); return this.stripe.webhooks.constructEvent( payload, @@ -72,8 +73,9 @@ export class StripeService { metadata: { workspaceId: user.defaultWorkspace.id, }, - trial_period_days: - this.environmentService.get('BILLING_FREE_TRIAL_DURATION_IN_DAYS'), + trial_period_days: this.environmentService.get( + 'BILLING_FREE_TRIAL_DURATION_IN_DAYS', + ), }, automatic_tax: { enabled: true }, tax_id_collection: { enabled: true }, diff --git a/packages/twenty-server/src/core/client-config/client-config.entity.ts b/packages/twenty-server/src/engine/modules/client-config/client-config.entity.ts similarity index 100% rename from packages/twenty-server/src/core/client-config/client-config.entity.ts rename to packages/twenty-server/src/engine/modules/client-config/client-config.entity.ts diff --git a/packages/twenty-server/src/core/client-config/client-config.module.ts b/packages/twenty-server/src/engine/modules/client-config/client-config.module.ts similarity index 100% rename from packages/twenty-server/src/core/client-config/client-config.module.ts rename to packages/twenty-server/src/engine/modules/client-config/client-config.module.ts diff --git a/packages/twenty-server/src/core/client-config/client-config.resolver.spec.ts b/packages/twenty-server/src/engine/modules/client-config/client-config.resolver.spec.ts similarity index 100% rename from packages/twenty-server/src/core/client-config/client-config.resolver.spec.ts rename to packages/twenty-server/src/engine/modules/client-config/client-config.resolver.spec.ts diff --git a/packages/twenty-server/src/core/client-config/client-config.resolver.ts b/packages/twenty-server/src/engine/modules/client-config/client-config.resolver.ts similarity index 100% rename from packages/twenty-server/src/core/client-config/client-config.resolver.ts rename to packages/twenty-server/src/engine/modules/client-config/client-config.resolver.ts diff --git a/packages/twenty-server/src/core/feature-flag/feature-flag.entity.ts b/packages/twenty-server/src/engine/modules/feature-flag/feature-flag.entity.ts similarity index 93% rename from packages/twenty-server/src/core/feature-flag/feature-flag.entity.ts rename to packages/twenty-server/src/engine/modules/feature-flag/feature-flag.entity.ts index 1f39e6fc25..9ed988fb80 100644 --- a/packages/twenty-server/src/core/feature-flag/feature-flag.entity.ts +++ b/packages/twenty-server/src/engine/modules/feature-flag/feature-flag.entity.ts @@ -11,7 +11,7 @@ import { } from 'typeorm'; import { IDField } from '@ptc-org/nestjs-query-graphql'; -import { Workspace } from 'src/core/workspace/workspace.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; export enum FeatureFlagKeys { IsBlocklistEnabled = 'IS_BLOCKLIST_ENABLED', diff --git a/packages/twenty-server/src/core/feature-flag/feature-flag.module.ts b/packages/twenty-server/src/engine/modules/feature-flag/feature-flag.module.ts similarity index 86% rename from packages/twenty-server/src/core/feature-flag/feature-flag.module.ts rename to packages/twenty-server/src/engine/modules/feature-flag/feature-flag.module.ts index be8d796efa..7dddd338d4 100644 --- a/packages/twenty-server/src/core/feature-flag/feature-flag.module.ts +++ b/packages/twenty-server/src/engine/modules/feature-flag/feature-flag.module.ts @@ -4,7 +4,7 @@ import { NestjsQueryGraphQLModule } from '@ptc-org/nestjs-query-graphql'; import { NestjsQueryTypeOrmModule } from '@ptc-org/nestjs-query-typeorm'; import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { FeatureFlagEntity } from 'src/core/feature-flag/feature-flag.entity'; +import { FeatureFlagEntity } from 'src/engine/modules/feature-flag/feature-flag.entity'; @Module({ imports: [ diff --git a/packages/twenty-server/src/engine/modules/feature-flag/interfaces/feature-flag-map.interface.ts b/packages/twenty-server/src/engine/modules/feature-flag/interfaces/feature-flag-map.interface.ts new file mode 100644 index 0000000000..29fd782520 --- /dev/null +++ b/packages/twenty-server/src/engine/modules/feature-flag/interfaces/feature-flag-map.interface.ts @@ -0,0 +1,3 @@ +import { FeatureFlagKeys } from 'src/engine/modules/feature-flag/feature-flag.entity'; + +export type FeatureFlagMap = Record<`${FeatureFlagKeys}`, boolean>; diff --git a/packages/twenty-server/src/core/file/controllers/file.controller.spec.ts b/packages/twenty-server/src/engine/modules/file/controllers/file.controller.spec.ts similarity index 88% rename from packages/twenty-server/src/core/file/controllers/file.controller.spec.ts rename to packages/twenty-server/src/engine/modules/file/controllers/file.controller.spec.ts index b177d22b69..b7048b4166 100644 --- a/packages/twenty-server/src/core/file/controllers/file.controller.spec.ts +++ b/packages/twenty-server/src/engine/modules/file/controllers/file.controller.spec.ts @@ -1,6 +1,6 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { FileService } from 'src/core/file/services/file.service'; +import { FileService } from 'src/engine/modules/file/services/file.service'; import { FileController } from './file.controller'; diff --git a/packages/twenty-server/src/core/file/controllers/file.controller.ts b/packages/twenty-server/src/engine/modules/file/controllers/file.controller.ts similarity index 82% rename from packages/twenty-server/src/core/file/controllers/file.controller.ts rename to packages/twenty-server/src/engine/modules/file/controllers/file.controller.ts index e237af7634..3e9d231445 100644 --- a/packages/twenty-server/src/core/file/controllers/file.controller.ts +++ b/packages/twenty-server/src/engine/modules/file/controllers/file.controller.ts @@ -2,8 +2,11 @@ import { Controller, Get, Param, Res } from '@nestjs/common'; import { Response } from 'express'; -import { checkFilePath, checkFilename } from 'src/core/file/file.utils'; -import { FileService } from 'src/core/file/services/file.service'; +import { + checkFilePath, + checkFilename, +} from 'src/engine/modules/file/file.utils'; +import { FileService } from 'src/engine/modules/file/services/file.service'; // TODO: Add cookie authentication @Controller('files') diff --git a/packages/twenty-server/src/core/file/file.module.ts b/packages/twenty-server/src/engine/modules/file/file.module.ts similarity index 100% rename from packages/twenty-server/src/core/file/file.module.ts rename to packages/twenty-server/src/engine/modules/file/file.module.ts diff --git a/packages/twenty-server/src/core/file/file.utils.ts b/packages/twenty-server/src/engine/modules/file/file.utils.ts similarity index 95% rename from packages/twenty-server/src/core/file/file.utils.ts rename to packages/twenty-server/src/engine/modules/file/file.utils.ts index 94d1b0b995..8868e4bc22 100644 --- a/packages/twenty-server/src/core/file/file.utils.ts +++ b/packages/twenty-server/src/engine/modules/file/file.utils.ts @@ -5,7 +5,7 @@ import { basename } from 'path'; import { KebabCase } from 'type-fest'; import { kebabCase } from 'src/utils/kebab-case'; -import { settings } from 'src/constants/settings'; +import { settings } from 'src/engine/constants/settings'; import { FileFolder } from './interfaces/file-folder.interface'; diff --git a/packages/twenty-server/src/core/file/interfaces/file-folder.interface.ts b/packages/twenty-server/src/engine/modules/file/interfaces/file-folder.interface.ts similarity index 100% rename from packages/twenty-server/src/core/file/interfaces/file-folder.interface.ts rename to packages/twenty-server/src/engine/modules/file/interfaces/file-folder.interface.ts diff --git a/packages/twenty-server/src/core/file/resolvers/file-upload.resolver.spec.ts b/packages/twenty-server/src/engine/modules/file/resolvers/file-upload.resolver.spec.ts similarity index 86% rename from packages/twenty-server/src/core/file/resolvers/file-upload.resolver.spec.ts rename to packages/twenty-server/src/engine/modules/file/resolvers/file-upload.resolver.spec.ts index 78c6f55a0b..b5ec1c02fa 100644 --- a/packages/twenty-server/src/core/file/resolvers/file-upload.resolver.spec.ts +++ b/packages/twenty-server/src/engine/modules/file/resolvers/file-upload.resolver.spec.ts @@ -1,6 +1,6 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { FileUploadService } from 'src/core/file/services/file-upload.service'; +import { FileUploadService } from 'src/engine/modules/file/services/file-upload.service'; import { FileUploadResolver } from './file-upload.resolver'; diff --git a/packages/twenty-server/src/core/file/resolvers/file-upload.resolver.ts b/packages/twenty-server/src/engine/modules/file/resolvers/file-upload.resolver.ts similarity index 85% rename from packages/twenty-server/src/core/file/resolvers/file-upload.resolver.ts rename to packages/twenty-server/src/engine/modules/file/resolvers/file-upload.resolver.ts index 5b320c0463..23b459d57f 100644 --- a/packages/twenty-server/src/core/file/resolvers/file-upload.resolver.ts +++ b/packages/twenty-server/src/engine/modules/file/resolvers/file-upload.resolver.ts @@ -3,10 +3,10 @@ import { UseGuards } from '@nestjs/common'; import { GraphQLUpload, FileUpload } from 'graphql-upload'; -import { FileFolder } from 'src/core/file/interfaces/file-folder.interface'; +import { FileFolder } from 'src/engine/modules/file/interfaces/file-folder.interface'; -import { FileUploadService } from 'src/core/file/services/file-upload.service'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; +import { FileUploadService } from 'src/engine/modules/file/services/file-upload.service'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; import { streamToBuffer } from 'src/utils/stream-to-buffer'; @UseGuards(JwtAuthGuard) diff --git a/packages/twenty-server/src/core/file/services/file-upload.service.spec.ts b/packages/twenty-server/src/engine/modules/file/services/file-upload.service.spec.ts similarity index 100% rename from packages/twenty-server/src/core/file/services/file-upload.service.spec.ts rename to packages/twenty-server/src/engine/modules/file/services/file-upload.service.spec.ts diff --git a/packages/twenty-server/src/core/file/services/file-upload.service.ts b/packages/twenty-server/src/engine/modules/file/services/file-upload.service.ts similarity index 94% rename from packages/twenty-server/src/core/file/services/file-upload.service.ts rename to packages/twenty-server/src/engine/modules/file/services/file-upload.service.ts index 3294f41788..53399ea219 100644 --- a/packages/twenty-server/src/core/file/services/file-upload.service.ts +++ b/packages/twenty-server/src/engine/modules/file/services/file-upload.service.ts @@ -3,10 +3,10 @@ import { Injectable } from '@nestjs/common'; import sharp from 'sharp'; import { v4 as uuidV4 } from 'uuid'; -import { FileFolder } from 'src/core/file/interfaces/file-folder.interface'; +import { FileFolder } from 'src/engine/modules/file/interfaces/file-folder.interface'; import { getCropSize } from 'src/utils/image'; -import { settings } from 'src/constants/settings'; +import { settings } from 'src/engine/constants/settings'; import { FileStorageService } from 'src/integrations/file-storage/file-storage.service'; @Injectable() diff --git a/packages/twenty-server/src/core/file/services/file.service.spec.ts b/packages/twenty-server/src/engine/modules/file/services/file.service.spec.ts similarity index 100% rename from packages/twenty-server/src/core/file/services/file.service.spec.ts rename to packages/twenty-server/src/engine/modules/file/services/file.service.spec.ts diff --git a/packages/twenty-server/src/core/file/services/file.service.ts b/packages/twenty-server/src/engine/modules/file/services/file.service.ts similarity index 100% rename from packages/twenty-server/src/core/file/services/file.service.ts rename to packages/twenty-server/src/engine/modules/file/services/file.service.ts diff --git a/packages/twenty-server/src/engine/modules/foundation.module.ts b/packages/twenty-server/src/engine/modules/foundation.module.ts new file mode 100644 index 0000000000..378a4dbc66 --- /dev/null +++ b/packages/twenty-server/src/engine/modules/foundation.module.ts @@ -0,0 +1,41 @@ +import { Module } from '@nestjs/common'; + +import { WorkspaceModule } from 'src/engine/modules/workspace/workspace.module'; +import { UserModule } from 'src/engine/modules/user/user.module'; +import { RefreshTokenModule } from 'src/engine/modules/refresh-token/refresh-token.module'; +import { AuthModule } from 'src/engine/modules/auth/auth.module'; +import { FeatureFlagModule } from 'src/engine/modules/feature-flag/feature-flag.module'; +import { OpenApiModule } from 'src/engine/modules/open-api/open-api.module'; +import { TimelineMessagingModule } from 'src/engine/modules/messaging/timeline-messaging.module'; +import { BillingModule } from 'src/engine/modules/billing/billing.module'; +import { HealthModule } from 'src/engine/modules/health/health.module'; + +import { AnalyticsModule } from './analytics/analytics.module'; +import { FileModule } from './file/file.module'; +import { ClientConfigModule } from './client-config/client-config.module'; + +@Module({ + imports: [ + HealthModule, + AnalyticsModule, + AuthModule, + BillingModule, + ClientConfigModule, + FeatureFlagModule, + FileModule, + OpenApiModule, + RefreshTokenModule, + TimelineMessagingModule, + UserModule, + WorkspaceModule, + ], + exports: [ + AnalyticsModule, + AuthModule, + FeatureFlagModule, + TimelineMessagingModule, + UserModule, + WorkspaceModule, + ], +}) +export class FoundationModule {} diff --git a/packages/twenty-server/src/health/health.controller.spec.ts b/packages/twenty-server/src/engine/modules/health/health.controller.spec.ts similarity index 90% rename from packages/twenty-server/src/health/health.controller.spec.ts rename to packages/twenty-server/src/engine/modules/health/health.controller.spec.ts index 796656f80d..db20ad6a92 100644 --- a/packages/twenty-server/src/health/health.controller.spec.ts +++ b/packages/twenty-server/src/engine/modules/health/health.controller.spec.ts @@ -1,7 +1,7 @@ import { HealthCheckService, HttpHealthIndicator } from '@nestjs/terminus'; import { Test, TestingModule } from '@nestjs/testing'; -import { HealthController } from 'src/health/health.controller'; +import { HealthController } from 'src/engine/modules/health/health.controller'; describe('HealthController', () => { let healthController: HealthController; diff --git a/packages/twenty-server/src/health/health.controller.ts b/packages/twenty-server/src/engine/modules/health/health.controller.ts similarity index 100% rename from packages/twenty-server/src/health/health.controller.ts rename to packages/twenty-server/src/engine/modules/health/health.controller.ts diff --git a/packages/twenty-server/src/health/health.module.ts b/packages/twenty-server/src/engine/modules/health/health.module.ts similarity index 71% rename from packages/twenty-server/src/health/health.module.ts rename to packages/twenty-server/src/engine/modules/health/health.module.ts index bbdb351146..ad4b13483e 100644 --- a/packages/twenty-server/src/health/health.module.ts +++ b/packages/twenty-server/src/engine/modules/health/health.module.ts @@ -1,7 +1,7 @@ import { Module } from '@nestjs/common'; import { TerminusModule } from '@nestjs/terminus'; -import { HealthController } from 'src/health/health.controller'; +import { HealthController } from 'src/engine/modules/health/health.controller'; @Module({ imports: [TerminusModule], diff --git a/packages/twenty-server/src/core/messaging/constants/messaging.constants.ts b/packages/twenty-server/src/engine/modules/messaging/constants/messaging.constants.ts similarity index 100% rename from packages/twenty-server/src/core/messaging/constants/messaging.constants.ts rename to packages/twenty-server/src/engine/modules/messaging/constants/messaging.constants.ts diff --git a/packages/twenty-server/src/core/messaging/dtos/timeline-thread-participant.dto.ts b/packages/twenty-server/src/engine/modules/messaging/dtos/timeline-thread-participant.dto.ts similarity index 100% rename from packages/twenty-server/src/core/messaging/dtos/timeline-thread-participant.dto.ts rename to packages/twenty-server/src/engine/modules/messaging/dtos/timeline-thread-participant.dto.ts diff --git a/packages/twenty-server/src/core/messaging/dtos/timeline-thread.dto.ts b/packages/twenty-server/src/engine/modules/messaging/dtos/timeline-thread.dto.ts similarity index 85% rename from packages/twenty-server/src/core/messaging/dtos/timeline-thread.dto.ts rename to packages/twenty-server/src/engine/modules/messaging/dtos/timeline-thread.dto.ts index 32402d3141..86d540bd8e 100644 --- a/packages/twenty-server/src/core/messaging/dtos/timeline-thread.dto.ts +++ b/packages/twenty-server/src/engine/modules/messaging/dtos/timeline-thread.dto.ts @@ -2,7 +2,7 @@ import { ObjectType, Field, ID } from '@nestjs/graphql'; import { IDField } from '@ptc-org/nestjs-query-graphql'; -import { TimelineThreadParticipant } from 'src/core/messaging/dtos/timeline-thread-participant.dto'; +import { TimelineThreadParticipant } from 'src/engine/modules/messaging/dtos/timeline-thread-participant.dto'; @ObjectType('TimelineThread') export class TimelineThread { diff --git a/packages/twenty-server/src/core/messaging/dtos/timeline-threads-with-total.dto.ts b/packages/twenty-server/src/engine/modules/messaging/dtos/timeline-threads-with-total.dto.ts similarity index 75% rename from packages/twenty-server/src/core/messaging/dtos/timeline-threads-with-total.dto.ts rename to packages/twenty-server/src/engine/modules/messaging/dtos/timeline-threads-with-total.dto.ts index 03470f75ed..0d87ed7a7f 100644 --- a/packages/twenty-server/src/core/messaging/dtos/timeline-threads-with-total.dto.ts +++ b/packages/twenty-server/src/engine/modules/messaging/dtos/timeline-threads-with-total.dto.ts @@ -1,6 +1,6 @@ import { Field, Int, ObjectType } from '@nestjs/graphql'; -import { TimelineThread } from 'src/core/messaging/dtos/timeline-thread.dto'; +import { TimelineThread } from 'src/engine/modules/messaging/dtos/timeline-thread.dto'; @ObjectType('TimelineThreadsWithTotal') export class TimelineThreadsWithTotal { diff --git a/packages/twenty-server/src/engine/modules/messaging/timeline-messaging.module.ts b/packages/twenty-server/src/engine/modules/messaging/timeline-messaging.module.ts new file mode 100644 index 0000000000..dcfc287a91 --- /dev/null +++ b/packages/twenty-server/src/engine/modules/messaging/timeline-messaging.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; + +import { TimelineMessagingResolver } from 'src/engine/modules/messaging/timeline-messaging.resolver'; +import { TimelineMessagingService } from 'src/engine/modules/messaging/timeline-messaging.service'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; +import { UserModule } from 'src/engine/modules/user/user.module'; +@Module({ + imports: [WorkspaceDataSourceModule, UserModule], + exports: [], + providers: [TimelineMessagingResolver, TimelineMessagingService], +}) +export class TimelineMessagingModule {} diff --git a/packages/twenty-server/src/core/messaging/timeline-messaging.resolver.ts b/packages/twenty-server/src/engine/modules/messaging/timeline-messaging.resolver.ts similarity index 73% rename from packages/twenty-server/src/core/messaging/timeline-messaging.resolver.ts rename to packages/twenty-server/src/engine/modules/messaging/timeline-messaging.resolver.ts index 5509d0be43..299bc65ec6 100644 --- a/packages/twenty-server/src/core/messaging/timeline-messaging.resolver.ts +++ b/packages/twenty-server/src/engine/modules/messaging/timeline-messaging.resolver.ts @@ -11,15 +11,15 @@ import { UseGuards } from '@nestjs/common'; import { Max } from 'class-validator'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { AuthWorkspace } from 'src/decorators/auth/auth-workspace.decorator'; -import { TimelineMessagingService } from 'src/core/messaging/timeline-messaging.service'; -import { TIMELINE_THREADS_MAX_PAGE_SIZE } from 'src/core/messaging/constants/messaging.constants'; -import { TimelineThreadsWithTotal } from 'src/core/messaging/dtos/timeline-threads-with-total.dto'; -import { AuthUser } from 'src/decorators/auth/auth-user.decorator'; -import { UserService } from 'src/core/user/services/user.service'; -import { User } from 'src/core/user/user.entity'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator'; +import { TimelineMessagingService } from 'src/engine/modules/messaging/timeline-messaging.service'; +import { TIMELINE_THREADS_MAX_PAGE_SIZE } from 'src/engine/modules/messaging/constants/messaging.constants'; +import { TimelineThreadsWithTotal } from 'src/engine/modules/messaging/dtos/timeline-threads-with-total.dto'; +import { AuthUser } from 'src/engine/decorators/auth/auth-user.decorator'; +import { UserService } from 'src/engine/modules/user/services/user.service'; +import { User } from 'src/engine/modules/user/user.entity'; @ArgsType() class GetTimelineThreadsFromPersonIdArgs { diff --git a/packages/twenty-server/src/core/messaging/timeline-messaging.service.ts b/packages/twenty-server/src/engine/modules/messaging/timeline-messaging.service.ts similarity index 97% rename from packages/twenty-server/src/core/messaging/timeline-messaging.service.ts rename to packages/twenty-server/src/engine/modules/messaging/timeline-messaging.service.ts index 5f3bca1cc9..542b4f5f13 100644 --- a/packages/twenty-server/src/core/messaging/timeline-messaging.service.ts +++ b/packages/twenty-server/src/engine/modules/messaging/timeline-messaging.service.ts @@ -1,8 +1,8 @@ import { Injectable } from '@nestjs/common'; -import { TIMELINE_THREADS_DEFAULT_PAGE_SIZE } from 'src/core/messaging/constants/messaging.constants'; -import { TimelineThreadsWithTotal } from 'src/core/messaging/dtos/timeline-threads-with-total.dto'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; +import { TIMELINE_THREADS_DEFAULT_PAGE_SIZE } from 'src/engine/modules/messaging/constants/messaging.constants'; +import { TimelineThreadsWithTotal } from 'src/engine/modules/messaging/dtos/timeline-threads-with-total.dto'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; type TimelineThreadParticipant = { personId: string; diff --git a/packages/twenty-server/src/core/open-api/open-api.controller.ts b/packages/twenty-server/src/engine/modules/open-api/open-api.controller.ts similarity index 89% rename from packages/twenty-server/src/core/open-api/open-api.controller.ts rename to packages/twenty-server/src/engine/modules/open-api/open-api.controller.ts index b5617cb4c5..103d0e27fe 100644 --- a/packages/twenty-server/src/core/open-api/open-api.controller.ts +++ b/packages/twenty-server/src/engine/modules/open-api/open-api.controller.ts @@ -2,7 +2,7 @@ import { Controller, Get, Req, Res } from '@nestjs/common'; import { Request, Response } from 'express'; -import { OpenApiService } from 'src/core/open-api/open-api.service'; +import { OpenApiService } from 'src/engine/modules/open-api/open-api.service'; @Controller('open-api') export class OpenApiController { diff --git a/packages/twenty-server/src/engine/modules/open-api/open-api.module.ts b/packages/twenty-server/src/engine/modules/open-api/open-api.module.ts new file mode 100644 index 0000000000..0b8c25a64f --- /dev/null +++ b/packages/twenty-server/src/engine/modules/open-api/open-api.module.ts @@ -0,0 +1,13 @@ +import { Module } from '@nestjs/common'; + +import { OpenApiController } from 'src/engine/modules/open-api/open-api.controller'; +import { OpenApiService } from 'src/engine/modules/open-api/open-api.service'; +import { AuthModule } from 'src/engine/modules/auth/auth.module'; +import { ObjectMetadataModule } from 'src/engine-metadata/object-metadata/object-metadata.module'; + +@Module({ + imports: [ObjectMetadataModule, AuthModule], + controllers: [OpenApiController], + providers: [OpenApiService], +}) +export class OpenApiModule {} diff --git a/packages/twenty-server/src/core/open-api/open-api.service.spec.ts b/packages/twenty-server/src/engine/modules/open-api/open-api.service.spec.ts similarity index 74% rename from packages/twenty-server/src/core/open-api/open-api.service.spec.ts rename to packages/twenty-server/src/engine/modules/open-api/open-api.service.spec.ts index b4e37478dc..290e4659d0 100644 --- a/packages/twenty-server/src/core/open-api/open-api.service.spec.ts +++ b/packages/twenty-server/src/engine/modules/open-api/open-api.service.spec.ts @@ -1,8 +1,8 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { OpenApiService } from 'src/core/open-api/open-api.service'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { TokenService } from 'src/core/auth/services/token.service'; +import { OpenApiService } from 'src/engine/modules/open-api/open-api.service'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; describe('OpenApiService', () => { diff --git a/packages/twenty-server/src/core/open-api/open-api.service.ts b/packages/twenty-server/src/engine/modules/open-api/open-api.service.ts similarity index 87% rename from packages/twenty-server/src/core/open-api/open-api.service.ts rename to packages/twenty-server/src/engine/modules/open-api/open-api.service.ts index 86cbcfded8..a257b64b78 100644 --- a/packages/twenty-server/src/core/open-api/open-api.service.ts +++ b/packages/twenty-server/src/engine/modules/open-api/open-api.service.ts @@ -3,28 +3,28 @@ import { Injectable } from '@nestjs/common'; import { Request } from 'express'; import { OpenAPIV3_1 } from 'openapi-types'; -import { TokenService } from 'src/core/auth/services/token.service'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { baseSchema } from 'src/core/open-api/utils/base-schema.utils'; +import { TokenService } from 'src/engine/modules/auth/services/token.service'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { baseSchema } from 'src/engine/modules/open-api/utils/base-schema.utils'; import { computeManyResultPath, computeSingleResultPath, -} from 'src/core/open-api/utils/path.utils'; -import { getErrorResponses } from 'src/core/open-api/utils/get-error-responses.utils'; +} from 'src/engine/modules/open-api/utils/path.utils'; +import { getErrorResponses } from 'src/engine/modules/open-api/utils/get-error-responses.utils'; import { computeMetadataSchemaComponents, computeParameterComponents, computeSchemaComponents, -} from 'src/core/open-api/utils/components.utils'; -import { computeSchemaTags } from 'src/core/open-api/utils/compute-schema-tags.utils'; -import { computeWebhooks } from 'src/core/open-api/utils/computeWebhooks.utils'; +} from 'src/engine/modules/open-api/utils/components.utils'; +import { computeSchemaTags } from 'src/engine/modules/open-api/utils/compute-schema-tags.utils'; +import { computeWebhooks } from 'src/engine/modules/open-api/utils/computeWebhooks.utils'; import { capitalize } from 'src/utils/capitalize'; import { getDeleteResponse200, getManyResultResponse200, getSingleResultSuccessResponse, -} from 'src/core/open-api/utils/responses.utils'; -import { getRequestBody } from 'src/core/open-api/utils/request-body.utils'; +} from 'src/engine/modules/open-api/utils/responses.utils'; +import { getRequestBody } from 'src/engine/modules/open-api/utils/request-body.utils'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; @Injectable() diff --git a/packages/twenty-server/src/core/open-api/utils/__tests__/components.utils.spec.ts b/packages/twenty-server/src/engine/modules/open-api/utils/__tests__/components.utils.spec.ts similarity index 83% rename from packages/twenty-server/src/core/open-api/utils/__tests__/components.utils.spec.ts rename to packages/twenty-server/src/engine/modules/open-api/utils/__tests__/components.utils.spec.ts index d6f9c4733f..be31556327 100644 --- a/packages/twenty-server/src/core/open-api/utils/__tests__/components.utils.spec.ts +++ b/packages/twenty-server/src/engine/modules/open-api/utils/__tests__/components.utils.spec.ts @@ -1,6 +1,6 @@ -import { computeSchemaComponents } from 'src/core/open-api/utils/components.utils'; +import { computeSchemaComponents } from 'src/engine/modules/open-api/utils/components.utils'; import { objectMetadataItem } from 'src/utils/utils-test/object-metadata-item'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; describe('computeSchemaComponents', () => { it('should compute schema components', () => { diff --git a/packages/twenty-server/src/core/open-api/utils/__tests__/parameters.utils.spec.ts b/packages/twenty-server/src/engine/modules/open-api/utils/__tests__/parameters.utils.spec.ts similarity index 84% rename from packages/twenty-server/src/core/open-api/utils/__tests__/parameters.utils.spec.ts rename to packages/twenty-server/src/engine/modules/open-api/utils/__tests__/parameters.utils.spec.ts index 1b27b2a345..d2a2106a2a 100644 --- a/packages/twenty-server/src/core/open-api/utils/__tests__/parameters.utils.spec.ts +++ b/packages/twenty-server/src/engine/modules/open-api/utils/__tests__/parameters.utils.spec.ts @@ -1,4 +1,4 @@ -import { OrderByDirection } from 'src/workspace/workspace-query-builder/interfaces/record.interface'; +import { OrderByDirection } from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; import { computeDepthParameters, @@ -7,11 +7,11 @@ import { computeLastCursorParameters, computeLimitParameters, computeOrderByParameters, -} from 'src/core/open-api/utils/parameters.utils'; -import { DEFAULT_ORDER_DIRECTION } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/order-by-input.factory'; -import { FilterComparators } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-base-filter.utils'; -import { Conjunctions } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils'; -import { DEFAULT_CONJUNCTION } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils'; +} from 'src/engine/modules/open-api/utils/parameters.utils'; +import { DEFAULT_ORDER_DIRECTION } from 'src/api/rest/api-rest-query-builder/factories/input-factories/order-by-input.factory'; +import { FilterComparators } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-base-filter.utils'; +import { Conjunctions } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils'; +import { DEFAULT_CONJUNCTION } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils'; describe('computeParameters', () => { describe('computeLimit', () => { diff --git a/packages/twenty-server/src/core/open-api/utils/base-schema.utils.ts b/packages/twenty-server/src/engine/modules/open-api/utils/base-schema.utils.ts similarity index 94% rename from packages/twenty-server/src/core/open-api/utils/base-schema.utils.ts rename to packages/twenty-server/src/engine/modules/open-api/utils/base-schema.utils.ts index 5d56dd8187..328fcee35d 100644 --- a/packages/twenty-server/src/core/open-api/utils/base-schema.utils.ts +++ b/packages/twenty-server/src/engine/modules/open-api/utils/base-schema.utils.ts @@ -1,6 +1,6 @@ import { OpenAPIV3_1 } from 'openapi-types'; -import { computeOpenApiPath } from 'src/core/open-api/utils/path.utils'; +import { computeOpenApiPath } from 'src/engine/modules/open-api/utils/path.utils'; export const baseSchema = ( schemaName: 'core' | 'metadata', diff --git a/packages/twenty-server/src/core/open-api/utils/components.utils.ts b/packages/twenty-server/src/engine/modules/open-api/utils/components.utils.ts similarity index 97% rename from packages/twenty-server/src/core/open-api/utils/components.utils.ts rename to packages/twenty-server/src/engine/modules/open-api/utils/components.utils.ts index c639bc4b6c..b3336e880b 100644 --- a/packages/twenty-server/src/core/open-api/utils/components.utils.ts +++ b/packages/twenty-server/src/engine/modules/open-api/utils/components.utils.ts @@ -1,7 +1,7 @@ import { OpenAPIV3_1 } from 'openapi-types'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { capitalize } from 'src/utils/capitalize'; import { computeDepthParameters, @@ -10,7 +10,7 @@ import { computeLastCursorParameters, computeLimitParameters, computeOrderByParameters, -} from 'src/core/open-api/utils/parameters.utils'; +} from 'src/engine/modules/open-api/utils/parameters.utils'; type Property = OpenAPIV3_1.SchemaObject; diff --git a/packages/twenty-server/src/core/open-api/utils/compute-schema-tags.utils.ts b/packages/twenty-server/src/engine/modules/open-api/utils/compute-schema-tags.utils.ts similarity index 81% rename from packages/twenty-server/src/core/open-api/utils/compute-schema-tags.utils.ts rename to packages/twenty-server/src/engine/modules/open-api/utils/compute-schema-tags.utils.ts index f7f25027b3..d18742912f 100644 --- a/packages/twenty-server/src/core/open-api/utils/compute-schema-tags.utils.ts +++ b/packages/twenty-server/src/engine/modules/open-api/utils/compute-schema-tags.utils.ts @@ -1,6 +1,6 @@ import { OpenAPIV3_1 } from 'openapi-types'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; import { capitalize } from 'src/utils/capitalize'; export const computeSchemaTags = ( diff --git a/packages/twenty-server/src/core/open-api/utils/computeWebhooks.utils.ts b/packages/twenty-server/src/engine/modules/open-api/utils/computeWebhooks.utils.ts similarity index 95% rename from packages/twenty-server/src/core/open-api/utils/computeWebhooks.utils.ts rename to packages/twenty-server/src/engine/modules/open-api/utils/computeWebhooks.utils.ts index 436d397ec7..0f13450fa4 100644 --- a/packages/twenty-server/src/core/open-api/utils/computeWebhooks.utils.ts +++ b/packages/twenty-server/src/engine/modules/open-api/utils/computeWebhooks.utils.ts @@ -1,6 +1,6 @@ import { OpenAPIV3_1 } from 'openapi-types'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; import { capitalize } from 'src/utils/capitalize'; export const computeWebhooks = ( diff --git a/packages/twenty-server/src/core/open-api/utils/get-error-responses.utils.ts b/packages/twenty-server/src/engine/modules/open-api/utils/get-error-responses.utils.ts similarity index 100% rename from packages/twenty-server/src/core/open-api/utils/get-error-responses.utils.ts rename to packages/twenty-server/src/engine/modules/open-api/utils/get-error-responses.utils.ts diff --git a/packages/twenty-server/src/core/open-api/utils/parameters.utils.ts b/packages/twenty-server/src/engine/modules/open-api/utils/parameters.utils.ts similarity index 82% rename from packages/twenty-server/src/core/open-api/utils/parameters.utils.ts rename to packages/twenty-server/src/engine/modules/open-api/utils/parameters.utils.ts index fb8f95d9fe..559ab795d6 100644 --- a/packages/twenty-server/src/core/open-api/utils/parameters.utils.ts +++ b/packages/twenty-server/src/engine/modules/open-api/utils/parameters.utils.ts @@ -1,11 +1,11 @@ import { OpenAPIV3_1 } from 'openapi-types'; -import { OrderByDirection } from 'src/workspace/workspace-query-builder/interfaces/record.interface'; +import { OrderByDirection } from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; -import { FilterComparators } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-base-filter.utils'; -import { Conjunctions } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils'; -import { DEFAULT_ORDER_DIRECTION } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/order-by-input.factory'; -import { DEFAULT_CONJUNCTION } from 'src/core/api-rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils'; +import { FilterComparators } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-base-filter.utils'; +import { Conjunctions } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/parse-filter.utils'; +import { DEFAULT_ORDER_DIRECTION } from 'src/api/rest/api-rest-query-builder/factories/input-factories/order-by-input.factory'; +import { DEFAULT_CONJUNCTION } from 'src/api/rest/api-rest-query-builder/factories/input-factories/filter-utils/add-default-conjunction.utils'; export const computeLimitParameters = (): OpenAPIV3_1.ParameterObject => { return { diff --git a/packages/twenty-server/src/core/open-api/utils/path.utils.ts b/packages/twenty-server/src/engine/modules/open-api/utils/path.utils.ts similarity index 93% rename from packages/twenty-server/src/core/open-api/utils/path.utils.ts rename to packages/twenty-server/src/engine/modules/open-api/utils/path.utils.ts index 4a14640d1b..269219badd 100644 --- a/packages/twenty-server/src/core/open-api/utils/path.utils.ts +++ b/packages/twenty-server/src/engine/modules/open-api/utils/path.utils.ts @@ -1,14 +1,14 @@ import { OpenAPIV3_1 } from 'openapi-types'; import { capitalize } from 'src/utils/capitalize'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; import { getDeleteResponse200, getJsonResponse, getManyResultResponse200, getSingleResultSuccessResponse, -} from 'src/core/open-api/utils/responses.utils'; -import { getRequestBody } from 'src/core/open-api/utils/request-body.utils'; +} from 'src/engine/modules/open-api/utils/responses.utils'; +import { getRequestBody } from 'src/engine/modules/open-api/utils/request-body.utils'; export const computeManyResultPath = ( item: ObjectMetadataEntity, diff --git a/packages/twenty-server/src/core/open-api/utils/request-body.utils.ts b/packages/twenty-server/src/engine/modules/open-api/utils/request-body.utils.ts similarity index 78% rename from packages/twenty-server/src/core/open-api/utils/request-body.utils.ts rename to packages/twenty-server/src/engine/modules/open-api/utils/request-body.utils.ts index 77007950bc..250913534b 100644 --- a/packages/twenty-server/src/core/open-api/utils/request-body.utils.ts +++ b/packages/twenty-server/src/engine/modules/open-api/utils/request-body.utils.ts @@ -1,4 +1,4 @@ -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; import { capitalize } from 'src/utils/capitalize'; export const getRequestBody = ( diff --git a/packages/twenty-server/src/core/open-api/utils/responses.utils.ts b/packages/twenty-server/src/engine/modules/open-api/utils/responses.utils.ts similarity index 97% rename from packages/twenty-server/src/core/open-api/utils/responses.utils.ts rename to packages/twenty-server/src/engine/modules/open-api/utils/responses.utils.ts index 2a6bc18416..e47d7cc57e 100644 --- a/packages/twenty-server/src/core/open-api/utils/responses.utils.ts +++ b/packages/twenty-server/src/engine/modules/open-api/utils/responses.utils.ts @@ -1,4 +1,4 @@ -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; import { capitalize } from 'src/utils/capitalize'; export const getManyResultResponse200 = ( diff --git a/packages/twenty-server/src/core/quick-actions/intelligence.service.ts b/packages/twenty-server/src/engine/modules/quick-actions/intelligence.service.ts similarity index 86% rename from packages/twenty-server/src/core/quick-actions/intelligence.service.ts rename to packages/twenty-server/src/engine/modules/quick-actions/intelligence.service.ts index ee0540c9de..a508adc24d 100644 --- a/packages/twenty-server/src/core/quick-actions/intelligence.service.ts +++ b/packages/twenty-server/src/engine/modules/quick-actions/intelligence.service.ts @@ -1,7 +1,7 @@ import { HttpService } from '@nestjs/axios'; import { Injectable } from '@nestjs/common'; -import { CompanyInteface } from 'src/core/quick-actions/interfaces/company.interface'; +import { CompanyInteface } from 'src/engine/modules/quick-actions/interfaces/company.interface'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; @@ -37,7 +37,9 @@ export class IntelligenceService { 'https://openrouter.ai/api/v1/chat/completions', { headers: { - Authorization: `Bearer ${this.environmentService.get('OPENROUTER_API_KEY')}`, + Authorization: `Bearer ${this.environmentService.get( + 'OPENROUTER_API_KEY', + )}`, 'HTTP-Referer': `https://twenty.com`, 'X-Title': `Twenty CRM`, 'Content-Type': 'application/json', diff --git a/packages/twenty-server/src/core/quick-actions/interfaces/company.interface.ts b/packages/twenty-server/src/engine/modules/quick-actions/interfaces/company.interface.ts similarity index 100% rename from packages/twenty-server/src/core/quick-actions/interfaces/company.interface.ts rename to packages/twenty-server/src/engine/modules/quick-actions/interfaces/company.interface.ts diff --git a/packages/twenty-server/src/core/quick-actions/quick-actions.module.ts b/packages/twenty-server/src/engine/modules/quick-actions/quick-actions.module.ts similarity index 51% rename from packages/twenty-server/src/core/quick-actions/quick-actions.module.ts rename to packages/twenty-server/src/engine/modules/quick-actions/quick-actions.module.ts index 20065c53ce..03a58166ac 100644 --- a/packages/twenty-server/src/core/quick-actions/quick-actions.module.ts +++ b/packages/twenty-server/src/engine/modules/quick-actions/quick-actions.module.ts @@ -1,9 +1,9 @@ import { Module } from '@nestjs/common'; import { HttpModule } from '@nestjs/axios'; -import { IntelligenceService } from 'src/core/quick-actions/intelligence.service'; -import { QuickActionsService } from 'src/core/quick-actions/quick-actions.service'; -import { WorkspaceQueryRunnerModule } from 'src/workspace/workspace-query-runner/workspace-query-runner.module'; +import { IntelligenceService } from 'src/engine/modules/quick-actions/intelligence.service'; +import { QuickActionsService } from 'src/engine/modules/quick-actions/quick-actions.service'; +import { WorkspaceQueryRunnerModule } from 'src/engine/graphql/workspace-query-runner/workspace-query-runner.module'; @Module({ imports: [WorkspaceQueryRunnerModule, HttpModule], diff --git a/packages/twenty-server/src/core/quick-actions/quick-actions.service.ts b/packages/twenty-server/src/engine/modules/quick-actions/quick-actions.service.ts similarity index 88% rename from packages/twenty-server/src/core/quick-actions/quick-actions.service.ts rename to packages/twenty-server/src/engine/modules/quick-actions/quick-actions.service.ts index 377fb5e71f..c2b55d17bf 100644 --- a/packages/twenty-server/src/core/quick-actions/quick-actions.service.ts +++ b/packages/twenty-server/src/engine/modules/quick-actions/quick-actions.service.ts @@ -2,13 +2,13 @@ import { Injectable } from '@nestjs/common'; import { v4 as uuidv4 } from 'uuid'; -import { Record as IRecord } from 'src/workspace/workspace-query-builder/interfaces/record.interface'; -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; +import { Record as IRecord } from 'src/engine/graphql/workspace-query-builder/interfaces/record.interface'; +import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface'; import { isWorkEmail } from 'src/utils/is-work-email'; -import { stringifyWithoutKeyQuote } from 'src/workspace/workspace-query-builder/utils/stringify-without-key-quote.util'; -import { WorkspaceQueryRunnerService } from 'src/workspace/workspace-query-runner/workspace-query-runner.service'; -import { IntelligenceService } from 'src/core/quick-actions/intelligence.service'; +import { stringifyWithoutKeyQuote } from 'src/engine/graphql/workspace-query-builder/utils/stringify-without-key-quote.util'; +import { WorkspaceQueryRunnerService } from 'src/engine/graphql/workspace-query-runner/workspace-query-runner.service'; +import { IntelligenceService } from 'src/engine/modules/quick-actions/intelligence.service'; import { capitalize } from 'src/utils/capitalize'; @Injectable() diff --git a/packages/twenty-server/src/core/refresh-token/dtos/create-refresh-token.input.ts b/packages/twenty-server/src/engine/modules/refresh-token/dtos/create-refresh-token.input.ts similarity index 100% rename from packages/twenty-server/src/core/refresh-token/dtos/create-refresh-token.input.ts rename to packages/twenty-server/src/engine/modules/refresh-token/dtos/create-refresh-token.input.ts diff --git a/packages/twenty-server/src/core/refresh-token/hooks/before-create-one-refresh-token.hook.ts b/packages/twenty-server/src/engine/modules/refresh-token/hooks/before-create-one-refresh-token.hook.ts similarity index 87% rename from packages/twenty-server/src/core/refresh-token/hooks/before-create-one-refresh-token.hook.ts rename to packages/twenty-server/src/engine/modules/refresh-token/hooks/before-create-one-refresh-token.hook.ts index 7399e402f6..509ce1d79c 100644 --- a/packages/twenty-server/src/core/refresh-token/hooks/before-create-one-refresh-token.hook.ts +++ b/packages/twenty-server/src/engine/modules/refresh-token/hooks/before-create-one-refresh-token.hook.ts @@ -4,7 +4,7 @@ import { } from '@ptc-org/nestjs-query-graphql'; import { v4 as uuidv4 } from 'uuid'; -import { RefreshToken } from 'src/core/refresh-token/refresh-token.entity'; +import { RefreshToken } from 'src/engine/modules/refresh-token/refresh-token.entity'; export class BeforeCreateOneRefreshToken implements BeforeCreateOneHook diff --git a/packages/twenty-server/src/core/refresh-token/refresh-token.auto-resolver-opts.ts b/packages/twenty-server/src/engine/modules/refresh-token/refresh-token.auto-resolver-opts.ts similarity index 93% rename from packages/twenty-server/src/core/refresh-token/refresh-token.auto-resolver-opts.ts rename to packages/twenty-server/src/engine/modules/refresh-token/refresh-token.auto-resolver-opts.ts index 5b19f5eb2b..254b80e984 100644 --- a/packages/twenty-server/src/core/refresh-token/refresh-token.auto-resolver-opts.ts +++ b/packages/twenty-server/src/engine/modules/refresh-token/refresh-token.auto-resolver-opts.ts @@ -4,7 +4,7 @@ import { ReadResolverOpts, } from '@ptc-org/nestjs-query-graphql'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; import { RefreshToken } from './refresh-token.entity'; diff --git a/packages/twenty-server/src/core/refresh-token/refresh-token.entity.ts b/packages/twenty-server/src/engine/modules/refresh-token/refresh-token.entity.ts similarity index 95% rename from packages/twenty-server/src/core/refresh-token/refresh-token.entity.ts rename to packages/twenty-server/src/engine/modules/refresh-token/refresh-token.entity.ts index 4ed5957984..f1174ec60e 100644 --- a/packages/twenty-server/src/core/refresh-token/refresh-token.entity.ts +++ b/packages/twenty-server/src/engine/modules/refresh-token/refresh-token.entity.ts @@ -11,7 +11,7 @@ import { } from 'typeorm'; import { BeforeCreateOne, IDField } from '@ptc-org/nestjs-query-graphql'; -import { User } from 'src/core/user/user.entity'; +import { User } from 'src/engine/modules/user/user.entity'; import { BeforeCreateOneRefreshToken } from './hooks/before-create-one-refresh-token.hook'; diff --git a/packages/twenty-server/src/core/refresh-token/refresh-token.module.ts b/packages/twenty-server/src/engine/modules/refresh-token/refresh-token.module.ts similarity index 100% rename from packages/twenty-server/src/core/refresh-token/refresh-token.module.ts rename to packages/twenty-server/src/engine/modules/refresh-token/refresh-token.module.ts diff --git a/packages/twenty-server/src/core/refresh-token/services/refresh-token.service.spec.ts b/packages/twenty-server/src/engine/modules/refresh-token/services/refresh-token.service.spec.ts similarity index 88% rename from packages/twenty-server/src/core/refresh-token/services/refresh-token.service.spec.ts rename to packages/twenty-server/src/engine/modules/refresh-token/services/refresh-token.service.spec.ts index b563ca5504..926309df97 100644 --- a/packages/twenty-server/src/core/refresh-token/services/refresh-token.service.spec.ts +++ b/packages/twenty-server/src/engine/modules/refresh-token/services/refresh-token.service.spec.ts @@ -1,7 +1,7 @@ import { Test, TestingModule } from '@nestjs/testing'; import { getRepositoryToken } from '@nestjs/typeorm'; -import { RefreshToken } from 'src/core/refresh-token/refresh-token.entity'; +import { RefreshToken } from 'src/engine/modules/refresh-token/refresh-token.entity'; import { RefreshTokenService } from './refresh-token.service'; diff --git a/packages/twenty-server/src/core/refresh-token/services/refresh-token.service.ts b/packages/twenty-server/src/engine/modules/refresh-token/services/refresh-token.service.ts similarity index 63% rename from packages/twenty-server/src/core/refresh-token/services/refresh-token.service.ts rename to packages/twenty-server/src/engine/modules/refresh-token/services/refresh-token.service.ts index faa99c3cbd..704087f235 100644 --- a/packages/twenty-server/src/core/refresh-token/services/refresh-token.service.ts +++ b/packages/twenty-server/src/engine/modules/refresh-token/services/refresh-token.service.ts @@ -1,5 +1,5 @@ import { TypeOrmQueryService } from '@ptc-org/nestjs-query-typeorm'; -import { RefreshToken } from 'src/core/refresh-token/refresh-token.entity'; +import { RefreshToken } from 'src/engine/modules/refresh-token/refresh-token.entity'; export class RefreshTokenService extends TypeOrmQueryService {} diff --git a/packages/twenty-server/src/core/user-workspace/user-workspace.entity.ts b/packages/twenty-server/src/engine/modules/user-workspace/user-workspace.entity.ts similarity index 90% rename from packages/twenty-server/src/core/user-workspace/user-workspace.entity.ts rename to packages/twenty-server/src/engine/modules/user-workspace/user-workspace.entity.ts index 5029e608f5..b167f82e84 100644 --- a/packages/twenty-server/src/core/user-workspace/user-workspace.entity.ts +++ b/packages/twenty-server/src/engine/modules/user-workspace/user-workspace.entity.ts @@ -12,8 +12,8 @@ import { UpdateDateColumn, } from 'typeorm'; -import { User } from 'src/core/user/user.entity'; -import { Workspace } from 'src/core/workspace/workspace.entity'; +import { User } from 'src/engine/modules/user/user.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; @Entity({ name: 'userWorkspace', schema: 'core' }) @ObjectType('UserWorkspace') diff --git a/packages/twenty-server/src/core/user-workspace/user-workspace.module.ts b/packages/twenty-server/src/engine/modules/user-workspace/user-workspace.module.ts similarity index 63% rename from packages/twenty-server/src/core/user-workspace/user-workspace.module.ts rename to packages/twenty-server/src/engine/modules/user-workspace/user-workspace.module.ts index 836e83c517..ae4445aa96 100644 --- a/packages/twenty-server/src/core/user-workspace/user-workspace.module.ts +++ b/packages/twenty-server/src/engine/modules/user-workspace/user-workspace.module.ts @@ -4,10 +4,10 @@ import { NestjsQueryGraphQLModule } from '@ptc-org/nestjs-query-graphql'; import { NestjsQueryTypeOrmModule } from '@ptc-org/nestjs-query-typeorm'; import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { UserWorkspace } from 'src/core/user-workspace/user-workspace.entity'; -import { UserWorkspaceService } from 'src/core/user-workspace/user-workspace.service'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; +import { UserWorkspace } from 'src/engine/modules/user-workspace/user-workspace.entity'; +import { UserWorkspaceService } from 'src/engine/modules/user-workspace/user-workspace.service'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; @Module({ imports: [ diff --git a/packages/twenty-server/src/core/user-workspace/user-workspace.service.ts b/packages/twenty-server/src/engine/modules/user-workspace/user-workspace.service.ts similarity index 86% rename from packages/twenty-server/src/core/user-workspace/user-workspace.service.ts rename to packages/twenty-server/src/engine/modules/user-workspace/user-workspace.service.ts index 62eef86291..269a75c769 100644 --- a/packages/twenty-server/src/core/user-workspace/user-workspace.service.ts +++ b/packages/twenty-server/src/engine/modules/user-workspace/user-workspace.service.ts @@ -4,13 +4,13 @@ import { EventEmitter2 } from '@nestjs/event-emitter'; import { TypeOrmQueryService } from '@ptc-org/nestjs-query-typeorm'; import { Repository } from 'typeorm'; -import { UserWorkspace } from 'src/core/user-workspace/user-workspace.entity'; +import { UserWorkspace } from 'src/engine/modules/user-workspace/user-workspace.entity'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; -import { User } from 'src/core/user/user.entity'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; +import { User } from 'src/engine/modules/user/user.entity'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; import { ObjectRecordCreateEvent } from 'src/integrations/event-emitter/types/object-record-create.event'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; import { assert } from 'src/utils/assert'; export class UserWorkspaceService extends TypeOrmQueryService { diff --git a/packages/twenty-server/src/core/user/dtos/workspace-member.dto.ts b/packages/twenty-server/src/engine/modules/user/dtos/workspace-member.dto.ts similarity index 100% rename from packages/twenty-server/src/core/user/dtos/workspace-member.dto.ts rename to packages/twenty-server/src/engine/modules/user/dtos/workspace-member.dto.ts diff --git a/packages/twenty-server/src/core/user/services/user.service.spec.ts b/packages/twenty-server/src/engine/modules/user/services/user.service.spec.ts similarity index 85% rename from packages/twenty-server/src/core/user/services/user.service.spec.ts rename to packages/twenty-server/src/engine/modules/user/services/user.service.spec.ts index fd59dc7d20..010a7c6992 100644 --- a/packages/twenty-server/src/core/user/services/user.service.spec.ts +++ b/packages/twenty-server/src/engine/modules/user/services/user.service.spec.ts @@ -1,8 +1,8 @@ import { Test, TestingModule } from '@nestjs/testing'; import { getRepositoryToken } from '@nestjs/typeorm'; -import { User } from 'src/core/user/user.entity'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; +import { User } from 'src/engine/modules/user/user.entity'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; import { UserService } from './user.service'; diff --git a/packages/twenty-server/src/core/user/services/user.service.ts b/packages/twenty-server/src/engine/modules/user/services/user.service.ts similarity index 90% rename from packages/twenty-server/src/core/user/services/user.service.ts rename to packages/twenty-server/src/engine/modules/user/services/user.service.ts index c088176a29..f4c76ff842 100644 --- a/packages/twenty-server/src/core/user/services/user.service.ts +++ b/packages/twenty-server/src/engine/modules/user/services/user.service.ts @@ -4,11 +4,11 @@ import { TypeOrmQueryService } from '@ptc-org/nestjs-query-typeorm'; import { Repository } from 'typeorm'; import { assert } from 'src/utils/assert'; -import { User } from 'src/core/user/user.entity'; -import { WorkspaceMember } from 'src/core/user/dtos/workspace-member.dto'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; +import { User } from 'src/engine/modules/user/user.entity'; +import { WorkspaceMember } from 'src/engine/modules/user/dtos/workspace-member.dto'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; -import { DataSourceEntity } from 'src/metadata/data-source/data-source.entity'; +import { DataSourceEntity } from 'src/engine-metadata/data-source/data-source.entity'; export class UserService extends TypeOrmQueryService { constructor( diff --git a/packages/twenty-server/src/core/user/user.auto-resolver-opts.ts b/packages/twenty-server/src/engine/modules/user/user.auto-resolver-opts.ts similarity index 85% rename from packages/twenty-server/src/core/user/user.auto-resolver-opts.ts rename to packages/twenty-server/src/engine/modules/user/user.auto-resolver-opts.ts index e130344855..6b46942179 100644 --- a/packages/twenty-server/src/core/user/user.auto-resolver-opts.ts +++ b/packages/twenty-server/src/engine/modules/user/user.auto-resolver-opts.ts @@ -4,8 +4,8 @@ import { PagingStrategies, } from '@ptc-org/nestjs-query-graphql'; -import { User } from 'src/core/user/user.entity'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; +import { User } from 'src/engine/modules/user/user.entity'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; export const userAutoResolverOpts: AutoResolverOpts< any, diff --git a/packages/twenty-server/src/core/user/user.entity.ts b/packages/twenty-server/src/engine/modules/user/user.entity.ts similarity index 85% rename from packages/twenty-server/src/core/user/user.entity.ts rename to packages/twenty-server/src/engine/modules/user/user.entity.ts index e81c438ed7..6f8f681643 100644 --- a/packages/twenty-server/src/core/user/user.entity.ts +++ b/packages/twenty-server/src/engine/modules/user/user.entity.ts @@ -11,10 +11,10 @@ import { } from 'typeorm'; import { IDField } from '@ptc-org/nestjs-query-graphql'; -import { RefreshToken } from 'src/core/refresh-token/refresh-token.entity'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { WorkspaceMember } from 'src/core/user/dtos/workspace-member.dto'; -import { UserWorkspace } from 'src/core/user-workspace/user-workspace.entity'; +import { RefreshToken } from 'src/engine/modules/refresh-token/refresh-token.entity'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { WorkspaceMember } from 'src/engine/modules/user/dtos/workspace-member.dto'; +import { UserWorkspace } from 'src/engine/modules/user-workspace/user-workspace.entity'; @Entity({ name: 'user', schema: 'core' }) @ObjectType('User') diff --git a/packages/twenty-server/src/core/user/user.module.ts b/packages/twenty-server/src/engine/modules/user/user.module.ts similarity index 66% rename from packages/twenty-server/src/core/user/user.module.ts rename to packages/twenty-server/src/engine/modules/user/user.module.ts index 75fad2ccce..3edc028e66 100644 --- a/packages/twenty-server/src/core/user/user.module.ts +++ b/packages/twenty-server/src/engine/modules/user/user.module.ts @@ -4,14 +4,14 @@ import { Module } from '@nestjs/common'; import { NestjsQueryGraphQLModule } from '@ptc-org/nestjs-query-graphql'; import { NestjsQueryTypeOrmModule } from '@ptc-org/nestjs-query-typeorm'; -import { FileModule } from 'src/core/file/file.module'; -import { User } from 'src/core/user/user.entity'; -import { UserResolver } from 'src/core/user/user.resolver'; +import { FileModule } from 'src/engine/modules/file/file.module'; +import { User } from 'src/engine/modules/user/user.entity'; +import { UserResolver } from 'src/engine/modules/user/user.resolver'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { UserWorkspaceModule } from 'src/core/user-workspace/user-workspace.module'; -import { UserWorkspace } from 'src/core/user-workspace/user-workspace.entity'; +import { UserWorkspaceModule } from 'src/engine/modules/user-workspace/user-workspace.module'; +import { UserWorkspace } from 'src/engine/modules/user-workspace/user-workspace.entity'; import { userAutoResolverOpts } from './user.auto-resolver-opts'; diff --git a/packages/twenty-server/src/core/user/user.resolver.ts b/packages/twenty-server/src/engine/modules/user/user.resolver.ts similarity index 85% rename from packages/twenty-server/src/core/user/user.resolver.ts rename to packages/twenty-server/src/engine/modules/user/user.resolver.ts index 0a429d138c..8f0096b2f9 100644 --- a/packages/twenty-server/src/core/user/user.resolver.ts +++ b/packages/twenty-server/src/engine/modules/user/user.resolver.ts @@ -15,17 +15,17 @@ import { FileUpload, GraphQLUpload } from 'graphql-upload'; import { Repository } from 'typeorm'; import { SupportDriver } from 'src/integrations/environment/interfaces/support.interface'; -import { FileFolder } from 'src/core/file/interfaces/file-folder.interface'; +import { FileFolder } from 'src/engine/modules/file/interfaces/file-folder.interface'; -import { AuthUser } from 'src/decorators/auth/auth-user.decorator'; +import { AuthUser } from 'src/engine/decorators/auth/auth-user.decorator'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; import { streamToBuffer } from 'src/utils/stream-to-buffer'; -import { FileUploadService } from 'src/core/file/services/file-upload.service'; +import { FileUploadService } from 'src/engine/modules/file/services/file-upload.service'; import { assert } from 'src/utils/assert'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; -import { User } from 'src/core/user/user.entity'; -import { WorkspaceMember } from 'src/core/user/dtos/workspace-member.dto'; -import { UserWorkspaceService } from 'src/core/user-workspace/user-workspace.service'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; +import { User } from 'src/engine/modules/user/user.entity'; +import { WorkspaceMember } from 'src/engine/modules/user/dtos/workspace-member.dto'; +import { UserWorkspaceService } from 'src/engine/modules/user-workspace/user-workspace.service'; import { UserService } from './services/user.service'; diff --git a/packages/twenty-server/src/core/workspace/dtos/activate-workspace-input.ts b/packages/twenty-server/src/engine/modules/workspace/dtos/activate-workspace-input.ts similarity index 100% rename from packages/twenty-server/src/core/workspace/dtos/activate-workspace-input.ts rename to packages/twenty-server/src/engine/modules/workspace/dtos/activate-workspace-input.ts diff --git a/packages/twenty-server/src/core/workspace/dtos/update-workspace-input.ts b/packages/twenty-server/src/engine/modules/workspace/dtos/update-workspace-input.ts similarity index 100% rename from packages/twenty-server/src/core/workspace/dtos/update-workspace-input.ts rename to packages/twenty-server/src/engine/modules/workspace/dtos/update-workspace-input.ts diff --git a/packages/twenty-server/src/core/workspace/services/workspace.service.spec.ts b/packages/twenty-server/src/engine/modules/workspace/services/workspace.service.spec.ts similarity index 69% rename from packages/twenty-server/src/core/workspace/services/workspace.service.spec.ts rename to packages/twenty-server/src/engine/modules/workspace/services/workspace.service.spec.ts index 2ee3828fbd..1f6961f6c8 100644 --- a/packages/twenty-server/src/core/workspace/services/workspace.service.spec.ts +++ b/packages/twenty-server/src/engine/modules/workspace/services/workspace.service.spec.ts @@ -1,12 +1,12 @@ import { Test, TestingModule } from '@nestjs/testing'; import { getRepositoryToken } from '@nestjs/typeorm'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { WorkspaceManagerService } from 'src/workspace/workspace-manager/workspace-manager.service'; -import { UserWorkspace } from 'src/core/user-workspace/user-workspace.entity'; -import { User } from 'src/core/user/user.entity'; -import { BillingService } from 'src/core/billing/billing.service'; -import { UserWorkspaceService } from 'src/core/user-workspace/user-workspace.service'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { WorkspaceManagerService } from 'src/engine/workspace-manager/workspace-manager.service'; +import { UserWorkspace } from 'src/engine/modules/user-workspace/user-workspace.entity'; +import { User } from 'src/engine/modules/user/user.entity'; +import { BillingService } from 'src/engine/modules/billing/billing.service'; +import { UserWorkspaceService } from 'src/engine/modules/user-workspace/user-workspace.service'; import { WorkspaceService } from './workspace.service'; diff --git a/packages/twenty-server/src/core/workspace/services/workspace.service.ts b/packages/twenty-server/src/engine/modules/workspace/services/workspace.service.ts similarity index 78% rename from packages/twenty-server/src/core/workspace/services/workspace.service.ts rename to packages/twenty-server/src/engine/modules/workspace/services/workspace.service.ts index 722adf242e..2e32aa5fe7 100644 --- a/packages/twenty-server/src/core/workspace/services/workspace.service.ts +++ b/packages/twenty-server/src/engine/modules/workspace/services/workspace.service.ts @@ -6,13 +6,13 @@ import assert from 'assert'; import { TypeOrmQueryService } from '@ptc-org/nestjs-query-typeorm'; import { Repository } from 'typeorm'; -import { WorkspaceManagerService } from 'src/workspace/workspace-manager/workspace-manager.service'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { User } from 'src/core/user/user.entity'; -import { ActivateWorkspaceInput } from 'src/core/workspace/dtos/activate-workspace-input'; -import { UserWorkspace } from 'src/core/user-workspace/user-workspace.entity'; -import { UserWorkspaceService } from 'src/core/user-workspace/user-workspace.service'; -import { BillingService } from 'src/core/billing/billing.service'; +import { WorkspaceManagerService } from 'src/engine/workspace-manager/workspace-manager.service'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { User } from 'src/engine/modules/user/user.entity'; +import { ActivateWorkspaceInput } from 'src/engine/modules/workspace/dtos/activate-workspace-input'; +import { UserWorkspace } from 'src/engine/modules/user-workspace/user-workspace.entity'; +import { UserWorkspaceService } from 'src/engine/modules/user-workspace/user-workspace.service'; +import { BillingService } from 'src/engine/modules/billing/billing.service'; export class WorkspaceService extends TypeOrmQueryService { constructor( diff --git a/packages/twenty-server/src/core/workspace/workspace.auto-resolver-opts.ts b/packages/twenty-server/src/engine/modules/workspace/workspace.auto-resolver-opts.ts similarity index 83% rename from packages/twenty-server/src/core/workspace/workspace.auto-resolver-opts.ts rename to packages/twenty-server/src/engine/modules/workspace/workspace.auto-resolver-opts.ts index 3ff4f05944..31493337e4 100644 --- a/packages/twenty-server/src/core/workspace/workspace.auto-resolver-opts.ts +++ b/packages/twenty-server/src/engine/modules/workspace/workspace.auto-resolver-opts.ts @@ -4,8 +4,8 @@ import { ReadResolverOpts, } from '@ptc-org/nestjs-query-graphql'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; -import { UpdateWorkspaceInput } from 'src/core/workspace/dtos/update-workspace-input'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; +import { UpdateWorkspaceInput } from 'src/engine/modules/workspace/dtos/update-workspace-input'; import { Workspace } from './workspace.entity'; diff --git a/packages/twenty-server/src/core/workspace/workspace.entity.ts b/packages/twenty-server/src/engine/modules/workspace/workspace.entity.ts similarity index 85% rename from packages/twenty-server/src/core/workspace/workspace.entity.ts rename to packages/twenty-server/src/engine/modules/workspace/workspace.entity.ts index bd8d8be4d2..5142137239 100644 --- a/packages/twenty-server/src/core/workspace/workspace.entity.ts +++ b/packages/twenty-server/src/engine/modules/workspace/workspace.entity.ts @@ -11,10 +11,10 @@ import { } from 'typeorm'; import Stripe from 'stripe'; -import { User } from 'src/core/user/user.entity'; -import { FeatureFlagEntity } from 'src/core/feature-flag/feature-flag.entity'; -import { BillingSubscription } from 'src/core/billing/entities/billing-subscription.entity'; -import { UserWorkspace } from 'src/core/user-workspace/user-workspace.entity'; +import { User } from 'src/engine/modules/user/user.entity'; +import { FeatureFlagEntity } from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { BillingSubscription } from 'src/engine/modules/billing/entities/billing-subscription.entity'; +import { UserWorkspace } from 'src/engine/modules/user-workspace/user-workspace.entity'; @Entity({ name: 'workspace', schema: 'core' }) @ObjectType('Workspace') diff --git a/packages/twenty-server/src/core/workspace/workspace.module.ts b/packages/twenty-server/src/engine/modules/workspace/workspace.module.ts similarity index 60% rename from packages/twenty-server/src/core/workspace/workspace.module.ts rename to packages/twenty-server/src/engine/modules/workspace/workspace.module.ts index e38c1fa4ed..65dc8e1430 100644 --- a/packages/twenty-server/src/core/workspace/workspace.module.ts +++ b/packages/twenty-server/src/engine/modules/workspace/workspace.module.ts @@ -3,15 +3,15 @@ import { Module } from '@nestjs/common'; import { NestjsQueryGraphQLModule } from '@ptc-org/nestjs-query-graphql'; import { NestjsQueryTypeOrmModule } from '@ptc-org/nestjs-query-typeorm'; -import { FileModule } from 'src/core/file/file.module'; -import { WorkspaceManagerModule } from 'src/workspace/workspace-manager/workspace-manager.module'; -import { WorkspaceResolver } from 'src/core/workspace/workspace.resolver'; +import { FileModule } from 'src/engine/modules/file/file.module'; +import { WorkspaceManagerModule } from 'src/engine/workspace-manager/workspace-manager.module'; +import { WorkspaceResolver } from 'src/engine/modules/workspace/workspace.resolver'; import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { FeatureFlagEntity } from 'src/core/feature-flag/feature-flag.entity'; -import { UserWorkspace } from 'src/core/user-workspace/user-workspace.entity'; -import { User } from 'src/core/user/user.entity'; -import { UserWorkspaceModule } from 'src/core/user-workspace/user-workspace.module'; -import { BillingModule } from 'src/core/billing/billing.module'; +import { FeatureFlagEntity } from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { UserWorkspace } from 'src/engine/modules/user-workspace/user-workspace.entity'; +import { User } from 'src/engine/modules/user/user.entity'; +import { UserWorkspaceModule } from 'src/engine/modules/user-workspace/user-workspace.module'; +import { BillingModule } from 'src/engine/modules/billing/billing.module'; import { Workspace } from './workspace.entity'; import { workspaceAutoResolverOpts } from './workspace.auto-resolver-opts'; diff --git a/packages/twenty-server/src/core/workspace/workspace.resolver.ts b/packages/twenty-server/src/engine/modules/workspace/workspace.resolver.ts similarity index 78% rename from packages/twenty-server/src/core/workspace/workspace.resolver.ts rename to packages/twenty-server/src/engine/modules/workspace/workspace.resolver.ts index fe0890da62..266b7e5022 100644 --- a/packages/twenty-server/src/core/workspace/workspace.resolver.ts +++ b/packages/twenty-server/src/engine/modules/workspace/workspace.resolver.ts @@ -10,20 +10,20 @@ import { ForbiddenException, UseGuards } from '@nestjs/common'; import { FileUpload, GraphQLUpload } from 'graphql-upload'; -import { FileFolder } from 'src/core/file/interfaces/file-folder.interface'; +import { FileFolder } from 'src/engine/modules/file/interfaces/file-folder.interface'; import { streamToBuffer } from 'src/utils/stream-to-buffer'; -import { FileUploadService } from 'src/core/file/services/file-upload.service'; -import { AuthWorkspace } from 'src/decorators/auth/auth-workspace.decorator'; +import { FileUploadService } from 'src/engine/modules/file/services/file-upload.service'; +import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator'; import { assert } from 'src/utils/assert'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; -import { UpdateWorkspaceInput } from 'src/core/workspace/dtos/update-workspace-input'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; +import { UpdateWorkspaceInput } from 'src/engine/modules/workspace/dtos/update-workspace-input'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { User } from 'src/core/user/user.entity'; -import { AuthUser } from 'src/decorators/auth/auth-user.decorator'; -import { ActivateWorkspaceInput } from 'src/core/workspace/dtos/activate-workspace-input'; -import { BillingSubscription } from 'src/core/billing/entities/billing-subscription.entity'; -import { BillingService } from 'src/core/billing/billing.service'; +import { User } from 'src/engine/modules/user/user.entity'; +import { AuthUser } from 'src/engine/decorators/auth/auth-user.decorator'; +import { ActivateWorkspaceInput } from 'src/engine/modules/workspace/dtos/activate-workspace-input'; +import { BillingSubscription } from 'src/engine/modules/billing/entities/billing-subscription.entity'; +import { BillingService } from 'src/engine/modules/billing/billing.service'; import { Workspace } from './workspace.entity'; diff --git a/packages/twenty-server/src/workspace/workspace-datasource/workspace-datasource.module.ts b/packages/twenty-server/src/engine/workspace-datasource/workspace-datasource.module.ts similarity index 81% rename from packages/twenty-server/src/workspace/workspace-datasource/workspace-datasource.module.ts rename to packages/twenty-server/src/engine/workspace-datasource/workspace-datasource.module.ts index 9754aa2bac..81ba4b09c7 100644 --- a/packages/twenty-server/src/workspace/workspace-datasource/workspace-datasource.module.ts +++ b/packages/twenty-server/src/engine/workspace-datasource/workspace-datasource.module.ts @@ -1,7 +1,7 @@ import { Module } from '@nestjs/common'; import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; import { WorkspaceDataSourceService } from './workspace-datasource.service'; diff --git a/packages/twenty-server/src/workspace/workspace-datasource/workspace-datasource.service.ts b/packages/twenty-server/src/engine/workspace-datasource/workspace-datasource.service.ts similarity index 95% rename from packages/twenty-server/src/workspace/workspace-datasource/workspace-datasource.service.ts rename to packages/twenty-server/src/engine/workspace-datasource/workspace-datasource.service.ts index aad5315ad7..a0f0583e44 100644 --- a/packages/twenty-server/src/workspace/workspace-datasource/workspace-datasource.service.ts +++ b/packages/twenty-server/src/engine/workspace-datasource/workspace-datasource.service.ts @@ -2,9 +2,9 @@ import { Injectable } from '@nestjs/common'; import { DataSource, EntityManager } from 'typeorm'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; -import { DataSourceEntity } from 'src/metadata/data-source/data-source.entity'; +import { DataSourceEntity } from 'src/engine-metadata/data-source/data-source.entity'; @Injectable() export class WorkspaceDataSourceService { diff --git a/packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/companies-demo.json b/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/companies-demo.json similarity index 100% rename from packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/companies-demo.json rename to packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/companies-demo.json diff --git a/packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/company.ts b/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/company.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/company.ts rename to packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/company.ts diff --git a/packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/demo-objects-prefill-data.ts b/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/demo-objects-prefill-data.ts similarity index 60% rename from packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/demo-objects-prefill-data.ts rename to packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/demo-objects-prefill-data.ts index 4fd2fd6468..99fb806c46 100644 --- a/packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/demo-objects-prefill-data.ts +++ b/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/demo-objects-prefill-data.ts @@ -1,12 +1,12 @@ import { DataSource, EntityManager } from 'typeorm'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { viewPrefillData } from 'src/workspace/workspace-manager/demo-objects-prefill-data/view'; -import { companyPrefillData } from 'src/workspace/workspace-manager/demo-objects-prefill-data/company'; -import { personPrefillData } from 'src/workspace/workspace-manager/demo-objects-prefill-data/person'; -import { pipelineStepPrefillData } from 'src/workspace/workspace-manager/demo-objects-prefill-data/pipeline-step'; -import { workspaceMemberPrefillData } from 'src/workspace/workspace-manager/demo-objects-prefill-data/workspace-member'; -import { seedDemoOpportunity } from 'src/workspace/workspace-manager/demo-objects-prefill-data/opportunity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { viewPrefillData } from 'src/engine/workspace-manager/demo-objects-prefill-data/view'; +import { companyPrefillData } from 'src/engine/workspace-manager/demo-objects-prefill-data/company'; +import { personPrefillData } from 'src/engine/workspace-manager/demo-objects-prefill-data/person'; +import { pipelineStepPrefillData } from 'src/engine/workspace-manager/demo-objects-prefill-data/pipeline-step'; +import { workspaceMemberPrefillData } from 'src/engine/workspace-manager/demo-objects-prefill-data/workspace-member'; +import { seedDemoOpportunity } from 'src/engine/workspace-manager/demo-objects-prefill-data/opportunity'; export const demoObjectsPrefillData = async ( workspaceDataSource: DataSource, diff --git a/packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/opportunity.ts b/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/opportunity.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/opportunity.ts rename to packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/opportunity.ts diff --git a/packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/people-demo.json b/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/people-demo.json similarity index 100% rename from packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/people-demo.json rename to packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/people-demo.json diff --git a/packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/person.ts b/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/person.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/person.ts rename to packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/person.ts diff --git a/packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/pipeline-step.ts b/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/pipeline-step.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/pipeline-step.ts rename to packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/pipeline-step.ts diff --git a/packages/twenty-server/src/workspace/workspace-manager/standard-objects-prefill-data/view.ts b/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/view.ts similarity index 98% rename from packages/twenty-server/src/workspace/workspace-manager/standard-objects-prefill-data/view.ts rename to packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/view.ts index 6ef42bf706..f503179918 100644 --- a/packages/twenty-server/src/workspace/workspace-manager/standard-objects-prefill-data/view.ts +++ b/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/view.ts @@ -1,6 +1,6 @@ import { EntityManager } from 'typeorm'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; export const viewPrefillData = async ( entityManager: EntityManager, diff --git a/packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/workspace-member.ts b/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/workspace-member.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/workspace-member.ts rename to packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/workspace-member.ts diff --git a/packages/twenty-server/src/workspace/workspace-manager/standard-objects-prefill-data/company.ts b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/company.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-manager/standard-objects-prefill-data/company.ts rename to packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/company.ts diff --git a/packages/twenty-server/src/workspace/workspace-manager/standard-objects-prefill-data/person.ts b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/person.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-manager/standard-objects-prefill-data/person.ts rename to packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/person.ts diff --git a/packages/twenty-server/src/workspace/workspace-manager/standard-objects-prefill-data/pipeline-step.ts b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/pipeline-step.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-manager/standard-objects-prefill-data/pipeline-step.ts rename to packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/pipeline-step.ts diff --git a/packages/twenty-server/src/workspace/workspace-manager/standard-objects-prefill-data/standard-objects-prefill-data.ts b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/standard-objects-prefill-data.ts similarity index 61% rename from packages/twenty-server/src/workspace/workspace-manager/standard-objects-prefill-data/standard-objects-prefill-data.ts rename to packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/standard-objects-prefill-data.ts index c4c801a9a5..a33bdc9d1f 100644 --- a/packages/twenty-server/src/workspace/workspace-manager/standard-objects-prefill-data/standard-objects-prefill-data.ts +++ b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/standard-objects-prefill-data.ts @@ -1,10 +1,10 @@ import { DataSource, EntityManager } from 'typeorm'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { viewPrefillData } from 'src/workspace/workspace-manager/standard-objects-prefill-data/view'; -import { companyPrefillData } from 'src/workspace/workspace-manager/standard-objects-prefill-data/company'; -import { personPrefillData } from 'src/workspace/workspace-manager/standard-objects-prefill-data/person'; -import { pipelineStepPrefillData } from 'src/workspace/workspace-manager/standard-objects-prefill-data/pipeline-step'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { viewPrefillData } from 'src/engine/workspace-manager/standard-objects-prefill-data/view'; +import { companyPrefillData } from 'src/engine/workspace-manager/standard-objects-prefill-data/company'; +import { personPrefillData } from 'src/engine/workspace-manager/standard-objects-prefill-data/person'; +import { pipelineStepPrefillData } from 'src/engine/workspace-manager/standard-objects-prefill-data/pipeline-step'; export const standardObjectsPrefillData = async ( workspaceDataSource: DataSource, diff --git a/packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/view.ts b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/view.ts similarity index 98% rename from packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/view.ts rename to packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/view.ts index 6ef42bf706..f503179918 100644 --- a/packages/twenty-server/src/workspace/workspace-manager/demo-objects-prefill-data/view.ts +++ b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/view.ts @@ -1,6 +1,6 @@ import { EntityManager } from 'typeorm'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; export const viewPrefillData = async ( entityManager: EntityManager, diff --git a/packages/twenty-server/src/workspace/workspace-cleaner/commands/clean-inactive-workspaces.command.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/commands/clean-inactive-workspaces.command.ts similarity index 90% rename from packages/twenty-server/src/workspace/workspace-cleaner/commands/clean-inactive-workspaces.command.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/commands/clean-inactive-workspaces.command.ts index 1dc2eea271..1c08a9adf5 100644 --- a/packages/twenty-server/src/workspace/workspace-cleaner/commands/clean-inactive-workspaces.command.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/commands/clean-inactive-workspaces.command.ts @@ -4,7 +4,7 @@ import { Command, CommandRunner, Option } from 'nest-commander'; import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; -import { CleanInactiveWorkspaceJob } from 'src/workspace/workspace-cleaner/crons/clean-inactive-workspace.job'; +import { CleanInactiveWorkspaceJob } from 'src/engine/workspace-manager/workspace-cleaner/crons/clean-inactive-workspace.job'; export type CleanInactiveWorkspacesCommandOptions = { dryRun: boolean; diff --git a/packages/twenty-server/src/workspace/workspace-cleaner/commands/delete-incomplete-workspaces.command.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/commands/delete-incomplete-workspaces.command.ts similarity index 91% rename from packages/twenty-server/src/workspace/workspace-cleaner/commands/delete-incomplete-workspaces.command.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/commands/delete-incomplete-workspaces.command.ts index 1bd74cd303..71c8c2b988 100644 --- a/packages/twenty-server/src/workspace/workspace-cleaner/commands/delete-incomplete-workspaces.command.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/commands/delete-incomplete-workspaces.command.ts @@ -4,10 +4,10 @@ import { Logger } from '@nestjs/common'; import { Command, CommandRunner, Option } from 'nest-commander'; import { FindOptionsWhere, In, Repository } from 'typeorm'; -import { WorkspaceService } from 'src/core/workspace/services/workspace.service'; -import { Workspace } from 'src/core/workspace/workspace.entity'; +import { WorkspaceService } from 'src/engine/modules/workspace/services/workspace.service'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; import { getDryRunLogHeader } from 'src/utils/get-dry-run-log-header'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; type DeleteIncompleteWorkspacesCommandOptions = { dryRun?: boolean; diff --git a/packages/twenty-server/src/workspace/workspace-cleaner/commands/start-clean-inactive-workspaces.cron.command.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/commands/start-clean-inactive-workspaces.cron.command.ts similarity index 75% rename from packages/twenty-server/src/workspace/workspace-cleaner/commands/start-clean-inactive-workspaces.cron.command.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/commands/start-clean-inactive-workspaces.cron.command.ts index 2da097f809..e17beb2ebd 100644 --- a/packages/twenty-server/src/workspace/workspace-cleaner/commands/start-clean-inactive-workspaces.cron.command.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/commands/start-clean-inactive-workspaces.cron.command.ts @@ -4,8 +4,8 @@ import { Command, CommandRunner } from 'nest-commander'; import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; -import { cleanInactiveWorkspaceCronPattern } from 'src/workspace/workspace-cleaner/crons/clean-inactive-workspace.cron.pattern'; -import { CleanInactiveWorkspaceJob } from 'src/workspace/workspace-cleaner/crons/clean-inactive-workspace.job'; +import { cleanInactiveWorkspaceCronPattern } from 'src/engine/workspace-manager/workspace-cleaner/crons/clean-inactive-workspace.cron.pattern'; +import { CleanInactiveWorkspaceJob } from 'src/engine/workspace-manager/workspace-cleaner/crons/clean-inactive-workspace.job'; @Command({ name: 'clean-inactive-workspaces:cron:start', diff --git a/packages/twenty-server/src/workspace/workspace-cleaner/commands/stop-clean-inactive-workspaces.cron.command.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/commands/stop-clean-inactive-workspaces.cron.command.ts similarity index 74% rename from packages/twenty-server/src/workspace/workspace-cleaner/commands/stop-clean-inactive-workspaces.cron.command.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/commands/stop-clean-inactive-workspaces.cron.command.ts index 158896c061..8c61a5a378 100644 --- a/packages/twenty-server/src/workspace/workspace-cleaner/commands/stop-clean-inactive-workspaces.cron.command.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/commands/stop-clean-inactive-workspaces.cron.command.ts @@ -4,8 +4,8 @@ import { Command, CommandRunner } from 'nest-commander'; import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants'; import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service'; -import { cleanInactiveWorkspaceCronPattern } from 'src/workspace/workspace-cleaner/crons/clean-inactive-workspace.cron.pattern'; -import { CleanInactiveWorkspaceJob } from 'src/workspace/workspace-cleaner/crons/clean-inactive-workspace.job'; +import { cleanInactiveWorkspaceCronPattern } from 'src/engine/workspace-manager/workspace-cleaner/crons/clean-inactive-workspace.cron.pattern'; +import { CleanInactiveWorkspaceJob } from 'src/engine/workspace-manager/workspace-cleaner/crons/clean-inactive-workspace.job'; @Command({ name: 'clean-inactive-workspaces:cron:stop', diff --git a/packages/twenty-server/src/workspace/workspace-cleaner/crons/clean-inactive-workspace.cron.pattern.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/crons/clean-inactive-workspace.cron.pattern.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-cleaner/crons/clean-inactive-workspace.cron.pattern.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/crons/clean-inactive-workspace.cron.pattern.ts diff --git a/packages/twenty-server/src/workspace/workspace-cleaner/crons/clean-inactive-workspace.job.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/crons/clean-inactive-workspace.job.ts similarity index 85% rename from packages/twenty-server/src/workspace/workspace-cleaner/crons/clean-inactive-workspace.job.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/crons/clean-inactive-workspace.job.ts index 6a874ea0e1..4c9f71eddb 100644 --- a/packages/twenty-server/src/workspace/workspace-cleaner/crons/clean-inactive-workspace.job.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/crons/clean-inactive-workspace.job.ts @@ -9,16 +9,16 @@ import { import { MessageQueueJob } from 'src/integrations/message-queue/interfaces/message-queue-job.interface'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; -import { DataSourceEntity } from 'src/metadata/data-source/data-source.entity'; -import { UserService } from 'src/core/user/services/user.service'; +import { DataSourceEntity } from 'src/engine-metadata/data-source/data-source.entity'; +import { UserService } from 'src/engine/modules/user/services/user.service'; import { EmailService } from 'src/integrations/email/email.service'; import { EnvironmentService } from 'src/integrations/environment/environment.service'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; -import { CleanInactiveWorkspacesCommandOptions } from 'src/workspace/workspace-cleaner/commands/clean-inactive-workspaces.command'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; +import { CleanInactiveWorkspacesCommandOptions } from 'src/engine/workspace-manager/workspace-cleaner/commands/clean-inactive-workspaces.command'; import { getDryRunLogHeader } from 'src/utils/get-dry-run-log-header'; const MILLISECONDS_IN_ONE_DAY = 1000 * 3600 * 24; @@ -44,10 +44,12 @@ export class CleanInactiveWorkspaceJob private readonly emailService: EmailService, private readonly environmentService: EnvironmentService, ) { - this.inactiveDaysBeforeDelete = - this.environmentService.get('WORKSPACE_INACTIVE_DAYS_BEFORE_DELETION'); - this.inactiveDaysBeforeEmail = - this.environmentService.get('WORKSPACE_INACTIVE_DAYS_BEFORE_NOTIFICATION'); + this.inactiveDaysBeforeDelete = this.environmentService.get( + 'WORKSPACE_INACTIVE_DAYS_BEFORE_DELETION', + ); + this.inactiveDaysBeforeEmail = this.environmentService.get( + 'WORKSPACE_INACTIVE_DAYS_BEFORE_NOTIFICATION', + ); } async getMostRecentUpdatedAt( @@ -134,7 +136,9 @@ export class CleanInactiveWorkspaceJob this.emailService.send({ to: workspaceMember.email, bcc: this.environmentService.get('EMAIL_SYSTEM_ADDRESS'), - from: `${this.environmentService.get('EMAIL_FROM_NAME')} <${this.environmentService.get('EMAIL_FROM_ADDRESS')}>`, + from: `${this.environmentService.get( + 'EMAIL_FROM_NAME', + )} <${this.environmentService.get('EMAIL_FROM_ADDRESS')}>`, subject: 'Action Needed to Prevent Workspace Deletion', html, text, @@ -180,7 +184,9 @@ export class CleanInactiveWorkspaceJob await this.emailService.send({ to: this.environmentService.get('EMAIL_SYSTEM_ADDRESS'), - from: `${this.environmentService.get('EMAIL_FROM_NAME')} <${this.environmentService.get('EMAIL_FROM_ADDRESS')}>`, + from: `${this.environmentService.get( + 'EMAIL_FROM_NAME', + )} <${this.environmentService.get('EMAIL_FROM_ADDRESS')}>`, subject: 'Action Needed to Delete Workspaces', html, text, diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/workspace-cleaner.module.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/workspace-cleaner.module.ts new file mode 100644 index 0000000000..300d3e6dcc --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/workspace-cleaner.module.ts @@ -0,0 +1,25 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; + +import { WorkspaceModule } from 'src/engine/modules/workspace/workspace.module'; +import { DeleteIncompleteWorkspacesCommand } from 'src/engine/workspace-manager/workspace-cleaner/commands/delete-incomplete-workspaces.command'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { CleanInactiveWorkspacesCommand } from 'src/engine/workspace-manager/workspace-cleaner/commands/clean-inactive-workspaces.command'; +import { StartCleanInactiveWorkspacesCronCommand } from 'src/engine/workspace-manager/workspace-cleaner/commands/start-clean-inactive-workspaces.cron.command'; +import { StopCleanInactiveWorkspacesCronCommand } from 'src/engine/workspace-manager/workspace-cleaner/commands/stop-clean-inactive-workspaces.cron.command'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; + +@Module({ + imports: [ + TypeOrmModule.forFeature([Workspace], 'core'), + WorkspaceModule, + DataSourceModule, + ], + providers: [ + DeleteIncompleteWorkspacesCommand, + CleanInactiveWorkspacesCommand, + StartCleanInactiveWorkspacesCronCommand, + StopCleanInactiveWorkspacesCronCommand, + ], +}) +export class WorkspaceCleanerModule {} diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-health/commands/workspace-health-command.module.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/commands/workspace-health-command.module.ts new file mode 100644 index 0000000000..06bb4cb45b --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/commands/workspace-health-command.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; + +import { WorkspaceHealthCommand } from 'src/engine/workspace-manager/workspace-health/commands/workspace-health.command'; +import { WorkspaceHealthModule } from 'src/engine/workspace-manager/workspace-health/workspace-health.module'; + +@Module({ + imports: [WorkspaceHealthModule], + providers: [WorkspaceHealthCommand], +}) +export class WorkspaceHealthCommandModule {} diff --git a/packages/twenty-server/src/workspace/workspace-health/commands/workspace-health.command.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/commands/workspace-health.command.ts similarity index 90% rename from packages/twenty-server/src/workspace/workspace-health/commands/workspace-health.command.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/commands/workspace-health.command.ts index bbfe1d6e64..6d9bc0fcf6 100644 --- a/packages/twenty-server/src/workspace/workspace-health/commands/workspace-health.command.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/commands/workspace-health.command.ts @@ -3,10 +3,10 @@ import { Logger } from '@nestjs/common'; import { Command, CommandRunner, Option } from 'nest-commander'; import chalk from 'chalk'; -import { WorkspaceHealthMode } from 'src/workspace/workspace-health/interfaces/workspace-health-options.interface'; -import { WorkspaceHealthFixKind } from 'src/workspace/workspace-health/interfaces/workspace-health-fix-kind.interface'; +import { WorkspaceHealthMode } from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-options.interface'; +import { WorkspaceHealthFixKind } from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-fix-kind.interface'; -import { WorkspaceHealthService } from 'src/workspace/workspace-health/workspace-health.service'; +import { WorkspaceHealthService } from 'src/engine/workspace-manager/workspace-health/workspace-health.service'; import { CommandLogger } from 'src/commands/command-logger'; interface WorkspaceHealthCommandOptions { diff --git a/packages/twenty-server/src/workspace/workspace-health/fixer/abstract-workspace.fixer.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/abstract-workspace.fixer.ts similarity index 84% rename from packages/twenty-server/src/workspace/workspace-health/fixer/abstract-workspace.fixer.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/abstract-workspace.fixer.ts index 4434317a5c..2757628806 100644 --- a/packages/twenty-server/src/workspace/workspace-health/fixer/abstract-workspace.fixer.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/abstract-workspace.fixer.ts @@ -4,10 +4,10 @@ import { WorkspaceHealthIssue, WorkspaceHealthIssueType, WorkspaceIssueTypeToInterface, -} from 'src/workspace/workspace-health/interfaces/workspace-health-issue.interface'; +} from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { WorkspaceMigrationEntity } from 'src/metadata/workspace-migration/workspace-migration.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { WorkspaceMigrationEntity } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; export class CompareEntity { current: T | null; diff --git a/packages/twenty-server/src/workspace/workspace-health/fixer/index.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/index.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-health/fixer/index.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/index.ts diff --git a/packages/twenty-server/src/workspace/workspace-health/fixer/workspace-default-value.fixer.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-default-value.fixer.ts similarity index 77% rename from packages/twenty-server/src/workspace/workspace-health/fixer/workspace-default-value.fixer.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-default-value.fixer.ts index fb95e1e020..c1bce7bc47 100644 --- a/packages/twenty-server/src/workspace/workspace-health/fixer/workspace-default-value.fixer.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-default-value.fixer.ts @@ -5,13 +5,13 @@ import { EntityManager } from 'typeorm'; import { WorkspaceHealthColumnIssue, WorkspaceHealthIssueType, -} from 'src/workspace/workspace-health/interfaces/workspace-health-issue.interface'; -import { WorkspaceMigrationBuilderAction } from 'src/workspace/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; -import { FieldMetadataDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +} from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface'; +import { WorkspaceMigrationBuilderAction } from 'src/engine/workspace-manager/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; +import { FieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { WorkspaceMigrationEntity } from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { WorkspaceMigrationFieldFactory } from 'src/workspace/workspace-migration-builder/factories/workspace-migration-field.factory'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { WorkspaceMigrationEntity } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { WorkspaceMigrationFieldFactory } from 'src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-field.factory'; import { AbstractWorkspaceFixer } from './abstract-workspace.fixer'; diff --git a/packages/twenty-server/src/workspace/workspace-health/fixer/workspace-nullable.fixer.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-nullable.fixer.ts similarity index 72% rename from packages/twenty-server/src/workspace/workspace-health/fixer/workspace-nullable.fixer.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-nullable.fixer.ts index dda7d94794..da9f687b1b 100644 --- a/packages/twenty-server/src/workspace/workspace-health/fixer/workspace-nullable.fixer.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-nullable.fixer.ts @@ -5,12 +5,12 @@ import { EntityManager } from 'typeorm'; import { WorkspaceHealthColumnIssue, WorkspaceHealthIssueType, -} from 'src/workspace/workspace-health/interfaces/workspace-health-issue.interface'; -import { WorkspaceMigrationBuilderAction } from 'src/workspace/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; +} from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface'; +import { WorkspaceMigrationBuilderAction } from 'src/engine/workspace-manager/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { WorkspaceMigrationEntity } from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { WorkspaceMigrationFieldFactory } from 'src/workspace/workspace-migration-builder/factories/workspace-migration-field.factory'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { WorkspaceMigrationEntity } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { WorkspaceMigrationFieldFactory } from 'src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-field.factory'; import { AbstractWorkspaceFixer } from './abstract-workspace.fixer'; diff --git a/packages/twenty-server/src/workspace/workspace-health/fixer/workspace-target-column-map.fixer.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-target-column-map.fixer.ts similarity index 79% rename from packages/twenty-server/src/workspace/workspace-health/fixer/workspace-target-column-map.fixer.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-target-column-map.fixer.ts index 1b91ab48af..649df369ef 100644 --- a/packages/twenty-server/src/workspace/workspace-health/fixer/workspace-target-column-map.fixer.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-target-column-map.fixer.ts @@ -6,18 +6,18 @@ import isEqual from 'lodash.isequal'; import { WorkspaceHealthColumnIssue, WorkspaceHealthIssueType, -} from 'src/workspace/workspace-health/interfaces/workspace-health-issue.interface'; -import { WorkspaceMigrationBuilderAction } from 'src/workspace/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; +} from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface'; +import { WorkspaceMigrationBuilderAction } from 'src/engine/workspace-manager/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { generateTargetColumnMap } from 'src/metadata/field-metadata/utils/generate-target-column-map.util'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; -import { WorkspaceMigrationEntity } from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; -import { DataSourceEntity } from 'src/metadata/data-source/data-source.entity'; -import { DatabaseStructureService } from 'src/workspace/workspace-health/services/database-structure.service'; -import { WorkspaceMigrationFieldFactory } from 'src/workspace/workspace-migration-builder/factories/workspace-migration-field.factory'; -import { isCompositeFieldMetadataType } from 'src/metadata/field-metadata/utils/is-composite-field-metadata-type.util'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { generateTargetColumnMap } from 'src/engine-metadata/field-metadata/utils/generate-target-column-map.util'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { WorkspaceMigrationEntity } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; +import { DataSourceEntity } from 'src/engine-metadata/data-source/data-source.entity'; +import { DatabaseStructureService } from 'src/engine/workspace-manager/workspace-health/services/database-structure.service'; +import { WorkspaceMigrationFieldFactory } from 'src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-field.factory'; +import { isCompositeFieldMetadataType } from 'src/engine-metadata/field-metadata/utils/is-composite-field-metadata-type.util'; import { AbstractWorkspaceFixer, diff --git a/packages/twenty-server/src/workspace/workspace-health/fixer/workspace-type.fixer.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-type.fixer.ts similarity index 78% rename from packages/twenty-server/src/workspace/workspace-health/fixer/workspace-type.fixer.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-type.fixer.ts index 4125c9477f..827cde3719 100644 --- a/packages/twenty-server/src/workspace/workspace-health/fixer/workspace-type.fixer.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-type.fixer.ts @@ -5,16 +5,16 @@ import { EntityManager } from 'typeorm'; import { WorkspaceHealthColumnIssue, WorkspaceHealthIssueType, -} from 'src/workspace/workspace-health/interfaces/workspace-health-issue.interface'; -import { WorkspaceMigrationBuilderAction } from 'src/workspace/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; +} from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface'; +import { WorkspaceMigrationBuilderAction } from 'src/engine/workspace-manager/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { WorkspaceMigrationEntity } from 'src/metadata/workspace-migration/workspace-migration.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { WorkspaceMigrationEntity } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; import { FieldMetadataUpdate, WorkspaceMigrationFieldFactory, -} from 'src/workspace/workspace-migration-builder/factories/workspace-migration-field.factory'; -import { DatabaseStructureService } from 'src/workspace/workspace-health/services/database-structure.service'; +} from 'src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-field.factory'; +import { DatabaseStructureService } from 'src/engine/workspace-manager/workspace-health/services/database-structure.service'; import { AbstractWorkspaceFixer } from './abstract-workspace.fixer'; diff --git a/packages/twenty-server/src/workspace/workspace-health/interfaces/workspace-health-fix-kind.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/interfaces/workspace-health-fix-kind.interface.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-health/interfaces/workspace-health-fix-kind.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/interfaces/workspace-health-fix-kind.interface.ts diff --git a/packages/twenty-server/src/workspace/workspace-health/interfaces/workspace-health-issue.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface.ts similarity index 91% rename from packages/twenty-server/src/workspace/workspace-health/interfaces/workspace-health-issue.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface.ts index f4e432e70e..62b653b72d 100644 --- a/packages/twenty-server/src/workspace/workspace-health/interfaces/workspace-health-issue.interface.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface.ts @@ -1,8 +1,8 @@ -import { WorkspaceTableStructure } from 'src/workspace/workspace-health/interfaces/workspace-table-definition.interface'; +import { WorkspaceTableStructure } from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-table-definition.interface'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { RelationMetadataEntity } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; export enum WorkspaceHealthIssueType { MISSING_TABLE = 'MISSING_TABLE', diff --git a/packages/twenty-server/src/workspace/workspace-health/interfaces/workspace-health-options.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/interfaces/workspace-health-options.interface.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-health/interfaces/workspace-health-options.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/interfaces/workspace-health-options.interface.ts diff --git a/packages/twenty-server/src/workspace/workspace-health/interfaces/workspace-table-definition.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/interfaces/workspace-table-definition.interface.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-health/interfaces/workspace-table-definition.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/interfaces/workspace-table-definition.interface.ts diff --git a/packages/twenty-server/src/workspace/workspace-health/services/database-structure.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/services/database-structure.service.ts similarity index 90% rename from packages/twenty-server/src/workspace/workspace-health/services/database-structure.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/services/database-structure.service.ts index 0ce9aea71a..44e0b472be 100644 --- a/packages/twenty-server/src/workspace/workspace-health/services/database-structure.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/services/database-structure.service.ts @@ -6,18 +6,18 @@ import { ColumnMetadata } from 'typeorm/metadata/ColumnMetadata'; import { WorkspaceTableStructure, WorkspaceTableStructureResult, -} from 'src/workspace/workspace-health/interfaces/workspace-table-definition.interface'; -import { FieldMetadataDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +} from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-table-definition.interface'; +import { FieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; import { FieldMetadataEntity, FieldMetadataType, -} from 'src/metadata/field-metadata/field-metadata.entity'; -import { fieldMetadataTypeToColumnType } from 'src/metadata/workspace-migration/utils/field-metadata-type-to-column-type.util'; -import { serializeTypeDefaultValue } from 'src/metadata/field-metadata/utils/serialize-type-default-value.util'; -import { isCompositeFieldMetadataType } from 'src/metadata/field-metadata/utils/is-composite-field-metadata-type.util'; -import { isRelationFieldMetadataType } from 'src/workspace/utils/is-relation-field-metadata-type.util'; +} from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { fieldMetadataTypeToColumnType } from 'src/engine-metadata/workspace-migration/utils/field-metadata-type-to-column-type.util'; +import { serializeTypeDefaultValue } from 'src/engine-metadata/field-metadata/utils/serialize-type-default-value.util'; +import { isCompositeFieldMetadataType } from 'src/engine-metadata/field-metadata/utils/is-composite-field-metadata-type.util'; +import { isRelationFieldMetadataType } from 'src/engine-workspace/utils/is-relation-field-metadata-type.util'; @Injectable() export class DatabaseStructureService { diff --git a/packages/twenty-server/src/workspace/workspace-health/services/field-metadata-health.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/services/field-metadata-health.service.ts similarity index 84% rename from packages/twenty-server/src/workspace/workspace-health/services/field-metadata-health.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/services/field-metadata-health.service.ts index cf4c7c4d1b..1b4d450099 100644 --- a/packages/twenty-server/src/workspace/workspace-health/services/field-metadata-health.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/services/field-metadata-health.service.ts @@ -5,30 +5,30 @@ import isEqual from 'lodash.isequal'; import { WorkspaceHealthIssue, WorkspaceHealthIssueType, -} from 'src/workspace/workspace-health/interfaces/workspace-health-issue.interface'; -import { WorkspaceTableStructure } from 'src/workspace/workspace-health/interfaces/workspace-table-definition.interface'; -import { WorkspaceHealthOptions } from 'src/workspace/workspace-health/interfaces/workspace-health-options.interface'; -import { FieldMetadataDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +} from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface'; +import { WorkspaceTableStructure } from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-table-definition.interface'; +import { WorkspaceHealthOptions } from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-options.interface'; +import { FieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; import { FieldMetadataEntity, FieldMetadataType, -} from 'src/metadata/field-metadata/field-metadata.entity'; -import { isCompositeFieldMetadataType } from 'src/metadata/field-metadata/utils/is-composite-field-metadata-type.util'; -import { DatabaseStructureService } from 'src/workspace/workspace-health/services/database-structure.service'; -import { validName } from 'src/workspace/workspace-health/utils/valid-name.util'; -import { compositeDefinitions } from 'src/metadata/field-metadata/composite-types'; -import { validateDefaultValueForType } from 'src/metadata/field-metadata/utils/validate-default-value-for-type.util'; +} from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { isCompositeFieldMetadataType } from 'src/engine-metadata/field-metadata/utils/is-composite-field-metadata-type.util'; +import { DatabaseStructureService } from 'src/engine/workspace-manager/workspace-health/services/database-structure.service'; +import { validName } from 'src/engine/workspace-manager/workspace-health/utils/valid-name.util'; +import { compositeDefinitions } from 'src/engine-metadata/field-metadata/composite-types'; +import { validateDefaultValueForType } from 'src/engine-metadata/field-metadata/utils/validate-default-value-for-type.util'; import { EnumFieldMetadataUnionType, isEnumFieldMetadataType, -} from 'src/metadata/field-metadata/utils/is-enum-field-metadata-type.util'; -import { validateOptionsForType } from 'src/metadata/field-metadata/utils/validate-options-for-type.util'; -import { serializeDefaultValue } from 'src/metadata/field-metadata/utils/serialize-default-value'; -import { computeCompositeFieldMetadata } from 'src/workspace/workspace-health/utils/compute-composite-field-metadata.util'; -import { generateTargetColumnMap } from 'src/metadata/field-metadata/utils/generate-target-column-map.util'; -import { customNamePrefix } from 'src/workspace/utils/compute-custom-name.util'; -import { isRelationFieldMetadataType } from 'src/workspace/utils/is-relation-field-metadata-type.util'; +} from 'src/engine-metadata/field-metadata/utils/is-enum-field-metadata-type.util'; +import { validateOptionsForType } from 'src/engine-metadata/field-metadata/utils/validate-options-for-type.util'; +import { serializeDefaultValue } from 'src/engine-metadata/field-metadata/utils/serialize-default-value'; +import { computeCompositeFieldMetadata } from 'src/engine/workspace-manager/workspace-health/utils/compute-composite-field-metadata.util'; +import { generateTargetColumnMap } from 'src/engine-metadata/field-metadata/utils/generate-target-column-map.util'; +import { customNamePrefix } from 'src/engine-workspace/utils/compute-custom-name.util'; +import { isRelationFieldMetadataType } from 'src/engine-workspace/utils/is-relation-field-metadata-type.util'; @Injectable() export class FieldMetadataHealthService { diff --git a/packages/twenty-server/src/workspace/workspace-health/services/object-metadata-health.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/services/object-metadata-health.service.ts similarity index 85% rename from packages/twenty-server/src/workspace/workspace-health/services/object-metadata-health.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/services/object-metadata-health.service.ts index 81ee66a200..921b10e8ba 100644 --- a/packages/twenty-server/src/workspace/workspace-health/services/object-metadata-health.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/services/object-metadata-health.service.ts @@ -3,13 +3,13 @@ import { Injectable } from '@nestjs/common'; import { WorkspaceHealthIssue, WorkspaceHealthIssueType, -} from 'src/workspace/workspace-health/interfaces/workspace-health-issue.interface'; -import { WorkspaceHealthOptions } from 'src/workspace/workspace-health/interfaces/workspace-health-options.interface'; +} from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface'; +import { WorkspaceHealthOptions } from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-options.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { validName } from 'src/workspace/workspace-health/utils/valid-name.util'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { validName } from 'src/engine/workspace-manager/workspace-health/utils/valid-name.util'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; @Injectable() export class ObjectMetadataHealthService { diff --git a/packages/twenty-server/src/workspace/workspace-health/services/relation-metadata.health.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/services/relation-metadata.health.service.ts similarity index 85% rename from packages/twenty-server/src/workspace/workspace-health/services/relation-metadata.health.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/services/relation-metadata.health.service.ts index b85f67b9ff..73597592a1 100644 --- a/packages/twenty-server/src/workspace/workspace-health/services/relation-metadata.health.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/services/relation-metadata.health.service.ts @@ -1,29 +1,29 @@ import { Injectable } from '@nestjs/common'; -import { WorkspaceTableStructure } from 'src/workspace/workspace-health/interfaces/workspace-table-definition.interface'; +import { WorkspaceTableStructure } from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-table-definition.interface'; import { WorkspaceHealthIssue, WorkspaceHealthIssueType, -} from 'src/workspace/workspace-health/interfaces/workspace-health-issue.interface'; +} from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface'; import { WorkspaceHealthMode, WorkspaceHealthOptions, -} from 'src/workspace/workspace-health/interfaces/workspace-health-options.interface'; +} from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-options.interface'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { RelationMetadataEntity, RelationMetadataType, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; import { RelationDirection, deduceRelationDirection, -} from 'src/workspace/utils/deduce-relation-direction.util'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { createRelationForeignKeyColumnName } from 'src/metadata/relation-metadata/utils/create-relation-foreign-key-column-name.util'; -import { createRelationForeignKeyFieldMetadataName } from 'src/metadata/relation-metadata/utils/create-relation-foreign-key-field-metadata-name.util'; -import { isRelationFieldMetadataType } from 'src/workspace/utils/is-relation-field-metadata-type.util'; -import { convertOnDeleteActionToOnDelete } from 'src/workspace/workspace-migration-runner/utils/convert-on-delete-action-to-on-delete.util'; +} from 'src/engine-workspace/utils/deduce-relation-direction.util'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { createRelationForeignKeyColumnName } from 'src/engine-metadata/relation-metadata/utils/create-relation-foreign-key-column-name.util'; +import { createRelationForeignKeyFieldMetadataName } from 'src/engine-metadata/relation-metadata/utils/create-relation-foreign-key-field-metadata-name.util'; +import { isRelationFieldMetadataType } from 'src/engine-workspace/utils/is-relation-field-metadata-type.util'; +import { convertOnDeleteActionToOnDelete } from 'src/engine/workspace-manager/workspace-migration-runner/utils/convert-on-delete-action-to-on-delete.util'; @Injectable() export class RelationMetadataHealthService { diff --git a/packages/twenty-server/src/workspace/workspace-health/services/workspace-fix.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/services/workspace-fix.service.ts similarity index 70% rename from packages/twenty-server/src/workspace/workspace-health/services/workspace-fix.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/services/workspace-fix.service.ts index 9ed85195e2..1e767530de 100644 --- a/packages/twenty-server/src/workspace/workspace-health/services/workspace-fix.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/services/workspace-fix.service.ts @@ -2,16 +2,16 @@ import { Injectable } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceHealthFixKind } from 'src/workspace/workspace-health/interfaces/workspace-health-fix-kind.interface'; -import { WorkspaceHealthIssue } from 'src/workspace/workspace-health/interfaces/workspace-health-issue.interface'; +import { WorkspaceHealthFixKind } from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-fix-kind.interface'; +import { WorkspaceHealthIssue } from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface'; -import { WorkspaceMigrationEntity } from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { WorkspaceNullableFixer } from 'src/workspace/workspace-health/fixer/workspace-nullable.fixer'; -import { WorkspaceDefaultValueFixer } from 'src/workspace/workspace-health/fixer/workspace-default-value.fixer'; -import { WorkspaceTypeFixer } from 'src/workspace/workspace-health/fixer/workspace-type.fixer'; -import { WorkspaceTargetColumnMapFixer } from 'src/workspace/workspace-health/fixer/workspace-target-column-map.fixer'; -import { CompareEntity } from 'src/workspace/workspace-health/fixer/abstract-workspace.fixer'; +import { WorkspaceMigrationEntity } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { WorkspaceNullableFixer } from 'src/engine/workspace-manager/workspace-health/fixer/workspace-nullable.fixer'; +import { WorkspaceDefaultValueFixer } from 'src/engine/workspace-manager/workspace-health/fixer/workspace-default-value.fixer'; +import { WorkspaceTypeFixer } from 'src/engine/workspace-manager/workspace-health/fixer/workspace-type.fixer'; +import { WorkspaceTargetColumnMapFixer } from 'src/engine/workspace-manager/workspace-health/fixer/workspace-target-column-map.fixer'; +import { CompareEntity } from 'src/engine/workspace-manager/workspace-health/fixer/abstract-workspace.fixer'; @Injectable() export class WorkspaceFixService { diff --git a/packages/twenty-server/src/workspace/workspace-health/utils/compute-composite-field-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/utils/compute-composite-field-metadata.util.ts similarity index 70% rename from packages/twenty-server/src/workspace/workspace-health/utils/compute-composite-field-metadata.util.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/utils/compute-composite-field-metadata.util.ts index 21ddb271be..f7c8f2df00 100644 --- a/packages/twenty-server/src/workspace/workspace-health/utils/compute-composite-field-metadata.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/utils/compute-composite-field-metadata.util.ts @@ -1,6 +1,6 @@ -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; +import { FieldMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/field-metadata.interface'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { camelCase } from 'src/utils/camel-case'; // Compute composite field metadata by combining the composite field metadata with the field metadata diff --git a/packages/twenty-server/src/workspace/workspace-health/utils/is-workspace-health-issue-type.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/utils/is-workspace-health-issue-type.util.ts similarity index 87% rename from packages/twenty-server/src/workspace/workspace-health/utils/is-workspace-health-issue-type.util.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/utils/is-workspace-health-issue-type.util.ts index 0d946000f4..e4ede5903f 100644 --- a/packages/twenty-server/src/workspace/workspace-health/utils/is-workspace-health-issue-type.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/utils/is-workspace-health-issue-type.util.ts @@ -1,4 +1,4 @@ -import { WorkspaceHealthIssueType } from 'src/workspace/workspace-health/interfaces/workspace-health-issue.interface'; +import { WorkspaceHealthIssueType } from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface'; export const isWorkspaceHealthNullableIssue = ( type: WorkspaceHealthIssueType, diff --git a/packages/twenty-server/src/workspace/workspace-health/utils/map-field-metadata-type-to-data-type.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/utils/map-field-metadata-type-to-data-type.util.ts similarity index 90% rename from packages/twenty-server/src/workspace/workspace-health/utils/map-field-metadata-type-to-data-type.util.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/utils/map-field-metadata-type-to-data-type.util.ts index e61cd98e3d..cf35064ce7 100644 --- a/packages/twenty-server/src/workspace/workspace-health/utils/map-field-metadata-type-to-data-type.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/utils/map-field-metadata-type-to-data-type.util.ts @@ -1,6 +1,6 @@ import { ConflictException } from '@nestjs/common'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; export const mapFieldMetadataTypeToDataType = ( fieldMetadataType: FieldMetadataType, diff --git a/packages/twenty-server/src/workspace/workspace-health/utils/valid-name.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/utils/valid-name.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-health/utils/valid-name.util.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/utils/valid-name.util.ts diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-health/workspace-health.module.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/workspace-health.module.ts new file mode 100644 index 0000000000..575d0992e5 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/workspace-health.module.ts @@ -0,0 +1,39 @@ +import { Module } from '@nestjs/common'; + +import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; +import { ObjectMetadataModule } from 'src/engine-metadata/object-metadata/object-metadata.module'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; +import { DatabaseStructureService } from 'src/engine/workspace-manager/workspace-health/services/database-structure.service'; +import { FieldMetadataHealthService } from 'src/engine/workspace-manager/workspace-health/services/field-metadata-health.service'; +import { ObjectMetadataHealthService } from 'src/engine/workspace-manager/workspace-health/services/object-metadata-health.service'; +import { RelationMetadataHealthService } from 'src/engine/workspace-manager/workspace-health/services/relation-metadata.health.service'; +import { WorkspaceHealthService } from 'src/engine/workspace-manager/workspace-health/workspace-health.service'; +import { WorkspaceMigrationBuilderModule } from 'src/engine/workspace-manager/workspace-migration-builder/workspace-migration-builder.module'; +import { WorkspaceMigrationRunnerModule } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.module'; + +import { workspaceFixers } from './fixer'; + +import { WorkspaceFixService } from './services/workspace-fix.service'; + +@Module({ + imports: [ + DataSourceModule, + TypeORMModule, + ObjectMetadataModule, + WorkspaceDataSourceModule, + WorkspaceMigrationRunnerModule, + WorkspaceMigrationBuilderModule, + ], + providers: [ + ...workspaceFixers, + WorkspaceHealthService, + DatabaseStructureService, + ObjectMetadataHealthService, + FieldMetadataHealthService, + RelationMetadataHealthService, + WorkspaceFixService, + ], + exports: [WorkspaceHealthService], +}) +export class WorkspaceHealthModule {} diff --git a/packages/twenty-server/src/workspace/workspace-health/workspace-health.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/workspace-health.service.ts similarity index 77% rename from packages/twenty-server/src/workspace/workspace-health/workspace-health.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-health/workspace-health.service.ts index d7c6c87790..896d71560e 100644 --- a/packages/twenty-server/src/workspace/workspace-health/workspace-health.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/workspace-health.service.ts @@ -3,25 +3,25 @@ import { InjectDataSource } from '@nestjs/typeorm'; import { DataSource } from 'typeorm'; -import { WorkspaceHealthIssue } from 'src/workspace/workspace-health/interfaces/workspace-health-issue.interface'; +import { WorkspaceHealthIssue } from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-issue.interface'; import { WorkspaceHealthMode, WorkspaceHealthOptions, -} from 'src/workspace/workspace-health/interfaces/workspace-health-options.interface'; -import { WorkspaceHealthFixKind } from 'src/workspace/workspace-health/interfaces/workspace-health-fix-kind.interface'; +} from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-options.interface'; +import { WorkspaceHealthFixKind } from 'src/engine/workspace-manager/workspace-health/interfaces/workspace-health-fix-kind.interface'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { ObjectMetadataHealthService } from 'src/workspace/workspace-health/services/object-metadata-health.service'; -import { FieldMetadataHealthService } from 'src/workspace/workspace-health/services/field-metadata-health.service'; -import { RelationMetadataHealthService } from 'src/workspace/workspace-health/services/relation-metadata.health.service'; -import { DatabaseStructureService } from 'src/workspace/workspace-health/services/database-structure.service'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; -import { WorkspaceMigrationEntity } from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { WorkspaceMigrationRunnerService } from 'src/workspace/workspace-migration-runner/workspace-migration-runner.service'; -import { WorkspaceFixService } from 'src/workspace/workspace-health/services/workspace-fix.service'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { ObjectMetadataHealthService } from 'src/engine/workspace-manager/workspace-health/services/object-metadata-health.service'; +import { FieldMetadataHealthService } from 'src/engine/workspace-manager/workspace-health/services/field-metadata-health.service'; +import { RelationMetadataHealthService } from 'src/engine/workspace-manager/workspace-health/services/relation-metadata.health.service'; +import { DatabaseStructureService } from 'src/engine/workspace-manager/workspace-health/services/database-structure.service'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; +import { WorkspaceMigrationEntity } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { WorkspaceMigrationRunnerService } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service'; +import { WorkspaceFixService } from 'src/engine/workspace-manager/workspace-health/services/workspace-fix.service'; @Injectable() export class WorkspaceHealthService { diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-manager.module.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-manager.module.ts new file mode 100644 index 0000000000..0a482c3838 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-manager.module.ts @@ -0,0 +1,24 @@ +import { Module } from '@nestjs/common'; + +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; +import { ObjectMetadataModule } from 'src/engine-metadata/object-metadata/object-metadata.module'; +import { WorkspaceMigrationModule } from 'src/engine-metadata/workspace-migration/workspace-migration.module'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; +import { WorkspaceSyncMetadataModule } from 'src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.module'; +import { WorkspaceHealthModule } from 'src/engine/workspace-manager/workspace-health/workspace-health.module'; + +import { WorkspaceManagerService } from './workspace-manager.service'; + +@Module({ + imports: [ + WorkspaceDataSourceModule, + WorkspaceMigrationModule, + ObjectMetadataModule, + DataSourceModule, + WorkspaceSyncMetadataModule, + WorkspaceHealthModule, + ], + exports: [WorkspaceManagerService], + providers: [WorkspaceManagerService], +}) +export class WorkspaceManagerModule {} diff --git a/packages/twenty-server/src/workspace/workspace-manager/workspace-manager.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-manager.service.ts similarity index 84% rename from packages/twenty-server/src/workspace/workspace-manager/workspace-manager.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-manager.service.ts index a0396d5b7b..3210df5297 100644 --- a/packages/twenty-server/src/workspace/workspace-manager/workspace-manager.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-manager.service.ts @@ -1,13 +1,13 @@ import { Injectable } from '@nestjs/common'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; -import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service'; -import { WorkspaceMigrationService } from 'src/metadata/workspace-migration/workspace-migration.service'; -import { standardObjectsPrefillData } from 'src/workspace/workspace-manager/standard-objects-prefill-data/standard-objects-prefill-data'; -import { demoObjectsPrefillData } from 'src/workspace/workspace-manager/demo-objects-prefill-data/demo-objects-prefill-data'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; -import { DataSourceEntity } from 'src/metadata/data-source/data-source.entity'; -import { WorkspaceSyncMetadataService } from 'src/workspace/workspace-sync-metadata/workspace-sync-metadata.service'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; +import { ObjectMetadataService } from 'src/engine-metadata/object-metadata/object-metadata.service'; +import { WorkspaceMigrationService } from 'src/engine-metadata/workspace-migration/workspace-migration.service'; +import { standardObjectsPrefillData } from 'src/engine/workspace-manager/standard-objects-prefill-data/standard-objects-prefill-data'; +import { demoObjectsPrefillData } from 'src/engine/workspace-manager/demo-objects-prefill-data/demo-objects-prefill-data'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; +import { DataSourceEntity } from 'src/engine-metadata/data-source/data-source.entity'; +import { WorkspaceSyncMetadataService } from 'src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.service'; @Injectable() export class WorkspaceManagerService { diff --git a/packages/twenty-server/src/workspace/workspace-migration-builder/factories/index.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/factories/index.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-migration-builder/factories/index.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/factories/index.ts diff --git a/packages/twenty-server/src/workspace/workspace-migration-builder/factories/workspace-migration-field.factory.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-field.factory.ts similarity index 88% rename from packages/twenty-server/src/workspace/workspace-migration-builder/factories/workspace-migration-field.factory.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-field.factory.ts index 9337b6c141..2ea64c3844 100644 --- a/packages/twenty-server/src/workspace/workspace-migration-builder/factories/workspace-migration-field.factory.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-field.factory.ts @@ -1,20 +1,20 @@ import { Injectable } from '@nestjs/common'; -import { WorkspaceMigrationBuilderAction } from 'src/workspace/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; +import { WorkspaceMigrationBuilderAction } from 'src/engine/workspace-manager/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; import { FieldMetadataEntity, FieldMetadataType, -} from 'src/metadata/field-metadata/field-metadata.entity'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +} from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; import { WorkspaceMigrationColumnActionType, WorkspaceMigrationEntity, WorkspaceMigrationTableAction, -} from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; -import { WorkspaceMigrationFactory } from 'src/metadata/workspace-migration/workspace-migration.factory'; -import { generateMigrationName } from 'src/metadata/workspace-migration/utils/generate-migration-name.util'; +} from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; +import { WorkspaceMigrationFactory } from 'src/engine-metadata/workspace-migration/workspace-migration.factory'; +import { generateMigrationName } from 'src/engine-metadata/workspace-migration/utils/generate-migration-name.util'; export interface FieldMetadataUpdate { current: FieldMetadataEntity; diff --git a/packages/twenty-server/src/workspace/workspace-migration-builder/factories/workspace-migration-object.factory.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-object.factory.ts similarity index 77% rename from packages/twenty-server/src/workspace/workspace-migration-builder/factories/workspace-migration-object.factory.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-object.factory.ts index 9c820ec663..4ea31bbd38 100644 --- a/packages/twenty-server/src/workspace/workspace-migration-builder/factories/workspace-migration-object.factory.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-object.factory.ts @@ -1,17 +1,17 @@ import { Injectable } from '@nestjs/common'; -import { WorkspaceMigrationBuilderAction } from 'src/workspace/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; +import { WorkspaceMigrationBuilderAction } from 'src/engine/workspace-manager/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; import { WorkspaceMigrationColumnActionType, WorkspaceMigrationEntity, WorkspaceMigrationTableAction, -} from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; -import { WorkspaceMigrationFactory } from 'src/metadata/workspace-migration/workspace-migration.factory'; -import { generateMigrationName } from 'src/metadata/workspace-migration/utils/generate-migration-name.util'; +} from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; +import { WorkspaceMigrationFactory } from 'src/engine-metadata/workspace-migration/workspace-migration.factory'; +import { generateMigrationName } from 'src/engine-metadata/workspace-migration/utils/generate-migration-name.util'; @Injectable() export class WorkspaceMigrationObjectFactory { diff --git a/packages/twenty-server/src/workspace/workspace-migration-builder/factories/workspace-migration-relation.factory.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-relation.factory.ts similarity index 90% rename from packages/twenty-server/src/workspace/workspace-migration-builder/factories/workspace-migration-relation.factory.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-relation.factory.ts index 321ebcf5d5..dc0136aaa8 100644 --- a/packages/twenty-server/src/workspace/workspace-migration-builder/factories/workspace-migration-relation.factory.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-relation.factory.ts @@ -1,20 +1,20 @@ import { Injectable } from '@nestjs/common'; -import { WorkspaceMigrationBuilderAction } from 'src/workspace/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; +import { WorkspaceMigrationBuilderAction } from 'src/engine/workspace-manager/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; import { WorkspaceMigrationColumnActionType, WorkspaceMigrationEntity, WorkspaceMigrationTableAction, -} from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { computeObjectTargetTable } from 'src/workspace/utils/compute-object-target-table.util'; +} from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { computeObjectTargetTable } from 'src/engine-workspace/utils/compute-object-target-table.util'; import { RelationMetadataEntity, RelationMetadataType, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; import { camelCase } from 'src/utils/camel-case'; -import { generateMigrationName } from 'src/metadata/workspace-migration/utils/generate-migration-name.util'; +import { generateMigrationName } from 'src/engine-metadata/workspace-migration/utils/generate-migration-name.util'; @Injectable() export class WorkspaceMigrationRelationFactory { diff --git a/packages/twenty-server/src/workspace/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface.ts diff --git a/packages/twenty-server/src/workspace/workspace-migration-builder/workspace-migration-builder.module.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/workspace-migration-builder.module.ts similarity index 74% rename from packages/twenty-server/src/workspace/workspace-migration-builder/workspace-migration-builder.module.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/workspace-migration-builder.module.ts index fcd035f3ba..e8fdacbf8e 100644 --- a/packages/twenty-server/src/workspace/workspace-migration-builder/workspace-migration-builder.module.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-builder/workspace-migration-builder.module.ts @@ -1,6 +1,6 @@ import { Module } from '@nestjs/common'; -import { WorkspaceMigrationModule } from 'src/metadata/workspace-migration/workspace-migration.module'; +import { WorkspaceMigrationModule } from 'src/engine-metadata/workspace-migration/workspace-migration.module'; import { workspaceMigrationBuilderFactories } from './factories'; diff --git a/packages/twenty-server/src/workspace/workspace-migration-runner/commands/workspace-execute-pending-migrations.command.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/commands/workspace-execute-pending-migrations.command.ts similarity index 85% rename from packages/twenty-server/src/workspace/workspace-migration-runner/commands/workspace-execute-pending-migrations.command.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/commands/workspace-execute-pending-migrations.command.ts index 5b6ccb6149..47777bf1e4 100644 --- a/packages/twenty-server/src/workspace/workspace-migration-runner/commands/workspace-execute-pending-migrations.command.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/commands/workspace-execute-pending-migrations.command.ts @@ -1,6 +1,6 @@ import { Command, CommandRunner, Option } from 'nest-commander'; -import { WorkspaceMigrationRunnerService } from 'src/workspace/workspace-migration-runner/workspace-migration-runner.service'; +import { WorkspaceMigrationRunnerService } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service'; interface ExecuteWorkspaceMigrationsOptions { workspaceId: string; diff --git a/packages/twenty-server/src/workspace/workspace-migration-runner/commands/workspace-sync-metadata-commands.module.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/commands/workspace-sync-metadata-commands.module.ts similarity index 69% rename from packages/twenty-server/src/workspace/workspace-migration-runner/commands/workspace-sync-metadata-commands.module.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/commands/workspace-sync-metadata-commands.module.ts index 892afd2c10..1cdf825ce6 100644 --- a/packages/twenty-server/src/workspace/workspace-migration-runner/commands/workspace-sync-metadata-commands.module.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/commands/workspace-sync-metadata-commands.module.ts @@ -1,6 +1,6 @@ import { Module } from '@nestjs/common'; -import { WorkspaceMigrationRunnerModule } from 'src/workspace/workspace-migration-runner/workspace-migration-runner.module'; +import { WorkspaceMigrationRunnerModule } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.module'; import { WorkspaceExecutePendingMigrationsCommand } from './workspace-execute-pending-migrations.command'; diff --git a/packages/twenty-server/src/workspace/workspace-migration-runner/services/workspace-migration-enum.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/services/workspace-migration-enum.service.ts similarity index 95% rename from packages/twenty-server/src/workspace/workspace-migration-runner/services/workspace-migration-enum.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/services/workspace-migration-enum.service.ts index 20f8be4bcb..f723103517 100644 --- a/packages/twenty-server/src/workspace/workspace-migration-runner/services/workspace-migration-enum.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/services/workspace-migration-enum.service.ts @@ -2,8 +2,8 @@ import { Injectable } from '@nestjs/common'; import { QueryRunner } from 'typeorm'; -import { WorkspaceMigrationColumnAlter } from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { serializeDefaultValue } from 'src/metadata/field-metadata/utils/serialize-default-value'; +import { WorkspaceMigrationColumnAlter } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { serializeDefaultValue } from 'src/engine-metadata/field-metadata/utils/serialize-default-value'; @Injectable() export class WorkspaceMigrationEnumService { diff --git a/packages/twenty-server/src/workspace/workspace-migration-runner/services/workspace-migration-type.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/services/workspace-migration-type.service.ts similarity index 90% rename from packages/twenty-server/src/workspace/workspace-migration-runner/services/workspace-migration-type.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/services/workspace-migration-type.service.ts index d34778c4c5..d3eb7eedf7 100644 --- a/packages/twenty-server/src/workspace/workspace-migration-runner/services/workspace-migration-type.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/services/workspace-migration-type.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common'; import { QueryRunner } from 'typeorm'; -import { WorkspaceMigrationColumnAlter } from 'src/metadata/workspace-migration/workspace-migration.entity'; +import { WorkspaceMigrationColumnAlter } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; @Injectable() export class WorkspaceMigrationTypeService { diff --git a/packages/twenty-server/src/workspace/workspace-migration-runner/utils/convert-on-delete-action-to-on-delete.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/utils/convert-on-delete-action-to-on-delete.util.ts similarity index 82% rename from packages/twenty-server/src/workspace/workspace-migration-runner/utils/convert-on-delete-action-to-on-delete.util.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/utils/convert-on-delete-action-to-on-delete.util.ts index 1e3b4b1d26..8b391f28f3 100644 --- a/packages/twenty-server/src/workspace/workspace-migration-runner/utils/convert-on-delete-action-to-on-delete.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/utils/convert-on-delete-action-to-on-delete.util.ts @@ -1,4 +1,4 @@ -import { RelationOnDeleteAction } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { RelationOnDeleteAction } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; export const convertOnDeleteActionToOnDelete = ( onDeleteAction: RelationOnDeleteAction | undefined, diff --git a/packages/twenty-server/src/workspace/workspace-migration-runner/utils/custom-table-default-column.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/utils/custom-table-default-column.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-migration-runner/utils/custom-table-default-column.util.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/utils/custom-table-default-column.util.ts diff --git a/packages/twenty-server/src/workspace/workspace-migration-runner/workspace-migration-runner.module.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.module.ts similarity index 54% rename from packages/twenty-server/src/workspace/workspace-migration-runner/workspace-migration-runner.module.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.module.ts index 257a6cf3cf..c0642d6dee 100644 --- a/packages/twenty-server/src/workspace/workspace-migration-runner/workspace-migration-runner.module.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.module.ts @@ -1,9 +1,9 @@ import { Module } from '@nestjs/common'; -import { WorkspaceMigrationModule } from 'src/metadata/workspace-migration/workspace-migration.module'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; -import { WorkspaceCacheVersionModule } from 'src/metadata/workspace-cache-version/workspace-cache-version.module'; -import { WorkspaceMigrationEnumService } from 'src/workspace/workspace-migration-runner/services/workspace-migration-enum.service'; +import { WorkspaceMigrationModule } from 'src/engine-metadata/workspace-migration/workspace-migration.module'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; +import { WorkspaceCacheVersionModule } from 'src/engine-metadata/workspace-cache-version/workspace-cache-version.module'; +import { WorkspaceMigrationEnumService } from 'src/engine/workspace-manager/workspace-migration-runner/services/workspace-migration-enum.service'; import { WorkspaceMigrationRunnerService } from './workspace-migration-runner.service'; diff --git a/packages/twenty-server/src/workspace/workspace-migration-runner/workspace-migration-runner.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service.ts similarity index 94% rename from packages/twenty-server/src/workspace/workspace-migration-runner/workspace-migration-runner.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service.ts index 2c87e1f79e..63e5187245 100644 --- a/packages/twenty-server/src/workspace/workspace-migration-runner/workspace-migration-runner.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service.ts @@ -8,8 +8,8 @@ import { TableUnique, } from 'typeorm'; -import { WorkspaceMigrationService } from 'src/metadata/workspace-migration/workspace-migration.service'; -import { WorkspaceDataSourceService } from 'src/workspace/workspace-datasource/workspace-datasource.service'; +import { WorkspaceMigrationService } from 'src/engine-metadata/workspace-migration/workspace-migration.service'; +import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; import { WorkspaceMigrationTableAction, WorkspaceMigrationColumnAction, @@ -18,10 +18,10 @@ import { WorkspaceMigrationColumnCreateRelation, WorkspaceMigrationColumnAlter, WorkspaceMigrationColumnDropRelation, -} from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { WorkspaceCacheVersionService } from 'src/metadata/workspace-cache-version/workspace-cache-version.service'; -import { WorkspaceMigrationEnumService } from 'src/workspace/workspace-migration-runner/services/workspace-migration-enum.service'; -import { convertOnDeleteActionToOnDelete } from 'src/workspace/workspace-migration-runner/utils/convert-on-delete-action-to-on-delete.util'; +} from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { WorkspaceCacheVersionService } from 'src/engine-metadata/workspace-cache-version/workspace-cache-version.service'; +import { WorkspaceMigrationEnumService } from 'src/engine/workspace-manager/workspace-migration-runner/services/workspace-migration-enum.service'; +import { convertOnDeleteActionToOnDelete } from 'src/engine/workspace-manager/workspace-migration-runner/utils/convert-on-delete-action-to-on-delete.util'; import { customTableDefaultColumns } from './utils/custom-table-default-column.util'; import { WorkspaceMigrationTypeService } from './services/workspace-migration-type.service'; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/commands/add-standard-id.command.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/commands/add-standard-id.command.ts similarity index 84% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/commands/add-standard-id.command.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/commands/add-standard-id.command.ts index f2c4931697..548a032574 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/commands/add-standard-id.command.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/commands/add-standard-id.command.ts @@ -4,13 +4,13 @@ import { InjectDataSource } from '@nestjs/typeorm'; import { Command, CommandRunner } from 'nest-commander'; import { DataSource } from 'typeorm'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; -import { standardObjectMetadataDefinitions } from 'src/workspace/workspace-sync-metadata/standard-objects'; -import { StandardObjectFactory } from 'src/workspace/workspace-sync-metadata/factories/standard-object.factory'; -import { computeStandardObject } from 'src/workspace/workspace-sync-metadata/utils/compute-standard-object.util'; -import { StandardFieldFactory } from 'src/workspace/workspace-sync-metadata/factories/standard-field.factory'; -import { CustomObjectMetadata } from 'src/workspace/workspace-sync-metadata/custom-objects/custom.object-metadata'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { standardObjectMetadataDefinitions } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects'; +import { StandardObjectFactory } from 'src/engine/workspace-manager/workspace-sync-metadata/factories/standard-object.factory'; +import { computeStandardObject } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/compute-standard-object.util'; +import { StandardFieldFactory } from 'src/engine/workspace-manager/workspace-sync-metadata/factories/standard-field.factory'; +import { CustomObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/custom-objects/custom.object-metadata'; @Command({ name: 'workspace:add-standard-id', diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/commands/services/sync-workspace-logger.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/commands/services/sync-workspace-logger.service.ts similarity index 91% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/commands/services/sync-workspace-logger.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/commands/services/sync-workspace-logger.service.ts index db2f01742c..4ac081335a 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/commands/services/sync-workspace-logger.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/commands/services/sync-workspace-logger.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; -import { WorkspaceSyncStorage } from 'src/workspace/workspace-sync-metadata/storage/workspace-sync.storage'; -import { WorkspaceMigrationEntity } from 'src/metadata/workspace-migration/workspace-migration.entity'; +import { WorkspaceSyncStorage } from 'src/engine/workspace-manager/workspace-sync-metadata/storage/workspace-sync.storage'; +import { WorkspaceMigrationEntity } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; import { CommandLogger } from 'src/commands/command-logger'; @Injectable() diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/commands/sync-workspace-metadata.command.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/commands/sync-workspace-metadata.command.ts similarity index 87% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/commands/sync-workspace-metadata.command.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/commands/sync-workspace-metadata.command.ts index 250f39691d..a338a3aa79 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/commands/sync-workspace-metadata.command.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/commands/sync-workspace-metadata.command.ts @@ -2,10 +2,10 @@ import { Logger } from '@nestjs/common'; import { Command, CommandRunner, Option } from 'nest-commander'; -import { DataSourceService } from 'src/metadata/data-source/data-source.service'; -import { WorkspaceSyncMetadataService } from 'src/workspace/workspace-sync-metadata/workspace-sync-metadata.service'; -import { WorkspaceHealthService } from 'src/workspace/workspace-health/workspace-health.service'; -import { WorkspaceService } from 'src/core/workspace/services/workspace.service'; +import { DataSourceService } from 'src/engine-metadata/data-source/data-source.service'; +import { WorkspaceSyncMetadataService } from 'src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.service'; +import { WorkspaceHealthService } from 'src/engine/workspace-manager/workspace-health/workspace-health.service'; +import { WorkspaceService } from 'src/engine/modules/workspace/services/workspace.service'; import { SyncWorkspaceLoggerService } from './services/sync-workspace-logger.service'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/commands/workspace-sync-metadata-commands.module.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/commands/workspace-sync-metadata-commands.module.ts new file mode 100644 index 0000000000..742b944003 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/commands/workspace-sync-metadata-commands.module.ts @@ -0,0 +1,26 @@ +import { Module } from '@nestjs/common'; + +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; +import { WorkspaceSyncMetadataModule } from 'src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.module'; +import { WorkspaceHealthModule } from 'src/engine/workspace-manager/workspace-health/workspace-health.module'; +import { WorkspaceModule } from 'src/engine/modules/workspace/workspace.module'; +import { AddStandardIdCommand } from 'src/engine/workspace-manager/workspace-sync-metadata/commands/add-standard-id.command'; + +import { SyncWorkspaceMetadataCommand } from './sync-workspace-metadata.command'; + +import { SyncWorkspaceLoggerService } from './services/sync-workspace-logger.service'; + +@Module({ + imports: [ + WorkspaceSyncMetadataModule, + WorkspaceHealthModule, + WorkspaceModule, + DataSourceModule, + ], + providers: [ + SyncWorkspaceMetadataCommand, + AddStandardIdCommand, + SyncWorkspaceLoggerService, + ], +}) +export class WorkspaceSyncMetadataCommandsModule {} diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/__tests__/workspace-field.comparator.spec.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/__tests__/workspace-field.comparator.spec.ts similarity index 91% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/__tests__/workspace-field.comparator.spec.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/__tests__/workspace-field.comparator.spec.ts index b40dd8a7d7..77a2a8bf1f 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/__tests__/workspace-field.comparator.spec.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/__tests__/workspace-field.comparator.spec.ts @@ -1,6 +1,6 @@ -import { ComparatorAction } from 'src/workspace/workspace-sync-metadata/interfaces/comparator.interface'; +import { ComparatorAction } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface'; -import { WorkspaceFieldComparator } from 'src/workspace/workspace-sync-metadata/comparators/workspace-field.comparator'; +import { WorkspaceFieldComparator } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-field.comparator'; describe('WorkspaceFieldComparator', () => { let comparator: WorkspaceFieldComparator; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/__tests__/workspace-object.comparator.spec.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/__tests__/workspace-object.comparator.spec.ts similarity index 88% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/__tests__/workspace-object.comparator.spec.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/__tests__/workspace-object.comparator.spec.ts index 041c074f9e..8e3456752e 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/__tests__/workspace-object.comparator.spec.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/__tests__/workspace-object.comparator.spec.ts @@ -1,6 +1,6 @@ -import { ComparatorAction } from 'src/workspace/workspace-sync-metadata/interfaces/comparator.interface'; +import { ComparatorAction } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface'; -import { WorkspaceObjectComparator } from 'src/workspace/workspace-sync-metadata/comparators/workspace-object.comparator'; +import { WorkspaceObjectComparator } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-object.comparator'; describe('WorkspaceObjectComparator', () => { let comparator: WorkspaceObjectComparator; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/__tests__/workspace-relation.comparator.spec.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/__tests__/workspace-relation.comparator.spec.ts similarity index 88% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/__tests__/workspace-relation.comparator.spec.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/__tests__/workspace-relation.comparator.spec.ts index 74b824e622..a877eacba1 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/__tests__/workspace-relation.comparator.spec.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/__tests__/workspace-relation.comparator.spec.ts @@ -1,6 +1,6 @@ -import { ComparatorAction } from 'src/workspace/workspace-sync-metadata/interfaces/comparator.interface'; +import { ComparatorAction } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface'; -import { WorkspaceRelationComparator } from 'src/workspace/workspace-sync-metadata/comparators/workspace-relation.comparator'; +import { WorkspaceRelationComparator } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-relation.comparator'; describe('WorkspaceRelationComparator', () => { let comparator: WorkspaceRelationComparator; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/index.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/index.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/index.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/index.ts diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/utils/__tests__/order-object-properties.util.spec.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/__tests__/order-object-properties.util.spec.ts similarity index 90% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/utils/__tests__/order-object-properties.util.spec.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/__tests__/order-object-properties.util.spec.ts index 60309e8b73..c0e2e230f1 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/utils/__tests__/order-object-properties.util.spec.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/__tests__/order-object-properties.util.spec.ts @@ -1,4 +1,4 @@ -import { orderObjectProperties } from 'src/workspace/workspace-sync-metadata/comparators/utils/order-object-properties.util'; +import { orderObjectProperties } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/order-object-properties.util'; describe('orderObjectProperties', () => { it('orders simple object properties', () => { diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/utils/__tests__/transform-metadata-for-comparison.util.spec.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/__tests__/transform-metadata-for-comparison.util.spec.ts similarity index 90% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/utils/__tests__/transform-metadata-for-comparison.util.spec.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/__tests__/transform-metadata-for-comparison.util.spec.ts index ffa322ebc1..44be32a29c 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/utils/__tests__/transform-metadata-for-comparison.util.spec.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/__tests__/transform-metadata-for-comparison.util.spec.ts @@ -1,4 +1,4 @@ -import { transformMetadataForComparison } from 'src/workspace/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util'; // Adjust the import path as necessary +import { transformMetadataForComparison } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util'; // Adjust the import path as necessary describe('transformMetadataForComparison', () => { // Test for a single object diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/utils/order-object-properties.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/order-object-properties.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/utils/order-object-properties.util.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/order-object-properties.util.ts diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util.ts diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/workspace-field.comparator.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-field.comparator.ts similarity index 88% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/workspace-field.comparator.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-field.comparator.ts index 2b8e93a8c2..4556b95a1f 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/workspace-field.comparator.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-field.comparator.ts @@ -5,16 +5,16 @@ import diff from 'microdiff'; import { ComparatorAction, FieldComparatorResult, -} from 'src/workspace/workspace-sync-metadata/interfaces/comparator.interface'; -import { ComputedPartialFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; -import { ComputedPartialObjectMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-object-metadata.interface'; +} from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface'; +import { ComputedPartialFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; +import { ComputedPartialObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-object-metadata.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { transformMetadataForComparison } from 'src/workspace/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { transformMetadataForComparison } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util'; import { FieldMetadataEntity, FieldMetadataType, -} from 'src/metadata/field-metadata/field-metadata.entity'; +} from 'src/engine-metadata/field-metadata/field-metadata.entity'; const commonFieldPropertiesToIgnore = [ 'id', diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/workspace-object.comparator.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-object.comparator.ts similarity index 81% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/workspace-object.comparator.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-object.comparator.ts index d7ac607afa..7e2ae26d9f 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/workspace-object.comparator.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-object.comparator.ts @@ -6,11 +6,11 @@ import omit from 'lodash.omit'; import { ComparatorAction, ObjectComparatorResult, -} from 'src/workspace/workspace-sync-metadata/interfaces/comparator.interface'; -import { ComputedPartialObjectMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-object-metadata.interface'; +} from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface'; +import { ComputedPartialObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-object-metadata.interface'; -import { transformMetadataForComparison } from 'src/workspace/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { transformMetadataForComparison } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; const objectPropertiesToIgnore = [ 'id', diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/workspace-relation.comparator.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-relation.comparator.ts similarity index 90% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/workspace-relation.comparator.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-relation.comparator.ts index 9982c27ade..2c170e0fc0 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/workspace-relation.comparator.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-relation.comparator.ts @@ -5,10 +5,10 @@ import diff from 'microdiff'; import { ComparatorAction, RelationComparatorResult, -} from 'src/workspace/workspace-sync-metadata/interfaces/comparator.interface'; +} from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface'; -import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { transformMetadataForComparison } from 'src/workspace/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util'; +import { RelationMetadataEntity } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { transformMetadataForComparison } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util'; const relationPropertiesToIgnore = ['createdAt', 'updatedAt']; const relationPropertiesToUpdate = ['onDeleteAction']; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/constants/standard-field-ids.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/constants/standard-field-ids.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids.ts diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/constants/standard-object-ids.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/constants/standard-object-ids.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids.ts diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/custom-objects/custom.object-metadata.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/custom-objects/custom.object-metadata.ts similarity index 61% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/custom-objects/custom.object-metadata.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/custom-objects/custom.object-metadata.ts index 17ec2a27bf..86d727c141 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/custom-objects/custom.object-metadata.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/custom-objects/custom.object-metadata.ts @@ -1,18 +1,18 @@ -import { BaseCustomObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/base-custom-object-metadata.decorator'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { BaseCustomObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/base-custom-object-metadata.decorator'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { IsNullable } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; import { RelationMetadataType, RelationOnDeleteAction, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { ActivityTargetObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/activity-target.object-metadata'; -import { RelationMetadata } from 'src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator'; -import { FavoriteObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/favorite.object-metadata'; -import { AttachmentObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/attachment.object-metadata'; -import { customObjectStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { ActivityTargetObjectMetadata } from 'src/business/modules/activity/activity-target.object-metadata'; +import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator'; +import { FavoriteObjectMetadata } from 'src/business/modules/favorite/favorite.object-metadata'; +import { AttachmentObjectMetadata } from 'src/business/modules/attachment/attachment.object-metadata'; +import { customObjectStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; @BaseCustomObjectMetadata() export class CustomObjectMetadata extends BaseObjectMetadata { diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/base-custom-object-metadata.decorator.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/base-custom-object-metadata.decorator.ts similarity index 70% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/base-custom-object-metadata.decorator.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/base-custom-object-metadata.decorator.ts index 78864d4ab2..34e821d631 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/base-custom-object-metadata.decorator.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/base-custom-object-metadata.decorator.ts @@ -1,4 +1,4 @@ -import { BaseCustomObjectMetadataDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-custom-object-metadata.interface'; +import { BaseCustomObjectMetadataDecoratorParams } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-custom-object-metadata.interface'; import { TypedReflect } from 'src/utils/typed-reflect'; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/dynamic-field-metadata.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/dynamic-field-metadata.interface.ts similarity index 78% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/dynamic-field-metadata.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/dynamic-field-metadata.interface.ts index 86b6598044..1876482b23 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/dynamic-field-metadata.interface.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/dynamic-field-metadata.interface.ts @@ -1,7 +1,7 @@ -import { DynamicRelationFieldMetadataDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface'; +import { DynamicRelationFieldMetadataDecoratorParams } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface'; import { TypedReflect } from 'src/utils/typed-reflect'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; export function DynamicRelationFieldMetadata( params: DynamicRelationFieldMetadataDecoratorParams, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator.ts similarity index 76% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator.ts index 1d69b5d491..7ff971e8b8 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator.ts @@ -1,15 +1,15 @@ import { FieldMetadataDecoratorParams, ReflectFieldMetadata, -} from 'src/workspace/workspace-sync-metadata/interfaces/reflect-field-metadata.interface'; -import { GateDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface'; -import { FieldMetadataDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +} from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-field-metadata.interface'; +import { GateDecoratorParams } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/gate-decorator.interface'; +import { FieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { generateTargetColumnMap } from 'src/metadata/field-metadata/utils/generate-target-column-map.util'; -import { generateDefaultValue } from 'src/metadata/field-metadata/utils/generate-default-value'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { generateTargetColumnMap } from 'src/engine-metadata/field-metadata/utils/generate-target-column-map.util'; +import { generateDefaultValue } from 'src/engine-metadata/field-metadata/utils/generate-default-value'; import { TypedReflect } from 'src/utils/typed-reflect'; -import { createDeterministicUuid } from 'src/workspace/workspace-sync-metadata/utils/create-deterministic-uuid.util'; +import { createDeterministicUuid } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/create-deterministic-uuid.util'; export function FieldMetadata( params: FieldMetadataDecoratorParams, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/gate.decorator.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/gate.decorator.ts similarity index 72% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/gate.decorator.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/gate.decorator.ts index c5753ed74e..c492e1b8a2 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/gate.decorator.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/gate.decorator.ts @@ -1,4 +1,4 @@ -import { GateDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface'; +import { GateDecoratorParams } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/gate-decorator.interface'; import { TypedReflect } from 'src/utils/typed-reflect'; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/is-nullable.decorator.ts diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/is-system.decorator.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/is-system.decorator.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator.ts diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator.ts similarity index 69% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator.ts index 0a6afffe2a..cd944369ec 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/object-metadata.decorator.ts @@ -1,7 +1,7 @@ -import { ObjectMetadataDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-object-metadata.interface'; +import { ObjectMetadataDecoratorParams } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-object-metadata.interface'; import { TypedReflect } from 'src/utils/typed-reflect'; -import { convertClassNameToObjectMetadataName } from 'src/workspace/workspace-sync-metadata/utils/convert-class-to-object-metadata-name.util'; +import { convertClassNameToObjectMetadataName } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/convert-class-to-object-metadata-name.util'; export function ObjectMetadata( params: ObjectMetadataDecoratorParams, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator.ts similarity index 81% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator.ts index 28c6e5d55a..ceb6ca32a7 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/decorators/relation-metadata.decorator.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator.ts @@ -3,10 +3,10 @@ import 'reflect-metadata'; import { ReflectRelationMetadata, RelationMetadataDecoratorParams, -} from 'src/workspace/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface'; +} from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface'; import { TypedReflect } from 'src/utils/typed-reflect'; -import { RelationOnDeleteAction } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { RelationOnDeleteAction } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; export function RelationMetadata( params: RelationMetadataDecoratorParams, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/factories/feature-flags.factory.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/feature-flags.factory.ts similarity index 71% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/factories/feature-flags.factory.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/feature-flags.factory.ts index 82904e5d8f..c8c3fa29ff 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/factories/feature-flags.factory.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/feature-flags.factory.ts @@ -3,10 +3,10 @@ import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; -import { WorkspaceSyncContext } from 'src/workspace/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; -import { FeatureFlagMap } from 'src/core/feature-flag/interfaces/feature-flag-map.interface'; +import { WorkspaceSyncContext } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; +import { FeatureFlagMap } from 'src/engine/modules/feature-flag/interfaces/feature-flag-map.interface'; -import { FeatureFlagEntity } from 'src/core/feature-flag/feature-flag.entity'; +import { FeatureFlagEntity } from 'src/engine/modules/feature-flag/feature-flag.entity'; @Injectable() export class FeatureFlagFactory { diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/factories/index.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/index.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/factories/index.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/index.ts diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/factories/standard-field.factory.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/standard-field.factory.ts similarity index 75% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/factories/standard-field.factory.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/standard-field.factory.ts index eddb3edb4f..56608eb87c 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/factories/standard-field.factory.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/standard-field.factory.ts @@ -1,17 +1,17 @@ import { Injectable } from '@nestjs/common'; -import { WorkspaceSyncContext } from 'src/workspace/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; -import { FeatureFlagMap } from 'src/core/feature-flag/interfaces/feature-flag-map.interface'; +import { WorkspaceSyncContext } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; +import { FeatureFlagMap } from 'src/engine/modules/feature-flag/interfaces/feature-flag-map.interface'; import { PartialComputedFieldMetadata, PartialFieldMetadata, -} from 'src/workspace/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; -import { ReflectFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-field-metadata.interface'; -import { ReflectObjectMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-object-metadata.interface'; -import { ReflectDynamicRelationFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface'; +} from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; +import { ReflectFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-field-metadata.interface'; +import { ReflectObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-object-metadata.interface'; +import { ReflectDynamicRelationFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface'; import { TypedReflect } from 'src/utils/typed-reflect'; -import { isGatedAndNotEnabled } from 'src/workspace/workspace-sync-metadata/utils/is-gate-and-not-enabled.util'; +import { isGatedAndNotEnabled } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/is-gate-and-not-enabled.util'; @Injectable() export class StandardFieldFactory { diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/factories/standard-object.factory.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/standard-object.factory.ts similarity index 70% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/factories/standard-object.factory.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/standard-object.factory.ts index 87b2a2e6c1..3d45618381 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/factories/standard-object.factory.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/standard-object.factory.ts @@ -1,12 +1,12 @@ import { Injectable } from '@nestjs/common'; -import { WorkspaceSyncContext } from 'src/workspace/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; -import { PartialObjectMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-object-metadata.interface'; -import { FeatureFlagMap } from 'src/core/feature-flag/interfaces/feature-flag-map.interface'; +import { WorkspaceSyncContext } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; +import { PartialObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-object-metadata.interface'; +import { FeatureFlagMap } from 'src/engine/modules/feature-flag/interfaces/feature-flag-map.interface'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; import { TypedReflect } from 'src/utils/typed-reflect'; -import { isGatedAndNotEnabled } from 'src/workspace/workspace-sync-metadata/utils/is-gate-and-not-enabled.util'; +import { isGatedAndNotEnabled } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/is-gate-and-not-enabled.util'; import { StandardFieldFactory } from './standard-field.factory'; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/factories/standard-relation.factory.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/standard-relation.factory.ts similarity index 86% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/factories/standard-relation.factory.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/standard-relation.factory.ts index bb97cdde1a..dbb4d2be00 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/factories/standard-relation.factory.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/factories/standard-relation.factory.ts @@ -1,15 +1,15 @@ import { Injectable } from '@nestjs/common'; -import { WorkspaceSyncContext } from 'src/workspace/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; -import { FeatureFlagMap } from 'src/core/feature-flag/interfaces/feature-flag-map.interface'; +import { WorkspaceSyncContext } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; +import { FeatureFlagMap } from 'src/engine/modules/feature-flag/interfaces/feature-flag-map.interface'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; import { TypedReflect } from 'src/utils/typed-reflect'; -import { isGatedAndNotEnabled } from 'src/workspace/workspace-sync-metadata/utils/is-gate-and-not-enabled.util'; +import { isGatedAndNotEnabled } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/is-gate-and-not-enabled.util'; import { assert } from 'src/utils/assert'; -import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { convertClassNameToObjectMetadataName } from 'src/workspace/workspace-sync-metadata/utils/convert-class-to-object-metadata-name.util'; +import { RelationMetadataEntity } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { convertClassNameToObjectMetadataName } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/convert-class-to-object-metadata-name.util'; interface CustomRelationFactory { object: ObjectMetadataEntity; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/comparator.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface.ts similarity index 86% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/comparator.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface.ts index b60b9996d6..e01fa7559c 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/comparator.interface.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface.ts @@ -1,5 +1,5 @@ -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; -import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { RelationMetadataEntity } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; import { ComputedPartialFieldMetadata } from './partial-field-metadata.interface'; import { ComputedPartialObjectMetadata } from './partial-object-metadata.interface'; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/gate-decorator.interface.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/gate-decorator.interface.ts diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/mapped-metadata.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/mapped-metadata.interface.ts new file mode 100644 index 0000000000..c9be4f066d --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/mapped-metadata.interface.ts @@ -0,0 +1,19 @@ +import { PartialFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; +import { PartialObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-object-metadata.interface'; + +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; + +export type MappedFieldMetadata = Record; + +export interface MappedObjectMetadata + extends Omit { + fields: MappedFieldMetadata; +} + +export type MappedFieldMetadataEntity = Record; + +export interface MappedObjectMetadataEntity + extends Omit { + fields: MappedFieldMetadataEntity; +} diff --git a/packages/twenty-server/src/workspace/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 similarity index 58% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/partial-field-metadata.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface.ts index fa90f9275e..c8698c3753 100644 --- a/packages/twenty-server/src/workspace/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,5 +1,5 @@ -import { ReflectDynamicRelationFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface'; -import { ReflectFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-field-metadata.interface'; +import { ReflectDynamicRelationFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface'; +import { ReflectFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-field-metadata.interface'; export type PartialFieldMetadata = Omit< ReflectFieldMetadata[string], diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/partial-object-metadata.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-object-metadata.interface.ts similarity index 65% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/partial-object-metadata.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-object-metadata.interface.ts index 8ca354b02d..747cae43eb 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/partial-object-metadata.interface.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-object-metadata.interface.ts @@ -2,8 +2,8 @@ import { ComputedPartialFieldMetadata, PartialComputedFieldMetadata, PartialFieldMetadata, -} from 'src/workspace/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; -import { ReflectObjectMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-object-metadata.interface'; +} from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; +import { ReflectObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-object-metadata.interface'; export type PartialObjectMetadata = ReflectObjectMetadata & { id?: string; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/partial-relation-metadata.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-relation-metadata.interface.ts similarity index 61% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/partial-relation-metadata.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-relation-metadata.interface.ts index e1b5657ab0..d4286277e9 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/partial-relation-metadata.interface.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-relation-metadata.interface.ts @@ -1,4 +1,4 @@ -import { ReflectRelationMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface'; +import { ReflectRelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface'; export type PartialRelationMetadata = ReflectRelationMetadata & { id: string; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface.ts similarity index 60% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface.ts index 8067d58d33..4be992e1ed 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface.ts @@ -1,7 +1,7 @@ -import { GateDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface'; +import { GateDecoratorParams } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/gate-decorator.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; export type DynamicRelationFieldMetadataDecoratorParams = ( oppositeObjectMetadata: ObjectMetadataEntity, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-custom-object-metadata.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-custom-object-metadata.interface.ts similarity index 67% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-custom-object-metadata.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-custom-object-metadata.interface.ts index 2e000bfa94..cb009ca652 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-custom-object-metadata.interface.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-custom-object-metadata.interface.ts @@ -1,4 +1,4 @@ -import { GateDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface'; +import { GateDecoratorParams } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/gate-decorator.interface'; export type BaseCustomObjectMetadataDecoratorParams = | { allowObjectNameList?: string[] } diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-field-metadata.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-field-metadata.interface.ts similarity index 55% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-field-metadata.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-field-metadata.interface.ts index 83a1675de9..1c9d837a97 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-field-metadata.interface.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-field-metadata.interface.ts @@ -1,10 +1,10 @@ -import { FieldMetadataDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; -import { GateDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface'; -import { FieldMetadataOptions } from 'src/metadata/field-metadata/interfaces/field-metadata-options.interface'; -import { FieldMetadataTargetColumnMap } from 'src/metadata/field-metadata/interfaces/field-metadata-target-column-map.interface'; +import { FieldMetadataDefaultValue } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-default-value.interface'; +import { GateDecoratorParams } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/gate-decorator.interface'; +import { FieldMetadataOptions } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-options.interface'; +import { FieldMetadataTargetColumnMap } from 'src/engine-metadata/field-metadata/interfaces/field-metadata-target-column-map.interface'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; export interface FieldMetadataDecoratorParams< T extends FieldMetadataType | 'default', diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-object-metadata.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-object-metadata.interface.ts similarity index 75% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-object-metadata.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-object-metadata.interface.ts index 441bc32e67..5afa58ad17 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-object-metadata.interface.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-object-metadata.interface.ts @@ -1,4 +1,4 @@ -import { GateDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface'; +import { GateDecoratorParams } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/gate-decorator.interface'; export interface ObjectMetadataDecoratorParams { standardId: string; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface.ts similarity index 71% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface.ts index 5e67f14a52..abbb593c65 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface.ts @@ -1,11 +1,11 @@ import { ObjectType } from 'typeorm'; -import { GateDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface'; +import { GateDecoratorParams } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/gate-decorator.interface'; import { RelationOnDeleteAction, RelationMetadataType, -} from 'src/metadata/relation-metadata/relation-metadata.entity'; +} from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; export interface RelationMetadataDecoratorParams { type: RelationMetadataType; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/workspace-sync-context.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/workspace-sync-context.interface.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/workspace-sync-context.interface.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/interfaces/workspace-sync-context.interface.ts diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-metadata-updater.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-metadata-updater.service.ts similarity index 92% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-metadata-updater.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-metadata-updater.service.ts index 569d723330..c75309aaab 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-metadata-updater.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-metadata-updater.service.ts @@ -4,16 +4,16 @@ import { EntityManager, In } from 'typeorm'; import { v4 as uuidV4 } from 'uuid'; import omit from 'lodash.omit'; -import { PartialFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; +import { PartialFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; import { FieldMetadataEntity, FieldMetadataType, -} from 'src/metadata/field-metadata/field-metadata.entity'; -import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { FieldMetadataComplexOption } from 'src/metadata/field-metadata/dtos/options.input'; -import { WorkspaceSyncStorage } from 'src/workspace/workspace-sync-metadata/storage/workspace-sync.storage'; +} from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { RelationMetadataEntity } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { FieldMetadataComplexOption } from 'src/engine-metadata/field-metadata/dtos/options.input'; +import { WorkspaceSyncStorage } from 'src/engine/workspace-manager/workspace-sync-metadata/storage/workspace-sync.storage'; @Injectable() export class WorkspaceMetadataUpdaterService { diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-field-metadata.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-field-metadata.service.ts similarity index 70% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-field-metadata.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-field-metadata.service.ts index 68f7dd4e1a..7461a4d52e 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-field-metadata.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-field-metadata.service.ts @@ -2,20 +2,20 @@ import { Injectable, Logger } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceSyncContext } from 'src/workspace/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; -import { ComparatorAction } from 'src/workspace/workspace-sync-metadata/interfaces/comparator.interface'; -import { FeatureFlagMap } from 'src/core/feature-flag/interfaces/feature-flag-map.interface'; -import { WorkspaceMigrationBuilderAction } from 'src/workspace/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; +import { WorkspaceSyncContext } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; +import { ComparatorAction } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface'; +import { FeatureFlagMap } from 'src/engine/modules/feature-flag/interfaces/feature-flag-map.interface'; +import { WorkspaceMigrationBuilderAction } from 'src/engine/workspace-manager/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { WorkspaceMigrationEntity } from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { WorkspaceFieldComparator } from 'src/workspace/workspace-sync-metadata/comparators/workspace-field.comparator'; -import { WorkspaceMetadataUpdaterService } from 'src/workspace/workspace-sync-metadata/services/workspace-metadata-updater.service'; -import { WorkspaceSyncStorage } from 'src/workspace/workspace-sync-metadata/storage/workspace-sync.storage'; -import { WorkspaceMigrationFieldFactory } from 'src/workspace/workspace-migration-builder/factories/workspace-migration-field.factory'; -import { StandardFieldFactory } from 'src/workspace/workspace-sync-metadata/factories/standard-field.factory'; -import { CustomObjectMetadata } from 'src/workspace/workspace-sync-metadata/custom-objects/custom.object-metadata'; -import { computeStandardObject } from 'src/workspace/workspace-sync-metadata/utils/compute-standard-object.util'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { WorkspaceMigrationEntity } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { WorkspaceFieldComparator } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-field.comparator'; +import { WorkspaceMetadataUpdaterService } from 'src/engine/workspace-manager/workspace-sync-metadata/services/workspace-metadata-updater.service'; +import { WorkspaceSyncStorage } from 'src/engine/workspace-manager/workspace-sync-metadata/storage/workspace-sync.storage'; +import { WorkspaceMigrationFieldFactory } from 'src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-field.factory'; +import { StandardFieldFactory } from 'src/engine/workspace-manager/workspace-sync-metadata/factories/standard-field.factory'; +import { CustomObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/custom-objects/custom.object-metadata'; +import { computeStandardObject } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/compute-standard-object.util'; @Injectable() export class WorkspaceSyncFieldMetadataService { diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-object-metadata.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-object-metadata.service.ts similarity index 72% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-object-metadata.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-object-metadata.service.ts index 280a8a6a37..1c271e2930 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-object-metadata.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-object-metadata.service.ts @@ -2,22 +2,22 @@ import { Injectable, Logger } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceSyncContext } from 'src/workspace/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; -import { ComparatorAction } from 'src/workspace/workspace-sync-metadata/interfaces/comparator.interface'; -import { FeatureFlagMap } from 'src/core/feature-flag/interfaces/feature-flag-map.interface'; -import { WorkspaceMigrationBuilderAction } from 'src/workspace/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; +import { WorkspaceSyncContext } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; +import { ComparatorAction } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface'; +import { FeatureFlagMap } from 'src/engine/modules/feature-flag/interfaces/feature-flag-map.interface'; +import { WorkspaceMigrationBuilderAction } from 'src/engine/workspace-manager/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { mapObjectMetadataByUniqueIdentifier } from 'src/workspace/workspace-sync-metadata/utils/sync-metadata.util'; -import { WorkspaceMigrationEntity } from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { StandardObjectFactory } from 'src/workspace/workspace-sync-metadata/factories/standard-object.factory'; -import { WorkspaceObjectComparator } from 'src/workspace/workspace-sync-metadata/comparators/workspace-object.comparator'; -import { WorkspaceFieldComparator } from 'src/workspace/workspace-sync-metadata/comparators/workspace-field.comparator'; -import { WorkspaceMetadataUpdaterService } from 'src/workspace/workspace-sync-metadata/services/workspace-metadata-updater.service'; -import { WorkspaceSyncStorage } from 'src/workspace/workspace-sync-metadata/storage/workspace-sync.storage'; -import { WorkspaceMigrationObjectFactory } from 'src/workspace/workspace-migration-builder/factories/workspace-migration-object.factory'; -import { computeStandardObject } from 'src/workspace/workspace-sync-metadata/utils/compute-standard-object.util'; -import { standardObjectMetadataDefinitions } from 'src/workspace/workspace-sync-metadata/standard-objects'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { mapObjectMetadataByUniqueIdentifier } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/sync-metadata.util'; +import { WorkspaceMigrationEntity } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { StandardObjectFactory } from 'src/engine/workspace-manager/workspace-sync-metadata/factories/standard-object.factory'; +import { WorkspaceObjectComparator } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-object.comparator'; +import { WorkspaceFieldComparator } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-field.comparator'; +import { WorkspaceMetadataUpdaterService } from 'src/engine/workspace-manager/workspace-sync-metadata/services/workspace-metadata-updater.service'; +import { WorkspaceSyncStorage } from 'src/engine/workspace-manager/workspace-sync-metadata/storage/workspace-sync.storage'; +import { WorkspaceMigrationObjectFactory } from 'src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-object.factory'; +import { computeStandardObject } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/compute-standard-object.util'; +import { standardObjectMetadataDefinitions } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects'; @Injectable() export class WorkspaceSyncObjectMetadataService { diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-relation-metadata.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-relation-metadata.service.ts similarity index 69% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-relation-metadata.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-relation-metadata.service.ts index 01e6895413..5e830fea96 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-relation-metadata.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-relation-metadata.service.ts @@ -2,22 +2,22 @@ import { Injectable, Logger } from '@nestjs/common'; import { EntityManager } from 'typeorm'; -import { WorkspaceSyncContext } from 'src/workspace/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; -import { FeatureFlagMap } from 'src/core/feature-flag/interfaces/feature-flag-map.interface'; -import { ComparatorAction } from 'src/workspace/workspace-sync-metadata/interfaces/comparator.interface'; -import { WorkspaceMigrationBuilderAction } from 'src/workspace/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; +import { WorkspaceSyncContext } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; +import { FeatureFlagMap } from 'src/engine/modules/feature-flag/interfaces/feature-flag-map.interface'; +import { ComparatorAction } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface'; +import { WorkspaceMigrationBuilderAction } from 'src/engine/workspace-manager/workspace-migration-builder/interfaces/workspace-migration-builder-action.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { mapObjectMetadataByUniqueIdentifier } from 'src/workspace/workspace-sync-metadata/utils/sync-metadata.util'; -import { StandardRelationFactory } from 'src/workspace/workspace-sync-metadata/factories/standard-relation.factory'; -import { WorkspaceRelationComparator } from 'src/workspace/workspace-sync-metadata/comparators/workspace-relation.comparator'; -import { WorkspaceMetadataUpdaterService } from 'src/workspace/workspace-sync-metadata/services/workspace-metadata-updater.service'; -import { WorkspaceMigrationEntity } from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { WorkspaceSyncStorage } from 'src/workspace/workspace-sync-metadata/storage/workspace-sync.storage'; -import { WorkspaceMigrationRelationFactory } from 'src/workspace/workspace-migration-builder/factories/workspace-migration-relation.factory'; -import { standardObjectMetadataDefinitions } from 'src/workspace/workspace-sync-metadata/standard-objects'; -import { CustomObjectMetadata } from 'src/workspace/workspace-sync-metadata/custom-objects/custom.object-metadata'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { RelationMetadataEntity } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { mapObjectMetadataByUniqueIdentifier } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/sync-metadata.util'; +import { StandardRelationFactory } from 'src/engine/workspace-manager/workspace-sync-metadata/factories/standard-relation.factory'; +import { WorkspaceRelationComparator } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/workspace-relation.comparator'; +import { WorkspaceMetadataUpdaterService } from 'src/engine/workspace-manager/workspace-sync-metadata/services/workspace-metadata-updater.service'; +import { WorkspaceMigrationEntity } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { WorkspaceSyncStorage } from 'src/engine/workspace-manager/workspace-sync-metadata/storage/workspace-sync.storage'; +import { WorkspaceMigrationRelationFactory } from 'src/engine/workspace-manager/workspace-migration-builder/factories/workspace-migration-relation.factory'; +import { standardObjectMetadataDefinitions } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects'; +import { CustomObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/custom-objects/custom.object-metadata'; @Injectable() export class WorkspaceSyncRelationMetadataService { diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata.ts similarity index 63% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata.ts index 82e6e69f7f..0594befd15 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata.ts @@ -1,7 +1,7 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { baseObjectStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { baseObjectStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator'; +import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator'; export abstract class BaseObjectMetadata { @FieldMetadata({ diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/standard-objects/index.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/standard-objects/index.ts new file mode 100644 index 0000000000..e1ff8a4b25 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/standard-objects/index.ts @@ -0,0 +1,57 @@ +import { ActivityTargetObjectMetadata } from 'src/business/modules/activity/activity-target.object-metadata'; +import { ActivityObjectMetadata } from 'src/business/modules/activity/activity.object-metadata'; +import { ApiKeyObjectMetadata } from 'src/business/modules/api-key/api-key.object-metadata'; +import { AttachmentObjectMetadata } from 'src/business/modules/attachment/attachment.object-metadata'; +import { BlocklistObjectMetadata } from 'src/business/modules/calendar/blocklist.object-metadata'; +import { CalendarEventObjectMetadata } from 'src/business/modules/calendar/calendar-event.object-metadata'; +import { CalendarChannelObjectMetadata } from 'src/business/modules/calendar/calendar-channel.object-metadata'; +import { CalendarEventAttendeeObjectMetadata } from 'src/business/modules/calendar/calendar-event-attendee.object-metadata'; +import { CommentObjectMetadata } from 'src/business/modules/comment/comment.object-metadata'; +import { CompanyObjectMetadata } from 'src/business/modules/company/company.object-metadata'; +import { ConnectedAccountObjectMetadata } from 'src/business/modules/connected-account/connected-account.object-metadata'; +import { FavoriteObjectMetadata } from 'src/business/modules/favorite/favorite.object-metadata'; +import { MessageChannelMessageAssociationObjectMetadata } from 'src/business/modules/message/message-channel-message-association.object-metadata'; +import { MessageChannelObjectMetadata } from 'src/business/modules/message/message-channel.object-metadata'; +import { MessageParticipantObjectMetadata } from 'src/business/modules/message/message-participant.object-metadata'; +import { MessageThreadObjectMetadata } from 'src/business/modules/message/message-thread.object-metadata'; +import { MessageObjectMetadata } from 'src/business/modules/message/message.object-metadata'; +import { OpportunityObjectMetadata } from 'src/business/modules/opportunity/opportunity.object-metadata'; +import { PersonObjectMetadata } from 'src/business/modules/person/person.object-metadata'; +import { PipelineStepObjectMetadata } from 'src/business/modules/pipeline-step/pipeline-step.object-metadata'; +import { ViewFieldObjectMetadata } from 'src/business/modules/view/view-field.object-metadata'; +import { ViewFilterObjectMetadata } from 'src/business/modules/view/view-filter.object-metadata'; +import { ViewSortObjectMetadata } from 'src/business/modules/view/view-sort.object-metadata'; +import { ViewObjectMetadata } from 'src/business/modules/view/view.object-metadata'; +import { WebhookObjectMetadata } from 'src/business/modules/webhook/webhook.object-metadata'; +import { WorkspaceMemberObjectMetadata } from 'src/business/modules/workspace/workspace-member.object-metadata'; +import { CalendarChannelEventAssociationObjectMetadata } from 'src/business/modules/calendar/calendar-channel-event-association.object-metadata'; + +export const standardObjectMetadataDefinitions = [ + ActivityTargetObjectMetadata, + ActivityObjectMetadata, + ApiKeyObjectMetadata, + AttachmentObjectMetadata, + BlocklistObjectMetadata, + CommentObjectMetadata, + CompanyObjectMetadata, + ConnectedAccountObjectMetadata, + FavoriteObjectMetadata, + OpportunityObjectMetadata, + PersonObjectMetadata, + PipelineStepObjectMetadata, + ViewFieldObjectMetadata, + ViewFilterObjectMetadata, + ViewSortObjectMetadata, + ViewObjectMetadata, + WebhookObjectMetadata, + WorkspaceMemberObjectMetadata, + MessageThreadObjectMetadata, + MessageObjectMetadata, + MessageChannelObjectMetadata, + MessageParticipantObjectMetadata, + MessageChannelMessageAssociationObjectMetadata, + CalendarEventObjectMetadata, + CalendarChannelObjectMetadata, + CalendarChannelEventAssociationObjectMetadata, + CalendarEventAttendeeObjectMetadata, +]; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/storage/workspace-sync.storage.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/storage/workspace-sync.storage.ts similarity index 80% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/storage/workspace-sync.storage.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/storage/workspace-sync.storage.ts index fe78c99534..4589d7e4e6 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/storage/workspace-sync.storage.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/storage/workspace-sync.storage.ts @@ -1,10 +1,10 @@ -import { ComputedPartialObjectMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-object-metadata.interface'; -import { ComputedPartialFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; -import { PartialRelationMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-relation-metadata.interface'; +import { ComputedPartialObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-object-metadata.interface'; +import { ComputedPartialFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; +import { PartialRelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-relation-metadata.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; -import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { RelationMetadataEntity } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; export class WorkspaceSyncStorage { // Object metadata diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/types/object-record.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/types/object-record.ts similarity index 69% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/types/object-record.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/types/object-record.ts index bf21776f2f..f99f0e0802 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/types/object-record.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/types/object-record.ts @@ -1,4 +1,4 @@ -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; export type ObjectRecord = { [K in keyof T as T[K] extends BaseObjectMetadata diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/utils/compute-standard-object.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/compute-standard-object.util.ts similarity index 75% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/utils/compute-standard-object.util.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/compute-standard-object.util.ts index 8e51141c55..833a63d6f7 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/utils/compute-standard-object.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/compute-standard-object.util.ts @@ -1,13 +1,13 @@ import { ComputedPartialObjectMetadata, PartialObjectMetadata, -} from 'src/workspace/workspace-sync-metadata/interfaces/partial-object-metadata.interface'; -import { ComputedPartialFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; +} from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-object-metadata.interface'; +import { ComputedPartialFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { generateTargetColumnMap } from 'src/metadata/field-metadata/utils/generate-target-column-map.util'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { createDeterministicUuid } from 'src/workspace/workspace-sync-metadata/utils/create-deterministic-uuid.util'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { generateTargetColumnMap } from 'src/engine-metadata/field-metadata/utils/generate-target-column-map.util'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { createDeterministicUuid } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/create-deterministic-uuid.util'; export const computeStandardObject = ( standardObjectMetadata: Omit & { diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/utils/convert-class-to-object-metadata-name.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/convert-class-to-object-metadata-name.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/utils/convert-class-to-object-metadata-name.util.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/convert-class-to-object-metadata-name.util.ts diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/utils/create-deterministic-uuid.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/create-deterministic-uuid.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/utils/create-deterministic-uuid.util.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/create-deterministic-uuid.util.ts diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/utils/is-gate-and-not-enabled.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/is-gate-and-not-enabled.util.ts similarity index 70% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/utils/is-gate-and-not-enabled.util.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/is-gate-and-not-enabled.util.ts index b0fe74feb4..adff20533d 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/utils/is-gate-and-not-enabled.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/is-gate-and-not-enabled.util.ts @@ -1,4 +1,4 @@ -import { GateDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface'; +import { GateDecoratorParams } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/gate-decorator.interface'; export const isGatedAndNotEnabled = ( gate: GateDecoratorParams | undefined, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/utils/sync-metadata.util.spec.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/sync-metadata.util.spec.ts similarity index 89% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/utils/sync-metadata.util.spec.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/sync-metadata.util.spec.ts index 11dbde3be6..9a5e171809 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/utils/sync-metadata.util.spec.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/sync-metadata.util.spec.ts @@ -1,5 +1,5 @@ -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; import { mapObjectMetadataByUniqueIdentifier } from './sync-metadata.util'; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/utils/sync-metadata.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/sync-metadata.util.ts similarity index 100% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/utils/sync-metadata.util.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/utils/sync-metadata.util.ts diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.module.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.module.ts new file mode 100644 index 0000000000..2441f589d2 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.module.ts @@ -0,0 +1,45 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; + +import { FeatureFlagEntity } from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { FieldMetadataEntity } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; +import { RelationMetadataEntity } from 'src/engine-metadata/relation-metadata/relation-metadata.entity'; +import { WorkspaceMigrationEntity } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; +import { WorkspaceMigrationRunnerModule } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.module'; +import { WorkspaceSyncMetadataService } from 'src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.service'; +import { workspaceSyncMetadataFactories } from 'src/engine/workspace-manager/workspace-sync-metadata/factories'; +import { workspaceSyncMetadataComparators } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators'; +import { WorkspaceMetadataUpdaterService } from 'src/engine/workspace-manager/workspace-sync-metadata/services/workspace-metadata-updater.service'; +import { WorkspaceSyncObjectMetadataService } from 'src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-object-metadata.service'; +import { WorkspaceSyncRelationMetadataService } from 'src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-relation-metadata.service'; +import { WorkspaceSyncFieldMetadataService } from 'src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-field-metadata.service'; +import { WorkspaceMigrationBuilderModule } from 'src/engine/workspace-manager/workspace-migration-builder/workspace-migration-builder.module'; + +@Module({ + imports: [ + WorkspaceMigrationBuilderModule, + WorkspaceMigrationRunnerModule, + TypeOrmModule.forFeature( + [ + FieldMetadataEntity, + ObjectMetadataEntity, + RelationMetadataEntity, + WorkspaceMigrationEntity, + ], + 'metadata', + ), + TypeOrmModule.forFeature([FeatureFlagEntity], 'core'), + ], + providers: [ + ...workspaceSyncMetadataFactories, + ...workspaceSyncMetadataComparators, + WorkspaceMetadataUpdaterService, + WorkspaceSyncObjectMetadataService, + WorkspaceSyncRelationMetadataService, + WorkspaceSyncFieldMetadataService, + WorkspaceSyncMetadataService, + ], + exports: [...workspaceSyncMetadataFactories, WorkspaceSyncMetadataService], +}) +export class WorkspaceSyncMetadataModule {} diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/workspace-sync-metadata.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.service.ts similarity index 78% rename from packages/twenty-server/src/workspace/workspace-sync-metadata/workspace-sync-metadata.service.ts rename to packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.service.ts index e1b63bbeb3..f1fc5e8cdb 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/workspace-sync-metadata.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.service.ts @@ -3,15 +3,15 @@ import { InjectDataSource } from '@nestjs/typeorm'; import { DataSource } from 'typeorm'; -import { WorkspaceSyncContext } from 'src/workspace/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; +import { WorkspaceSyncContext } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/workspace-sync-context.interface'; -import { WorkspaceMigrationRunnerService } from 'src/workspace/workspace-migration-runner/workspace-migration-runner.service'; -import { FeatureFlagFactory } from 'src/workspace/workspace-sync-metadata/factories/feature-flags.factory'; -import { WorkspaceSyncObjectMetadataService } from 'src/workspace/workspace-sync-metadata/services/workspace-sync-object-metadata.service'; -import { WorkspaceSyncRelationMetadataService } from 'src/workspace/workspace-sync-metadata/services/workspace-sync-relation-metadata.service'; -import { WorkspaceSyncFieldMetadataService } from 'src/workspace/workspace-sync-metadata/services/workspace-sync-field-metadata.service'; -import { WorkspaceSyncStorage } from 'src/workspace/workspace-sync-metadata/storage/workspace-sync.storage'; -import { WorkspaceMigrationEntity } from 'src/metadata/workspace-migration/workspace-migration.entity'; +import { WorkspaceMigrationRunnerService } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service'; +import { FeatureFlagFactory } from 'src/engine/workspace-manager/workspace-sync-metadata/factories/feature-flags.factory'; +import { WorkspaceSyncObjectMetadataService } from 'src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-object-metadata.service'; +import { WorkspaceSyncRelationMetadataService } from 'src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-relation-metadata.service'; +import { WorkspaceSyncFieldMetadataService } from 'src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-field-metadata.service'; +import { WorkspaceSyncStorage } from 'src/engine/workspace-manager/workspace-sync-metadata/storage/workspace-sync.storage'; +import { WorkspaceMigrationEntity } from 'src/engine-metadata/workspace-migration/workspace-migration.entity'; interface SynchronizeOptions { applyChanges?: boolean; diff --git a/packages/twenty-server/src/graphql-config/graphql-config.module.ts b/packages/twenty-server/src/graphql-config/graphql-config.module.ts deleted file mode 100644 index 64290089e9..0000000000 --- a/packages/twenty-server/src/graphql-config/graphql-config.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { CoreModule } from 'src/core/core.module'; -import { graphQLFactories } from 'src/graphql-config/factories'; - -@Module({ - imports: [CoreModule], - providers: [...graphQLFactories], - exports: [...graphQLFactories], -}) -export class GraphQLConfigModule {} diff --git a/packages/twenty-server/src/integrations/event-emitter/types/object-record-create.event.ts b/packages/twenty-server/src/integrations/event-emitter/types/object-record-create.event.ts index be66f1928b..fcfda81323 100644 --- a/packages/twenty-server/src/integrations/event-emitter/types/object-record-create.event.ts +++ b/packages/twenty-server/src/integrations/event-emitter/types/object-record-create.event.ts @@ -1,4 +1,4 @@ -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; export type CreatedObjectMetadata = { nameSingular: string; diff --git a/packages/twenty-server/src/integrations/event-emitter/types/object-record-delete.event.ts b/packages/twenty-server/src/integrations/event-emitter/types/object-record-delete.event.ts index 82b93ebbd9..6e7c011a92 100644 --- a/packages/twenty-server/src/integrations/event-emitter/types/object-record-delete.event.ts +++ b/packages/twenty-server/src/integrations/event-emitter/types/object-record-delete.event.ts @@ -1,4 +1,4 @@ -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; export declare class ObjectRecordDeleteEvent { workspaceId: string; diff --git a/packages/twenty-server/src/integrations/event-emitter/types/object-record-update.event.ts b/packages/twenty-server/src/integrations/event-emitter/types/object-record-update.event.ts index d577f246c7..6da59637df 100644 --- a/packages/twenty-server/src/integrations/event-emitter/types/object-record-update.event.ts +++ b/packages/twenty-server/src/integrations/event-emitter/types/object-record-update.event.ts @@ -1,4 +1,4 @@ -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; +import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata'; export class ObjectRecordUpdateEvent { workspaceId: string; diff --git a/packages/twenty-server/src/integrations/exception-handler/hooks/use-exception-handler.hook.ts b/packages/twenty-server/src/integrations/exception-handler/hooks/use-exception-handler.hook.ts index f258d1666b..0ab641fec5 100644 --- a/packages/twenty-server/src/integrations/exception-handler/hooks/use-exception-handler.hook.ts +++ b/packages/twenty-server/src/integrations/exception-handler/hooks/use-exception-handler.hook.ts @@ -6,13 +6,13 @@ import { Plugin, } from '@envelop/core'; -import { GraphQLContext } from 'src/graphql-config/interfaces/graphql-context.interface'; +import { GraphQLContext } from 'src/engine-graphql-config/interfaces/graphql-context.interface'; import { ExceptionHandlerService } from 'src/integrations/exception-handler/exception-handler.service'; import { convertExceptionToGraphQLError, filterException, -} from 'src/filters/utils/global-exception-handler.util'; +} from 'src/engine/filters/utils/global-exception-handler.util'; export type ExceptionHandlerPluginOptions = { /** diff --git a/packages/twenty-server/src/integrations/message-queue/jobs.module.ts b/packages/twenty-server/src/integrations/message-queue/jobs.module.ts index 3be853f8ed..800a389cd9 100644 --- a/packages/twenty-server/src/integrations/message-queue/jobs.module.ts +++ b/packages/twenty-server/src/integrations/message-queue/jobs.module.ts @@ -3,43 +3,43 @@ import { ModuleRef } from '@nestjs/core'; import { HttpModule } from '@nestjs/axios'; import { TypeOrmModule } from '@nestjs/typeorm'; -import { GmailFullSyncJob } from 'src/workspace/messaging/jobs/gmail-full-sync.job'; -import { CallWebhookJobsJob } from 'src/workspace/workspace-query-runner/jobs/call-webhook-jobs.job'; -import { CallWebhookJob } from 'src/workspace/workspace-query-runner/jobs/call-webhook.job'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; -import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; -import { CleanInactiveWorkspaceJob } from 'src/workspace/workspace-cleaner/crons/clean-inactive-workspace.job'; +import { GmailFullSyncJob } from 'src/business/modules/message/jobs/gmail-full-sync.job'; +import { CallWebhookJobsJob } from 'src/engine/graphql/workspace-query-runner/jobs/call-webhook-jobs.job'; +import { CallWebhookJob } from 'src/engine/graphql/workspace-query-runner/jobs/call-webhook.job'; +import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module'; +import { ObjectMetadataModule } from 'src/engine-metadata/object-metadata/object-metadata.module'; +import { DataSourceModule } from 'src/engine-metadata/data-source/data-source.module'; +import { CleanInactiveWorkspaceJob } from 'src/engine/workspace-manager/workspace-cleaner/crons/clean-inactive-workspace.job'; import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { MessagingModule } from 'src/workspace/messaging/messaging.module'; -import { GmailPartialSyncJob } from 'src/workspace/messaging/jobs/gmail-partial-sync.job'; +import { MessagingModule } from 'src/business/modules/message/messaging.module'; +import { GmailPartialSyncJob } from 'src/business/modules/message/jobs/gmail-partial-sync.job'; import { EmailSenderJob } from 'src/integrations/email/email-sender.job'; -import { UserModule } from 'src/core/user/user.module'; +import { UserModule } from 'src/engine/modules/user/user.module'; import { EnvironmentModule } from 'src/integrations/environment/environment.module'; -import { FetchAllWorkspacesMessagesJob } from 'src/workspace/messaging/commands/crons/fetch-all-workspaces-messages.job'; -import { ConnectedAccountModule } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.module'; -import { MatchMessageParticipantJob } from 'src/workspace/messaging/jobs/match-message-participant.job'; -import { CreateCompaniesAndContactsAfterSyncJob } from 'src/workspace/messaging/jobs/create-companies-and-contacts-after-sync.job'; -import { CreateCompaniesAndContactsModule } from 'src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module'; -import { MessageChannelModule } from 'src/workspace/messaging/repositories/message-channel/message-channel.module'; -import { MessageParticipantModule } from 'src/workspace/messaging/repositories/message-participant/message-participant.module'; +import { FetchAllWorkspacesMessagesJob } from 'src/business/modules/message/commands/crons/fetch-all-workspaces-messages.job'; +import { ConnectedAccountModule } from 'src/business/modules/calendar-and-messaging/repositories/connected-account/connected-account.module'; +import { MatchMessageParticipantJob } from 'src/business/modules/message/jobs/match-message-participant.job'; +import { CreateCompaniesAndContactsAfterSyncJob } from 'src/business/modules/message/jobs/create-companies-and-contacts-after-sync.job'; +import { CreateCompaniesAndContactsModule } from 'src/engine-workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module'; +import { MessageChannelModule } from 'src/business/modules/message/repositories/message-channel/message-channel.module'; +import { MessageParticipantModule } from 'src/business/modules/message/repositories/message-participant/message-participant.module'; import { DataSeedDemoWorkspaceModule } from 'src/database/commands/data-seed-demo-workspace/data-seed-demo-workspace.module'; import { DataSeedDemoWorkspaceJob } from 'src/database/commands/data-seed-demo-workspace/jobs/data-seed-demo-workspace.job'; -import { DeleteConnectedAccountAssociatedMessagingDataJob } from 'src/workspace/messaging/jobs/delete-connected-account-associated-messaging-data.job'; -import { ThreadCleanerModule } from 'src/workspace/messaging/services/thread-cleaner/thread-cleaner.module'; -import { UpdateSubscriptionJob } from 'src/core/billing/jobs/update-subscription.job'; -import { BillingModule } from 'src/core/billing/billing.module'; -import { UserWorkspaceModule } from 'src/core/user-workspace/user-workspace.module'; -import { StripeModule } from 'src/core/billing/stripe/stripe.module'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { FeatureFlagEntity } from 'src/core/feature-flag/feature-flag.entity'; -import { CalendarModule } from 'src/workspace/calendar/calendar.module'; -import { DataSourceEntity } from 'src/metadata/data-source/data-source.entity'; -import { GoogleCalendarFullSyncJob } from 'src/workspace/calendar/jobs/google-calendar-full-sync.job'; -import { CalendarEventCleanerModule } from 'src/workspace/calendar/services/calendar-event-cleaner/calendar-event-cleaner.module'; -import { RecordPositionBackfillJob } from 'src/workspace/workspace-query-runner/jobs/record-position-backfill.job'; -import { RecordPositionBackfillModule } from 'src/workspace/workspace-query-runner/services/record-position-backfill-module'; -import { DeleteConnectedAccountAssociatedCalendarDataJob } from 'src/workspace/messaging/jobs/delete-connected-account-associated-calendar-data.job'; +import { DeleteConnectedAccountAssociatedMessagingDataJob } from 'src/business/modules/message/jobs/delete-connected-account-associated-messaging-data.job'; +import { ThreadCleanerModule } from 'src/business/modules/message/services/thread-cleaner/thread-cleaner.module'; +import { UpdateSubscriptionJob } from 'src/engine/modules/billing/jobs/update-subscription.job'; +import { BillingModule } from 'src/engine/modules/billing/billing.module'; +import { UserWorkspaceModule } from 'src/engine/modules/user-workspace/user-workspace.module'; +import { StripeModule } from 'src/engine/modules/billing/stripe/stripe.module'; +import { Workspace } from 'src/engine/modules/workspace/workspace.entity'; +import { FeatureFlagEntity } from 'src/engine/modules/feature-flag/feature-flag.entity'; +import { CalendarModule } from 'src/business/modules/calendar/calendar.module'; +import { DataSourceEntity } from 'src/engine-metadata/data-source/data-source.entity'; +import { GoogleCalendarFullSyncJob } from 'src/business/modules/calendar/jobs/google-calendar-full-sync.job'; +import { CalendarEventCleanerModule } from 'src/business/modules/calendar/services/calendar-event-cleaner/calendar-event-cleaner.module'; +import { RecordPositionBackfillJob } from 'src/engine/graphql/workspace-query-runner/jobs/record-position-backfill.job'; +import { RecordPositionBackfillModule } from 'src/engine/graphql/workspace-query-runner/services/record-position-backfill-module'; +import { DeleteConnectedAccountAssociatedCalendarDataJob } from 'src/business/modules/message/jobs/delete-connected-account-associated-calendar-data.job'; @Module({ imports: [ diff --git a/packages/twenty-server/src/integrations/throttler/hooks/use-throttler.ts b/packages/twenty-server/src/integrations/throttler/hooks/use-throttler.ts index 6c549d532a..ffafe4f810 100644 --- a/packages/twenty-server/src/integrations/throttler/hooks/use-throttler.ts +++ b/packages/twenty-server/src/integrations/throttler/hooks/use-throttler.ts @@ -3,7 +3,7 @@ import { getGraphQLRateLimiter } from 'graphql-rate-limit'; import { Plugin } from '@envelop/core'; import { useOnResolve } from '@envelop/on-resolve'; -import { GraphQLContext } from 'src/graphql-config/graphql-config.service'; +import { GraphQLContext } from 'src/engine-graphql-config/graphql-config.service'; export class UnauthenticatedError extends Error {} diff --git a/packages/twenty-server/src/integrations/tracing/useSentryTracing.ts b/packages/twenty-server/src/integrations/tracing/useSentryTracing.ts index 1e03b5a336..a40d5547b1 100644 --- a/packages/twenty-server/src/integrations/tracing/useSentryTracing.ts +++ b/packages/twenty-server/src/integrations/tracing/useSentryTracing.ts @@ -6,7 +6,7 @@ import { } from '@envelop/core'; import { OperationDefinitionNode, Kind, print } from 'graphql'; -import { GraphQLContext } from 'src/graphql-config/graphql-config.service'; +import { GraphQLContext } from 'src/engine-graphql-config/graphql-config.service'; export const useSentryTracing = < PluginContext extends GraphQLContext, diff --git a/packages/twenty-server/src/main.ts b/packages/twenty-server/src/main.ts index 2b1eb9e654..7beec44acd 100644 --- a/packages/twenty-server/src/main.ts +++ b/packages/twenty-server/src/main.ts @@ -10,7 +10,7 @@ import '@sentry/tracing'; import { AppModule } from './app.module'; -import { settings } from './constants/settings'; +import { settings } from './engine/constants/settings'; import { LoggerService } from './integrations/logger/logger.service'; import { EnvironmentService } from './integrations/environment/environment.service'; diff --git a/packages/twenty-server/src/metadata/field-metadata/composite-types/index.ts b/packages/twenty-server/src/metadata/field-metadata/composite-types/index.ts deleted file mode 100644 index 7667055d4a..0000000000 --- a/packages/twenty-server/src/metadata/field-metadata/composite-types/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { FieldMetadataInterface } from 'src/metadata/field-metadata/interfaces/field-metadata.interface'; - -import { currencyFields } from 'src/metadata/field-metadata/composite-types/currency.composite-type'; -import { fullNameFields } from 'src/metadata/field-metadata/composite-types/full-name.composite-type'; -import { linkFields } from 'src/metadata/field-metadata/composite-types/link.composite-type'; -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; - -export type CompositeFieldsDefinitionFunction = ( - fieldMetadata?: FieldMetadataInterface, -) => FieldMetadataInterface[]; - -export const compositeDefinitions = new Map< - string, - CompositeFieldsDefinitionFunction ->([ - [FieldMetadataType.LINK, linkFields], - [FieldMetadataType.CURRENCY, currencyFields], - [FieldMetadataType.FULL_NAME, fullNameFields], -]); diff --git a/packages/twenty-server/src/metadata/field-metadata/interfaces/field-metadata.interface.ts b/packages/twenty-server/src/metadata/field-metadata/interfaces/field-metadata.interface.ts deleted file mode 100644 index 80413a6a80..0000000000 --- a/packages/twenty-server/src/metadata/field-metadata/interfaces/field-metadata.interface.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { FieldMetadataTargetColumnMap } from 'src/metadata/field-metadata/interfaces/field-metadata-target-column-map.interface'; -import { FieldMetadataDefaultValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface'; -import { FieldMetadataOptions } from 'src/metadata/field-metadata/interfaces/field-metadata-options.interface'; - -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity'; - -export interface FieldMetadataInterface< - T extends FieldMetadataType | 'default' = 'default', -> { - id: string; - type: FieldMetadataType; - name: string; - label: string; - targetColumnMap: FieldMetadataTargetColumnMap; - defaultValue?: FieldMetadataDefaultValue; - options?: FieldMetadataOptions; - objectMetadataId: string; - workspaceId?: string; - description?: string; - isNullable?: boolean; - fromRelationMetadata?: RelationMetadataEntity; - toRelationMetadata?: RelationMetadataEntity; - isCustom?: boolean; -} diff --git a/packages/twenty-server/src/metadata/workspace-migration/factories/factories.ts b/packages/twenty-server/src/metadata/workspace-migration/factories/factories.ts deleted file mode 100644 index 6083cd0ebe..0000000000 --- a/packages/twenty-server/src/metadata/workspace-migration/factories/factories.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { BasicColumnActionFactory } from 'src/metadata/workspace-migration/factories/basic-column-action.factory'; -import { EnumColumnActionFactory } from 'src/metadata/workspace-migration/factories/enum-column-action.factory'; - -export const workspaceColumnActionFactories = [ - BasicColumnActionFactory, - EnumColumnActionFactory, -]; diff --git a/packages/twenty-server/src/queue-worker.ts b/packages/twenty-server/src/queue-worker.ts index b90dc032d5..326ac9ce88 100644 --- a/packages/twenty-server/src/queue-worker.ts +++ b/packages/twenty-server/src/queue-worker.ts @@ -13,7 +13,7 @@ import { QueueWorkerModule } from 'src/queue-worker.module'; import { LoggerService } from './integrations/logger/logger.service'; import { ExceptionHandlerService } from './integrations/exception-handler/exception-handler.service'; -import { filterException } from './filters/utils/global-exception-handler.util'; +import { filterException } from './engine/filters/utils/global-exception-handler.util'; async function bootstrap() { let exceptionHandlerService: ExceptionHandlerService | undefined; diff --git a/packages/twenty-server/src/utils/typed-reflect.ts b/packages/twenty-server/src/utils/typed-reflect.ts index 0d124c8042..6ec7a9666e 100644 --- a/packages/twenty-server/src/utils/typed-reflect.ts +++ b/packages/twenty-server/src/utils/typed-reflect.ts @@ -1,11 +1,11 @@ import 'reflect-metadata'; -import { GateDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface'; -import { ReflectBaseCustomObjectMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-custom-object-metadata.interface'; -import { ReflectDynamicRelationFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface'; -import { ReflectFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-field-metadata.interface'; -import { ReflectObjectMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-object-metadata.interface'; -import { ReflectRelationMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface'; +import { GateDecoratorParams } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/gate-decorator.interface'; +import { ReflectBaseCustomObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-custom-object-metadata.interface'; +import { ReflectDynamicRelationFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-computed-relation-field-metadata.interface'; +import { ReflectFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-field-metadata.interface'; +import { ReflectObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-object-metadata.interface'; +import { ReflectRelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface'; export interface ReflectMetadataTypeMap { objectMetadata: ReflectObjectMetadata; diff --git a/packages/twenty-server/src/utils/utils-test/object-metadata-item.ts b/packages/twenty-server/src/utils/utils-test/object-metadata-item.ts index 700805d222..7bb0881b72 100644 --- a/packages/twenty-server/src/utils/utils-test/object-metadata-item.ts +++ b/packages/twenty-server/src/utils/utils-test/object-metadata-item.ts @@ -1,5 +1,5 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; +import { FieldMetadataType } from 'src/engine-metadata/field-metadata/field-metadata.entity'; +import { ObjectMetadataEntity } from 'src/engine-metadata/object-metadata/object-metadata.entity'; export const fieldNumber = { name: 'fieldNumber', diff --git a/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module.ts b/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module.ts deleted file mode 100644 index b46d372532..0000000000 --- a/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { PersonModule } from 'src/workspace/repositories/person/person.module'; -import { WorkspaceMemberModule } from 'src/workspace/repositories/workspace-member/workspace-member.module'; -import { CreateCompanyAndContactService } from 'src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.service'; -import { CreateCompanyModule } from 'src/workspace/auto-companies-and-contacts-creation/create-company/create-company.module'; -import { CreateContactModule } from 'src/workspace/auto-companies-and-contacts-creation/create-contact/create-contact.module'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; - -@Module({ - imports: [ - WorkspaceDataSourceModule, - CreateContactModule, - CreateCompanyModule, - WorkspaceMemberModule, - PersonModule, - ], - providers: [CreateCompanyAndContactService], - exports: [CreateCompanyAndContactService], -}) -export class CreateCompaniesAndContactsModule {} diff --git a/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company/create-company.module.ts b/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company/create-company.module.ts deleted file mode 100644 index 663f007a3f..0000000000 --- a/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-company/create-company.module.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; -import { CreateCompanyService } from 'src/workspace/auto-companies-and-contacts-creation/create-company/create-company.service'; -import { CompanyModule } from 'src/workspace/messaging/repositories/company/company.module'; - -@Module({ - imports: [WorkspaceDataSourceModule, CompanyModule], - providers: [CreateCompanyService], - exports: [CreateCompanyService], -}) -export class CreateCompanyModule {} diff --git a/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-contact/create-contact.module.ts b/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-contact/create-contact.module.ts deleted file mode 100644 index 20d556744f..0000000000 --- a/packages/twenty-server/src/workspace/auto-companies-and-contacts-creation/create-contact/create-contact.module.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; -import { CreateContactService } from 'src/workspace/auto-companies-and-contacts-creation/create-contact/create-contact.service'; -import { PersonModule } from 'src/workspace/repositories/person/person.module'; - -@Module({ - imports: [WorkspaceDataSourceModule, PersonModule], - providers: [CreateContactService], - exports: [CreateContactService], -}) -export class CreateContactModule {} diff --git a/packages/twenty-server/src/workspace/calendar-and-messaging/repositories/blocklist/blocklist.module.ts b/packages/twenty-server/src/workspace/calendar-and-messaging/repositories/blocklist/blocklist.module.ts deleted file mode 100644 index aa570ea618..0000000000 --- a/packages/twenty-server/src/workspace/calendar-and-messaging/repositories/blocklist/blocklist.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { BlocklistService } from 'src/workspace/calendar-and-messaging/repositories/blocklist/blocklist.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; - -@Module({ - imports: [WorkspaceDataSourceModule], - providers: [BlocklistService], - exports: [BlocklistService], -}) -export class BlocklistModule {} diff --git a/packages/twenty-server/src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.module.ts b/packages/twenty-server/src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.module.ts deleted file mode 100644 index f2b36f0e12..0000000000 --- a/packages/twenty-server/src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { ConnectedAccountService } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; - -@Module({ - imports: [WorkspaceDataSourceModule], - providers: [ConnectedAccountService], - exports: [ConnectedAccountService], -}) -export class ConnectedAccountModule {} diff --git a/packages/twenty-server/src/workspace/calendar/calendar.module.ts b/packages/twenty-server/src/workspace/calendar/calendar.module.ts deleted file mode 100644 index 1a209e9418..0000000000 --- a/packages/twenty-server/src/workspace/calendar/calendar.module.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Module } from '@nestjs/common'; -import { TypeOrmModule } from '@nestjs/typeorm'; - -import { FeatureFlagEntity } from 'src/core/feature-flag/feature-flag.entity'; -import { EnvironmentModule } from 'src/integrations/environment/environment.module'; -import { CreateCompaniesAndContactsModule } from 'src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module'; -import { BlocklistModule } from 'src/workspace/calendar-and-messaging/repositories/blocklist/blocklist.module'; -import { ConnectedAccountModule } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.module'; -import { CalendarChannelEventAssociationModule } from 'src/workspace/calendar/repositories/calendar-channel-event-association/calendar-channel-event-assocation.module'; -import { CalendarChannelModule } from 'src/workspace/calendar/repositories/calendar-channel/calendar-channel.module'; -import { CalendarEventAttendeeModule } from 'src/workspace/calendar/repositories/calendar-event-attendee/calendar-event-attendee.module'; -import { CalendarEventModule } from 'src/workspace/calendar/repositories/calendar-event/calendar-event.module'; -import { CalendarEventCleanerModule } from 'src/workspace/calendar/services/calendar-event-cleaner/calendar-event-cleaner.module'; -import { GoogleCalendarFullSyncService } from 'src/workspace/calendar/services/google-calendar-full-sync.service'; -import { GoogleCalendarClientProvider } from 'src/workspace/calendar/services/providers/google-calendar/google-calendar.provider'; -import { CompanyModule } from 'src/workspace/messaging/repositories/company/company.module'; -import { PersonModule } from 'src/workspace/repositories/person/person.module'; -import { WorkspaceMemberModule } from 'src/workspace/repositories/workspace-member/workspace-member.module'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; - -@Module({ - imports: [ - EnvironmentModule, - WorkspaceDataSourceModule, - ConnectedAccountModule, - CalendarChannelModule, - CalendarChannelEventAssociationModule, - CalendarEventModule, - CalendarEventAttendeeModule, - CreateCompaniesAndContactsModule, - WorkspaceMemberModule, - TypeOrmModule.forFeature([FeatureFlagEntity], 'core'), - CompanyModule, - PersonModule, - BlocklistModule, - CalendarEventCleanerModule, - ], - providers: [GoogleCalendarFullSyncService, GoogleCalendarClientProvider], - exports: [GoogleCalendarFullSyncService], -}) -export class CalendarModule {} diff --git a/packages/twenty-server/src/workspace/calendar/commands/workspace-calendar-sync-commands.module.ts b/packages/twenty-server/src/workspace/calendar/commands/workspace-calendar-sync-commands.module.ts deleted file mode 100644 index 4443be7dd7..0000000000 --- a/packages/twenty-server/src/workspace/calendar/commands/workspace-calendar-sync-commands.module.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Module } from '@nestjs/common'; -import { TypeOrmModule } from '@nestjs/typeorm'; - -import { FeatureFlagEntity } from 'src/core/feature-flag/feature-flag.entity'; -import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; -import { ConnectedAccountModule } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.module'; -import { GoogleCalendarFullSyncCommand } from 'src/workspace/calendar/commands/google-calendar-full-sync.command'; - -@Module({ - imports: [ - DataSourceModule, - TypeORMModule, - TypeOrmModule.forFeature([FeatureFlagEntity], 'core'), - ConnectedAccountModule, - ], - providers: [GoogleCalendarFullSyncCommand], -}) -export class WorkspaceCalendarSyncCommandsModule {} diff --git a/packages/twenty-server/src/workspace/calendar/repositories/calendar-channel-event-association/calendar-channel-event-assocation.module.ts b/packages/twenty-server/src/workspace/calendar/repositories/calendar-channel-event-association/calendar-channel-event-assocation.module.ts deleted file mode 100644 index 88b254027e..0000000000 --- a/packages/twenty-server/src/workspace/calendar/repositories/calendar-channel-event-association/calendar-channel-event-assocation.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { CalendarChannelEventAssociationService } from 'src/workspace/calendar/repositories/calendar-channel-event-association/calendar-channel-event-association.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; - -@Module({ - imports: [WorkspaceDataSourceModule], - providers: [CalendarChannelEventAssociationService], - exports: [CalendarChannelEventAssociationService], -}) -export class CalendarChannelEventAssociationModule {} diff --git a/packages/twenty-server/src/workspace/calendar/repositories/calendar-channel/calendar-channel.module.ts b/packages/twenty-server/src/workspace/calendar/repositories/calendar-channel/calendar-channel.module.ts deleted file mode 100644 index bfa02c4651..0000000000 --- a/packages/twenty-server/src/workspace/calendar/repositories/calendar-channel/calendar-channel.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { CalendarChannelService } from 'src/workspace/calendar/repositories/calendar-channel/calendar-channel.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; - -@Module({ - imports: [WorkspaceDataSourceModule], - providers: [CalendarChannelService], - exports: [CalendarChannelService], -}) -export class CalendarChannelModule {} diff --git a/packages/twenty-server/src/workspace/calendar/repositories/calendar-event-attendee/calendar-event-attendee.module.ts b/packages/twenty-server/src/workspace/calendar/repositories/calendar-event-attendee/calendar-event-attendee.module.ts deleted file mode 100644 index 87a522968d..0000000000 --- a/packages/twenty-server/src/workspace/calendar/repositories/calendar-event-attendee/calendar-event-attendee.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { CalendarEventAttendeeService } from 'src/workspace/calendar/repositories/calendar-event-attendee/calendar-event-attendee.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; - -@Module({ - imports: [WorkspaceDataSourceModule], - providers: [CalendarEventAttendeeService], - exports: [CalendarEventAttendeeService], -}) -export class CalendarEventAttendeeModule {} diff --git a/packages/twenty-server/src/workspace/calendar/repositories/calendar-event/calendar-event.module.ts b/packages/twenty-server/src/workspace/calendar/repositories/calendar-event/calendar-event.module.ts deleted file mode 100644 index 8e2efc3b34..0000000000 --- a/packages/twenty-server/src/workspace/calendar/repositories/calendar-event/calendar-event.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { CalendarEventService } from 'src/workspace/calendar/repositories/calendar-event/calendar-event.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; - -@Module({ - imports: [WorkspaceDataSourceModule], - providers: [CalendarEventService], - exports: [CalendarEventService], -}) -export class CalendarEventModule {} diff --git a/packages/twenty-server/src/workspace/calendar/services/calendar-event-cleaner/calendar-event-cleaner.module.ts b/packages/twenty-server/src/workspace/calendar/services/calendar-event-cleaner/calendar-event-cleaner.module.ts deleted file mode 100644 index 01a9b56bdc..0000000000 --- a/packages/twenty-server/src/workspace/calendar/services/calendar-event-cleaner/calendar-event-cleaner.module.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; -import { CalendarEventModule } from 'src/workspace/calendar/repositories/calendar-event/calendar-event.module'; -import { CalendarEventCleanerService } from 'src/workspace/calendar/services/calendar-event-cleaner/calendar-event-cleaner.service'; - -@Module({ - imports: [DataSourceModule, TypeORMModule, CalendarEventModule], - providers: [CalendarEventCleanerService], - exports: [CalendarEventCleanerService], -}) -export class CalendarEventCleanerModule {} diff --git a/packages/twenty-server/src/workspace/messaging/commands/fetch-workspace-messages-commands.module.ts b/packages/twenty-server/src/workspace/messaging/commands/fetch-workspace-messages-commands.module.ts deleted file mode 100644 index d7ff7212d1..0000000000 --- a/packages/twenty-server/src/workspace/messaging/commands/fetch-workspace-messages-commands.module.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Module } from '@nestjs/common'; -import { TypeOrmModule } from '@nestjs/typeorm'; - -import { FeatureFlagEntity } from 'src/core/feature-flag/feature-flag.entity'; -import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; -import { GmailFullSyncCommand } from 'src/workspace/messaging/commands/gmail-full-sync.command'; -import { GmailPartialSyncCommand } from 'src/workspace/messaging/commands/gmail-partial-sync.command'; -import { ConnectedAccountModule } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.module'; -import { StartFetchAllWorkspacesMessagesCronCommand } from 'src/workspace/messaging/commands/start-fetch-all-workspaces-messages.cron.command'; -import { StopFetchAllWorkspacesMessagesCronCommand } from 'src/workspace/messaging/commands/stop-fetch-all-workspaces-messages.cron.command'; - -@Module({ - imports: [ - DataSourceModule, - TypeORMModule, - TypeOrmModule.forFeature([FeatureFlagEntity], 'core'), - ConnectedAccountModule, - ], - providers: [ - GmailFullSyncCommand, - GmailPartialSyncCommand, - StartFetchAllWorkspacesMessagesCronCommand, - StopFetchAllWorkspacesMessagesCronCommand, - ], -}) -export class FetchWorkspaceMessagesCommandsModule {} diff --git a/packages/twenty-server/src/workspace/messaging/messaging.module.ts b/packages/twenty-server/src/workspace/messaging/messaging.module.ts deleted file mode 100644 index a15f7fe12a..0000000000 --- a/packages/twenty-server/src/workspace/messaging/messaging.module.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { Module } from '@nestjs/common'; -import { TypeOrmModule } from '@nestjs/typeorm'; -import { HttpModule } from '@nestjs/axios'; - -import { ConnectedAccountModule } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.module'; -import { MessageChannelMessageAssociationModule } from 'src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-assocation.module'; -import { MessageChannelModule } from 'src/workspace/messaging/repositories/message-channel/message-channel.module'; -import { MessageThreadModule } from 'src/workspace/messaging/repositories/message-thread/message-thread.module'; -import { EnvironmentModule } from 'src/integrations/environment/environment.module'; -import { MessagingPersonListener } from 'src/workspace/messaging/listeners/messaging-person.listener'; -import { MessageModule } from 'src/workspace/messaging/repositories/message/message.module'; -import { GmailClientProvider } from 'src/workspace/messaging/services/providers/gmail/gmail-client.provider'; -import { CreateContactService } from 'src/workspace/auto-companies-and-contacts-creation/create-contact/create-contact.service'; -import { CreateCompanyService } from 'src/workspace/auto-companies-and-contacts-creation/create-company/create-company.service'; -import { FetchMessagesByBatchesService } from 'src/workspace/messaging/services/fetch-messages-by-batches.service'; -import { GmailFullSyncService } from 'src/workspace/messaging/services/gmail-full-sync.service'; -import { GmailPartialSyncService } from 'src/workspace/messaging/services/gmail-partial-sync.service'; -import { GoogleAPIsRefreshAccessTokenService } from 'src/workspace/calendar-and-messaging/services/google-apis-refresh-access-token.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; -import { MessageParticipantModule } from 'src/workspace/messaging/repositories/message-participant/message-participant.module'; -import { MessagingWorkspaceMemberListener } from 'src/workspace/messaging/listeners/messaging-workspace-member.listener'; -import { MessagingMessageChannelListener } from 'src/workspace/messaging/listeners/messaging-message-channel.listener'; -import { MessageService } from 'src/workspace/messaging/repositories/message/message.service'; -import { WorkspaceMemberModule } from 'src/workspace/repositories/workspace-member/workspace-member.module'; -import { FeatureFlagEntity } from 'src/core/feature-flag/feature-flag.entity'; -import { CreateCompaniesAndContactsModule } from 'src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module'; -import { CompanyModule } from 'src/workspace/messaging/repositories/company/company.module'; -import { PersonModule } from 'src/workspace/repositories/person/person.module'; -import { SaveMessagesAndCreateContactsService } from 'src/workspace/messaging/services/save-messages-and-create-contacts.service'; -import { MessagingConnectedAccountListener } from 'src/workspace/messaging/listeners/messaging-connected-account.listener'; -import { BlocklistModule } from 'src/workspace/calendar-and-messaging/repositories/blocklist/blocklist.module'; -import { FetchByBatchesService } from 'src/workspace/messaging/services/fetch-by-batch.service'; -@Module({ - imports: [ - EnvironmentModule, - WorkspaceDataSourceModule, - ConnectedAccountModule, - MessageChannelModule, - MessageChannelMessageAssociationModule, - MessageModule, - MessageThreadModule, - MessageParticipantModule, - CreateCompaniesAndContactsModule, - WorkspaceMemberModule, - TypeOrmModule.forFeature([FeatureFlagEntity], 'core'), - CompanyModule, - PersonModule, - BlocklistModule, - HttpModule.register({ - baseURL: 'https://www.googleapis.com/batch/gmail/v1', - }), - ], - providers: [ - GmailFullSyncService, - GmailPartialSyncService, - FetchMessagesByBatchesService, - GoogleAPIsRefreshAccessTokenService, - GmailClientProvider, - CreateContactService, - CreateCompanyService, - MessagingPersonListener, - MessagingWorkspaceMemberListener, - MessagingMessageChannelListener, - MessageService, - SaveMessagesAndCreateContactsService, - MessagingConnectedAccountListener, - FetchByBatchesService, - ], - exports: [ - GmailPartialSyncService, - GmailFullSyncService, - GoogleAPIsRefreshAccessTokenService, - FetchByBatchesService, - ], -}) -export class MessagingModule {} diff --git a/packages/twenty-server/src/workspace/messaging/query-hooks/messaging-query-hook.module.ts b/packages/twenty-server/src/workspace/messaging/query-hooks/messaging-query-hook.module.ts deleted file mode 100644 index 8c1cff07ec..0000000000 --- a/packages/twenty-server/src/workspace/messaging/query-hooks/messaging-query-hook.module.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { MessageFindManyPreQueryHook } from 'src/workspace/messaging/query-hooks/message/message-find-many.pre-query.hook'; -import { MessageFindOnePreQueryHook } from 'src/workspace/messaging/query-hooks/message/message-find-one.pre-query-hook'; -import { ConnectedAccountModule } from 'src/workspace/calendar-and-messaging/repositories/connected-account/connected-account.module'; -import { MessageChannelMessageAssociationModule } from 'src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-assocation.module'; -import { MessageChannelModule } from 'src/workspace/messaging/repositories/message-channel/message-channel.module'; -import { WorkspaceMemberModule } from 'src/workspace/repositories/workspace-member/workspace-member.module'; - -@Module({ - imports: [ - MessageChannelMessageAssociationModule, - MessageChannelModule, - ConnectedAccountModule, - WorkspaceMemberModule, - ], - providers: [ - { - provide: MessageFindOnePreQueryHook.name, - useClass: MessageFindOnePreQueryHook, - }, - { - provide: MessageFindManyPreQueryHook.name, - useClass: MessageFindManyPreQueryHook, - }, - ], -}) -export class MessagingQueryHookModule {} diff --git a/packages/twenty-server/src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-assocation.module.ts b/packages/twenty-server/src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-assocation.module.ts deleted file mode 100644 index 4a4f6c6b7e..0000000000 --- a/packages/twenty-server/src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-assocation.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { MessageChannelMessageAssociationService } from 'src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-association.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; - -@Module({ - imports: [WorkspaceDataSourceModule], - providers: [MessageChannelMessageAssociationService], - exports: [MessageChannelMessageAssociationService], -}) -export class MessageChannelMessageAssociationModule {} diff --git a/packages/twenty-server/src/workspace/messaging/repositories/message-channel/message-channel.module.ts b/packages/twenty-server/src/workspace/messaging/repositories/message-channel/message-channel.module.ts deleted file mode 100644 index f7f017c894..0000000000 --- a/packages/twenty-server/src/workspace/messaging/repositories/message-channel/message-channel.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { MessageChannelService } from 'src/workspace/messaging/repositories/message-channel/message-channel.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; - -@Module({ - imports: [WorkspaceDataSourceModule], - providers: [MessageChannelService], - exports: [MessageChannelService], -}) -export class MessageChannelModule {} diff --git a/packages/twenty-server/src/workspace/messaging/repositories/message-participant/message-participant.module.ts b/packages/twenty-server/src/workspace/messaging/repositories/message-participant/message-participant.module.ts deleted file mode 100644 index dc76061c1d..0000000000 --- a/packages/twenty-server/src/workspace/messaging/repositories/message-participant/message-participant.module.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { MessageParticipantService } from 'src/workspace/messaging/repositories/message-participant/message-participant.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; -import { PersonModule } from 'src/workspace/repositories/person/person.module'; - -@Module({ - imports: [WorkspaceDataSourceModule, PersonModule], - providers: [MessageParticipantService], - exports: [MessageParticipantService], -}) -export class MessageParticipantModule {} diff --git a/packages/twenty-server/src/workspace/messaging/repositories/message-thread/message-thread.module.ts b/packages/twenty-server/src/workspace/messaging/repositories/message-thread/message-thread.module.ts deleted file mode 100644 index 547ba1caaf..0000000000 --- a/packages/twenty-server/src/workspace/messaging/repositories/message-thread/message-thread.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Module, forwardRef } from '@nestjs/common'; - -import { MessageChannelMessageAssociationModule } from 'src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-assocation.module'; -import { MessageThreadService } from 'src/workspace/messaging/repositories/message-thread/message-thread.service'; -import { MessageModule } from 'src/workspace/messaging/repositories/message/message.module'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; - -@Module({ - imports: [ - WorkspaceDataSourceModule, - MessageChannelMessageAssociationModule, - forwardRef(() => MessageModule), - ], - providers: [MessageThreadService], - exports: [MessageThreadService], -}) -export class MessageThreadModule {} diff --git a/packages/twenty-server/src/workspace/messaging/repositories/message/message.module.ts b/packages/twenty-server/src/workspace/messaging/repositories/message/message.module.ts deleted file mode 100644 index 707e89cfeb..0000000000 --- a/packages/twenty-server/src/workspace/messaging/repositories/message/message.module.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Module, forwardRef } from '@nestjs/common'; - -import { MessageChannelModule } from 'src/workspace/messaging/repositories/message-channel/message-channel.module'; -import { MessageChannelMessageAssociationModule } from 'src/workspace/messaging/repositories/message-channel-message-association/message-channel-message-assocation.module'; -import { MessageParticipantModule } from 'src/workspace/messaging/repositories/message-participant/message-participant.module'; -import { MessageThreadModule } from 'src/workspace/messaging/repositories/message-thread/message-thread.module'; -import { MessageService } from 'src/workspace/messaging/repositories/message/message.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; -import { CreateCompaniesAndContactsModule } from 'src/workspace/auto-companies-and-contacts-creation/create-company-and-contact/create-company-and-contact.module'; - -@Module({ - imports: [ - WorkspaceDataSourceModule, - forwardRef(() => MessageThreadModule), - MessageParticipantModule, - MessageChannelMessageAssociationModule, - MessageChannelModule, - CreateCompaniesAndContactsModule, - ], - providers: [MessageService], - exports: [MessageService], -}) -export class MessageModule {} diff --git a/packages/twenty-server/src/workspace/messaging/services/thread-cleaner/thread-cleaner.module.ts b/packages/twenty-server/src/workspace/messaging/services/thread-cleaner/thread-cleaner.module.ts deleted file mode 100644 index 92b71c6e87..0000000000 --- a/packages/twenty-server/src/workspace/messaging/services/thread-cleaner/thread-cleaner.module.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; -import { MessageThreadModule } from 'src/workspace/messaging/repositories/message-thread/message-thread.module'; -import { MessageModule } from 'src/workspace/messaging/repositories/message/message.module'; -import { ThreadCleanerService } from 'src/workspace/messaging/services/thread-cleaner/thread-cleaner.service'; - -@Module({ - imports: [ - DataSourceModule, - TypeORMModule, - MessageThreadModule, - MessageModule, - ], - providers: [ThreadCleanerService], - exports: [ThreadCleanerService], -}) -export class ThreadCleanerModule {} diff --git a/packages/twenty-server/src/workspace/repositories/person/person.module.ts b/packages/twenty-server/src/workspace/repositories/person/person.module.ts deleted file mode 100644 index 983d0f8075..0000000000 --- a/packages/twenty-server/src/workspace/repositories/person/person.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { PersonService } from 'src/workspace/repositories/person/person.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; - -@Module({ - imports: [WorkspaceDataSourceModule], - providers: [PersonService], - exports: [PersonService], -}) -export class PersonModule {} diff --git a/packages/twenty-server/src/workspace/repositories/workspace-member/workspace-member.module.ts b/packages/twenty-server/src/workspace/repositories/workspace-member/workspace-member.module.ts deleted file mode 100644 index 1fbf387b73..0000000000 --- a/packages/twenty-server/src/workspace/repositories/workspace-member/workspace-member.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { WorkspaceMemberService } from 'src/workspace/repositories/workspace-member/workspace-member.service'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; - -@Module({ - imports: [WorkspaceDataSourceModule], - providers: [WorkspaceMemberService], - exports: [WorkspaceMemberService], -}) -export class WorkspaceMemberModule {} diff --git a/packages/twenty-server/src/workspace/workspace-cleaner/workspace-cleaner.module.ts b/packages/twenty-server/src/workspace/workspace-cleaner/workspace-cleaner.module.ts deleted file mode 100644 index aca24e66a4..0000000000 --- a/packages/twenty-server/src/workspace/workspace-cleaner/workspace-cleaner.module.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Module } from '@nestjs/common'; -import { TypeOrmModule } from '@nestjs/typeorm'; - -import { WorkspaceModule } from 'src/core/workspace/workspace.module'; -import { DeleteIncompleteWorkspacesCommand } from 'src/workspace/workspace-cleaner/commands/delete-incomplete-workspaces.command'; -import { Workspace } from 'src/core/workspace/workspace.entity'; -import { CleanInactiveWorkspacesCommand } from 'src/workspace/workspace-cleaner/commands/clean-inactive-workspaces.command'; -import { StartCleanInactiveWorkspacesCronCommand } from 'src/workspace/workspace-cleaner/commands/start-clean-inactive-workspaces.cron.command'; -import { StopCleanInactiveWorkspacesCronCommand } from 'src/workspace/workspace-cleaner/commands/stop-clean-inactive-workspaces.cron.command'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; - -@Module({ - imports: [ - TypeOrmModule.forFeature([Workspace], 'core'), - WorkspaceModule, - DataSourceModule, - ], - providers: [ - DeleteIncompleteWorkspacesCommand, - CleanInactiveWorkspacesCommand, - StartCleanInactiveWorkspacesCronCommand, - StopCleanInactiveWorkspacesCronCommand, - ], -}) -export class WorkspaceCleanerModule {} diff --git a/packages/twenty-server/src/workspace/workspace-health/commands/workspace-health-command.module.ts b/packages/twenty-server/src/workspace/workspace-health/commands/workspace-health-command.module.ts deleted file mode 100644 index 62b93c2a4f..0000000000 --- a/packages/twenty-server/src/workspace/workspace-health/commands/workspace-health-command.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { WorkspaceHealthCommand } from 'src/workspace/workspace-health/commands/workspace-health.command'; -import { WorkspaceHealthModule } from 'src/workspace/workspace-health/workspace-health.module'; - -@Module({ - imports: [WorkspaceHealthModule], - providers: [WorkspaceHealthCommand], -}) -export class WorkspaceHealthCommandModule {} diff --git a/packages/twenty-server/src/workspace/workspace-health/workspace-health.module.ts b/packages/twenty-server/src/workspace/workspace-health/workspace-health.module.ts deleted file mode 100644 index 296f92b2f1..0000000000 --- a/packages/twenty-server/src/workspace/workspace-health/workspace-health.module.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { TypeORMModule } from 'src/database/typeorm/typeorm.module'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; -import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; -import { DatabaseStructureService } from 'src/workspace/workspace-health/services/database-structure.service'; -import { FieldMetadataHealthService } from 'src/workspace/workspace-health/services/field-metadata-health.service'; -import { ObjectMetadataHealthService } from 'src/workspace/workspace-health/services/object-metadata-health.service'; -import { RelationMetadataHealthService } from 'src/workspace/workspace-health/services/relation-metadata.health.service'; -import { WorkspaceHealthService } from 'src/workspace/workspace-health/workspace-health.service'; -import { WorkspaceMigrationBuilderModule } from 'src/workspace/workspace-migration-builder/workspace-migration-builder.module'; -import { WorkspaceMigrationRunnerModule } from 'src/workspace/workspace-migration-runner/workspace-migration-runner.module'; - -import { workspaceFixers } from './fixer'; - -import { WorkspaceFixService } from './services/workspace-fix.service'; - -@Module({ - imports: [ - DataSourceModule, - TypeORMModule, - ObjectMetadataModule, - WorkspaceDataSourceModule, - WorkspaceMigrationRunnerModule, - WorkspaceMigrationBuilderModule, - ], - providers: [ - ...workspaceFixers, - WorkspaceHealthService, - DatabaseStructureService, - ObjectMetadataHealthService, - FieldMetadataHealthService, - RelationMetadataHealthService, - WorkspaceFixService, - ], - exports: [WorkspaceHealthService], -}) -export class WorkspaceHealthModule {} diff --git a/packages/twenty-server/src/workspace/workspace-manager/workspace-manager.module.ts b/packages/twenty-server/src/workspace/workspace-manager/workspace-manager.module.ts deleted file mode 100644 index 4c404070ba..0000000000 --- a/packages/twenty-server/src/workspace/workspace-manager/workspace-manager.module.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; -import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module'; -import { WorkspaceMigrationModule } from 'src/metadata/workspace-migration/workspace-migration.module'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; -import { WorkspaceSyncMetadataModule } from 'src/workspace/workspace-sync-metadata/workspace-sync-metadata.module'; -import { WorkspaceHealthModule } from 'src/workspace/workspace-health/workspace-health.module'; - -import { WorkspaceManagerService } from './workspace-manager.service'; - -@Module({ - imports: [ - WorkspaceDataSourceModule, - WorkspaceMigrationModule, - ObjectMetadataModule, - DataSourceModule, - WorkspaceSyncMetadataModule, - WorkspaceHealthModule, - ], - exports: [WorkspaceManagerService], - providers: [WorkspaceManagerService], -}) -export class WorkspaceManagerModule {} diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/services/record-position-backfill-module.ts b/packages/twenty-server/src/workspace/workspace-query-runner/services/record-position-backfill-module.ts deleted file mode 100644 index de7a9bf69a..0000000000 --- a/packages/twenty-server/src/workspace/workspace-query-runner/services/record-position-backfill-module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; -import { RecordPositionQueryFactory } from 'src/workspace/workspace-query-builder/factories/record-position-query.factory'; -import { RecordPositionFactory } from 'src/workspace/workspace-query-runner/factories/record-position.factory'; -import { RecordPositionBackfillService } from 'src/workspace/workspace-query-runner/services/record-position-backfill-service'; - -@Module({ - imports: [WorkspaceDataSourceModule], - providers: [ - RecordPositionFactory, - RecordPositionQueryFactory, - RecordPositionBackfillService, - ], - exports: [RecordPositionBackfillService], -}) -export class RecordPositionBackfillModule {} diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.config.ts b/packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.config.ts deleted file mode 100644 index f9e887341c..0000000000 --- a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.config.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { MessageFindManyPreQueryHook } from 'src/workspace/messaging/query-hooks/message/message-find-many.pre-query.hook'; -import { MessageFindOnePreQueryHook } from 'src/workspace/messaging/query-hooks/message/message-find-one.pre-query-hook'; -import { WorkspaceQueryHook } from 'src/workspace/workspace-query-runner/workspace-pre-query-hook/types/workspace-query-hook.type'; - -// TODO: move to a decorator -export const workspacePreQueryHooks: WorkspaceQueryHook = { - message: { - findOne: [MessageFindOnePreQueryHook.name], - findMany: [MessageFindManyPreQueryHook.name], - }, -}; diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.module.ts b/packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.module.ts deleted file mode 100644 index 31d7d97764..0000000000 --- a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { MessagingQueryHookModule } from 'src/workspace/messaging/query-hooks/messaging-query-hook.module'; -import { WorkspacePreQueryHookService } from 'src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.service'; - -@Module({ - imports: [MessagingQueryHookModule], - providers: [WorkspacePreQueryHookService], - exports: [WorkspacePreQueryHookService], -}) -export class WorkspacePreQueryHookModule {} diff --git a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-query-runner.module.ts b/packages/twenty-server/src/workspace/workspace-query-runner/workspace-query-runner.module.ts deleted file mode 100644 index d549b90d2c..0000000000 --- a/packages/twenty-server/src/workspace/workspace-query-runner/workspace-query-runner.module.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { WorkspaceQueryBuilderModule } from 'src/workspace/workspace-query-builder/workspace-query-builder.module'; -import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module'; -import { WorkspacePreQueryHookModule } from 'src/workspace/workspace-query-runner/workspace-pre-query-hook/workspace-pre-query-hook.module'; -import { workspaceQueryRunnerFactories } from 'src/workspace/workspace-query-runner/factories'; -import { RecordPositionListener } from 'src/workspace/workspace-query-runner/listeners/record-position.listener'; - -import { WorkspaceQueryRunnerService } from './workspace-query-runner.service'; - -@Module({ - imports: [ - WorkspaceQueryBuilderModule, - WorkspaceDataSourceModule, - WorkspacePreQueryHookModule, - ], - providers: [ - WorkspaceQueryRunnerService, - ...workspaceQueryRunnerFactories, - RecordPositionListener, - ], - exports: [WorkspaceQueryRunnerService], -}) -export class WorkspaceQueryRunnerModule {} diff --git a/packages/twenty-server/src/workspace/workspace-schema-builder/utils/object-contains-relation-field.ts b/packages/twenty-server/src/workspace/workspace-schema-builder/utils/object-contains-relation-field.ts deleted file mode 100644 index 0ece0b83bb..0000000000 --- a/packages/twenty-server/src/workspace/workspace-schema-builder/utils/object-contains-relation-field.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { ObjectMetadataInterface } from 'src/metadata/field-metadata/interfaces/object-metadata.interface'; - -import { isRelationFieldMetadataType } from 'src/workspace/utils/is-relation-field-metadata-type.util'; - -export const objectContainsRelationField = ( - objectMetadata: ObjectMetadataInterface, -): boolean => { - return objectMetadata.fields.some((field) => - isRelationFieldMetadataType(field.type), - ); -}; diff --git a/packages/twenty-server/src/workspace/workspace-schema-storage/workspace-schema-storage.module.ts b/packages/twenty-server/src/workspace/workspace-schema-storage/workspace-schema-storage.module.ts deleted file mode 100644 index 0e13ed973d..0000000000 --- a/packages/twenty-server/src/workspace/workspace-schema-storage/workspace-schema-storage.module.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module'; -import { WorkspaceCacheVersionModule } from 'src/metadata/workspace-cache-version/workspace-cache-version.module'; -import { WorkspaceSchemaStorageService } from 'src/workspace/workspace-schema-storage/workspace-schema-storage.service'; - -@Module({ - imports: [ObjectMetadataModule, WorkspaceCacheVersionModule], - providers: [WorkspaceSchemaStorageService], - exports: [WorkspaceSchemaStorageService], -}) -export class WorkspaceSchemaStorageModule {} diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/commands/workspace-sync-metadata-commands.module.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/commands/workspace-sync-metadata-commands.module.ts deleted file mode 100644 index 36371970d0..0000000000 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/commands/workspace-sync-metadata-commands.module.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; -import { WorkspaceSyncMetadataModule } from 'src/workspace/workspace-sync-metadata/workspace-sync-metadata.module'; -import { WorkspaceHealthModule } from 'src/workspace/workspace-health/workspace-health.module'; -import { WorkspaceModule } from 'src/core/workspace/workspace.module'; -import { AddStandardIdCommand } from 'src/workspace/workspace-sync-metadata/commands/add-standard-id.command'; - -import { SyncWorkspaceMetadataCommand } from './sync-workspace-metadata.command'; - -import { SyncWorkspaceLoggerService } from './services/sync-workspace-logger.service'; - -@Module({ - imports: [ - WorkspaceSyncMetadataModule, - WorkspaceHealthModule, - WorkspaceModule, - DataSourceModule, - ], - providers: [ - SyncWorkspaceMetadataCommand, - AddStandardIdCommand, - SyncWorkspaceLoggerService, - ], -}) -export class WorkspaceSyncMetadataCommandsModule {} diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/mapped-metadata.interface.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/mapped-metadata.interface.ts deleted file mode 100644 index 70c9c41751..0000000000 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/interfaces/mapped-metadata.interface.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { PartialFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-field-metadata.interface'; -import { PartialObjectMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/partial-object-metadata.interface'; - -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; - -export type MappedFieldMetadata = Record; - -export interface MappedObjectMetadata - extends Omit { - fields: MappedFieldMetadata; -} - -export type MappedFieldMetadataEntity = Record; - -export interface MappedObjectMetadataEntity - extends Omit { - fields: MappedFieldMetadataEntity; -} diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/blocklist.object-metadata.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/blocklist.object-metadata.ts deleted file mode 100644 index 8af41f4907..0000000000 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/blocklist.object-metadata.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { blocklistStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; - -@ObjectMetadata({ - standardId: standardObjectIds.blocklist, - namePlural: 'blocklists', - labelSingular: 'Blocklist', - labelPlural: 'Blocklists', - description: 'Blocklist', - icon: 'IconForbid2', -}) -@IsSystem() -export class BlocklistObjectMetadata extends BaseObjectMetadata { - @FieldMetadata({ - standardId: blocklistStandardFieldIds.handle, - type: FieldMetadataType.TEXT, - label: 'Handle', - description: 'Handle', - icon: 'IconAt', - }) - handle: string; - - @FieldMetadata({ - standardId: blocklistStandardFieldIds.workspaceMember, - type: FieldMetadataType.RELATION, - label: 'WorkspaceMember', - description: 'WorkspaceMember', - icon: 'IconCircleUser', - joinColumn: 'workspaceMemberId', - }) - workspaceMember: WorkspaceMemberObjectMetadata; -} diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/comment.object-metadata.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/comment.object-metadata.ts deleted file mode 100644 index dc00764170..0000000000 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/comment.object-metadata.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { commentStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { ActivityObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/activity.object-metadata'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; - -@ObjectMetadata({ - standardId: standardObjectIds.comment, - namePlural: 'comments', - labelSingular: 'Comment', - labelPlural: 'Comments', - description: 'A comment', - icon: 'IconMessageCircle', -}) -@IsSystem() -export class CommentObjectMetadata extends BaseObjectMetadata { - @FieldMetadata({ - standardId: commentStandardFieldIds.body, - type: FieldMetadataType.TEXT, - label: 'Body', - description: 'Comment body', - icon: 'IconLink', - }) - body: string; - - @FieldMetadata({ - standardId: commentStandardFieldIds.author, - type: FieldMetadataType.RELATION, - label: 'Author', - description: 'Comment author', - icon: 'IconCircleUser', - joinColumn: 'authorId', - }) - author: WorkspaceMemberObjectMetadata; - - @FieldMetadata({ - standardId: commentStandardFieldIds.activity, - type: FieldMetadataType.RELATION, - label: 'Activity', - description: 'Comment activity', - icon: 'IconNotes', - joinColumn: 'activityId', - }) - activity: ActivityObjectMetadata; -} diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/index.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/index.ts deleted file mode 100644 index 988b1a22af..0000000000 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/index.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { ActivityTargetObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/activity-target.object-metadata'; -import { ActivityObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/activity.object-metadata'; -import { ApiKeyObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/api-key.object-metadata'; -import { AttachmentObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/attachment.object-metadata'; -import { BlocklistObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/blocklist.object-metadata'; -import { CalendarEventObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-event.object-metadata'; -import { CalendarChannelObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-channel.object-metadata'; -import { CalendarEventAttendeeObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-event-attendee.object-metadata'; -import { CommentObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/comment.object-metadata'; -import { CompanyObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/company.object-metadata'; -import { ConnectedAccountObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata'; -import { FavoriteObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/favorite.object-metadata'; -import { MessageChannelMessageAssociationObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-channel-message-association.object-metadata'; -import { MessageChannelObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-channel.object-metadata'; -import { MessageParticipantObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-participant.object-metadata'; -import { MessageThreadObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message-thread.object-metadata'; -import { MessageObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/message.object-metadata'; -import { OpportunityObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/opportunity.object-metadata'; -import { PersonObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata'; -import { PipelineStepObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/pipeline-step.object-metadata'; -import { ViewFieldObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/view-field.object-metadata'; -import { ViewFilterObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/view-filter.object-metadata'; -import { ViewSortObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/view-sort.object-metadata'; -import { ViewObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/view.object-metadata'; -import { WebhookObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/webhook.object-metadata'; -import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata'; -import { CalendarChannelEventAssociationObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/calendar-channel-event-association.object-metadata'; - -export const standardObjectMetadataDefinitions = [ - ActivityTargetObjectMetadata, - ActivityObjectMetadata, - ApiKeyObjectMetadata, - AttachmentObjectMetadata, - BlocklistObjectMetadata, - CommentObjectMetadata, - CompanyObjectMetadata, - ConnectedAccountObjectMetadata, - FavoriteObjectMetadata, - OpportunityObjectMetadata, - PersonObjectMetadata, - PipelineStepObjectMetadata, - ViewFieldObjectMetadata, - ViewFilterObjectMetadata, - ViewSortObjectMetadata, - ViewObjectMetadata, - WebhookObjectMetadata, - WorkspaceMemberObjectMetadata, - MessageThreadObjectMetadata, - MessageObjectMetadata, - MessageChannelObjectMetadata, - MessageParticipantObjectMetadata, - MessageChannelMessageAssociationObjectMetadata, - CalendarEventObjectMetadata, - CalendarChannelObjectMetadata, - CalendarChannelEventAssociationObjectMetadata, - CalendarEventAttendeeObjectMetadata, -]; diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/webhook.object-metadata.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/webhook.object-metadata.ts deleted file mode 100644 index 28cc8b573a..0000000000 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/webhook.object-metadata.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; -import { webhookStandardFieldIds } from 'src/workspace/workspace-sync-metadata/constants/standard-field-ids'; -import { standardObjectIds } from 'src/workspace/workspace-sync-metadata/constants/standard-object-ids'; -import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; -import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; -import { BaseObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/base.object-metadata'; - -@ObjectMetadata({ - standardId: standardObjectIds.webhook, - namePlural: 'webhooks', - labelSingular: 'Webhook', - labelPlural: 'Webhooks', - description: 'A webhook', - icon: 'IconRobot', -}) -@IsSystem() -export class WebhookObjectMetadata extends BaseObjectMetadata { - @FieldMetadata({ - standardId: webhookStandardFieldIds.targetUrl, - type: FieldMetadataType.TEXT, - label: 'Target Url', - description: 'Webhook target url', - icon: 'IconLink', - }) - targetUrl: string; - - @FieldMetadata({ - standardId: webhookStandardFieldIds.operation, - type: FieldMetadataType.TEXT, - label: 'Operation', - description: 'Webhook operation', - icon: 'IconCheckbox', - }) - operation: string; -} diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/workspace-sync-metadata.module.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/workspace-sync-metadata.module.ts deleted file mode 100644 index c460553264..0000000000 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/workspace-sync-metadata.module.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { Module } from '@nestjs/common'; -import { TypeOrmModule } from '@nestjs/typeorm'; - -import { FeatureFlagEntity } from 'src/core/feature-flag/feature-flag.entity'; -import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity'; -import { ObjectMetadataEntity } from 'src/metadata/object-metadata/object-metadata.entity'; -import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity'; -import { WorkspaceMigrationEntity } from 'src/metadata/workspace-migration/workspace-migration.entity'; -import { WorkspaceMigrationRunnerModule } from 'src/workspace/workspace-migration-runner/workspace-migration-runner.module'; -import { WorkspaceSyncMetadataService } from 'src/workspace/workspace-sync-metadata/workspace-sync-metadata.service'; -import { workspaceSyncMetadataFactories } from 'src/workspace/workspace-sync-metadata/factories'; -import { workspaceSyncMetadataComparators } from 'src/workspace/workspace-sync-metadata/comparators'; -import { WorkspaceMetadataUpdaterService } from 'src/workspace/workspace-sync-metadata/services/workspace-metadata-updater.service'; -import { WorkspaceSyncObjectMetadataService } from 'src/workspace/workspace-sync-metadata/services/workspace-sync-object-metadata.service'; -import { WorkspaceSyncRelationMetadataService } from 'src/workspace/workspace-sync-metadata/services/workspace-sync-relation-metadata.service'; -import { WorkspaceSyncFieldMetadataService } from 'src/workspace/workspace-sync-metadata/services/workspace-sync-field-metadata.service'; -import { WorkspaceMigrationBuilderModule } from 'src/workspace/workspace-migration-builder/workspace-migration-builder.module'; - -@Module({ - imports: [ - WorkspaceMigrationBuilderModule, - WorkspaceMigrationRunnerModule, - TypeOrmModule.forFeature( - [ - FieldMetadataEntity, - ObjectMetadataEntity, - RelationMetadataEntity, - WorkspaceMigrationEntity, - ], - 'metadata', - ), - TypeOrmModule.forFeature([FeatureFlagEntity], 'core'), - ], - providers: [ - ...workspaceSyncMetadataFactories, - ...workspaceSyncMetadataComparators, - WorkspaceMetadataUpdaterService, - WorkspaceSyncObjectMetadataService, - WorkspaceSyncRelationMetadataService, - WorkspaceSyncFieldMetadataService, - WorkspaceSyncMetadataService, - ], - exports: [...workspaceSyncMetadataFactories, WorkspaceSyncMetadataService], -}) -export class WorkspaceSyncMetadataModule {} diff --git a/packages/twenty-server/src/workspace/workspace.module.ts b/packages/twenty-server/src/workspace/workspace.module.ts deleted file mode 100644 index 60ccb3c54e..0000000000 --- a/packages/twenty-server/src/workspace/workspace.module.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { MetadataModule } from 'src/metadata/metadata.module'; -import { DataSourceModule } from 'src/metadata/data-source/data-source.module'; -import { WorkspaceSchemaStorageModule } from 'src/workspace/workspace-schema-storage/workspace-schema-storage.module'; -import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module'; -import { ScalarsExplorerService } from 'src/workspace/services/scalars-explorer.service'; -import { MessagingModule } from 'src/workspace/messaging/messaging.module'; -import { CalendarModule } from 'src/workspace/calendar/calendar.module'; - -import { WorkspaceFactory } from './workspace.factory'; - -import { WorkspaceSchemaBuilderModule } from './workspace-schema-builder/workspace-schema-builder.module'; -import { WorkspaceResolverBuilderModule } from './workspace-resolver-builder/workspace-resolver-builder.module'; - -@Module({ - imports: [ - MetadataModule, - DataSourceModule, - ObjectMetadataModule, - WorkspaceSchemaBuilderModule, - WorkspaceResolverBuilderModule, - WorkspaceSchemaStorageModule, - MessagingModule, - CalendarModule, - ], - providers: [WorkspaceFactory, ScalarsExplorerService], - exports: [WorkspaceFactory], -}) -export class WorkspaceModule {} diff --git a/packages/twenty-server/test/company.e2e-spec.ts b/packages/twenty-server/test/company.e2e-spec.ts index cb6ea18f51..1441a7d9c3 100644 --- a/packages/twenty-server/test/company.e2e-spec.ts +++ b/packages/twenty-server/test/company.e2e-spec.ts @@ -2,7 +2,7 @@ import { INestApplication } from '@nestjs/common'; import request from 'supertest'; -import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; +import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard'; import { createApp } from './utils/create-app'; diff --git a/yarn.lock b/yarn.lock index 32e4273f9c..ce0cde229f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7957,6 +7957,19 @@ __metadata: languageName: node linkType: hard +"@nestjs/devtools-integration@npm:^0.1.6": + version: 0.1.6 + resolution: "@nestjs/devtools-integration@npm:0.1.6" + dependencies: + chalk: "npm:^4.1.2" + node-fetch: "npm:^2.6.9" + peerDependencies: + "@nestjs/common": ^9.3.7 || ^10.0.0 + "@nestjs/core": ^9.3.7 || ^10.0.0 + checksum: 7a8e5297469a6105fedd2283c5de21ff07bfa8b4d173faf540cc935ae67cbce7cf3fc14485e9ef4c3c6c85be9aa9e28bd5838dc236f8800dfdabc61899e1eba8 + languageName: node + linkType: hard + "@nestjs/event-emitter@npm:^2.0.3": version: 2.0.3 resolution: "@nestjs/event-emitter@npm:2.0.3" @@ -45749,6 +45762,7 @@ __metadata: "@graphql-yoga/nestjs": "patch:@graphql-yoga/nestjs@2.1.0#./patches/@graphql-yoga+nestjs+2.1.0.patch" "@nestjs/cache-manager": "npm:^2.2.1" "@nestjs/cli": "npm:10.3.0" + "@nestjs/devtools-integration": "npm:^0.1.6" "@nestjs/graphql": "patch:@nestjs/graphql@12.0.8#./patches/@nestjs+graphql+12.0.8.patch" "@nx/js": "npm:17.2.8" "@ptc-org/nestjs-query-graphql": "patch:@ptc-org/nestjs-query-graphql@4.2.0#./patches/@ptc-org+nestjs-query-graphql+4.2.0.patch"