From 2a9d810d31144cbe34784795f2cff87a7fdb3e34 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 8 Oct 2026 16:43:34 +0200 Subject: [PATCH] =?UTF-8?q?Refactorizaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/server/src/applications.integration.ts | 2 +- apps/server/src/brands.integration.ts | 3 +- apps/server/src/certificates.integration.ts | 2 +- .../src/intervention-templates.integration.ts | 2 +- apps/server/src/interventions.integration.ts | 3 +- apps/server/src/mail.integration.ts | 11 +- apps/server/src/processes.integration.ts | 3 +- apps/server/src/remote.integration.ts | 2 +- .../src/resource-migration.integration.ts | 3 +- apps/server/src/telework.integration.ts | 2 +- apps/server/src/tickets.integration.ts | 3 +- apps/server/src/work-profiles.integration.ts | 2 +- apps/web/src/app.test.tsx | 63 +++ docs/componentes-de-interfaz.md | 19 +- docs/inventario-de-modales.md | 182 ++++++++ docs/revision-de-buenas-practicas.md | 149 ++++++ .../src/api/application/brand-input.mapper.ts | 8 +- .../src/api/application/brand.use-cases.ts | 3 +- .../api/application/support-input.mapper.ts | 3 +- .../src/api/application/support.use-cases.ts | 3 +- .../src/api/domain/asset-catalog.aggregate.ts | 3 +- .../src/api/domain/asset-definition.entity.ts | 3 +- .../domain/asset-relationship.aggregate.ts | 3 +- .../src/api/domain/asset-relationship.test.ts | 6 +- .../src/api/domain/asset-revision.entity.ts | 3 +- .../assets/src/api/domain/asset.aggregate.ts | 3 +- .../assets/src/api/domain/brand.aggregate.ts | 3 +- .../support-connection-revision.entity.ts | 3 +- .../domain/support-connection.aggregate.ts | 3 +- .../src/api/domain/support-tool.aggregate.ts | 6 +- .../domain/value-objects/support-values.ts | 4 +- .../value-objects/workstation-values.ts | 3 +- .../api/domain/workstation-revision.entity.ts | 3 +- .../src/api/domain/workstation.aggregate.ts | 3 +- .../persistence/asset-dashboard-reader.ts | 3 +- .../persistence/brand-migration.ts | 3 +- .../persistence/sequelize-brand.repository.ts | 3 +- .../sequelize-support.repository.ts | 3 +- .../persistence/support-migration.ts | 3 +- .../assets/src/web/asset-detail-dialog.tsx | 47 ++ .../assets/src/web/asset-editor-dialog.tsx | 49 ++ modules/assets/src/web/asset-form.tsx | 36 +- .../assets/src/web/asset-relationships.tsx | 71 +-- modules/assets/src/web/asset-support.tsx | 57 +-- modules/assets/src/web/brand-api.ts | 3 +- .../assets/src/web/brand-editor-dialog.tsx | 30 ++ modules/assets/src/web/brand-form.tsx | 3 +- modules/assets/src/web/brand-select.tsx | 26 +- modules/assets/src/web/brands-page.tsx | 20 +- .../assets/src/web/catalog-editor-dialog.tsx | 79 ++++ .../src/web/catalog-field-create-dialog.tsx | 31 ++ modules/assets/src/web/catalog-page.tsx | 68 +-- .../web/catalog-relation-create-dialog.tsx | 31 ++ .../assets/src/web/catalog-relation-form.tsx | 3 +- .../web/catalog-template-create-dialog.tsx | 41 ++ .../assets/src/web/catalog-template-form.tsx | 28 +- .../src/web/end-relationship-dialog.tsx | 60 +++ modules/assets/src/web/inventory-api.ts | 6 +- modules/assets/src/web/inventory-page.tsx | 71 +-- .../src/web/relationship-editor-dialog.tsx | 37 ++ modules/assets/src/web/relationship-form.tsx | 28 +- modules/assets/src/web/support-api.ts | 3 +- .../web/support-connection-editor-dialog.tsx | 47 ++ modules/assets/src/web/support-form.tsx | 33 +- .../assets/src/web/support-history-dialog.tsx | 44 ++ modules/assets/src/web/support-history.tsx | 31 -- .../src/web/support-tool-editor-dialog.tsx | 38 ++ modules/assets/src/web/support-tool-form.tsx | 7 +- .../assets/src/web/support-tools-dialog.tsx | 27 ++ modules/assets/src/web/support-tools.tsx | 20 +- .../web/workstation-asset-create-dialog.tsx | 44 ++ .../src/web/workstation-editor-dialog.tsx | 44 ++ modules/assets/src/web/workstation-form.tsx | 37 +- .../src/web/workstation-history-dialog.tsx | 61 +++ modules/assets/src/web/workstations-page.tsx | 76 +--- .../application-configuration-input.mapper.ts | 6 +- .../application-configuration.use-cases.ts | 6 +- .../certificate-configuration-input.mapper.ts | 6 +- .../certificate-configuration.use-cases.ts | 6 +- .../folder-mapping-input.mapper.ts | 3 +- .../application/folder-mapping.use-cases.ts | 3 +- .../application/intervention-input.mapper.ts | 3 +- .../intervention-template.use-cases.ts | 6 +- .../mail-configuration-input.mapper.ts | 6 +- .../mail-configuration.use-cases.ts | 6 +- .../api/application/mailbox-input.mapper.ts | 3 +- .../src/api/application/mailbox.use-cases.ts | 3 +- .../printer-configuration-input.mapper.ts | 6 +- .../printer-configuration.use-cases.ts | 6 +- .../src/api/application/process.use-cases.ts | 10 +- .../remote-connection-input.mapper.ts | 6 +- .../telework-authorization-input.mapper.ts | 6 +- .../api/application/ticket-input.mapper.ts | 6 +- .../application/work-profile-input.mapper.ts | 3 +- .../access/access-workspace.aggregate.ts | 3 +- ...plication-configuration-revision.entity.ts | 3 +- .../application-configuration.aggregate.ts | 3 +- .../domain/application-configuration.test.ts | 6 +- ...rtificate-configuration-revision.entity.ts | 3 +- .../certificate-configuration.aggregate.ts | 3 +- .../domain/certificate-configuration.test.ts | 6 +- .../domain/folder-mapping-revision.entity.ts | 3 +- .../api/domain/folder-mapping.aggregate.ts | 3 +- .../domain/intervention-revision.entity.ts | 3 +- .../api/domain/intervention-step.entity.ts | 7 +- .../intervention-template-revision.entity.ts | 3 +- .../intervention-template-step.entity.ts | 2 +- .../domain/intervention-template.aggregate.ts | 3 +- .../api/domain/intervention-template.test.ts | 6 +- .../src/api/domain/intervention.aggregate.ts | 6 +- .../src/api/domain/intervention.test.ts | 3 +- .../mail-configuration-revision.entity.ts | 3 +- .../domain/mail-configuration.aggregate.ts | 3 +- .../src/api/domain/mailbox-revision.entity.ts | 3 +- .../api/domain/mailbox-use-revision.entity.ts | 3 +- .../src/api/domain/mailbox-use.aggregate.ts | 3 +- .../src/api/domain/mailbox.aggregate.ts | 3 +- .../printer-configuration-revision.entity.ts | 3 +- .../domain/printer-configuration.aggregate.ts | 3 +- .../api/domain/printer-configuration.test.ts | 6 +- .../src/api/domain/process-revision.entity.ts | 3 +- .../src/api/domain/process-task.entity.ts | 8 +- .../process-template-revision.entity.ts | 3 +- .../api/domain/process-template.aggregate.ts | 3 +- .../src/api/domain/process.aggregate.ts | 6 +- .../companies/src/api/domain/process.test.ts | 8 +- .../remote-connection-revision.entity.ts | 3 +- .../api/domain/remote-connection.aggregate.ts | 3 +- .../src/api/domain/remote-connection.test.ts | 6 +- .../telework-authorization-revision.entity.ts | 3 +- .../telework-authorization.aggregate.ts | 3 +- .../api/domain/telework-authorization.test.ts | 6 +- .../src/api/domain/ticket-revision.entity.ts | 3 +- .../src/api/domain/ticket.aggregate.ts | 3 +- .../application-configuration-values.ts | 2 +- .../certificate-configuration-values.ts | 2 +- .../value-objects/folder-mapping-values.ts | 7 +- .../intervention-template-values.ts | 2 +- .../value-objects/intervention-values.ts | 7 +- .../mail-configuration-values.ts | 7 +- .../value-objects/mailbox-use-values.ts | 3 +- .../domain/value-objects/mailbox-values.ts | 3 +- .../printer-configuration-values.ts | 2 +- .../value-objects/process-template-values.ts | 7 +- .../domain/value-objects/process-values.ts | 3 +- .../value-objects/remote-connection-values.ts | 7 +- .../telework-authorization-values.ts | 2 +- .../api/domain/value-objects/ticket-values.ts | 8 +- .../value-objects/work-profile-values.ts | 7 +- .../domain/work-profile-revision.entity.ts | 3 +- .../src/api/domain/work-profile.aggregate.ts | 3 +- .../http/application-configuration.routes.ts | 3 +- .../http/certificate-configuration.routes.ts | 3 +- .../http/folder-mapping.routes.ts | 3 +- .../http/mail-configuration.routes.ts | 3 +- .../api/infrastructure/http/mailbox.routes.ts | 3 +- .../http/printer-configuration.routes.ts | 3 +- .../api/infrastructure/http/process.routes.ts | 3 +- .../http/remote-connection.routes.ts | 3 +- .../http/telework-authorization.routes.ts | 3 +- .../http/work-profile.routes.ts | 3 +- .../application-configuration-migration.ts | 3 +- .../certificate-configuration-migration.ts | 3 +- .../persistence/folder-mapping-migration.ts | 3 +- .../persistence/intervention-migration.ts | 3 +- .../intervention-template-migration.ts | 3 +- .../mail-configuration-migration.ts | 3 +- .../persistence/mailbox-migration.ts | 3 +- .../printer-configuration-migration.ts | 3 +- .../persistence/process-migration.ts | 3 +- .../persistence/process-review-reader.ts | 9 +- .../remote-connection-migration.ts | 3 +- ...ze-application-configuration.repository.ts | 19 +- ...ze-certificate-configuration.repository.ts | 19 +- .../sequelize-dashboard.repository.ts | 3 +- .../sequelize-folder-mapping.repository.ts | 13 +- ...uelize-intervention-template.repository.ts | 3 +- .../sequelize-intervention.repository.ts | 3 +- ...sequelize-mail-configuration.repository.ts | 13 +- .../sequelize-mailbox.repository.ts | 12 +- ...uelize-printer-configuration.repository.ts | 18 +- .../sequelize-process.repository.ts | 18 +- .../sequelize-remote-connection.repository.ts | 13 +- ...elize-telework-authorization.repository.ts | 6 +- .../sequelize-ticket.repository.ts | 3 +- .../sequelize-work-profile.repository.ts | 6 +- .../telework-authorization-migration.ts | 3 +- .../persistence/ticket-migration.ts | 3 +- .../persistence/work-profile-migration.ts | 3 +- .../src/web/access/access-editor-dialog.tsx | 56 +++ .../src/web/access/access-help-dialog.tsx | 31 ++ .../src/web/access/access-workspace.tsx | 43 +- .../src/web/applications/application-api.ts | 2 +- ...pplication-configuration-editor-dialog.tsx | 46 ++ .../application-configuration-form.tsx | 9 +- .../application-configurations-page.tsx | 46 +- .../application-history-dialog.tsx | 50 ++ .../web/applications/application-history.tsx | 35 -- .../src/web/certificates/certificate-api.ts | 2 +- ...ertificate-configuration-editor-dialog.tsx | 46 ++ .../certificate-configuration-form.tsx | 6 +- .../certificate-configurations-page.tsx | 46 +- .../certificate-history-dialog.tsx | 48 ++ .../web/certificates/certificate-history.tsx | 33 -- .../components/assignment-editor-dialog.tsx | 46 ++ .../src/web/components/assignment-form.tsx | 34 +- .../components/assignment-history-dialog.tsx | 47 ++ .../src/web/components/companies-page.tsx | 24 +- .../web/components/companies-workspace.tsx | 249 ++-------- .../src/web/components/company-detail.tsx | 21 +- .../web/components/company-editor-dialog.tsx | 27 ++ .../src/web/components/company-inventory.tsx | 48 +- .../components/dashboard-activity-panel.tsx | 71 +++ .../src/web/components/dashboard-api.ts | 2 +- .../components/dashboard-attention-panel.tsx | 78 ++++ .../components/dashboard-companies-panel.tsx | 128 ++++++ .../components/dashboard-details-dialog.tsx | 8 +- .../web/components/dashboard-kind-icons.ts | 15 + .../src/web/components/dashboard-page.tsx | 428 ++---------------- .../web/components/dashboard-quick-create.tsx | 22 +- .../web/components/dashboard-statistics.tsx | 84 ++++ .../web/components/dashboard-work-panel.tsx | 98 ++++ .../components/department-editor-dialog.tsx | 27 ++ .../src/web/components/department-section.tsx | 22 +- .../inventory-quick-create-dialog.tsx | 58 +++ .../src/web/components/people-section.tsx | 23 +- .../src/web/components/person-details.tsx | 58 +-- .../web/components/person-editor-dialog.tsx | 28 ++ .../src/web/components/site-editor-dialog.tsx | 27 ++ .../src/web/components/site-section.tsx | 42 +- .../src/web/components/workspace-header.tsx | 119 +++++ .../components/workspace-settings-dialog.tsx | 29 ++ .../src/web/components/workspace-sidebar.tsx | 141 ++++++ .../companies/src/web/folders/folder-api.ts | 2 +- .../folders/folder-mapping-editor-dialog.tsx | 46 ++ .../src/web/folders/folder-mapping-form.tsx | 8 +- .../folders/folder-mapping-history-dialog.tsx | 50 ++ .../src/web/folders/folder-mappings-page.tsx | 67 +-- .../intervention-template-editor-dialog.tsx | 54 +++ .../intervention-templates/template-api.ts | 2 +- .../intervention-templates/template-form.tsx | 8 +- .../intervention-templates/templates-page.tsx | 36 +- .../src/web/interventions/intervention-api.ts | 2 +- .../intervention-detail-dialog.tsx | 33 ++ .../intervention-editor-dialog.tsx | 45 ++ .../web/interventions/intervention-fields.tsx | 7 +- .../web/interventions/intervention-form.tsx | 96 ++-- .../web/interventions/intervention-steps.tsx | 6 +- .../intervention-template-create-dialog.tsx | 35 ++ .../intervention-ticket-create-dialog.tsx | 51 +++ .../web/interventions/interventions-page.tsx | 51 +-- modules/companies/src/web/mail/mail-api.ts | 2 +- .../mail/mail-configuration-editor-dialog.tsx | 46 ++ .../src/web/mail/mail-configuration-form.tsx | 6 +- .../mail-configuration-history-dialog.tsx | 52 +++ .../web/mail/mail-configuration-targets.tsx | 6 +- .../src/web/mail/mail-configurations-page.tsx | 69 +-- modules/companies/src/web/mail/mailbox-api.ts | 7 +- .../src/web/mail/mailbox-create-dialog.tsx | 37 ++ .../src/web/mail/mailbox-relations.tsx | 25 +- .../web/mail/mailbox-use-editor-dialog.tsx | 44 ++ .../src/web/mail/mailbox-use-form.tsx | 69 ++- .../companies/src/web/printers/printer-api.ts | 2 +- .../printer-configuration-editor-dialog.tsx | 46 ++ .../printers/printer-configuration-form.tsx | 41 +- .../printers/printer-configurations-page.tsx | 48 +- .../web/printers/printer-history-dialog.tsx | 48 ++ .../src/web/printers/printer-history.tsx | 29 -- .../printer-profile-create-dialog.tsx | 37 ++ .../src/web/processes/process-api.ts | 8 +- .../src/web/processes/process-detail.tsx | 18 +- .../src/web/processes/process-edit-dialog.tsx | 34 ++ .../src/web/processes/process-edit-form.tsx | 7 +- .../processes/process-quick-create-dialog.tsx | 39 ++ .../web/processes/process-start-dialog.tsx | 36 ++ .../src/web/processes/process-start-form.tsx | 27 +- .../src/web/processes/process-task-field.tsx | 7 +- .../process-template-editor-dialog.tsx | 50 ++ .../web/processes/process-template-form.tsx | 7 +- .../web/processes/process-templates-page.tsx | 32 +- .../src/web/processes/processes-page.tsx | 28 +- .../src/web/profiles/environment-content.tsx | 7 +- .../web/profiles/work-environment.test.tsx | 3 +- .../src/web/profiles/work-profile-api.ts | 7 +- .../profiles/work-profile-editor-dialog.tsx | 43 ++ .../src/web/profiles/work-profile-form.tsx | 13 +- .../profiles/work-profile-history-dialog.tsx | 84 ++++ .../src/web/profiles/work-profiles-page.tsx | 95 +--- .../companies/src/web/remote/remote-api.ts | 2 +- .../remote-connection-editor-dialog.tsx | 46 ++ .../src/web/remote/remote-connection-form.tsx | 6 +- .../remote-connection-history-dialog.tsx | 63 +++ .../web/remote/remote-connections-page.tsx | 74 +-- .../src/web/remote/remote-endpoint-fields.tsx | 6 +- .../src/web/telework/telework-api.ts | 2 +- .../telework-authorization-editor-dialog.tsx | 48 ++ .../telework/telework-authorization-form.tsx | 40 +- .../telework-authorization-history-dialog.tsx | 54 +++ .../telework/telework-authorizations-page.tsx | 72 +-- .../companies/src/web/tickets/ticket-api.ts | 8 +- .../tickets/ticket-classification-fields.tsx | 8 +- .../src/web/tickets/ticket-detail-dialog.tsx | 33 ++ .../src/web/tickets/ticket-editor-dialog.tsx | 45 ++ .../companies/src/web/tickets/ticket-form.tsx | 12 +- .../tickets/ticket-intervention-dialog.tsx | 40 ++ .../tickets/ticket-target-create-dialog.tsx | 41 ++ .../src/web/tickets/ticket-targets.tsx | 41 +- .../src/web/tickets/tickets-page.tsx | 76 +--- .../components/account-password-dialog.tsx | 31 ++ .../src/web/components/custom-workspace.tsx | 30 +- .../src/web/components/password-form.tsx | 9 +- .../src/web/components/user-editor-dialog.tsx | 54 +++ .../identity/src/web/components/user-form.tsx | 9 +- .../web/components/user-management-dialog.tsx | 28 ++ .../src/web/components/user-management.tsx | 54 +-- .../api/domain/resource-catalog.aggregate.ts | 3 +- .../api/domain/resource-definition.entity.ts | 3 +- .../api/domain/resource-revision.entity.ts | 3 +- .../src/api/domain/resource.aggregate.ts | 3 +- .../persistence/resource-dashboard-reader.ts | 3 +- .../src/web/catalog-editor-dialog.tsx | 68 +++ .../src/web/catalog-field-create-dialog.tsx | 31 ++ modules/resources/src/web/catalog-page.tsx | 57 +-- .../web/catalog-template-create-dialog.tsx | 41 ++ .../src/web/catalog-template-form.tsx | 28 +- .../src/web/resource-detail-dialog.tsx | 38 ++ .../src/web/resource-editor-dialog.tsx | 46 ++ modules/resources/src/web/resource-form.tsx | 34 +- modules/resources/src/web/resources-page.tsx | 57 +-- 329 files changed, 5194 insertions(+), 2842 deletions(-) create mode 100644 docs/inventario-de-modales.md create mode 100644 docs/revision-de-buenas-practicas.md create mode 100644 modules/assets/src/web/asset-detail-dialog.tsx create mode 100644 modules/assets/src/web/asset-editor-dialog.tsx create mode 100644 modules/assets/src/web/brand-editor-dialog.tsx create mode 100644 modules/assets/src/web/catalog-editor-dialog.tsx create mode 100644 modules/assets/src/web/catalog-field-create-dialog.tsx create mode 100644 modules/assets/src/web/catalog-relation-create-dialog.tsx create mode 100644 modules/assets/src/web/catalog-template-create-dialog.tsx create mode 100644 modules/assets/src/web/end-relationship-dialog.tsx create mode 100644 modules/assets/src/web/relationship-editor-dialog.tsx create mode 100644 modules/assets/src/web/support-connection-editor-dialog.tsx create mode 100644 modules/assets/src/web/support-history-dialog.tsx delete mode 100644 modules/assets/src/web/support-history.tsx create mode 100644 modules/assets/src/web/support-tool-editor-dialog.tsx create mode 100644 modules/assets/src/web/support-tools-dialog.tsx create mode 100644 modules/assets/src/web/workstation-asset-create-dialog.tsx create mode 100644 modules/assets/src/web/workstation-editor-dialog.tsx create mode 100644 modules/assets/src/web/workstation-history-dialog.tsx create mode 100644 modules/companies/src/web/access/access-editor-dialog.tsx create mode 100644 modules/companies/src/web/access/access-help-dialog.tsx create mode 100644 modules/companies/src/web/applications/application-configuration-editor-dialog.tsx create mode 100644 modules/companies/src/web/applications/application-history-dialog.tsx delete mode 100644 modules/companies/src/web/applications/application-history.tsx create mode 100644 modules/companies/src/web/certificates/certificate-configuration-editor-dialog.tsx create mode 100644 modules/companies/src/web/certificates/certificate-history-dialog.tsx delete mode 100644 modules/companies/src/web/certificates/certificate-history.tsx create mode 100644 modules/companies/src/web/components/assignment-editor-dialog.tsx create mode 100644 modules/companies/src/web/components/assignment-history-dialog.tsx create mode 100644 modules/companies/src/web/components/company-editor-dialog.tsx create mode 100644 modules/companies/src/web/components/dashboard-activity-panel.tsx create mode 100644 modules/companies/src/web/components/dashboard-attention-panel.tsx create mode 100644 modules/companies/src/web/components/dashboard-companies-panel.tsx create mode 100644 modules/companies/src/web/components/dashboard-kind-icons.ts create mode 100644 modules/companies/src/web/components/dashboard-statistics.tsx create mode 100644 modules/companies/src/web/components/dashboard-work-panel.tsx create mode 100644 modules/companies/src/web/components/department-editor-dialog.tsx create mode 100644 modules/companies/src/web/components/inventory-quick-create-dialog.tsx create mode 100644 modules/companies/src/web/components/person-editor-dialog.tsx create mode 100644 modules/companies/src/web/components/site-editor-dialog.tsx create mode 100644 modules/companies/src/web/components/workspace-header.tsx create mode 100644 modules/companies/src/web/components/workspace-settings-dialog.tsx create mode 100644 modules/companies/src/web/components/workspace-sidebar.tsx create mode 100644 modules/companies/src/web/folders/folder-mapping-editor-dialog.tsx create mode 100644 modules/companies/src/web/folders/folder-mapping-history-dialog.tsx create mode 100644 modules/companies/src/web/intervention-templates/intervention-template-editor-dialog.tsx create mode 100644 modules/companies/src/web/interventions/intervention-detail-dialog.tsx create mode 100644 modules/companies/src/web/interventions/intervention-editor-dialog.tsx create mode 100644 modules/companies/src/web/interventions/intervention-template-create-dialog.tsx create mode 100644 modules/companies/src/web/interventions/intervention-ticket-create-dialog.tsx create mode 100644 modules/companies/src/web/mail/mail-configuration-editor-dialog.tsx create mode 100644 modules/companies/src/web/mail/mail-configuration-history-dialog.tsx create mode 100644 modules/companies/src/web/mail/mailbox-create-dialog.tsx create mode 100644 modules/companies/src/web/mail/mailbox-use-editor-dialog.tsx create mode 100644 modules/companies/src/web/printers/printer-configuration-editor-dialog.tsx create mode 100644 modules/companies/src/web/printers/printer-history-dialog.tsx delete mode 100644 modules/companies/src/web/printers/printer-history.tsx create mode 100644 modules/companies/src/web/printers/printer-profile-create-dialog.tsx create mode 100644 modules/companies/src/web/processes/process-edit-dialog.tsx create mode 100644 modules/companies/src/web/processes/process-quick-create-dialog.tsx create mode 100644 modules/companies/src/web/processes/process-start-dialog.tsx create mode 100644 modules/companies/src/web/processes/process-template-editor-dialog.tsx create mode 100644 modules/companies/src/web/profiles/work-profile-editor-dialog.tsx create mode 100644 modules/companies/src/web/profiles/work-profile-history-dialog.tsx create mode 100644 modules/companies/src/web/remote/remote-connection-editor-dialog.tsx create mode 100644 modules/companies/src/web/remote/remote-connection-history-dialog.tsx create mode 100644 modules/companies/src/web/telework/telework-authorization-editor-dialog.tsx create mode 100644 modules/companies/src/web/telework/telework-authorization-history-dialog.tsx create mode 100644 modules/companies/src/web/tickets/ticket-detail-dialog.tsx create mode 100644 modules/companies/src/web/tickets/ticket-editor-dialog.tsx create mode 100644 modules/companies/src/web/tickets/ticket-intervention-dialog.tsx create mode 100644 modules/companies/src/web/tickets/ticket-target-create-dialog.tsx create mode 100644 modules/identity/src/web/components/account-password-dialog.tsx create mode 100644 modules/identity/src/web/components/user-editor-dialog.tsx create mode 100644 modules/identity/src/web/components/user-management-dialog.tsx create mode 100644 modules/resources/src/web/catalog-editor-dialog.tsx create mode 100644 modules/resources/src/web/catalog-field-create-dialog.tsx create mode 100644 modules/resources/src/web/catalog-template-create-dialog.tsx create mode 100644 modules/resources/src/web/resource-detail-dialog.tsx create mode 100644 modules/resources/src/web/resource-editor-dialog.tsx diff --git a/apps/server/src/applications.integration.ts b/apps/server/src/applications.integration.ts index 08b3b20..5914d26 100644 --- a/apps/server/src/applications.integration.ts +++ b/apps/server/src/applications.integration.ts @@ -2,8 +2,8 @@ import assert from "node:assert/strict"; import { randomUUID } from "node:crypto"; import { InventoryResponseSchema as AssetsSchema } from "@metis/assets/common"; +import type { ApplicationConfigurationInput } from "@metis/companies/common"; import { - type ApplicationConfigurationInput, ApplicationConfigurationResponseSchema, ApplicationConfigurationsResponseSchema, CompanyResponseSchema, diff --git a/apps/server/src/brands.integration.ts b/apps/server/src/brands.integration.ts index 21bd347..c83153d 100644 --- a/apps/server/src/brands.integration.ts +++ b/apps/server/src/brands.integration.ts @@ -7,7 +7,8 @@ import { BrandsResponseSchema, CatalogResponseSchema, } from "@metis/assets/common"; -import { QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { QueryTypes } from "sequelize"; import { z } from "zod/v4"; import { diff --git a/apps/server/src/certificates.integration.ts b/apps/server/src/certificates.integration.ts index b11683c..2b8b621 100644 --- a/apps/server/src/certificates.integration.ts +++ b/apps/server/src/certificates.integration.ts @@ -2,8 +2,8 @@ import assert from "node:assert/strict"; import { randomUUID } from "node:crypto"; import { InventoryResponseSchema as AssetsSchema } from "@metis/assets/common"; +import type { CertificateConfigurationInput } from "@metis/companies/common"; import { - type CertificateConfigurationInput, CertificateConfigurationResponseSchema, CertificateConfigurationsResponseSchema, CompanyResponseSchema, diff --git a/apps/server/src/intervention-templates.integration.ts b/apps/server/src/intervention-templates.integration.ts index 455a23e..eaabda8 100644 --- a/apps/server/src/intervention-templates.integration.ts +++ b/apps/server/src/intervention-templates.integration.ts @@ -1,8 +1,8 @@ import assert from "node:assert/strict"; import { randomUUID } from "node:crypto"; +import type { InterventionTemplateDTO } from "@metis/companies/common"; import { - type InterventionTemplateDTO, InterventionTemplateResponseSchema, InterventionTemplatesSchema, } from "@metis/companies/common"; diff --git a/apps/server/src/interventions.integration.ts b/apps/server/src/interventions.integration.ts index b4f4af4..f98de06 100644 --- a/apps/server/src/interventions.integration.ts +++ b/apps/server/src/interventions.integration.ts @@ -1,9 +1,8 @@ import assert from "node:assert/strict"; import { randomUUID } from "node:crypto"; +import type { InterventionDTO, InterventionInput } from "@metis/companies/common"; import { - type InterventionDTO, - type InterventionInput, InterventionListSchema, InterventionLookupsSchema, InterventionResponseSchema, diff --git a/apps/server/src/mail.integration.ts b/apps/server/src/mail.integration.ts index 5eaaffb..6b3eea0 100644 --- a/apps/server/src/mail.integration.ts +++ b/apps/server/src/mail.integration.ts @@ -2,18 +2,21 @@ import assert from "node:assert/strict"; import { randomUUID } from "node:crypto"; import { InventoryResponseSchema } from "@metis/assets/common"; +import type { + MailConfigurationInput, + MailboxInput, + MailboxUseInput, +} from "@metis/companies/common"; import { AccessResponseSchema, CompanyResponseSchema, - type MailConfigurationInput, MailConfigurationResponseSchema, MailConfigurationsResponseSchema, - type MailboxInput, - type MailboxUseInput, MailboxesResponseSchema, WorkProfileResponseSchema, } from "@metis/companies/common"; -import { QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { QueryTypes } from "sequelize"; import { z } from "zod/v4"; type Request = (path: string, body?: unknown, origin?: string, token?: string) => Promise; diff --git a/apps/server/src/processes.integration.ts b/apps/server/src/processes.integration.ts index 2a6b6b5..4cb772e 100644 --- a/apps/server/src/processes.integration.ts +++ b/apps/server/src/processes.integration.ts @@ -2,17 +2,16 @@ import assert from "node:assert/strict"; import { randomUUID } from "node:crypto"; import { InventoryResponseSchema as AssetsSchema } from "@metis/assets/common"; +import type { ProcessTemplateInput, UpdateProcessInput } from "@metis/companies/common"; import { ApplicationConfigurationResponseSchema, CompanyResponseSchema, ProcessResponseSchema, ProcessReviewResponseSchema, - type ProcessTemplateInput, ProcessTemplateResponseSchema, ProcessTemplatesResponseSchema, ProcessesResponseSchema, RemoteConnectionResponseSchema, - type UpdateProcessInput, WorkProfileResponseSchema, } from "@metis/companies/common"; import { InventoryResponseSchema as ResourcesSchema } from "@metis/resources/common"; diff --git a/apps/server/src/remote.integration.ts b/apps/server/src/remote.integration.ts index 4d1fe0d..9a724b7 100644 --- a/apps/server/src/remote.integration.ts +++ b/apps/server/src/remote.integration.ts @@ -2,9 +2,9 @@ import assert from "node:assert/strict"; import { randomUUID } from "node:crypto"; import { InventoryResponseSchema as AssetsSchema } from "@metis/assets/common"; +import type { RemoteConnectionInput } from "@metis/companies/common"; import { CompanyResponseSchema, - type RemoteConnectionInput, RemoteConnectionResponseSchema, RemoteConnectionsResponseSchema, TeleworkAuthorizationResponseSchema, diff --git a/apps/server/src/resource-migration.integration.ts b/apps/server/src/resource-migration.integration.ts index 032ef6f..30d9dc5 100644 --- a/apps/server/src/resource-migration.integration.ts +++ b/apps/server/src/resource-migration.integration.ts @@ -4,7 +4,8 @@ import { AccessResponseSchema, MailboxesResponseSchema } from "@metis/companies/ import type { ResourceDTO } from "@metis/resources/common"; import { InventoryResponseSchema, ResourceResponseSchema } from "@metis/resources/common"; import { createResourceModule } from "@metis/resources/module"; -import { QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { QueryTypes } from "sequelize"; import { z } from "zod/v4"; type Request = (path: string, body?: unknown) => Promise; diff --git a/apps/server/src/telework.integration.ts b/apps/server/src/telework.integration.ts index 4d3299d..4161d59 100644 --- a/apps/server/src/telework.integration.ts +++ b/apps/server/src/telework.integration.ts @@ -1,9 +1,9 @@ import assert from "node:assert/strict"; import { randomUUID } from "node:crypto"; +import type { TeleworkAuthorizationInput } from "@metis/companies/common"; import { CompanyResponseSchema, - type TeleworkAuthorizationInput, TeleworkAuthorizationResponseSchema, TeleworkAuthorizationsResponseSchema, } from "@metis/companies/common"; diff --git a/apps/server/src/tickets.integration.ts b/apps/server/src/tickets.integration.ts index 0f5304e..5939db0 100644 --- a/apps/server/src/tickets.integration.ts +++ b/apps/server/src/tickets.integration.ts @@ -2,10 +2,9 @@ import assert from "node:assert/strict"; import { randomUUID } from "node:crypto"; import { InventoryResponseSchema } from "@metis/assets/common"; +import type { TicketDTO, TicketInput } from "@metis/companies/common"; import { CompanyResponseSchema, - type TicketDTO, - type TicketInput, TicketListSchema, TicketLookupsSchema, TicketResponseSchema, diff --git a/apps/server/src/work-profiles.integration.ts b/apps/server/src/work-profiles.integration.ts index 7b6c958..415de18 100644 --- a/apps/server/src/work-profiles.integration.ts +++ b/apps/server/src/work-profiles.integration.ts @@ -1,8 +1,8 @@ import assert from "node:assert/strict"; import { InventoryResponseSchema } from "@metis/assets/common"; +import type { AccessFieldsDTO } from "@metis/companies/common"; import { - type AccessFieldsDTO, AccessResponseSchema, CompanyResponseSchema, WorkProfileResponseSchema, diff --git a/apps/web/src/app.test.tsx b/apps/web/src/app.test.tsx index a82a936..140d56a 100644 --- a/apps/web/src/app.test.tsx +++ b/apps/web/src/app.test.tsx @@ -203,3 +203,66 @@ test("los enlaces del dashboard mantienen la compañía y la ficha exacta", () = entityId: "entry", }); }); + +test("los bloques del dashboard presentan datos, avisos y actividad reales en ambos idiomas", async () => { + const session = { user, csrfToken: "a".repeat(64), setupRequired: false }; + for (const language of ["es", "en"]) { + const html = await renderPage(language, session, (client) => { + client.setQueryData(companyKeys.list, { companies: [workspaceCompany] }); + client.setQueryData(dashboardKeys.block("summary"), { + companies: 1, + tickets: 2, + interventions: 3, + assets: 4, + resources: 5, + }); + const entry = { + id: workspaceCompany.id, + companyId: workspaceCompany.id, + companyName: workspaceCompany.name, + name: "Revisar acceso", + kind: "ticket", + reference: "T-2026-001", + state: "open", + priority: "high", + recordedAt: "2026-10-01T10:30:00.000Z", + actorName: "Operador test", + }; + client.setQueryData(dashboardKeys.block("work"), { items: [entry], total: 1 }); + client.setQueryData(dashboardKeys.block("activity"), { items: [entry], total: 1 }); + client.setQueryData(dashboardKeys.block("attention"), { + items: [{ kind: "missing_site", count: 2 }], + }); + client.setQueryData(dashboardKeys.block("companies"), { + items: [ + { + id: workspaceCompany.id, + name: workspaceCompany.name, + companies: 1, + tickets: 2, + interventions: 3, + assets: 4, + resources: 5, + people: 6, + }, + ], + total: 1, + }); + }); + assert.ok(html.includes("Revisar acceso")); + assert.ok(html.includes("T-2026-001")); + assert.ok(html.includes("Operador test")); + assert.ok(html.includes(workspaceCompany.name)); + assert.ok(html.includes('dateTime="2026-10-01T10:30:00.000Z"')); + assert.ok(html.includes('data-state="high"')); + assert.ok(html.includes('data-state="open"')); + assert.ok( + html.includes( + `aria-label="${language === "es" ? "Tickets abiertos" : "Open tickets"} · ${workspaceCompany.name}: 2"` + ) + ); + assert.equal(html.includes("dashboard.issues.missing_site"), false); + assert.equal(html.includes('role="alert"'), false); + assert.equal(html.includes(" { const parsed = BrandInputSchema.safeParse(input); if (!parsed.success) { diff --git a/modules/assets/src/api/application/brand.use-cases.ts b/modules/assets/src/api/application/brand.use-cases.ts index aabe208..9512b20 100644 --- a/modules/assets/src/api/application/brand.use-cases.ts +++ b/modules/assets/src/api/application/brand.use-cases.ts @@ -1,7 +1,8 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { Brand, BrandError, type BrandInput } from "../domain/brand.aggregate"; +import type { BrandInput } from "../domain/brand.aggregate"; +import { Brand, BrandError } from "../domain/brand.aggregate"; import type { IBrandRepository } from "./brand.repository"; import { mapBrandInput } from "./brand-input.mapper"; diff --git a/modules/assets/src/api/application/support-input.mapper.ts b/modules/assets/src/api/application/support-input.mapper.ts index a71cf2f..106b430 100644 --- a/modules/assets/src/api/application/support-input.mapper.ts +++ b/modules/assets/src/api/application/support-input.mapper.ts @@ -1,7 +1,8 @@ import { Result } from "@repo/rdx-utils"; import type { SupportConnection } from "../domain/support-connection.aggregate"; -import { SupportError, type SupportInput } from "../domain/support-values"; +import type { SupportInput } from "../domain/support-values"; +import { SupportError } from "../domain/support-values"; import { SupportValues } from "../domain/value-objects/support-values"; import type { SupportContext } from "./support.repository"; diff --git a/modules/assets/src/api/application/support.use-cases.ts b/modules/assets/src/api/application/support.use-cases.ts index e8e2611..e5c7431 100644 --- a/modules/assets/src/api/application/support.use-cases.ts +++ b/modules/assets/src/api/application/support.use-cases.ts @@ -3,7 +3,8 @@ import { Result } from "@repo/rdx-utils"; import { SupportConnection } from "../domain/support-connection.aggregate"; import { SupportTool } from "../domain/support-tool.aggregate"; -import { SupportError, type SupportInput, type SupportToolInput } from "../domain/support-values"; +import type { SupportInput, SupportToolInput } from "../domain/support-values"; +import { SupportError } from "../domain/support-values"; import type { ISupportRepository } from "./support.repository"; import { mapSupportInput } from "./support-input.mapper"; diff --git a/modules/assets/src/api/domain/asset-catalog.aggregate.ts b/modules/assets/src/api/domain/asset-catalog.aggregate.ts index 4e5bfbe..6563200 100644 --- a/modules/assets/src/api/domain/asset-catalog.aggregate.ts +++ b/modules/assets/src/api/domain/asset-catalog.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; import { AssetCatalogError } from "./asset-definition"; diff --git a/modules/assets/src/api/domain/asset-definition.entity.ts b/modules/assets/src/api/domain/asset-definition.entity.ts index 167fbf2..742d5dc 100644 --- a/modules/assets/src/api/domain/asset-definition.entity.ts +++ b/modules/assets/src/api/domain/asset-definition.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; import { AssetCatalogError } from "./asset-definition"; diff --git a/modules/assets/src/api/domain/asset-relationship.aggregate.ts b/modules/assets/src/api/domain/asset-relationship.aggregate.ts index f0a7be2..d2b3f90 100644 --- a/modules/assets/src/api/domain/asset-relationship.aggregate.ts +++ b/modules/assets/src/api/domain/asset-relationship.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/assets/src/api/domain/asset-relationship.test.ts b/modules/assets/src/api/domain/asset-relationship.test.ts index 73d022d..3f5f927 100644 --- a/modules/assets/src/api/domain/asset-relationship.test.ts +++ b/modules/assets/src/api/domain/asset-relationship.test.ts @@ -8,10 +8,8 @@ import { AssetCatalog } from "./asset-catalog.aggregate"; import { seedAssetCatalog } from "./asset-catalog-seed"; import { AssetRelationship } from "./asset-relationship.aggregate"; import { AssetDefinitionValues } from "./value-objects/asset-definition-values"; -import { - AssetRelationshipValues, - type RelationshipValuesData, -} from "./value-objects/asset-relationship-values"; +import type { RelationshipValuesData } from "./value-objects/asset-relationship-values"; +import { AssetRelationshipValues } from "./value-objects/asset-relationship-values"; const sourceId = UniqueID.generateNewID().toPrimitive(); const targetId = UniqueID.generateNewID().toPrimitive(); diff --git a/modules/assets/src/api/domain/asset-revision.entity.ts b/modules/assets/src/api/domain/asset-revision.entity.ts index 10514ce..055545e 100644 --- a/modules/assets/src/api/domain/asset-revision.entity.ts +++ b/modules/assets/src/api/domain/asset-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { AssetValues } from "./value-objects/asset-values"; export type AssetRevisionProps = Readonly<{ diff --git a/modules/assets/src/api/domain/asset.aggregate.ts b/modules/assets/src/api/domain/asset.aggregate.ts index d0112c2..fc0e199 100644 --- a/modules/assets/src/api/domain/asset.aggregate.ts +++ b/modules/assets/src/api/domain/asset.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { AssetCatalogError } from "./asset-definition"; diff --git a/modules/assets/src/api/domain/brand.aggregate.ts b/modules/assets/src/api/domain/brand.aggregate.ts index 85a2f0d..546bf01 100644 --- a/modules/assets/src/api/domain/brand.aggregate.ts +++ b/modules/assets/src/api/domain/brand.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type Name, type UniqueID } from "@repo/rdx-ddd"; +import type { Name, UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/assets/src/api/domain/support-connection-revision.entity.ts b/modules/assets/src/api/domain/support-connection-revision.entity.ts index c5a3bcd..2a86f4f 100644 --- a/modules/assets/src/api/domain/support-connection-revision.entity.ts +++ b/modules/assets/src/api/domain/support-connection-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { SupportValues } from "./value-objects/support-values"; export type SupportConnectionRevisionProps = Readonly<{ diff --git a/modules/assets/src/api/domain/support-connection.aggregate.ts b/modules/assets/src/api/domain/support-connection.aggregate.ts index 990b996..58ccd02 100644 --- a/modules/assets/src/api/domain/support-connection.aggregate.ts +++ b/modules/assets/src/api/domain/support-connection.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/assets/src/api/domain/support-tool.aggregate.ts b/modules/assets/src/api/domain/support-tool.aggregate.ts index fa79165..22528b3 100644 --- a/modules/assets/src/api/domain/support-tool.aggregate.ts +++ b/modules/assets/src/api/domain/support-tool.aggregate.ts @@ -1,7 +1,9 @@ -import { AggregateRoot, Name, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot, Name } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { SupportError, type SupportToolInput, SupportToolInputSchema } from "./support-values"; +import type { SupportToolInput } from "./support-values"; +import { SupportError, SupportToolInputSchema } from "./support-values"; type Props = Readonly<{ name: Name; active: boolean; builtin: boolean }>; export class SupportTool extends AggregateRoot { diff --git a/modules/assets/src/api/domain/value-objects/support-values.ts b/modules/assets/src/api/domain/value-objects/support-values.ts index aa501f0..9fc64d2 100644 --- a/modules/assets/src/api/domain/value-objects/support-values.ts +++ b/modules/assets/src/api/domain/value-objects/support-values.ts @@ -1,7 +1,9 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { SupportError, type SupportInput, SupportValuesSchema } from "../support-values"; +import type { SupportInput } from "../support-values"; +import { SupportError, SupportValuesSchema } from "../support-values"; + export class SupportValues { private constructor( public readonly toolId: UniqueID, diff --git a/modules/assets/src/api/domain/value-objects/workstation-values.ts b/modules/assets/src/api/domain/value-objects/workstation-values.ts index 6481aa8..37788bb 100644 --- a/modules/assets/src/api/domain/value-objects/workstation-values.ts +++ b/modules/assets/src/api/domain/value-objects/workstation-values.ts @@ -2,7 +2,8 @@ import { Name, UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; import { AssetCatalogError } from "../asset-definition"; -import { type WorkstationInput, WorkstationInputSchema } from "../workstation-values"; +import type { WorkstationInput } from "../workstation-values"; +import { WorkstationInputSchema } from "../workstation-values"; export class WorkstationValues { private constructor( public readonly name: Name, diff --git a/modules/assets/src/api/domain/workstation-revision.entity.ts b/modules/assets/src/api/domain/workstation-revision.entity.ts index 00adc25..c9bbe32 100644 --- a/modules/assets/src/api/domain/workstation-revision.entity.ts +++ b/modules/assets/src/api/domain/workstation-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { WorkstationValues } from "./value-objects/workstation-values"; export type WorkstationRevisionProps = Readonly<{ diff --git a/modules/assets/src/api/domain/workstation.aggregate.ts b/modules/assets/src/api/domain/workstation.aggregate.ts index 181880b..0f7c57c 100644 --- a/modules/assets/src/api/domain/workstation.aggregate.ts +++ b/modules/assets/src/api/domain/workstation.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/assets/src/api/infrastructure/persistence/asset-dashboard-reader.ts b/modules/assets/src/api/infrastructure/persistence/asset-dashboard-reader.ts index c9b944f..f0e7aac 100644 --- a/modules/assets/src/api/infrastructure/persistence/asset-dashboard-reader.ts +++ b/modules/assets/src/api/infrastructure/persistence/asset-dashboard-reader.ts @@ -1,4 +1,5 @@ -import { QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { QueryTypes } from "sequelize"; type Entry = { eventId?: string; diff --git a/modules/assets/src/api/infrastructure/persistence/brand-migration.ts b/modules/assets/src/api/infrastructure/persistence/brand-migration.ts index 0986ea9..1609bb3 100644 --- a/modules/assets/src/api/infrastructure/persistence/brand-migration.ts +++ b/modules/assets/src/api/infrastructure/persistence/brand-migration.ts @@ -1,5 +1,6 @@ import { UniqueID } from "@repo/rdx-ddd"; -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; import { z } from "zod/v4"; import { mapBrandInput } from "../../application/brand-input.mapper"; diff --git a/modules/assets/src/api/infrastructure/persistence/sequelize-brand.repository.ts b/modules/assets/src/api/infrastructure/persistence/sequelize-brand.repository.ts index 7a4fa41..2063ee7 100644 --- a/modules/assets/src/api/infrastructure/persistence/sequelize-brand.repository.ts +++ b/modules/assets/src/api/infrastructure/persistence/sequelize-brand.repository.ts @@ -1,5 +1,6 @@ import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { IBrandRepository } from "../../application/brand.repository"; diff --git a/modules/assets/src/api/infrastructure/persistence/sequelize-support.repository.ts b/modules/assets/src/api/infrastructure/persistence/sequelize-support.repository.ts index fbab795..4ecafad 100644 --- a/modules/assets/src/api/infrastructure/persistence/sequelize-support.repository.ts +++ b/modules/assets/src/api/infrastructure/persistence/sequelize-support.repository.ts @@ -1,6 +1,7 @@ import type { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { ISupportRepository, SupportContext } from "../../application/support.repository"; import { AssetInputSchema } from "../../domain/asset-values"; diff --git a/modules/assets/src/api/infrastructure/persistence/support-migration.ts b/modules/assets/src/api/infrastructure/persistence/support-migration.ts index 798e84d..3028d66 100644 --- a/modules/assets/src/api/infrastructure/persistence/support-migration.ts +++ b/modules/assets/src/api/infrastructure/persistence/support-migration.ts @@ -1,5 +1,6 @@ import { UniqueID } from "@repo/rdx-ddd"; -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; export async function migrateSupport(database: Sequelize) { const query = database.getQueryInterface(); const tables = await database.query<{ name: string }>( diff --git a/modules/assets/src/web/asset-detail-dialog.tsx b/modules/assets/src/web/asset-detail-dialog.tsx new file mode 100644 index 0000000..358ffa9 --- /dev/null +++ b/modules/assets/src/web/asset-detail-dialog.tsx @@ -0,0 +1,47 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import type { ComponentProps } from "react"; +import { useTranslation } from "react-i18next"; + +import { AssetDetail } from "./asset-detail"; +import { AssetRelationships } from "./asset-relationships"; +import { AssetSupport } from "./asset-support"; + +export function AssetDetailDialog({ + asset, + lookups, + companyId, + csrfToken, + onClose, +}: { + asset: ComponentProps["asset"]; + lookups: ComponentProps["lookups"]; + companyId: string; + csrfToken: string; + onClose: () => void; +}) { + const { t } = useTranslation("assets"); + + return ( + { + if (!open) { + onClose(); + } + }} + open + title={asset.values.name} + wide + > + + + + + + ); +} diff --git a/modules/assets/src/web/asset-editor-dialog.tsx b/modules/assets/src/web/asset-editor-dialog.tsx new file mode 100644 index 0000000..4383040 --- /dev/null +++ b/modules/assets/src/web/asset-editor-dialog.tsx @@ -0,0 +1,49 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import type { ComponentProps } from "react"; +import { useTranslation } from "react-i18next"; + +import { AssetForm } from "./asset-form"; + +export function AssetEditorDialog({ + asset, + companyId, + csrfToken, + items, + lookups, + onSaved, + onClose, +}: { + asset: ComponentProps["asset"]; + companyId: string; + csrfToken: string; + items: ComponentProps["items"]; + lookups: ComponentProps["lookups"]; + onSaved: (id: string) => void; + onClose: () => void; +}) { + const { t } = useTranslation("assets"); + + return ( + { + if (!open) { + onClose(); + } + }} + open + title={t(asset ? "editAsset" : "newAsset")} + wide + > + + + ); +} diff --git a/modules/assets/src/web/asset-form.tsx b/modules/assets/src/web/asset-form.tsx index fdcc004..f238d47 100644 --- a/modules/assets/src/web/asset-form.tsx +++ b/modules/assets/src/web/asset-form.tsx @@ -1,7 +1,7 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { Button } from "@repo/shadcn-ui/components/button"; import { ContextHelp } from "@repo/shadcn-ui/components/context-help"; -import { FormActions, FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { FormActions } from "@repo/shadcn-ui/components/form-dialog"; import { Input } from "@repo/shadcn-ui/components/input"; import { Label } from "@repo/shadcn-ui/components/label"; import { SelectWithAction } from "@repo/shadcn-ui/components/select-with-action"; @@ -17,7 +17,7 @@ import { AssetInputSchema, AssetStatusSchema } from "../common/inventory"; import { AssetCharacteristicControl } from "./asset-characteristic-control"; import { BrandSelect } from "./brand-select"; -import { CatalogTemplateForm } from "./catalog-template-form"; +import { CatalogTemplateCreateDialog } from "./catalog-template-create-dialog"; import { inventoryApi, inventoryKeys } from "./inventory-api"; import { InventoryFeedback } from "./inventory-feedback"; @@ -294,32 +294,22 @@ export function AssetForm({ {creatingTemplate && ( - { if (!open) { setCreatingTemplate(false); } }} - open - title={t("newTemplate")} - wide - > -

{t("relatedNotice")}

- { - form.setValue("templateId", id); - form.setValue("characteristics", {}); - form.setValue("brandId", null); - setCreatingTemplate(false); - }} - scope={companyId} - /> -
+ onSaved={(id) => { + form.setValue("templateId", id); + form.setValue("characteristics", {}); + form.setValue("brandId", null); + setCreatingTemplate(false); + }} + scope={companyId} + /> )} ); diff --git a/modules/assets/src/web/asset-relationships.tsx b/modules/assets/src/web/asset-relationships.tsx index 3940029..5ffa5c1 100644 --- a/modules/assets/src/web/asset-relationships.tsx +++ b/modules/assets/src/web/asset-relationships.tsx @@ -1,14 +1,13 @@ import { Button } from "@repo/shadcn-ui/components/button"; -import { FormActions, FormDialog } from "@repo/shadcn-ui/components/form-dialog"; -import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; +import { useQuery } from "@tanstack/react-query"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import type { RelationshipDTO } from "../common"; +import { EndRelationshipDialog } from "./end-relationship-dialog"; import { inventoryApi, inventoryKeys } from "./inventory-api"; -import { InventoryFeedback } from "./inventory-feedback"; -import { RelationshipForm } from "./relationship-form"; +import { RelationshipEditorDialog } from "./relationship-editor-dialog"; export function AssetRelationships({ companyId, @@ -20,20 +19,13 @@ export function AssetRelationships({ assetId: string; }) { const { t, i18n } = useTranslation("assets"); - const client = useQueryClient(); const query = useQuery({ queryKey: inventoryKeys.company(companyId), queryFn: () => inventoryApi.get(companyId), }); const [adding, setAdding] = useState(false); - const [ending, setEnding] = useState(); - const mutation = useMutation({ - mutationFn: (id: string) => inventoryApi.endRelationship(companyId, id, csrfToken), - onSuccess: async () => { - await client.invalidateQueries({ queryKey: inventoryKeys.company(companyId) }); - setEnding(undefined); - }, - }); + const [endingId, setEndingId] = useState(); + const ending = query.data?.relationships.find((relationship) => relationship.id === endingId); const links = (query.data?.relationships ?? []).filter( (link) => link.values.sourceId === assetId || link.values.targetId === assetId ); @@ -66,8 +58,7 @@ export function AssetRelationships({ ) : ( - - + setEndingId(undefined)} + relationship={ending} + sourceName={nameOf(ending.values.sourceId)} + targetName={nameOf(ending.values.targetId)} + /> )} ); diff --git a/modules/assets/src/web/asset-support.tsx b/modules/assets/src/web/asset-support.tsx index f00a08b..5c5da91 100644 --- a/modules/assets/src/web/asset-support.tsx +++ b/modules/assets/src/web/asset-support.tsx @@ -1,5 +1,4 @@ import { Button } from "@repo/shadcn-ui/components/button"; -import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; import { useQuery } from "@tanstack/react-query"; import { useState } from "react"; import { useTranslation } from "react-i18next"; @@ -7,10 +6,10 @@ import { useTranslation } from "react-i18next"; import type { SupportConnectionDTO } from "../common/support"; import { supportApi, supportKeys } from "./support-api"; -import { SupportForm } from "./support-form"; -import { SupportHistory } from "./support-history"; +import { SupportConnectionEditorDialog } from "./support-connection-editor-dialog"; +import { SupportHistoryDialog } from "./support-history-dialog"; import { SupportSummary } from "./support-summary"; -import { SupportTools } from "./support-tools"; +import { SupportToolsDialog } from "./support-tools-dialog"; export function AssetSupport({ companyId, @@ -32,7 +31,8 @@ export function AssetSupport({ const [edit, setEdit] = useState(); const [toolsOpen, setToolsOpen] = useState(false); const [showRetired, setShowRetired] = useState(false); - const [history, setHistory] = useState(); + const [historyId, setHistoryId] = useState(); + const history = query.data?.connections.find((connection) => connection.id === historyId); const items = query.data?.connections.filter((item) => showRetired || item.values.state !== "retired") ?? []; const tools = query.data?.tools ?? []; @@ -102,7 +102,7 @@ export function AssetSupport({ > {t("edit")} - @@ -111,43 +111,26 @@ export function AssetSupport({ )} - setOpen(false)} open={open} - title={t(edit ? "support.edit" : "support.new")} - > - setOpen(false)} - /> - - - - - + + { if (!value) { - setHistory(undefined); + setHistoryId(undefined); } }} - open={Boolean(history)} - title={t("support.history")} - > - {history && } - + tools={tools} + /> ); } diff --git a/modules/assets/src/web/brand-api.ts b/modules/assets/src/web/brand-api.ts index 03279f7..78f71c4 100644 --- a/modules/assets/src/web/brand-api.ts +++ b/modules/assets/src/web/brand-api.ts @@ -1,6 +1,7 @@ import { z } from "zod/v4"; -import { type BrandInput, BrandResponseSchema, BrandsResponseSchema } from "../common/brands"; +import type { BrandInput } from "../common/brands"; +import { BrandResponseSchema, BrandsResponseSchema } from "../common/brands"; export const brandKeys = { all: ["asset-brands"] as const }; export class BrandApiError extends Error { constructor(public readonly code: string) { diff --git a/modules/assets/src/web/brand-editor-dialog.tsx b/modules/assets/src/web/brand-editor-dialog.tsx new file mode 100644 index 0000000..556a58c --- /dev/null +++ b/modules/assets/src/web/brand-editor-dialog.tsx @@ -0,0 +1,30 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import type { ComponentProps } from "react"; +import { useTranslation } from "react-i18next"; + +import { BrandForm } from "./brand-form"; + +export function BrandEditorDialog({ + open, + onOpenChange, + ...formProps +}: ComponentProps & { + open: boolean; + onOpenChange: (open: boolean) => void; +}) { + const { t } = useTranslation("assets"); + return ( + + {formProps.quickCreate && ( +

{t("brands.quickNotice")}

+ )} + +
+ ); +} diff --git a/modules/assets/src/web/brand-form.tsx b/modules/assets/src/web/brand-form.tsx index 227fa9f..a1207bc 100644 --- a/modules/assets/src/web/brand-form.tsx +++ b/modules/assets/src/web/brand-form.tsx @@ -9,7 +9,8 @@ import { useEffect, useId, useRef } from "react"; import { useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; -import { type BrandDTO, type BrandInput, BrandInputSchema } from "../common/brands"; +import type { BrandDTO, BrandInput } from "../common/brands"; +import { BrandInputSchema } from "../common/brands"; import { BrandApiError, brandApi, brandKeys } from "./brand-api"; diff --git a/modules/assets/src/web/brand-select.tsx b/modules/assets/src/web/brand-select.tsx index 46e8f60..04adea2 100644 --- a/modules/assets/src/web/brand-select.tsx +++ b/modules/assets/src/web/brand-select.tsx @@ -1,5 +1,4 @@ import { Button } from "@repo/shadcn-ui/components/button"; -import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; import { Label } from "@repo/shadcn-ui/components/label"; import { SelectWithAction } from "@repo/shadcn-ui/components/select-with-action"; import { useQuery } from "@tanstack/react-query"; @@ -9,7 +8,7 @@ import { useTranslation } from "react-i18next"; import type { BrandDTO } from "../common/brands"; import { brandApi, brandKeys } from "./brand-api"; -import { BrandForm } from "./brand-form"; +import { BrandEditorDialog } from "./brand-editor-dialog"; const LEGACY = "legacy"; export function BrandSelect({ @@ -88,23 +87,16 @@ export function BrandSelect({ )} {open && ( - { + onChange(brand); + setOpen(false); + }} open - title={t("brands.new")} - > -

{t("brands.quickNotice")}

- { - onChange(brand); - setOpen(false); - }} - quickCreate - /> -
+ quickCreate + /> )} ); diff --git a/modules/assets/src/web/brands-page.tsx b/modules/assets/src/web/brands-page.tsx index 86fbc51..cc08e98 100644 --- a/modules/assets/src/web/brands-page.tsx +++ b/modules/assets/src/web/brands-page.tsx @@ -6,7 +6,6 @@ import { EntityStatus, EntityTable, } from "@repo/shadcn-ui/components/entity-list"; -import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; import { SelectWithAction } from "@repo/shadcn-ui/components/select-with-action"; import { useQuery } from "@tanstack/react-query"; import { useId, useState } from "react"; @@ -15,7 +14,7 @@ import { useTranslation } from "react-i18next"; import type { BrandDTO } from "../common/brands"; import { brandApi, brandKeys } from "./brand-api"; -import { BrandForm } from "./brand-form"; +import { BrandEditorDialog } from "./brand-editor-dialog"; export function BrandCatalogPage({ csrfToken }: { csrfToken: string }) { const { t, i18n } = useTranslation("assets"); @@ -125,20 +124,13 @@ export function BrandCatalogPage({ csrfToken }: { csrfToken: string }) { title={t("brands.title")} unavailable={query.isError} /> - - setOpen(false)} - /> - + {...(edit ? { brand: edit } : {})} + onSaved={() => setOpen(false)} + /> ); } diff --git a/modules/assets/src/web/catalog-editor-dialog.tsx b/modules/assets/src/web/catalog-editor-dialog.tsx new file mode 100644 index 0000000..bd25914 --- /dev/null +++ b/modules/assets/src/web/catalog-editor-dialog.tsx @@ -0,0 +1,79 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { useTranslation } from "react-i18next"; + +import type { CatalogItemDTO } from "../common"; + +import { CatalogFieldForm } from "./catalog-form"; +import { CatalogRelationForm } from "./catalog-relation-form"; +import { CatalogTemplateForm } from "./catalog-template-form"; + +export type CatalogEditor = { + kind: "field" | "template" | "relation"; + item?: CatalogItemDTO; + copy?: CatalogItemDTO; +}; +function editorTitle(editor: CatalogEditor) { + if (editor.kind === "field") { + return editor.item ? "editField" : "newField"; + } + if (editor.kind === "relation") { + return editor.item ? "editRelation" : "newRelation"; + } + return editor.item ? "editTemplate" : "newTemplate"; +} + +export function CatalogEditorDialog({ + editor, + items, + scope, + csrfToken, + onClose, +}: { + editor: CatalogEditor; + items: readonly CatalogItemDTO[]; + scope: string; + csrfToken: string; + onClose: () => void; +}) { + const { t } = useTranslation("assets"); + + return ( + { + if (!open) { + onClose(); + } + }} + open + title={t(editorTitle(editor))} + wide={editor.kind === "template"} + > + {editor.kind === "field" ? ( + onClose()} + scope={scope} + /> + ) : editor.kind === "relation" ? ( + onClose()} + scope={scope} + /> + ) : ( + onClose()} + scope={scope} + /> + )} + + ); +} diff --git a/modules/assets/src/web/catalog-field-create-dialog.tsx b/modules/assets/src/web/catalog-field-create-dialog.tsx new file mode 100644 index 0000000..e6d2ae9 --- /dev/null +++ b/modules/assets/src/web/catalog-field-create-dialog.tsx @@ -0,0 +1,31 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { useTranslation } from "react-i18next"; + +import { CatalogFieldForm } from "./catalog-form"; + +export function CatalogFieldCreateDialog({ + scope, + csrfToken, + onSaved, + onOpenChange, +}: { + scope: string; + csrfToken: string; + onSaved: (id: string) => void; + onOpenChange: (open: boolean) => void; +}) { + const { t } = useTranslation("assets"); + + return ( + +

{t("quickNotice")}

+ +
+ ); +} diff --git a/modules/assets/src/web/catalog-page.tsx b/modules/assets/src/web/catalog-page.tsx index 4172920..b579c24 100644 --- a/modules/assets/src/web/catalog-page.tsx +++ b/modules/assets/src/web/catalog-page.tsx @@ -1,6 +1,5 @@ import { Button } from "@repo/shadcn-ui/components/button"; import { EntityListHeader, EntityTable } from "@repo/shadcn-ui/components/entity-list"; -import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { useState } from "react"; import { useTranslation } from "react-i18next"; @@ -10,16 +9,9 @@ import type { CatalogItemDTO } from "../common"; import { catalogApi, catalogKeys } from "./catalog-api"; import { CatalogCell } from "./catalog-cell"; import { CatalogDefinitionDialog } from "./catalog-definition-dialog"; +import type { CatalogEditor } from "./catalog-editor-dialog"; +import { CatalogEditorDialog } from "./catalog-editor-dialog"; import { CatalogError } from "./catalog-error"; -import { CatalogFieldForm } from "./catalog-form"; -import { CatalogRelationForm } from "./catalog-relation-form"; -import { CatalogTemplateForm } from "./catalog-template-form"; - -type Editor = { - kind: "field" | "template" | "relation"; - item?: CatalogItemDTO; - copy?: CatalogItemDTO; -}; export function AssetCatalogPage({ scope, csrfToken }: { scope: string; csrfToken: string }) { const { t, i18n } = useTranslation("assets"); @@ -27,7 +19,7 @@ export function AssetCatalogPage({ scope, csrfToken }: { scope: string; csrfToke const [tab, setTab] = useState<"field" | "template" | "relation">("template"); const [search, setSearch] = useState(""); const [viewId, setViewId] = useState(); - const [editor, setEditor] = useState(); + const [editor, setEditor] = useState(); const query = useQuery({ queryKey: catalogKeys.scope(scope), queryFn: () => catalogApi.get(scope), @@ -196,54 +188,14 @@ export function AssetCatalogPage({ scope, csrfToken }: { scope: string; csrfToke /> setViewId(undefined)} /> {editor && ( - { - if (!open) { - setEditor(undefined); - } - }} - open - title={t(editorTitle(editor))} - wide={editor.kind === "template"} - > - {editor.kind === "field" ? ( - setEditor(undefined)} - scope={scope} - /> - ) : editor.kind === "relation" ? ( - setEditor(undefined)} - scope={scope} - /> - ) : ( - setEditor(undefined)} - scope={scope} - /> - )} - + setEditor(undefined)} + scope={scope} + /> )} ); } - -function editorTitle(editor: Editor) { - if (editor.kind === "field") { - return editor.item ? "editField" : "newField"; - } - if (editor.kind === "relation") { - return editor.item ? "editRelation" : "newRelation"; - } - return editor.item ? "editTemplate" : "newTemplate"; -} diff --git a/modules/assets/src/web/catalog-relation-create-dialog.tsx b/modules/assets/src/web/catalog-relation-create-dialog.tsx new file mode 100644 index 0000000..a72d751 --- /dev/null +++ b/modules/assets/src/web/catalog-relation-create-dialog.tsx @@ -0,0 +1,31 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { useTranslation } from "react-i18next"; + +import { CatalogRelationForm } from "./catalog-relation-form"; + +export function CatalogRelationCreateDialog({ + companyId, + csrfToken, + onSaved, + onOpenChange, +}: { + companyId: string; + csrfToken: string; + onSaved: (id: string) => void; + onOpenChange: (open: boolean) => void; +}) { + const { t } = useTranslation("assets"); + + return ( + +

{t("quickRelationNotice")}

+ +
+ ); +} diff --git a/modules/assets/src/web/catalog-relation-form.tsx b/modules/assets/src/web/catalog-relation-form.tsx index cd5b8ce..4de7279 100644 --- a/modules/assets/src/web/catalog-relation-form.tsx +++ b/modules/assets/src/web/catalog-relation-form.tsx @@ -9,7 +9,8 @@ import { useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import type { z } from "zod/v4"; -import { AssetDefinitionSchema, type CatalogItemDTO } from "../common"; +import type { CatalogItemDTO } from "../common"; +import { AssetDefinitionSchema } from "../common"; import { CatalogError } from "./catalog-error"; import { CatalogHelp } from "./catalog-help"; diff --git a/modules/assets/src/web/catalog-template-create-dialog.tsx b/modules/assets/src/web/catalog-template-create-dialog.tsx new file mode 100644 index 0000000..66b6d70 --- /dev/null +++ b/modules/assets/src/web/catalog-template-create-dialog.tsx @@ -0,0 +1,41 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import type { ComponentProps } from "react"; +import { useTranslation } from "react-i18next"; + +import { CatalogTemplateForm } from "./catalog-template-form"; + +export function CatalogTemplateCreateDialog({ + scope, + csrfToken, + items, + onSaved, + onOpenChange, +}: { + scope: string; + csrfToken: string; + items: ComponentProps["items"]; + onSaved: (id: string) => void; + onOpenChange: (open: boolean) => void; +}) { + const { t } = useTranslation("assets"); + + return ( + +

{t("relatedNotice")}

+ +
+ ); +} diff --git a/modules/assets/src/web/catalog-template-form.tsx b/modules/assets/src/web/catalog-template-form.tsx index 4458345..b344bbe 100644 --- a/modules/assets/src/web/catalog-template-form.tsx +++ b/modules/assets/src/web/catalog-template-form.tsx @@ -1,7 +1,7 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { Button } from "@repo/shadcn-ui/components/button"; import { Checkbox } from "@repo/shadcn-ui/components/checkbox"; -import { FormActions, FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { FormActions } from "@repo/shadcn-ui/components/form-dialog"; import { Input } from "@repo/shadcn-ui/components/input"; import { Label } from "@repo/shadcn-ui/components/label"; import { SelectWithAction } from "@repo/shadcn-ui/components/select-with-action"; @@ -15,7 +15,7 @@ import type { CatalogItemDTO } from "../common"; import { AssetDefinitionSchema } from "../common"; import { CatalogError } from "./catalog-error"; -import { CatalogFieldForm } from "./catalog-form"; +import { CatalogFieldCreateDialog } from "./catalog-field-create-dialog"; import { CatalogHelp } from "./catalog-help"; import type { CatalogSaved } from "./use-catalog-save"; import { useCatalogSave } from "./use-catalog-save"; @@ -173,27 +173,19 @@ export function CatalogTemplateForm({ {creatingField && ( - { if (!open) { setCreatingField(false); } }} - open - title={t("newField")} - > -

{t("quickNotice")}

- { - add(fieldId); - setCreatingField(false); - }} - scope={scope} - /> -
+ onSaved={(fieldId) => { + add(fieldId); + setCreatingField(false); + }} + scope={scope} + /> )} ); diff --git a/modules/assets/src/web/end-relationship-dialog.tsx b/modules/assets/src/web/end-relationship-dialog.tsx new file mode 100644 index 0000000..5863383 --- /dev/null +++ b/modules/assets/src/web/end-relationship-dialog.tsx @@ -0,0 +1,60 @@ +import { Button } from "@repo/shadcn-ui/components/button"; +import { FormActions, FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { useMutation, useQueryClient } from "@tanstack/react-query"; +import { useTranslation } from "react-i18next"; + +import type { RelationshipDTO } from "../common"; + +import { inventoryApi, inventoryKeys } from "./inventory-api"; +import { InventoryFeedback } from "./inventory-feedback"; + +export function EndRelationshipDialog({ + relationship, + companyId, + csrfToken, + sourceName, + targetName, + onClose, +}: { + relationship: RelationshipDTO; + companyId: string; + csrfToken: string; + sourceName: string; + targetName: string; + onClose: () => void; +}) { + const { t } = useTranslation("assets"); + const client = useQueryClient(); + const mutation = useMutation({ + mutationFn: () => inventoryApi.endRelationship(companyId, relationship.id, csrfToken), + onSuccess: () => client.invalidateQueries({ queryKey: inventoryKeys.company(companyId) }), + }); + return ( + { + if (!open) { + onClose(); + } + }} + open + title={t("endRelationship")} + > +

+ {relationship.values.name} · {sourceName} → {targetName} +

+

{t("endRelationshipConfirm")}

+ + + + +
+ ); +} diff --git a/modules/assets/src/web/inventory-api.ts b/modules/assets/src/web/inventory-api.ts index c0fecb3..705f851 100644 --- a/modules/assets/src/web/inventory-api.ts +++ b/modules/assets/src/web/inventory-api.ts @@ -2,8 +2,10 @@ import { z } from "zod/v4"; import type { AssetInput } from "../common/inventory"; import { AssetResponseSchema, InventoryResponseSchema } from "../common/inventory"; -import { type RelationshipInputDTO, RelationshipResponseSchema } from "../common/relationships"; -import { type WorkstationInput, WorkstationResponseSchema } from "../common/workstations"; +import type { RelationshipInputDTO } from "../common/relationships"; +import { RelationshipResponseSchema } from "../common/relationships"; +import type { WorkstationInput } from "../common/workstations"; +import { WorkstationResponseSchema } from "../common/workstations"; export const inventoryKeys = { company: (id: string) => ["inventory", id] }; export class InventoryApiError extends Error { constructor(public readonly code: string) { diff --git a/modules/assets/src/web/inventory-page.tsx b/modules/assets/src/web/inventory-page.tsx index 1658f92..7ee9d44 100644 --- a/modules/assets/src/web/inventory-page.tsx +++ b/modules/assets/src/web/inventory-page.tsx @@ -6,17 +6,14 @@ import { EntityStatus, EntityTable, } from "@repo/shadcn-ui/components/entity-list"; -import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; import { useQuery } from "@tanstack/react-query"; import { useState } from "react"; import { useTranslation } from "react-i18next"; -import { AssetDetail } from "./asset-detail"; +import { AssetDetailDialog } from "./asset-detail-dialog"; +import { AssetEditorDialog } from "./asset-editor-dialog"; import type { InventoryLookups } from "./asset-form"; -import { AssetForm } from "./asset-form"; -import { AssetRelationships } from "./asset-relationships"; import { AssetSelectionPanel } from "./asset-selection-panel"; -import { AssetSupport } from "./asset-support"; import { catalogApi, catalogKeys } from "./catalog-api"; import { CatalogError } from "./catalog-error"; import { inventoryApi, inventoryKeys } from "./inventory-api"; @@ -216,54 +213,28 @@ export function AssetInventoryPage({ open={detailOpen} /> {editor && catalog.data && ( - { - if (!open) { - setEditor(undefined); - } + setEditor(undefined)} + onSaved={(id) => { + setSelectedId(id); + setDetailOpen(true); + setEditor(undefined); }} - open - title={t(edited ? "editAsset" : "newAsset")} - wide - > - { - setSelectedId(id); - setDetailOpen(true); - setEditor(undefined); - }} - /> - + /> )} {viewed && ( - { - if (!open) { - setViewId(undefined); - } - }} - open - title={viewed.values.name} - wide - > - - - - - + setViewId(undefined)} + /> )} ); diff --git a/modules/assets/src/web/relationship-editor-dialog.tsx b/modules/assets/src/web/relationship-editor-dialog.tsx new file mode 100644 index 0000000..8b09f72 --- /dev/null +++ b/modules/assets/src/web/relationship-editor-dialog.tsx @@ -0,0 +1,37 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { useTranslation } from "react-i18next"; + +import { RelationshipForm } from "./relationship-form"; + +export function RelationshipEditorDialog({ + companyId, + assetId, + csrfToken, + onSaved, + onOpenChange, +}: { + companyId: string; + assetId: string; + csrfToken: string; + onSaved: () => void; + onOpenChange: (open: boolean) => void; +}) { + const { t } = useTranslation("assets"); + + return ( + + + + ); +} diff --git a/modules/assets/src/web/relationship-form.tsx b/modules/assets/src/web/relationship-form.tsx index 7fb54b6..9619d5b 100644 --- a/modules/assets/src/web/relationship-form.tsx +++ b/modules/assets/src/web/relationship-form.tsx @@ -1,6 +1,6 @@ import { Button } from "@repo/shadcn-ui/components/button"; import { ContextHelp } from "@repo/shadcn-ui/components/context-help"; -import { FormActions, FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { FormActions } from "@repo/shadcn-ui/components/form-dialog"; import { Label } from "@repo/shadcn-ui/components/label"; import { SelectWithAction } from "@repo/shadcn-ui/components/select-with-action"; import { Textarea } from "@repo/shadcn-ui/components/textarea"; @@ -11,7 +11,7 @@ import { useTranslation } from "react-i18next"; import type { RelationshipInputDTO } from "../common"; import { catalogApi, catalogKeys } from "./catalog-api"; -import { CatalogRelationForm } from "./catalog-relation-form"; +import { CatalogRelationCreateDialog } from "./catalog-relation-create-dialog"; import { inventoryApi, inventoryKeys } from "./inventory-api"; import { InventoryFeedback } from "./inventory-feedback"; @@ -112,23 +112,15 @@ export function RelationshipForm({ {quick && ( - -

{t("quickRelationNotice")}

- { - setTypeId(savedId); - setQuick(false); - }} - scope={companyId} - /> -
+ onSaved={(savedId) => { + setTypeId(savedId); + setQuick(false); + }} + /> )} ); diff --git a/modules/assets/src/web/support-api.ts b/modules/assets/src/web/support-api.ts index b1738c3..a667b19 100644 --- a/modules/assets/src/web/support-api.ts +++ b/modules/assets/src/web/support-api.ts @@ -1,10 +1,9 @@ import { z } from "zod/v4"; +import type { SupportInput, SupportToolInput } from "../common/support"; import { - type SupportInput, SupportListSchema, SupportResponseSchema, - type SupportToolInput, SupportToolResponseSchema, SupportToolsSchema, } from "../common/support"; diff --git a/modules/assets/src/web/support-connection-editor-dialog.tsx b/modules/assets/src/web/support-connection-editor-dialog.tsx new file mode 100644 index 0000000..c2a5e65 --- /dev/null +++ b/modules/assets/src/web/support-connection-editor-dialog.tsx @@ -0,0 +1,47 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import type { ComponentProps } from "react"; +import { useTranslation } from "react-i18next"; + +import { SupportForm } from "./support-form"; + +export function SupportConnectionEditorDialog({ + open, + edit, + companyId, + assetId, + csrfToken, + tools, + onSaved, + onOpenChange, +}: { + open: boolean; + edit: ComponentProps["connection"]; + companyId: string; + assetId: string; + csrfToken: string; + tools: ComponentProps["tools"]; + onSaved: () => void; + onOpenChange: (open: boolean) => void; +}) { + const { t } = useTranslation("assets"); + + return ( + + + + ); +} diff --git a/modules/assets/src/web/support-form.tsx b/modules/assets/src/web/support-form.tsx index 938a94e..382d7bd 100644 --- a/modules/assets/src/web/support-form.tsx +++ b/modules/assets/src/web/support-form.tsx @@ -1,6 +1,6 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { Button } from "@repo/shadcn-ui/components/button"; -import { FormActions, FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { FormActions } from "@repo/shadcn-ui/components/form-dialog"; import { Input } from "@repo/shadcn-ui/components/input"; import { Label } from "@repo/shadcn-ui/components/label"; import { SelectWithAction } from "@repo/shadcn-ui/components/select-with-action"; @@ -9,17 +9,13 @@ import { useId, useState } from "react"; import { useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; -import { - type SupportConnectionDTO, - type SupportInput, - type SupportToolDTO, - SupportValuesSchema, -} from "../common/support"; +import type { SupportConnectionDTO, SupportInput, SupportToolDTO } from "../common/support"; +import { SupportValuesSchema } from "../common/support"; import { supportApi, supportKeys } from "./support-api"; import { SupportFeedback } from "./support-feedback"; import { SupportHelp } from "./support-help"; -import { SupportToolForm } from "./support-tool-form"; +import { SupportToolEditorDialog } from "./support-tool-editor-dialog"; export function SupportForm({ companyId, assetId, @@ -135,21 +131,16 @@ export function SupportForm({ - { + form.setValue("toolId", id); + setQuick(false); + }} open={quick} - title={t("support.newTool")} - > - { - form.setValue("toolId", id); - setQuick(false); - }} - /> - + /> ); } diff --git a/modules/assets/src/web/support-history-dialog.tsx b/modules/assets/src/web/support-history-dialog.tsx new file mode 100644 index 0000000..fac62cf --- /dev/null +++ b/modules/assets/src/web/support-history-dialog.tsx @@ -0,0 +1,44 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { useTranslation } from "react-i18next"; + +import type { SupportConnectionDTO, SupportToolDTO } from "../common/support"; + +import { SupportSummary } from "./support-summary"; + +export function SupportHistoryDialog({ + history, + tools, + onOpenChange, +}: { + history: SupportConnectionDTO | undefined; + tools: readonly SupportToolDTO[]; + onOpenChange: (open: boolean) => void; +}) { + const { t, i18n } = useTranslation("assets"); + + return ( + + {history && ( +
    + {[...history.history].reverse().map((revision) => ( +
  1. +

    + {new Intl.DateTimeFormat(i18n.language, { + dateStyle: "medium", + timeStyle: "short", + }).format(new Date(revision.recordedAt))}{" "} + · {revision.actorName} +

    + +
  2. + ))} +
+ )} +
+ ); +} diff --git a/modules/assets/src/web/support-history.tsx b/modules/assets/src/web/support-history.tsx deleted file mode 100644 index 4a8fa9a..0000000 --- a/modules/assets/src/web/support-history.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { useTranslation } from "react-i18next"; - -import type { SupportConnectionDTO, SupportToolDTO } from "../common/support"; - -import { SupportSummary } from "./support-summary"; - -export function SupportHistory({ - connection, - tools, -}: { - connection: SupportConnectionDTO; - tools: readonly SupportToolDTO[]; -}) { - const { i18n } = useTranslation("assets"); - return ( -
    - {[...connection.history].reverse().map((revision) => ( -
  1. -

    - {new Intl.DateTimeFormat(i18n.language, { - dateStyle: "medium", - timeStyle: "short", - }).format(new Date(revision.recordedAt))}{" "} - · {revision.actorName} -

    - -
  2. - ))} -
- ); -} diff --git a/modules/assets/src/web/support-tool-editor-dialog.tsx b/modules/assets/src/web/support-tool-editor-dialog.tsx new file mode 100644 index 0000000..2adde63 --- /dev/null +++ b/modules/assets/src/web/support-tool-editor-dialog.tsx @@ -0,0 +1,38 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import type { ComponentProps } from "react"; +import { useTranslation } from "react-i18next"; + +import { SupportToolForm } from "./support-tool-form"; + +export function SupportToolEditorDialog({ + open, + edit, + csrfToken, + onSaved, + onOpenChange, +}: { + open: boolean; + edit: ComponentProps["tool"]; + csrfToken: string; + onSaved: ComponentProps["onSaved"]; + onOpenChange: (open: boolean) => void; +}) { + const { t } = useTranslation("assets"); + + return ( + + + + ); +} diff --git a/modules/assets/src/web/support-tool-form.tsx b/modules/assets/src/web/support-tool-form.tsx index ce54e65..e8b0b12 100644 --- a/modules/assets/src/web/support-tool-form.tsx +++ b/modules/assets/src/web/support-tool-form.tsx @@ -8,11 +8,8 @@ import { useId } from "react"; import { useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; -import { - type SupportToolDTO, - type SupportToolInput, - SupportToolInputSchema, -} from "../common/support"; +import type { SupportToolDTO, SupportToolInput } from "../common/support"; +import { SupportToolInputSchema } from "../common/support"; import { supportApi, supportKeys } from "./support-api"; import { SupportFeedback } from "./support-feedback"; diff --git a/modules/assets/src/web/support-tools-dialog.tsx b/modules/assets/src/web/support-tools-dialog.tsx new file mode 100644 index 0000000..65e9046 --- /dev/null +++ b/modules/assets/src/web/support-tools-dialog.tsx @@ -0,0 +1,27 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { useTranslation } from "react-i18next"; + +import { SupportTools } from "./support-tools"; + +export function SupportToolsDialog({ + open, + csrfToken, + onOpenChange, +}: { + open: boolean; + csrfToken: string; + onOpenChange: (open: boolean) => void; +}) { + const { t } = useTranslation("assets"); + + return ( + + + + ); +} diff --git a/modules/assets/src/web/support-tools.tsx b/modules/assets/src/web/support-tools.tsx index f6b7b4a..b2d4d30 100644 --- a/modules/assets/src/web/support-tools.tsx +++ b/modules/assets/src/web/support-tools.tsx @@ -6,7 +6,6 @@ import { EntityStatus, EntityTable, } from "@repo/shadcn-ui/components/entity-list"; -import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; import { useQuery } from "@tanstack/react-query"; import { useState } from "react"; import { useTranslation } from "react-i18next"; @@ -14,7 +13,7 @@ import { useTranslation } from "react-i18next"; import type { SupportToolDTO } from "../common/support"; import { supportApi, supportKeys } from "./support-api"; -import { SupportToolForm } from "./support-tool-form"; +import { SupportToolEditorDialog } from "./support-tool-editor-dialog"; export function SupportTools({ csrfToken }: { csrfToken: string }) { const { t, i18n } = useTranslation("assets"); const query = useQuery({ queryKey: supportKeys.tools, queryFn: () => supportApi.tools() }); @@ -102,20 +101,13 @@ export function SupportTools({ csrfToken }: { csrfToken: string }) { title={t("support.tools")} unavailable={query.isError} /> - setOpen(false)} open={open} - title={t(edit ? "support.editTool" : "support.newTool")} - > - setOpen(false)} - /> - + /> ); } diff --git a/modules/assets/src/web/workstation-asset-create-dialog.tsx b/modules/assets/src/web/workstation-asset-create-dialog.tsx new file mode 100644 index 0000000..7e207c4 --- /dev/null +++ b/modules/assets/src/web/workstation-asset-create-dialog.tsx @@ -0,0 +1,44 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import type { ComponentProps } from "react"; +import { useTranslation } from "react-i18next"; + +import { AssetForm } from "./asset-form"; + +export function WorkstationAssetCreateDialog({ + companyId, + csrfToken, + items, + lookups, + onSaved, + onOpenChange, +}: { + companyId: string; + csrfToken: string; + items: ComponentProps["items"]; + lookups: ComponentProps["lookups"]; + onSaved: (id: string) => void; + onOpenChange: (open: boolean) => void; +}) { + const { t } = useTranslation("assets"); + + return ( + +

{t("relatedNotice")}

+ +
+ ); +} diff --git a/modules/assets/src/web/workstation-editor-dialog.tsx b/modules/assets/src/web/workstation-editor-dialog.tsx new file mode 100644 index 0000000..b4d5204 --- /dev/null +++ b/modules/assets/src/web/workstation-editor-dialog.tsx @@ -0,0 +1,44 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import type { ComponentProps } from "react"; +import { useTranslation } from "react-i18next"; + +import { WorkstationForm } from "./workstation-form"; + +export function WorkstationEditorDialog({ + workstation, + companyId, + csrfToken, + lookups, + onClose, +}: { + workstation: ComponentProps["workstation"]; + companyId: string; + csrfToken: string; + lookups: ComponentProps["lookups"]; + onClose: () => void; +}) { + const { t } = useTranslation("assets"); + + return ( + { + if (!open) { + onClose(); + } + }} + open + title={t(workstation ? "editWorkstation" : "newWorkstation")} + wide + > + onClose()} + workstation={workstation} + /> + + ); +} diff --git a/modules/assets/src/web/workstation-form.tsx b/modules/assets/src/web/workstation-form.tsx index e9fc19c..929abb6 100644 --- a/modules/assets/src/web/workstation-form.tsx +++ b/modules/assets/src/web/workstation-form.tsx @@ -1,7 +1,7 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { Button } from "@repo/shadcn-ui/components/button"; import { ContextHelp } from "@repo/shadcn-ui/components/context-help"; -import { FormActions, FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { FormActions } from "@repo/shadcn-ui/components/form-dialog"; import { Input } from "@repo/shadcn-ui/components/input"; import { Label } from "@repo/shadcn-ui/components/label"; import { SelectWithAction } from "@repo/shadcn-ui/components/select-with-action"; @@ -10,13 +10,14 @@ import { useEffect, useId, useRef, useState } from "react"; import { useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; -import { type WorkstationDTO, type WorkstationInput, WorkstationInputSchema } from "../common"; +import type { WorkstationDTO, WorkstationInput } from "../common"; +import { WorkstationInputSchema } from "../common"; import type { InventoryLookups } from "./asset-form"; -import { AssetForm } from "./asset-form"; import { catalogApi, catalogKeys } from "./catalog-api"; import { inventoryApi, inventoryKeys } from "./inventory-api"; import { InventoryFeedback } from "./inventory-feedback"; +import { WorkstationAssetCreateDialog } from "./workstation-asset-create-dialog"; export function WorkstationForm({ companyId, csrfToken, @@ -257,27 +258,17 @@ export function WorkstationForm({ {quick && catalog.data && ( - -

{t("relatedNotice")}

- { - add(quickField, id); - setQuick(false); - }} - /> -
+ onSaved={(id) => { + add(quickField, id); + setQuick(false); + }} + /> )} ); diff --git a/modules/assets/src/web/workstation-history-dialog.tsx b/modules/assets/src/web/workstation-history-dialog.tsx new file mode 100644 index 0000000..3719c6f --- /dev/null +++ b/modules/assets/src/web/workstation-history-dialog.tsx @@ -0,0 +1,61 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { useTranslation } from "react-i18next"; + +import type { WorkstationDTO } from "../common"; + +export function WorkstationHistoryDialog({ + workstation, + personName, + siteName, + members, + onClose, +}: { + workstation: WorkstationDTO; + personName: (id: string | null) => string; + siteName: (id: string | null) => string; + members: (ids: readonly string[], empty?: string) => string; + onClose: () => void; +}) { + const { t, i18n } = useTranslation("assets"); + + return ( + { + if (!open) { + onClose(); + } + }} + open + title={t("workstationHistory")} + wide + > +
    + {[...workstation.history].reverse().map((revision) => ( +
  1. +

    + {new Intl.DateTimeFormat(i18n.language, { + dateStyle: "medium", + timeStyle: "short", + }).format(new Date(revision.recordedAt))}{" "} + · {t("recordedBy", { name: revision.actorName })} +

    +

    + {revision.values.name} · {t(revision.values.active ? "active" : "inactive")} +

    +

    + {siteName(revision.values.siteId)} · {personName(revision.values.personId)} +

    +

    + {t("exclusiveWorkstationAssets")}: {members(revision.values.assetIds)} +

    +

    + {t("sharedWorkstationAssets")}:{" "} + {members(revision.values.sharedAssetIds, "noSharedWorkstationAssets")} +

    +
  2. + ))} +
+
+ ); +} diff --git a/modules/assets/src/web/workstations-page.tsx b/modules/assets/src/web/workstations-page.tsx index abbde87..e565255 100644 --- a/modules/assets/src/web/workstations-page.tsx +++ b/modules/assets/src/web/workstations-page.tsx @@ -6,7 +6,6 @@ import { EntityStatus, EntityTable, } from "@repo/shadcn-ui/components/entity-list"; -import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; import { useQuery } from "@tanstack/react-query"; import { useState } from "react"; import { useTranslation } from "react-i18next"; @@ -14,7 +13,8 @@ import { useTranslation } from "react-i18next"; import type { InventoryLookups } from "./asset-form"; import { inventoryApi, inventoryKeys } from "./inventory-api"; import { InventoryFeedback } from "./inventory-feedback"; -import { WorkstationForm } from "./workstation-form"; +import { WorkstationEditorDialog } from "./workstation-editor-dialog"; +import { WorkstationHistoryDialog } from "./workstation-history-dialog"; export function WorkstationsPage({ companyId, csrfToken, @@ -166,66 +166,22 @@ export function WorkstationsPage({ /> )} {editor && ( - { - if (!open) { - setEditor(undefined); - } - }} - open - title={t(edited ? "editWorkstation" : "newWorkstation")} - wide - > - setEditor(undefined)} - workstation={edited} - /> - + setEditor(undefined)} + workstation={edited} + /> )} {viewed && ( - { - if (!open) { - setView(undefined); - } - }} - open - title={t("workstationHistory")} - wide - > -
    - {[...viewed.history].reverse().map((revision) => ( -
  1. -

    - {new Intl.DateTimeFormat(i18n.language, { - dateStyle: "medium", - timeStyle: "short", - }).format(new Date(revision.recordedAt))}{" "} - · {t("recordedBy", { name: revision.actorName })} -

    -

    - {revision.values.name} · {t(revision.values.active ? "active" : "inactive")} -

    -

    - {siteName(revision.values.siteId)} · {personName(revision.values.personId)} -

    -

    - {t("exclusiveWorkstationAssets")}: {members(revision.values.assetIds)} -

    -

    - {t("sharedWorkstationAssets")}:{" "} - {members(revision.values.sharedAssetIds, "noSharedWorkstationAssets")} -

    -
  2. - ))} -
-
+ setView(undefined)} + personName={personName} + siteName={siteName} + workstation={viewed} + /> )} ); diff --git a/modules/companies/src/api/application/application-configuration-input.mapper.ts b/modules/companies/src/api/application/application-configuration-input.mapper.ts index c5bace5..b91be09 100644 --- a/modules/companies/src/api/application/application-configuration-input.mapper.ts +++ b/modules/companies/src/api/application/application-configuration-input.mapper.ts @@ -1,10 +1,8 @@ import { Result } from "@repo/rdx-utils"; import type { ApplicationConfiguration } from "../domain/application-configuration.aggregate"; -import { - ApplicationConfigurationError, - type ApplicationConfigurationInput, -} from "../domain/application-configuration-values"; +import type { ApplicationConfigurationInput } from "../domain/application-configuration-values"; +import { ApplicationConfigurationError } from "../domain/application-configuration-values"; import { ApplicationConfigurationValues } from "../domain/value-objects/application-configuration-values"; import type { ApplicationContext } from "./application-configuration.repository"; diff --git a/modules/companies/src/api/application/application-configuration.use-cases.ts b/modules/companies/src/api/application/application-configuration.use-cases.ts index f795b8e..45d7f7f 100644 --- a/modules/companies/src/api/application/application-configuration.use-cases.ts +++ b/modules/companies/src/api/application/application-configuration.use-cases.ts @@ -2,10 +2,8 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { ApplicationConfiguration } from "../domain/application-configuration.aggregate"; -import { - ApplicationConfigurationError, - type ApplicationConfigurationInput, -} from "../domain/application-configuration-values"; +import type { ApplicationConfigurationInput } from "../domain/application-configuration-values"; +import { ApplicationConfigurationError } from "../domain/application-configuration-values"; import type { IApplicationConfigurationRepository } from "./application-configuration.repository"; import { mapApplicationInput } from "./application-configuration-input.mapper"; diff --git a/modules/companies/src/api/application/certificate-configuration-input.mapper.ts b/modules/companies/src/api/application/certificate-configuration-input.mapper.ts index 7726afd..fa6a4ac 100644 --- a/modules/companies/src/api/application/certificate-configuration-input.mapper.ts +++ b/modules/companies/src/api/application/certificate-configuration-input.mapper.ts @@ -1,10 +1,8 @@ import { Result } from "@repo/rdx-utils"; import type { CertificateConfiguration } from "../domain/certificate-configuration.aggregate"; -import { - CertificateConfigurationError, - type CertificateConfigurationInput, -} from "../domain/certificate-configuration-values"; +import type { CertificateConfigurationInput } from "../domain/certificate-configuration-values"; +import { CertificateConfigurationError } from "../domain/certificate-configuration-values"; import { CertificateConfigurationValues } from "../domain/value-objects/certificate-configuration-values"; import type { CertificateContext } from "./certificate-configuration.repository"; diff --git a/modules/companies/src/api/application/certificate-configuration.use-cases.ts b/modules/companies/src/api/application/certificate-configuration.use-cases.ts index c235418..7634ee7 100644 --- a/modules/companies/src/api/application/certificate-configuration.use-cases.ts +++ b/modules/companies/src/api/application/certificate-configuration.use-cases.ts @@ -2,10 +2,8 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { CertificateConfiguration } from "../domain/certificate-configuration.aggregate"; -import { - CertificateConfigurationError, - type CertificateConfigurationInput, -} from "../domain/certificate-configuration-values"; +import type { CertificateConfigurationInput } from "../domain/certificate-configuration-values"; +import { CertificateConfigurationError } from "../domain/certificate-configuration-values"; import type { ICertificateConfigurationRepository } from "./certificate-configuration.repository"; import { mapCertificateInput } from "./certificate-configuration-input.mapper"; diff --git a/modules/companies/src/api/application/folder-mapping-input.mapper.ts b/modules/companies/src/api/application/folder-mapping-input.mapper.ts index 74082d9..e4d7b29 100644 --- a/modules/companies/src/api/application/folder-mapping-input.mapper.ts +++ b/modules/companies/src/api/application/folder-mapping-input.mapper.ts @@ -1,7 +1,8 @@ import { Result } from "@repo/rdx-utils"; import type { FolderMapping } from "../domain/folder-mapping.aggregate"; -import { FolderMappingError, type FolderMappingInput } from "../domain/folder-mapping-values"; +import type { FolderMappingInput } from "../domain/folder-mapping-values"; +import { FolderMappingError } from "../domain/folder-mapping-values"; import { FolderMappingValues } from "../domain/value-objects/folder-mapping-values"; import type { FolderContext } from "./folder-mapping.repository"; diff --git a/modules/companies/src/api/application/folder-mapping.use-cases.ts b/modules/companies/src/api/application/folder-mapping.use-cases.ts index 64b34c2..40b1349 100644 --- a/modules/companies/src/api/application/folder-mapping.use-cases.ts +++ b/modules/companies/src/api/application/folder-mapping.use-cases.ts @@ -2,7 +2,8 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { FolderMapping } from "../domain/folder-mapping.aggregate"; -import { FolderMappingError, type FolderMappingInput } from "../domain/folder-mapping-values"; +import type { FolderMappingInput } from "../domain/folder-mapping-values"; +import { FolderMappingError } from "../domain/folder-mapping-values"; import type { IFolderMappingRepository } from "./folder-mapping.repository"; import { mapFolderInput } from "./folder-mapping-input.mapper"; diff --git a/modules/companies/src/api/application/intervention-input.mapper.ts b/modules/companies/src/api/application/intervention-input.mapper.ts index 03691e8..4b6b34a 100644 --- a/modules/companies/src/api/application/intervention-input.mapper.ts +++ b/modules/companies/src/api/application/intervention-input.mapper.ts @@ -1,7 +1,8 @@ import { Result } from "@repo/rdx-utils"; import type { Intervention } from "../domain/intervention.aggregate"; -import { InterventionError, type InterventionInput } from "../domain/intervention-values"; +import type { InterventionInput } from "../domain/intervention-values"; +import { InterventionError } from "../domain/intervention-values"; import { InterventionValues } from "../domain/value-objects/intervention-values"; import type { InterventionSaveContext } from "./intervention.repository"; diff --git a/modules/companies/src/api/application/intervention-template.use-cases.ts b/modules/companies/src/api/application/intervention-template.use-cases.ts index 4529c80..8e843d3 100644 --- a/modules/companies/src/api/application/intervention-template.use-cases.ts +++ b/modules/companies/src/api/application/intervention-template.use-cases.ts @@ -1,10 +1,8 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; -import { - type SaveInterventionTemplateInput, - SaveInterventionTemplateSchema, -} from "../../common/intervention-templates"; +import type { SaveInterventionTemplateInput } from "../../common/intervention-templates"; +import { SaveInterventionTemplateSchema } from "../../common/intervention-templates"; import { InterventionTemplate } from "../domain/intervention-template.aggregate"; import { InterventionTemplateError } from "../domain/intervention-template-values"; import { InterventionTemplateValues } from "../domain/value-objects/intervention-template-values"; diff --git a/modules/companies/src/api/application/mail-configuration-input.mapper.ts b/modules/companies/src/api/application/mail-configuration-input.mapper.ts index f2fcdd4..f56a1bb 100644 --- a/modules/companies/src/api/application/mail-configuration-input.mapper.ts +++ b/modules/companies/src/api/application/mail-configuration-input.mapper.ts @@ -2,10 +2,8 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import type { MailConfiguration } from "../domain/mail-configuration.aggregate"; -import { - MailConfigurationError, - type MailConfigurationInput, -} from "../domain/mail-configuration-values"; +import type { MailConfigurationInput } from "../domain/mail-configuration-values"; +import { MailConfigurationError } from "../domain/mail-configuration-values"; import { MailConfigurationValues } from "../domain/value-objects/mail-configuration-values"; import type { MailContext } from "./mail-configuration.repository"; diff --git a/modules/companies/src/api/application/mail-configuration.use-cases.ts b/modules/companies/src/api/application/mail-configuration.use-cases.ts index 41f1971..35eabe1 100644 --- a/modules/companies/src/api/application/mail-configuration.use-cases.ts +++ b/modules/companies/src/api/application/mail-configuration.use-cases.ts @@ -2,10 +2,8 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { MailConfiguration } from "../domain/mail-configuration.aggregate"; -import { - MailConfigurationError, - type MailConfigurationInput, -} from "../domain/mail-configuration-values"; +import type { MailConfigurationInput } from "../domain/mail-configuration-values"; +import { MailConfigurationError } from "../domain/mail-configuration-values"; import type { IMailConfigurationRepository } from "./mail-configuration.repository"; import { mapMailInput } from "./mail-configuration-input.mapper"; diff --git a/modules/companies/src/api/application/mailbox-input.mapper.ts b/modules/companies/src/api/application/mailbox-input.mapper.ts index 5efccfc..943f233 100644 --- a/modules/companies/src/api/application/mailbox-input.mapper.ts +++ b/modules/companies/src/api/application/mailbox-input.mapper.ts @@ -2,7 +2,8 @@ import { Result } from "@repo/rdx-utils"; import type { Mailbox } from "../domain/mailbox.aggregate"; import type { MailboxUse } from "../domain/mailbox-use.aggregate"; -import { MailboxError, type MailboxInput, type MailboxUseInput } from "../domain/mailbox-values"; +import type { MailboxInput, MailboxUseInput } from "../domain/mailbox-values"; +import { MailboxError } from "../domain/mailbox-values"; import { MailboxUseValues } from "../domain/value-objects/mailbox-use-values"; import { MailboxValues } from "../domain/value-objects/mailbox-values"; diff --git a/modules/companies/src/api/application/mailbox.use-cases.ts b/modules/companies/src/api/application/mailbox.use-cases.ts index b601737..23f637a 100644 --- a/modules/companies/src/api/application/mailbox.use-cases.ts +++ b/modules/companies/src/api/application/mailbox.use-cases.ts @@ -3,7 +3,8 @@ import { Result } from "@repo/rdx-utils"; import { Mailbox } from "../domain/mailbox.aggregate"; import { MailboxUse } from "../domain/mailbox-use.aggregate"; -import { MailboxError, type MailboxInput, type MailboxUseInput } from "../domain/mailbox-values"; +import type { MailboxInput, MailboxUseInput } from "../domain/mailbox-values"; +import { MailboxError } from "../domain/mailbox-values"; import type { IMailboxRepository, MailboxContext } from "./mailbox.repository"; import { mapMailboxInput, mapMailboxUseInput } from "./mailbox-input.mapper"; diff --git a/modules/companies/src/api/application/printer-configuration-input.mapper.ts b/modules/companies/src/api/application/printer-configuration-input.mapper.ts index 4acef7b..6e70b71 100644 --- a/modules/companies/src/api/application/printer-configuration-input.mapper.ts +++ b/modules/companies/src/api/application/printer-configuration-input.mapper.ts @@ -1,10 +1,8 @@ import { Result } from "@repo/rdx-utils"; import type { PrinterConfiguration } from "../domain/printer-configuration.aggregate"; -import { - PrinterConfigurationError, - type PrinterConfigurationInput, -} from "../domain/printer-configuration-values"; +import type { PrinterConfigurationInput } from "../domain/printer-configuration-values"; +import { PrinterConfigurationError } from "../domain/printer-configuration-values"; import { PrinterConfigurationValues } from "../domain/value-objects/printer-configuration-values"; import type { PrinterContext } from "./printer-configuration.repository"; diff --git a/modules/companies/src/api/application/printer-configuration.use-cases.ts b/modules/companies/src/api/application/printer-configuration.use-cases.ts index 3821b28..bc0b19b 100644 --- a/modules/companies/src/api/application/printer-configuration.use-cases.ts +++ b/modules/companies/src/api/application/printer-configuration.use-cases.ts @@ -2,10 +2,8 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { PrinterConfiguration } from "../domain/printer-configuration.aggregate"; -import { - PrinterConfigurationError, - type PrinterConfigurationInput, -} from "../domain/printer-configuration-values"; +import type { PrinterConfigurationInput } from "../domain/printer-configuration-values"; +import { PrinterConfigurationError } from "../domain/printer-configuration-values"; import type { IPrinterConfigurationRepository } from "./printer-configuration.repository"; import { mapPrinterInput } from "./printer-configuration-input.mapper"; diff --git a/modules/companies/src/api/application/process.use-cases.ts b/modules/companies/src/api/application/process.use-cases.ts index 1e6617d..d3a15dd 100644 --- a/modules/companies/src/api/application/process.use-cases.ts +++ b/modules/companies/src/api/application/process.use-cases.ts @@ -4,12 +4,12 @@ import { Maybe, Result } from "@repo/rdx-utils"; import { PersonProcess } from "../domain/process.aggregate"; import { ProcessTask } from "../domain/process-task.entity"; import { ProcessTemplate } from "../domain/process-template.aggregate"; -import { - ProcessError, - type ProcessTemplateInput, - type StartProcessInput, - type UpdateProcessInput, +import type { + ProcessTemplateInput, + StartProcessInput, + UpdateProcessInput, } from "../domain/process-values"; +import { ProcessError } from "../domain/process-values"; import { ProcessTemplateValues } from "../domain/value-objects/process-template-values"; import { ProcessValues } from "../domain/value-objects/process-values"; diff --git a/modules/companies/src/api/application/remote-connection-input.mapper.ts b/modules/companies/src/api/application/remote-connection-input.mapper.ts index 7c5bef9..693bbac 100644 --- a/modules/companies/src/api/application/remote-connection-input.mapper.ts +++ b/modules/companies/src/api/application/remote-connection-input.mapper.ts @@ -1,10 +1,8 @@ import { Result } from "@repo/rdx-utils"; import type { RemoteConnection } from "../domain/remote-connection.aggregate"; -import { - RemoteConnectionError, - type RemoteConnectionInput, -} from "../domain/remote-connection-values"; +import type { RemoteConnectionInput } from "../domain/remote-connection-values"; +import { RemoteConnectionError } from "../domain/remote-connection-values"; import { RemoteConnectionValues } from "../domain/value-objects/remote-connection-values"; import type { RemoteContext } from "./remote-connection.repository"; diff --git a/modules/companies/src/api/application/telework-authorization-input.mapper.ts b/modules/companies/src/api/application/telework-authorization-input.mapper.ts index 476820f..98b5aa0 100644 --- a/modules/companies/src/api/application/telework-authorization-input.mapper.ts +++ b/modules/companies/src/api/application/telework-authorization-input.mapper.ts @@ -1,10 +1,8 @@ import { Result } from "@repo/rdx-utils"; import type { TeleworkAuthorization } from "../domain/telework-authorization.aggregate"; -import { - TeleworkAuthorizationError, - type TeleworkAuthorizationInput, -} from "../domain/telework-authorization-values"; +import type { TeleworkAuthorizationInput } from "../domain/telework-authorization-values"; +import { TeleworkAuthorizationError } from "../domain/telework-authorization-values"; import { TeleworkAuthorizationValues } from "../domain/value-objects/telework-authorization-values"; import type { TeleworkAuthorizationContext } from "./telework-authorization.repository"; diff --git a/modules/companies/src/api/application/ticket-input.mapper.ts b/modules/companies/src/api/application/ticket-input.mapper.ts index c11ec32..8c8ab95 100644 --- a/modules/companies/src/api/application/ticket-input.mapper.ts +++ b/modules/companies/src/api/application/ticket-input.mapper.ts @@ -1,10 +1,12 @@ import { Result } from "@repo/rdx-utils"; import type { Ticket } from "../domain/ticket.aggregate"; -import { TicketError, type TicketInput } from "../domain/ticket-values"; +import type { TicketInput } from "../domain/ticket-values"; +import { TicketError } from "../domain/ticket-values"; import { TicketValues } from "../domain/value-objects/ticket-values"; -import { type TicketOption, type TicketSaveContext, targetOptions } from "./ticket.repository"; +import type { TicketOption, TicketSaveContext } from "./ticket.repository"; +import { targetOptions } from "./ticket.repository"; function available( options: readonly TicketOption[], diff --git a/modules/companies/src/api/application/work-profile-input.mapper.ts b/modules/companies/src/api/application/work-profile-input.mapper.ts index a48f26f..388bb2c 100644 --- a/modules/companies/src/api/application/work-profile-input.mapper.ts +++ b/modules/companies/src/api/application/work-profile-input.mapper.ts @@ -2,7 +2,8 @@ import { Result } from "@repo/rdx-utils"; import { WorkProfileValues } from "../domain/value-objects/work-profile-values"; import type { WorkProfile } from "../domain/work-profile.aggregate"; -import { WorkProfileError, type WorkProfileInput } from "../domain/work-profile-values"; +import type { WorkProfileInput } from "../domain/work-profile-values"; +import { WorkProfileError } from "../domain/work-profile-values"; import type { WorkProfileContext } from "./work-profile.repository"; diff --git a/modules/companies/src/api/domain/access/access-workspace.aggregate.ts b/modules/companies/src/api/domain/access/access-workspace.aggregate.ts index d49f5f8..cf91378 100644 --- a/modules/companies/src/api/domain/access/access-workspace.aggregate.ts +++ b/modules/companies/src/api/domain/access/access-workspace.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import type { Maybe } from "@repo/rdx-utils"; import { Result } from "@repo/rdx-utils"; diff --git a/modules/companies/src/api/domain/application-configuration-revision.entity.ts b/modules/companies/src/api/domain/application-configuration-revision.entity.ts index a9a699b..986dcfd 100644 --- a/modules/companies/src/api/domain/application-configuration-revision.entity.ts +++ b/modules/companies/src/api/domain/application-configuration-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { ApplicationConfigurationValues } from "./value-objects/application-configuration-values"; export type ApplicationConfigurationRevisionProps = Readonly<{ diff --git a/modules/companies/src/api/domain/application-configuration.aggregate.ts b/modules/companies/src/api/domain/application-configuration.aggregate.ts index fc18a05..dd5d9f3 100644 --- a/modules/companies/src/api/domain/application-configuration.aggregate.ts +++ b/modules/companies/src/api/domain/application-configuration.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/companies/src/api/domain/application-configuration.test.ts b/modules/companies/src/api/domain/application-configuration.test.ts index b3d0596..b0c63e6 100644 --- a/modules/companies/src/api/domain/application-configuration.test.ts +++ b/modules/companies/src/api/domain/application-configuration.test.ts @@ -9,10 +9,8 @@ import { buildApplicationResponse } from "../application/application-configurati import { ApplicationConfigurationPersistenceMapper } from "../infrastructure/persistence/application-configuration-persistence.mapper"; import { ApplicationConfiguration } from "./application-configuration.aggregate"; -import { - type ApplicationConfigurationInput, - ApplicationConfigurationInputSchema, -} from "./application-configuration-values"; +import type { ApplicationConfigurationInput } from "./application-configuration-values"; +import { ApplicationConfigurationInputSchema } from "./application-configuration-values"; import { ApplicationConfigurationValues } from "./value-objects/application-configuration-values"; import { WorkProfileValues } from "./value-objects/work-profile-values"; import { WorkProfile } from "./work-profile.aggregate"; diff --git a/modules/companies/src/api/domain/certificate-configuration-revision.entity.ts b/modules/companies/src/api/domain/certificate-configuration-revision.entity.ts index 2a4a933..7085fdd 100644 --- a/modules/companies/src/api/domain/certificate-configuration-revision.entity.ts +++ b/modules/companies/src/api/domain/certificate-configuration-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { CertificateConfigurationValues } from "./value-objects/certificate-configuration-values"; export type CertificateConfigurationRevisionProps = Readonly<{ diff --git a/modules/companies/src/api/domain/certificate-configuration.aggregate.ts b/modules/companies/src/api/domain/certificate-configuration.aggregate.ts index c73e407..f80ba38 100644 --- a/modules/companies/src/api/domain/certificate-configuration.aggregate.ts +++ b/modules/companies/src/api/domain/certificate-configuration.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/companies/src/api/domain/certificate-configuration.test.ts b/modules/companies/src/api/domain/certificate-configuration.test.ts index a860067..aee37c6 100644 --- a/modules/companies/src/api/domain/certificate-configuration.test.ts +++ b/modules/companies/src/api/domain/certificate-configuration.test.ts @@ -9,10 +9,8 @@ import { buildCertificateResponse } from "../application/certificate-configurati import { CertificateConfigurationPersistenceMapper } from "../infrastructure/persistence/certificate-configuration-persistence.mapper"; import { CertificateConfiguration } from "./certificate-configuration.aggregate"; -import { - type CertificateConfigurationInput, - CertificateConfigurationInputSchema, -} from "./certificate-configuration-values"; +import type { CertificateConfigurationInput } from "./certificate-configuration-values"; +import { CertificateConfigurationInputSchema } from "./certificate-configuration-values"; import { CertificateConfigurationValues } from "./value-objects/certificate-configuration-values"; import { WorkProfileValues } from "./value-objects/work-profile-values"; import { WorkProfile } from "./work-profile.aggregate"; diff --git a/modules/companies/src/api/domain/folder-mapping-revision.entity.ts b/modules/companies/src/api/domain/folder-mapping-revision.entity.ts index 0a4f4f9..996ffee 100644 --- a/modules/companies/src/api/domain/folder-mapping-revision.entity.ts +++ b/modules/companies/src/api/domain/folder-mapping-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { FolderMappingValues } from "./value-objects/folder-mapping-values"; export type FolderMappingRevisionProps = Readonly<{ diff --git a/modules/companies/src/api/domain/folder-mapping.aggregate.ts b/modules/companies/src/api/domain/folder-mapping.aggregate.ts index bc077ca..0d590a0 100644 --- a/modules/companies/src/api/domain/folder-mapping.aggregate.ts +++ b/modules/companies/src/api/domain/folder-mapping.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/companies/src/api/domain/intervention-revision.entity.ts b/modules/companies/src/api/domain/intervention-revision.entity.ts index 8e5bb62..ff61703 100644 --- a/modules/companies/src/api/domain/intervention-revision.entity.ts +++ b/modules/companies/src/api/domain/intervention-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { InterventionValues } from "./value-objects/intervention-values"; export type InterventionRevisionProps = Readonly<{ diff --git a/modules/companies/src/api/domain/intervention-step.entity.ts b/modules/companies/src/api/domain/intervention-step.entity.ts index 51fac39..c0e4731 100644 --- a/modules/companies/src/api/domain/intervention-step.entity.ts +++ b/modules/companies/src/api/domain/intervention-step.entity.ts @@ -1,11 +1,8 @@ import { DomainEntity, Name, UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { - type InterventionCheckInput, - InterventionError, - InterventionStepSchema, -} from "./intervention-values"; +import type { InterventionCheckInput } from "./intervention-values"; +import { InterventionError, InterventionStepSchema } from "./intervention-values"; type Props = Readonly<{ title: Name; diff --git a/modules/companies/src/api/domain/intervention-template-revision.entity.ts b/modules/companies/src/api/domain/intervention-template-revision.entity.ts index ec5a13f..46c0fcd 100644 --- a/modules/companies/src/api/domain/intervention-template-revision.entity.ts +++ b/modules/companies/src/api/domain/intervention-template-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { Maybe } from "@repo/rdx-utils"; import type { InterventionTemplateValues } from "./value-objects/intervention-template-values"; diff --git a/modules/companies/src/api/domain/intervention-template-step.entity.ts b/modules/companies/src/api/domain/intervention-template-step.entity.ts index 67c240e..acd2944 100644 --- a/modules/companies/src/api/domain/intervention-template-step.entity.ts +++ b/modules/companies/src/api/domain/intervention-template-step.entity.ts @@ -1,8 +1,8 @@ import { DomainEntity, Name, UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; +import type { InterventionStepInput } from "./intervention-template-values"; import { - type InterventionStepInput, InterventionStepInputSchema, InterventionTemplateError, } from "./intervention-template-values"; diff --git a/modules/companies/src/api/domain/intervention-template.aggregate.ts b/modules/companies/src/api/domain/intervention-template.aggregate.ts index 48e1683..e80bd9a 100644 --- a/modules/companies/src/api/domain/intervention-template.aggregate.ts +++ b/modules/companies/src/api/domain/intervention-template.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/companies/src/api/domain/intervention-template.test.ts b/modules/companies/src/api/domain/intervention-template.test.ts index fae2a9a..2ad4193 100644 --- a/modules/companies/src/api/domain/intervention-template.test.ts +++ b/modules/companies/src/api/domain/intervention-template.test.ts @@ -9,10 +9,8 @@ import { InterventionTemplatePersistenceMapper } from "../infrastructure/persist import { InterventionTemplate } from "./intervention-template.aggregate"; import { interventionTemplateSeeds } from "./intervention-template-seed"; -import { - type InterventionTemplateInput, - InterventionTemplateInputSchema, -} from "./intervention-template-values"; +import type { InterventionTemplateInput } from "./intervention-template-values"; +import { InterventionTemplateInputSchema } from "./intervention-template-values"; import { InterventionTemplateValues } from "./value-objects/intervention-template-values"; const actor = UniqueID.generateNewID(); diff --git a/modules/companies/src/api/domain/intervention.aggregate.ts b/modules/companies/src/api/domain/intervention.aggregate.ts index b5ba4ff..c6c5cd0 100644 --- a/modules/companies/src/api/domain/intervention.aggregate.ts +++ b/modules/companies/src/api/domain/intervention.aggregate.ts @@ -1,5 +1,7 @@ -import { AggregateRoot, type Name, type UniqueID } from "@repo/rdx-ddd"; -import { type Maybe, Result } from "@repo/rdx-utils"; +import type { Name, UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; +import type { Maybe } from "@repo/rdx-utils"; +import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; import { InterventionRevision } from "./intervention-revision.entity"; diff --git a/modules/companies/src/api/domain/intervention.test.ts b/modules/companies/src/api/domain/intervention.test.ts index 093c3da..da3bb0d 100644 --- a/modules/companies/src/api/domain/intervention.test.ts +++ b/modules/companies/src/api/domain/intervention.test.ts @@ -7,7 +7,8 @@ import { Maybe } from "@repo/rdx-utils"; import { InterventionPersistenceMapper } from "../infrastructure/persistence/intervention-persistence.mapper"; import { Intervention } from "./intervention.aggregate"; -import { type InterventionInput, InterventionInputSchema } from "./intervention-values"; +import type { InterventionInput } from "./intervention-values"; +import { InterventionInputSchema } from "./intervention-values"; import { InterventionProcedure } from "./value-objects/intervention-procedure"; import { InterventionValues } from "./value-objects/intervention-values"; diff --git a/modules/companies/src/api/domain/mail-configuration-revision.entity.ts b/modules/companies/src/api/domain/mail-configuration-revision.entity.ts index 9945ad8..0fe8d03 100644 --- a/modules/companies/src/api/domain/mail-configuration-revision.entity.ts +++ b/modules/companies/src/api/domain/mail-configuration-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { MailConfigurationValues } from "./value-objects/mail-configuration-values"; export type MailRevisionProps = Readonly<{ diff --git a/modules/companies/src/api/domain/mail-configuration.aggregate.ts b/modules/companies/src/api/domain/mail-configuration.aggregate.ts index 6263feb..29cb928 100644 --- a/modules/companies/src/api/domain/mail-configuration.aggregate.ts +++ b/modules/companies/src/api/domain/mail-configuration.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/companies/src/api/domain/mailbox-revision.entity.ts b/modules/companies/src/api/domain/mailbox-revision.entity.ts index f209ce5..7a4c631 100644 --- a/modules/companies/src/api/domain/mailbox-revision.entity.ts +++ b/modules/companies/src/api/domain/mailbox-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { MailboxValues } from "./value-objects/mailbox-values"; export type MailboxRevisionProps = Readonly<{ diff --git a/modules/companies/src/api/domain/mailbox-use-revision.entity.ts b/modules/companies/src/api/domain/mailbox-use-revision.entity.ts index 77652f7..6a3a582 100644 --- a/modules/companies/src/api/domain/mailbox-use-revision.entity.ts +++ b/modules/companies/src/api/domain/mailbox-use-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { MailboxUseValues } from "./value-objects/mailbox-use-values"; export type MailboxUseRevisionProps = Readonly<{ diff --git a/modules/companies/src/api/domain/mailbox-use.aggregate.ts b/modules/companies/src/api/domain/mailbox-use.aggregate.ts index c5b361b..e25d226 100644 --- a/modules/companies/src/api/domain/mailbox-use.aggregate.ts +++ b/modules/companies/src/api/domain/mailbox-use.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/companies/src/api/domain/mailbox.aggregate.ts b/modules/companies/src/api/domain/mailbox.aggregate.ts index 37b6e54..8838272 100644 --- a/modules/companies/src/api/domain/mailbox.aggregate.ts +++ b/modules/companies/src/api/domain/mailbox.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/companies/src/api/domain/printer-configuration-revision.entity.ts b/modules/companies/src/api/domain/printer-configuration-revision.entity.ts index f5f3f13..1c33af4 100644 --- a/modules/companies/src/api/domain/printer-configuration-revision.entity.ts +++ b/modules/companies/src/api/domain/printer-configuration-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { PrinterConfigurationValues } from "./value-objects/printer-configuration-values"; export type PrinterConfigurationRevisionProps = Readonly<{ diff --git a/modules/companies/src/api/domain/printer-configuration.aggregate.ts b/modules/companies/src/api/domain/printer-configuration.aggregate.ts index 2876d5b..e7848e3 100644 --- a/modules/companies/src/api/domain/printer-configuration.aggregate.ts +++ b/modules/companies/src/api/domain/printer-configuration.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/companies/src/api/domain/printer-configuration.test.ts b/modules/companies/src/api/domain/printer-configuration.test.ts index 4b1e1be..d6e0729 100644 --- a/modules/companies/src/api/domain/printer-configuration.test.ts +++ b/modules/companies/src/api/domain/printer-configuration.test.ts @@ -9,10 +9,8 @@ import { buildPrinterResponse } from "../application/printer-configuration-respo import { PrinterConfigurationPersistenceMapper } from "../infrastructure/persistence/printer-configuration-persistence.mapper"; import { PrinterConfiguration } from "./printer-configuration.aggregate"; -import { - type PrinterConfigurationInput, - PrinterConfigurationInputSchema, -} from "./printer-configuration-values"; +import type { PrinterConfigurationInput } from "./printer-configuration-values"; +import { PrinterConfigurationInputSchema } from "./printer-configuration-values"; import { PrinterConfigurationValues } from "./value-objects/printer-configuration-values"; import { WorkProfileValues } from "./value-objects/work-profile-values"; import { WorkProfile } from "./work-profile.aggregate"; diff --git a/modules/companies/src/api/domain/process-revision.entity.ts b/modules/companies/src/api/domain/process-revision.entity.ts index e413990..783d16e 100644 --- a/modules/companies/src/api/domain/process-revision.entity.ts +++ b/modules/companies/src/api/domain/process-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { Maybe } from "@repo/rdx-utils"; import type { ProcessValues } from "./value-objects/process-values"; diff --git a/modules/companies/src/api/domain/process-task.entity.ts b/modules/companies/src/api/domain/process-task.entity.ts index 9907b86..621fa11 100644 --- a/modules/companies/src/api/domain/process-task.entity.ts +++ b/modules/companies/src/api/domain/process-task.entity.ts @@ -1,12 +1,8 @@ import { DomainEntity, Name, UniqueID } from "@repo/rdx-ddd"; import { Maybe } from "@repo/rdx-utils"; -import { - type ProcessReferenceInput, - ProcessReferenceSchema, - type ProcessTaskInput, - ProcessTaskSchema, -} from "./process-values"; +import type { ProcessReferenceInput, ProcessTaskInput } from "./process-values"; +import { ProcessReferenceSchema, ProcessTaskSchema } from "./process-values"; class ProcessReferenceValues { private constructor( diff --git a/modules/companies/src/api/domain/process-template-revision.entity.ts b/modules/companies/src/api/domain/process-template-revision.entity.ts index b1d1116..9f04c0f 100644 --- a/modules/companies/src/api/domain/process-template-revision.entity.ts +++ b/modules/companies/src/api/domain/process-template-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { Maybe } from "@repo/rdx-utils"; import type { ProcessTemplateValues } from "./value-objects/process-template-values"; diff --git a/modules/companies/src/api/domain/process-template.aggregate.ts b/modules/companies/src/api/domain/process-template.aggregate.ts index 8c687b4..bb99288 100644 --- a/modules/companies/src/api/domain/process-template.aggregate.ts +++ b/modules/companies/src/api/domain/process-template.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/companies/src/api/domain/process.aggregate.ts b/modules/companies/src/api/domain/process.aggregate.ts index 0a55707..dcec9bf 100644 --- a/modules/companies/src/api/domain/process.aggregate.ts +++ b/modules/companies/src/api/domain/process.aggregate.ts @@ -1,10 +1,12 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; import { PersonProcessRevision } from "./process-revision.entity"; import { ProcessTask } from "./process-task.entity"; -import { ProcessError, type ProcessReferenceInput } from "./process-values"; +import type { ProcessReferenceInput } from "./process-values"; +import { ProcessError } from "./process-values"; import { ProcessValues } from "./value-objects/process-values"; type Props = Readonly<{ diff --git a/modules/companies/src/api/domain/process.test.ts b/modules/companies/src/api/domain/process.test.ts index deee67d..f4046be 100644 --- a/modules/companies/src/api/domain/process.test.ts +++ b/modules/companies/src/api/domain/process.test.ts @@ -4,18 +4,16 @@ import { test } from "node:test"; import { UniqueID } from "@repo/rdx-ddd"; import { Maybe } from "@repo/rdx-utils"; -import { - type ProcessReviewSources, - buildProcessReview, -} from "../application/process-review.builder"; +import type { ProcessReviewSources } from "../application/process-review.builder"; +import { buildProcessReview } from "../application/process-review.builder"; import { PersonProcessPersistenceMapper } from "../infrastructure/persistence/process-persistence.mapper"; import { PersonProcess } from "./process.aggregate"; import { ProcessTask } from "./process-task.entity"; import { ProcessTemplate } from "./process-template.aggregate"; +import type { ProcessValuesInput } from "./process-values"; import { ProcessTemplateInputSchema, - type ProcessValuesInput, ProcessValuesSchema, StartProcessInputSchema, } from "./process-values"; diff --git a/modules/companies/src/api/domain/remote-connection-revision.entity.ts b/modules/companies/src/api/domain/remote-connection-revision.entity.ts index 6342bc1..8880e48 100644 --- a/modules/companies/src/api/domain/remote-connection-revision.entity.ts +++ b/modules/companies/src/api/domain/remote-connection-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { RemoteConnectionValues } from "./value-objects/remote-connection-values"; export type RemoteConnectionRevisionProps = Readonly<{ diff --git a/modules/companies/src/api/domain/remote-connection.aggregate.ts b/modules/companies/src/api/domain/remote-connection.aggregate.ts index 8714c84..b29f56e 100644 --- a/modules/companies/src/api/domain/remote-connection.aggregate.ts +++ b/modules/companies/src/api/domain/remote-connection.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/companies/src/api/domain/remote-connection.test.ts b/modules/companies/src/api/domain/remote-connection.test.ts index f5efd2b..e1c708e 100644 --- a/modules/companies/src/api/domain/remote-connection.test.ts +++ b/modules/companies/src/api/domain/remote-connection.test.ts @@ -9,10 +9,8 @@ import { remoteNeedsReview } from "../application/remote-connection-policy"; import { RemoteConnectionPersistenceMapper } from "../infrastructure/persistence/remote-connection-persistence.mapper"; import { RemoteConnection } from "./remote-connection.aggregate"; -import { - type RemoteConnectionInput, - RemoteConnectionInputSchema, -} from "./remote-connection-values"; +import type { RemoteConnectionInput } from "./remote-connection-values"; +import { RemoteConnectionInputSchema } from "./remote-connection-values"; import { TeleworkAuthorization } from "./telework-authorization.aggregate"; import { RemoteConnectionValues } from "./value-objects/remote-connection-values"; import { TeleworkAuthorizationValues } from "./value-objects/telework-authorization-values"; diff --git a/modules/companies/src/api/domain/telework-authorization-revision.entity.ts b/modules/companies/src/api/domain/telework-authorization-revision.entity.ts index 52fde28..e5d4429 100644 --- a/modules/companies/src/api/domain/telework-authorization-revision.entity.ts +++ b/modules/companies/src/api/domain/telework-authorization-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { TeleworkAuthorizationValues } from "./value-objects/telework-authorization-values"; export type TeleworkAuthorizationRevisionProps = Readonly<{ diff --git a/modules/companies/src/api/domain/telework-authorization.aggregate.ts b/modules/companies/src/api/domain/telework-authorization.aggregate.ts index 6591344..ed1f9c4 100644 --- a/modules/companies/src/api/domain/telework-authorization.aggregate.ts +++ b/modules/companies/src/api/domain/telework-authorization.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/companies/src/api/domain/telework-authorization.test.ts b/modules/companies/src/api/domain/telework-authorization.test.ts index 441ca78..0dd9968 100644 --- a/modules/companies/src/api/domain/telework-authorization.test.ts +++ b/modules/companies/src/api/domain/telework-authorization.test.ts @@ -9,10 +9,8 @@ import { teleworkAuthorizationState } from "../application/telework-authorizatio import { TeleworkAuthorizationPersistenceMapper } from "../infrastructure/persistence/telework-authorization-persistence.mapper"; import { TeleworkAuthorization } from "./telework-authorization.aggregate"; -import { - type TeleworkAuthorizationInput, - TeleworkAuthorizationInputSchema, -} from "./telework-authorization-values"; +import type { TeleworkAuthorizationInput } from "./telework-authorization-values"; +import { TeleworkAuthorizationInputSchema } from "./telework-authorization-values"; import { TeleworkAuthorizationValues } from "./value-objects/telework-authorization-values"; const company = UniqueID.generateNewID(); diff --git a/modules/companies/src/api/domain/ticket-revision.entity.ts b/modules/companies/src/api/domain/ticket-revision.entity.ts index acba0cb..01acf7a 100644 --- a/modules/companies/src/api/domain/ticket-revision.entity.ts +++ b/modules/companies/src/api/domain/ticket-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { TicketValues } from "./value-objects/ticket-values"; export type TicketRevisionProps = Readonly<{ diff --git a/modules/companies/src/api/domain/ticket.aggregate.ts b/modules/companies/src/api/domain/ticket.aggregate.ts index c3156c9..997fdeb 100644 --- a/modules/companies/src/api/domain/ticket.aggregate.ts +++ b/modules/companies/src/api/domain/ticket.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type Name, type UniqueID } from "@repo/rdx-ddd"; +import type { Name, UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/companies/src/api/domain/value-objects/application-configuration-values.ts b/modules/companies/src/api/domain/value-objects/application-configuration-values.ts index b2dde33..f307d31 100644 --- a/modules/companies/src/api/domain/value-objects/application-configuration-values.ts +++ b/modules/companies/src/api/domain/value-objects/application-configuration-values.ts @@ -1,9 +1,9 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; +import type { ApplicationConfigurationInput } from "../application-configuration-values"; import { ApplicationConfigurationError, - type ApplicationConfigurationInput, ApplicationConfigurationInputSchema, } from "../application-configuration-values"; export class ApplicationConfigurationValues { diff --git a/modules/companies/src/api/domain/value-objects/certificate-configuration-values.ts b/modules/companies/src/api/domain/value-objects/certificate-configuration-values.ts index 80c33e3..aba3956 100644 --- a/modules/companies/src/api/domain/value-objects/certificate-configuration-values.ts +++ b/modules/companies/src/api/domain/value-objects/certificate-configuration-values.ts @@ -1,9 +1,9 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; +import type { CertificateConfigurationInput } from "../certificate-configuration-values"; import { CertificateConfigurationError, - type CertificateConfigurationInput, CertificateConfigurationInputSchema, } from "../certificate-configuration-values"; export class CertificateConfigurationValues { diff --git a/modules/companies/src/api/domain/value-objects/folder-mapping-values.ts b/modules/companies/src/api/domain/value-objects/folder-mapping-values.ts index 3092a11..be1dfd0 100644 --- a/modules/companies/src/api/domain/value-objects/folder-mapping-values.ts +++ b/modules/companies/src/api/domain/value-objects/folder-mapping-values.ts @@ -1,11 +1,8 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; -import { - FolderMappingError, - type FolderMappingInput, - FolderMappingInputSchema, -} from "../folder-mapping-values"; +import type { FolderMappingInput } from "../folder-mapping-values"; +import { FolderMappingError, FolderMappingInputSchema } from "../folder-mapping-values"; import { DriveLetter } from "./drive-letter"; import { SharedFolderPath } from "./shared-folder-path"; diff --git a/modules/companies/src/api/domain/value-objects/intervention-template-values.ts b/modules/companies/src/api/domain/value-objects/intervention-template-values.ts index 30d6dfe..f5b0724 100644 --- a/modules/companies/src/api/domain/value-objects/intervention-template-values.ts +++ b/modules/companies/src/api/domain/value-objects/intervention-template-values.ts @@ -2,9 +2,9 @@ import { Name } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { InterventionTemplateStep } from "../intervention-template-step.entity"; +import type { InterventionTemplateInput } from "../intervention-template-values"; import { InterventionTemplateError, - type InterventionTemplateInput, InterventionTemplateInputSchema, } from "../intervention-template-values"; diff --git a/modules/companies/src/api/domain/value-objects/intervention-values.ts b/modules/companies/src/api/domain/value-objects/intervention-values.ts index e792c0f..d1e2f47 100644 --- a/modules/companies/src/api/domain/value-objects/intervention-values.ts +++ b/modules/companies/src/api/domain/value-objects/intervention-values.ts @@ -2,11 +2,8 @@ import { Name, UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; import { InterventionStep } from "../intervention-step.entity"; -import { - InterventionError, - type InterventionInput, - InterventionInputSchema, -} from "../intervention-values"; +import type { InterventionInput } from "../intervention-values"; +import { InterventionError, InterventionInputSchema } from "../intervention-values"; import { TicketTarget } from "./ticket-values"; diff --git a/modules/companies/src/api/domain/value-objects/mail-configuration-values.ts b/modules/companies/src/api/domain/value-objects/mail-configuration-values.ts index ccc7418..9f016b5 100644 --- a/modules/companies/src/api/domain/value-objects/mail-configuration-values.ts +++ b/modules/companies/src/api/domain/value-objects/mail-configuration-values.ts @@ -1,11 +1,8 @@ import { EmailAddress, UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; -import { - MailConfigurationError, - type MailSnapshot, - MailSnapshotSchema, -} from "../mail-configuration-values"; +import type { MailSnapshot } from "../mail-configuration-values"; +import { MailConfigurationError, MailSnapshotSchema } from "../mail-configuration-values"; export class MailConfigurationValues { private constructor( diff --git a/modules/companies/src/api/domain/value-objects/mailbox-use-values.ts b/modules/companies/src/api/domain/value-objects/mailbox-use-values.ts index 54059e9..fa60888 100644 --- a/modules/companies/src/api/domain/value-objects/mailbox-use-values.ts +++ b/modules/companies/src/api/domain/value-objects/mailbox-use-values.ts @@ -1,7 +1,8 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; -import { MailboxError, type MailboxUseInput, MailboxUseInputSchema } from "../mailbox-values"; +import type { MailboxUseInput } from "../mailbox-values"; +import { MailboxError, MailboxUseInputSchema } from "../mailbox-values"; import { CalendarDate } from "./calendar-date"; diff --git a/modules/companies/src/api/domain/value-objects/mailbox-values.ts b/modules/companies/src/api/domain/value-objects/mailbox-values.ts index a772094..d8845eb 100644 --- a/modules/companies/src/api/domain/value-objects/mailbox-values.ts +++ b/modules/companies/src/api/domain/value-objects/mailbox-values.ts @@ -1,7 +1,8 @@ import { EmailAddress, UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; -import { MailboxError, type MailboxInput, MailboxInputSchema } from "../mailbox-values"; +import type { MailboxInput } from "../mailbox-values"; +import { MailboxError, MailboxInputSchema } from "../mailbox-values"; export class MailboxValues { private constructor( diff --git a/modules/companies/src/api/domain/value-objects/printer-configuration-values.ts b/modules/companies/src/api/domain/value-objects/printer-configuration-values.ts index be04dd5..380ccf9 100644 --- a/modules/companies/src/api/domain/value-objects/printer-configuration-values.ts +++ b/modules/companies/src/api/domain/value-objects/printer-configuration-values.ts @@ -1,9 +1,9 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; +import type { PrinterConfigurationInput } from "../printer-configuration-values"; import { PrinterConfigurationError, - type PrinterConfigurationInput, PrinterConfigurationInputSchema, } from "../printer-configuration-values"; export class PrinterConfigurationValues { diff --git a/modules/companies/src/api/domain/value-objects/process-template-values.ts b/modules/companies/src/api/domain/value-objects/process-template-values.ts index c64184a..f2acc10 100644 --- a/modules/companies/src/api/domain/value-objects/process-template-values.ts +++ b/modules/companies/src/api/domain/value-objects/process-template-values.ts @@ -1,11 +1,8 @@ import { Name } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; -import { - ProcessError, - type ProcessTemplateInput, - ProcessTemplateInputSchema, -} from "../process-values"; +import type { ProcessTemplateInput } from "../process-values"; +import { ProcessError, ProcessTemplateInputSchema } from "../process-values"; export class ProcessTemplateValues { private constructor( public readonly name: Name, diff --git a/modules/companies/src/api/domain/value-objects/process-values.ts b/modules/companies/src/api/domain/value-objects/process-values.ts index 477f9bf..1dc26b2 100644 --- a/modules/companies/src/api/domain/value-objects/process-values.ts +++ b/modules/companies/src/api/domain/value-objects/process-values.ts @@ -2,7 +2,8 @@ import { Name, UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; import { ProcessTask } from "../process-task.entity"; -import { ProcessError, type ProcessValuesInput, ProcessValuesSchema } from "../process-values"; +import type { ProcessValuesInput } from "../process-values"; +import { ProcessError, ProcessValuesSchema } from "../process-values"; export class ProcessValues { private constructor( public readonly personId: UniqueID, diff --git a/modules/companies/src/api/domain/value-objects/remote-connection-values.ts b/modules/companies/src/api/domain/value-objects/remote-connection-values.ts index 1a7baa6..587acc2 100644 --- a/modules/companies/src/api/domain/value-objects/remote-connection-values.ts +++ b/modules/companies/src/api/domain/value-objects/remote-connection-values.ts @@ -1,11 +1,8 @@ import { Name, UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; -import { - RemoteConnectionError, - type RemoteConnectionInput, - RemoteConnectionInputSchema, -} from "../remote-connection-values"; +import type { RemoteConnectionInput } from "../remote-connection-values"; +import { RemoteConnectionError, RemoteConnectionInputSchema } from "../remote-connection-values"; export class RemoteConnectionValues { private constructor( public readonly personId: UniqueID, diff --git a/modules/companies/src/api/domain/value-objects/telework-authorization-values.ts b/modules/companies/src/api/domain/value-objects/telework-authorization-values.ts index c7af92e..86757a0 100644 --- a/modules/companies/src/api/domain/value-objects/telework-authorization-values.ts +++ b/modules/companies/src/api/domain/value-objects/telework-authorization-values.ts @@ -1,9 +1,9 @@ import { UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; +import type { TeleworkAuthorizationInput } from "../telework-authorization-values"; import { TeleworkAuthorizationError, - type TeleworkAuthorizationInput, TeleworkAuthorizationInputSchema, } from "../telework-authorization-values"; diff --git a/modules/companies/src/api/domain/value-objects/ticket-values.ts b/modules/companies/src/api/domain/value-objects/ticket-values.ts index 1312583..4c1592a 100644 --- a/modules/companies/src/api/domain/value-objects/ticket-values.ts +++ b/modules/companies/src/api/domain/value-objects/ticket-values.ts @@ -1,12 +1,8 @@ import { Name, UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; -import { - TicketError, - type TicketInput, - TicketInputSchema, - type TicketTargetInput, -} from "../ticket-values"; +import type { TicketInput, TicketTargetInput } from "../ticket-values"; +import { TicketError, TicketInputSchema } from "../ticket-values"; export class TicketTarget { private constructor( public readonly kind: TicketTargetInput["kind"], diff --git a/modules/companies/src/api/domain/value-objects/work-profile-values.ts b/modules/companies/src/api/domain/value-objects/work-profile-values.ts index b401509..d032b99 100644 --- a/modules/companies/src/api/domain/value-objects/work-profile-values.ts +++ b/modules/companies/src/api/domain/value-objects/work-profile-values.ts @@ -1,11 +1,8 @@ import { Name, UniqueID } from "@repo/rdx-ddd"; import { Maybe, Result } from "@repo/rdx-utils"; -import { - WorkProfileError, - type WorkProfileInput, - WorkProfileInputSchema, -} from "../work-profile-values"; +import type { WorkProfileInput } from "../work-profile-values"; +import { WorkProfileError, WorkProfileInputSchema } from "../work-profile-values"; export class WorkProfileValues { private constructor( diff --git a/modules/companies/src/api/domain/work-profile-revision.entity.ts b/modules/companies/src/api/domain/work-profile-revision.entity.ts index 4b9de02..4bba545 100644 --- a/modules/companies/src/api/domain/work-profile-revision.entity.ts +++ b/modules/companies/src/api/domain/work-profile-revision.entity.ts @@ -1,4 +1,5 @@ -import { DomainEntity, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { DomainEntity } from "@repo/rdx-ddd"; import type { WorkProfileValues } from "./value-objects/work-profile-values"; export type WorkProfileRevisionProps = Readonly<{ diff --git a/modules/companies/src/api/domain/work-profile.aggregate.ts b/modules/companies/src/api/domain/work-profile.aggregate.ts index b232ff3..3970557 100644 --- a/modules/companies/src/api/domain/work-profile.aggregate.ts +++ b/modules/companies/src/api/domain/work-profile.aggregate.ts @@ -1,4 +1,5 @@ -import { AggregateRoot, type UniqueID } from "@repo/rdx-ddd"; +import type { UniqueID } from "@repo/rdx-ddd"; +import { AggregateRoot } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { z } from "zod/v4"; diff --git a/modules/companies/src/api/infrastructure/http/application-configuration.routes.ts b/modules/companies/src/api/infrastructure/http/application-configuration.routes.ts index de2bdf5..219e173 100644 --- a/modules/companies/src/api/infrastructure/http/application-configuration.routes.ts +++ b/modules/companies/src/api/infrastructure/http/application-configuration.routes.ts @@ -1,4 +1,5 @@ -import { type Application, type RequestHandler, type Response, Router } from "express"; +import type { Application, RequestHandler, Response } from "express"; +import { Router } from "express"; import { z } from "zod/v4"; import { diff --git a/modules/companies/src/api/infrastructure/http/certificate-configuration.routes.ts b/modules/companies/src/api/infrastructure/http/certificate-configuration.routes.ts index f46c12d..55e6c16 100644 --- a/modules/companies/src/api/infrastructure/http/certificate-configuration.routes.ts +++ b/modules/companies/src/api/infrastructure/http/certificate-configuration.routes.ts @@ -1,4 +1,5 @@ -import { type Application, type RequestHandler, type Response, Router } from "express"; +import type { Application, RequestHandler, Response } from "express"; +import { Router } from "express"; import { z } from "zod/v4"; import { diff --git a/modules/companies/src/api/infrastructure/http/folder-mapping.routes.ts b/modules/companies/src/api/infrastructure/http/folder-mapping.routes.ts index 65c1a34..a71dfab 100644 --- a/modules/companies/src/api/infrastructure/http/folder-mapping.routes.ts +++ b/modules/companies/src/api/infrastructure/http/folder-mapping.routes.ts @@ -1,4 +1,5 @@ -import { type Application, type RequestHandler, type Response, Router } from "express"; +import type { Application, RequestHandler, Response } from "express"; +import { Router } from "express"; import { z } from "zod/v4"; import { SaveFolderMappingRequestSchema } from "../../../common/folder-mappings"; diff --git a/modules/companies/src/api/infrastructure/http/mail-configuration.routes.ts b/modules/companies/src/api/infrastructure/http/mail-configuration.routes.ts index e5920df..e722612 100644 --- a/modules/companies/src/api/infrastructure/http/mail-configuration.routes.ts +++ b/modules/companies/src/api/infrastructure/http/mail-configuration.routes.ts @@ -1,4 +1,5 @@ -import { type Application, type RequestHandler, type Response, Router } from "express"; +import type { Application, RequestHandler, Response } from "express"; +import { Router } from "express"; import { z } from "zod/v4"; import { diff --git a/modules/companies/src/api/infrastructure/http/mailbox.routes.ts b/modules/companies/src/api/infrastructure/http/mailbox.routes.ts index 7f6de30..300c86f 100644 --- a/modules/companies/src/api/infrastructure/http/mailbox.routes.ts +++ b/modules/companies/src/api/infrastructure/http/mailbox.routes.ts @@ -1,4 +1,5 @@ -import { type Application, type RequestHandler, type Response, Router } from "express"; +import type { Application, RequestHandler, Response } from "express"; +import { Router } from "express"; import { z } from "zod/v4"; import { MailItemParamsSchema, MailParamsSchema } from "../../../common/mail-configurations"; diff --git a/modules/companies/src/api/infrastructure/http/printer-configuration.routes.ts b/modules/companies/src/api/infrastructure/http/printer-configuration.routes.ts index f5500f5..87674b6 100644 --- a/modules/companies/src/api/infrastructure/http/printer-configuration.routes.ts +++ b/modules/companies/src/api/infrastructure/http/printer-configuration.routes.ts @@ -1,4 +1,5 @@ -import { type Application, type RequestHandler, type Response, Router } from "express"; +import type { Application, RequestHandler, Response } from "express"; +import { Router } from "express"; import { z } from "zod/v4"; import { diff --git a/modules/companies/src/api/infrastructure/http/process.routes.ts b/modules/companies/src/api/infrastructure/http/process.routes.ts index dcdfdb4..b0ce0c5 100644 --- a/modules/companies/src/api/infrastructure/http/process.routes.ts +++ b/modules/companies/src/api/infrastructure/http/process.routes.ts @@ -1,4 +1,5 @@ -import { type Application, type RequestHandler, type Response, Router } from "express"; +import type { Application, RequestHandler, Response } from "express"; +import { Router } from "express"; import { z } from "zod/v4"; import { diff --git a/modules/companies/src/api/infrastructure/http/remote-connection.routes.ts b/modules/companies/src/api/infrastructure/http/remote-connection.routes.ts index 62d8979..5d1edb5 100644 --- a/modules/companies/src/api/infrastructure/http/remote-connection.routes.ts +++ b/modules/companies/src/api/infrastructure/http/remote-connection.routes.ts @@ -1,4 +1,5 @@ -import { type Application, type RequestHandler, type Response, Router } from "express"; +import type { Application, RequestHandler, Response } from "express"; +import { Router } from "express"; import { z } from "zod/v4"; import { diff --git a/modules/companies/src/api/infrastructure/http/telework-authorization.routes.ts b/modules/companies/src/api/infrastructure/http/telework-authorization.routes.ts index e02d47e..cd1bebb 100644 --- a/modules/companies/src/api/infrastructure/http/telework-authorization.routes.ts +++ b/modules/companies/src/api/infrastructure/http/telework-authorization.routes.ts @@ -1,4 +1,5 @@ -import { type Application, type RequestHandler, type Response, Router } from "express"; +import type { Application, RequestHandler, Response } from "express"; +import { Router } from "express"; import { z } from "zod/v4"; import { diff --git a/modules/companies/src/api/infrastructure/http/work-profile.routes.ts b/modules/companies/src/api/infrastructure/http/work-profile.routes.ts index d826170..e9d591a 100644 --- a/modules/companies/src/api/infrastructure/http/work-profile.routes.ts +++ b/modules/companies/src/api/infrastructure/http/work-profile.routes.ts @@ -1,4 +1,5 @@ -import { type Application, type RequestHandler, type Response, Router } from "express"; +import type { Application, RequestHandler, Response } from "express"; +import { Router } from "express"; import { z } from "zod/v4"; import { diff --git a/modules/companies/src/api/infrastructure/persistence/application-configuration-migration.ts b/modules/companies/src/api/infrastructure/persistence/application-configuration-migration.ts index 39cb6e0..84465cc 100644 --- a/modules/companies/src/api/infrastructure/persistence/application-configuration-migration.ts +++ b/modules/companies/src/api/infrastructure/persistence/application-configuration-migration.ts @@ -1,4 +1,5 @@ -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; export async function migrateApplicationConfigurations(database: Sequelize) { const q = database.getQueryInterface(); const tables = await database.query<{ name: string }>( diff --git a/modules/companies/src/api/infrastructure/persistence/certificate-configuration-migration.ts b/modules/companies/src/api/infrastructure/persistence/certificate-configuration-migration.ts index b56d710..8c16ba0 100644 --- a/modules/companies/src/api/infrastructure/persistence/certificate-configuration-migration.ts +++ b/modules/companies/src/api/infrastructure/persistence/certificate-configuration-migration.ts @@ -1,4 +1,5 @@ -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; export async function migrateCertificateConfigurations(database: Sequelize) { const q = database.getQueryInterface(); const tables = await database.query<{ name: string }>( diff --git a/modules/companies/src/api/infrastructure/persistence/folder-mapping-migration.ts b/modules/companies/src/api/infrastructure/persistence/folder-mapping-migration.ts index dd9e038..5c5bdbc 100644 --- a/modules/companies/src/api/infrastructure/persistence/folder-mapping-migration.ts +++ b/modules/companies/src/api/infrastructure/persistence/folder-mapping-migration.ts @@ -1,4 +1,5 @@ -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; export async function migrateFolderMappings(database: Sequelize) { const q = database.getQueryInterface(); const tables = await database.query<{ name: string }>( diff --git a/modules/companies/src/api/infrastructure/persistence/intervention-migration.ts b/modules/companies/src/api/infrastructure/persistence/intervention-migration.ts index 9643d56..5a8f036 100644 --- a/modules/companies/src/api/infrastructure/persistence/intervention-migration.ts +++ b/modules/companies/src/api/infrastructure/persistence/intervention-migration.ts @@ -1,4 +1,5 @@ -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; export async function migrateInterventions(database: Sequelize) { const query = database.getQueryInterface(); const tables = await database.query<{ name: string }>( diff --git a/modules/companies/src/api/infrastructure/persistence/intervention-template-migration.ts b/modules/companies/src/api/infrastructure/persistence/intervention-template-migration.ts index 92b2a0a..3340b6a 100644 --- a/modules/companies/src/api/infrastructure/persistence/intervention-template-migration.ts +++ b/modules/companies/src/api/infrastructure/persistence/intervention-template-migration.ts @@ -1,4 +1,5 @@ -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; import { interventionTemplateSeeds } from "../../domain/intervention-template-seed"; diff --git a/modules/companies/src/api/infrastructure/persistence/mail-configuration-migration.ts b/modules/companies/src/api/infrastructure/persistence/mail-configuration-migration.ts index 328472b..aa2ab65 100644 --- a/modules/companies/src/api/infrastructure/persistence/mail-configuration-migration.ts +++ b/modules/companies/src/api/infrastructure/persistence/mail-configuration-migration.ts @@ -1,4 +1,5 @@ -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; export async function migrateMailConfigurations(database: Sequelize) { const query = database.getQueryInterface(); const rows = await database.query<{ name: string }>( diff --git a/modules/companies/src/api/infrastructure/persistence/mailbox-migration.ts b/modules/companies/src/api/infrastructure/persistence/mailbox-migration.ts index e0db75a..0fd965a 100644 --- a/modules/companies/src/api/infrastructure/persistence/mailbox-migration.ts +++ b/modules/companies/src/api/infrastructure/persistence/mailbox-migration.ts @@ -1,4 +1,5 @@ -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; export async function migrateMailboxes(database: Sequelize) { const query = database.getQueryInterface(); const tables = await database.query<{ name: string }>( diff --git a/modules/companies/src/api/infrastructure/persistence/printer-configuration-migration.ts b/modules/companies/src/api/infrastructure/persistence/printer-configuration-migration.ts index 0933541..cdc40a3 100644 --- a/modules/companies/src/api/infrastructure/persistence/printer-configuration-migration.ts +++ b/modules/companies/src/api/infrastructure/persistence/printer-configuration-migration.ts @@ -1,4 +1,5 @@ -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; export async function migratePrinterConfigurations(database: Sequelize) { const q = database.getQueryInterface(); const tables = await database.query<{ name: string }>( diff --git a/modules/companies/src/api/infrastructure/persistence/process-migration.ts b/modules/companies/src/api/infrastructure/persistence/process-migration.ts index c6ccdbb..bc001a5 100644 --- a/modules/companies/src/api/infrastructure/persistence/process-migration.ts +++ b/modules/companies/src/api/infrastructure/persistence/process-migration.ts @@ -1,5 +1,6 @@ import { Maybe } from "@repo/rdx-utils"; -import { DataTypes, QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; import { ProcessTemplate } from "../../domain/process-template.aggregate"; import { ProcessTemplateValues } from "../../domain/value-objects/process-template-values"; diff --git a/modules/companies/src/api/infrastructure/persistence/process-review-reader.ts b/modules/companies/src/api/infrastructure/persistence/process-review-reader.ts index fbcf793..e6e1b74 100644 --- a/modules/companies/src/api/infrastructure/persistence/process-review-reader.ts +++ b/modules/companies/src/api/infrastructure/persistence/process-review-reader.ts @@ -1,11 +1,10 @@ import type { UniqueID } from "@repo/rdx-ddd"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { IProcessAssetInventoryService } from "../../application/process.repository"; -import { - type ProcessReviewSources, - buildProcessReview, -} from "../../application/process-review.builder"; +import type { ProcessReviewSources } from "../../application/process-review.builder"; +import { buildProcessReview } from "../../application/process-review.builder"; import { accessReviewRelationships } from "../../application/process-review-access"; import { AccessDefinitionSchema } from "../../domain/access/access-definition"; import { ApplicationConfigurationInputSchema } from "../../domain/application-configuration-values"; diff --git a/modules/companies/src/api/infrastructure/persistence/remote-connection-migration.ts b/modules/companies/src/api/infrastructure/persistence/remote-connection-migration.ts index 836976d..67bd2c8 100644 --- a/modules/companies/src/api/infrastructure/persistence/remote-connection-migration.ts +++ b/modules/companies/src/api/infrastructure/persistence/remote-connection-migration.ts @@ -1,4 +1,5 @@ -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; export async function migrateRemoteConnections(database: Sequelize) { const query = database.getQueryInterface(); const tables = await database.query<{ name: string }>( diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-application-configuration.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-application-configuration.repository.ts index 456b7ae..b76fd84 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-application-configuration.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-application-configuration.repository.ts @@ -1,7 +1,8 @@ import type { IResourceInventoryService } from "@metis/resources/services"; import type { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { ApplicationContext, @@ -11,17 +12,13 @@ import { applicationReferences } from "../../application/application-configurati import type { IWorkProfileInventoryService } from "../../application/work-profile.repository"; import { ApplicationConfigurationError } from "../../domain/application-configuration-values"; -import { - ApplicationConfigurationPersistenceMapper, - type ApplicationRevisionRow, - type ApplicationRow, +import type { + ApplicationRevisionRow, + ApplicationRow, } from "./application-configuration-persistence.mapper"; -import { - type ProfileRevisionRow, - type ProfileRow, - WorkProfilePersistenceMapper, - profileIdentity, -} from "./work-profile-persistence.mapper"; +import { ApplicationConfigurationPersistenceMapper } from "./application-configuration-persistence.mapper"; +import type { ProfileRevisionRow, ProfileRow } from "./work-profile-persistence.mapper"; +import { WorkProfilePersistenceMapper, profileIdentity } from "./work-profile-persistence.mapper"; export class SequelizeApplicationConfigurationRepository implements IApplicationConfigurationRepository { diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-certificate-configuration.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-certificate-configuration.repository.ts index d9a3baa..3429c41 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-certificate-configuration.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-certificate-configuration.repository.ts @@ -1,7 +1,8 @@ import type { IResourceInventoryService } from "@metis/resources/services"; import type { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { CertificateContext, @@ -11,17 +12,13 @@ import { certificateReferences } from "../../application/certificate-configurati import type { IWorkProfileInventoryService } from "../../application/work-profile.repository"; import { CertificateConfigurationError } from "../../domain/certificate-configuration-values"; -import { - CertificateConfigurationPersistenceMapper, - type CertificateRevisionRow, - type CertificateRow, +import type { + CertificateRevisionRow, + CertificateRow, } from "./certificate-configuration-persistence.mapper"; -import { - type ProfileRevisionRow, - type ProfileRow, - WorkProfilePersistenceMapper, - profileIdentity, -} from "./work-profile-persistence.mapper"; +import { CertificateConfigurationPersistenceMapper } from "./certificate-configuration-persistence.mapper"; +import type { ProfileRevisionRow, ProfileRow } from "./work-profile-persistence.mapper"; +import { WorkProfilePersistenceMapper, profileIdentity } from "./work-profile-persistence.mapper"; export class SequelizeCertificateConfigurationRepository implements ICertificateConfigurationRepository { diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-dashboard.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-dashboard.repository.ts index a1f04a1..aded47e 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-dashboard.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-dashboard.repository.ts @@ -1,4 +1,5 @@ -import { QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { DashboardDetailsQuery, DashboardEntryDTO } from "../../../common/dashboard"; import type { diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-folder-mapping.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-folder-mapping.repository.ts index 4f53af4..30118b4 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-folder-mapping.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-folder-mapping.repository.ts @@ -1,6 +1,7 @@ import type { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { FolderContext, @@ -12,14 +13,10 @@ import { AccessDefinitionSchema } from "../../domain/access/access-definition"; import { AccessValues } from "../../domain/access/access-values"; import { FolderMappingError } from "../../domain/folder-mapping-values"; +import type { FolderRevisionRow, FolderRow } from "./folder-mapping-persistence.mapper"; +import { FolderMappingPersistenceMapper } from "./folder-mapping-persistence.mapper"; +import type { ProfileRevisionRow, ProfileRow } from "./work-profile-persistence.mapper"; import { - FolderMappingPersistenceMapper, - type FolderRevisionRow, - type FolderRow, -} from "./folder-mapping-persistence.mapper"; -import { - type ProfileRevisionRow, - type ProfileRow, WorkProfilePersistenceMapper, persistedJson, profileIdentity, diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-intervention-template.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-intervention-template.repository.ts index 42abb62..f2e8f91 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-intervention-template.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-intervention-template.repository.ts @@ -1,6 +1,7 @@ import type { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { IInterventionTemplateRepository } from "../../application/intervention-template.repository"; import type { InterventionTemplate } from "../../domain/intervention-template.aggregate"; diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-intervention.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-intervention.repository.ts index cab0b78..de3c44f 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-intervention.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-intervention.repository.ts @@ -1,6 +1,7 @@ import type { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import { z } from "zod/v4"; import type { diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-mail-configuration.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-mail-configuration.repository.ts index 21852b5..f213a01 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-mail-configuration.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-mail-configuration.repository.ts @@ -1,6 +1,7 @@ import type { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { IMailConfigurationRepository, @@ -11,18 +12,14 @@ import type { MailboxContext } from "../../application/mailbox.repository"; import { MailConfigurationError } from "../../domain/mail-configuration-values"; import type { MailConfigurationValues } from "../../domain/value-objects/mail-configuration-values"; +import type { MailRevisionRow, MailRow } from "./mail-configuration-persistence.mapper"; import { MailConfigurationPersistenceMapper, - type MailRevisionRow, - type MailRow, mailIdentity, } from "./mail-configuration-persistence.mapper"; import type { SequelizeMailboxRepository } from "./sequelize-mailbox.repository"; -import { - type ProfileRevisionRow, - type ProfileRow, - WorkProfilePersistenceMapper, -} from "./work-profile-persistence.mapper"; +import type { ProfileRevisionRow, ProfileRow } from "./work-profile-persistence.mapper"; +import { WorkProfilePersistenceMapper } from "./work-profile-persistence.mapper"; function validateLink( values: MailConfigurationValues, diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-mailbox.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-mailbox.repository.ts index ea8013b..9834661 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-mailbox.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-mailbox.repository.ts @@ -1,6 +1,7 @@ import type { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { IMailboxRepository, MailboxContext } from "../../application/mailbox.repository"; import { AccessDefinitionSchema } from "../../domain/access/access-definition"; @@ -8,13 +9,8 @@ import { Mailbox } from "../../domain/mailbox.aggregate"; import type { MailboxUse } from "../../domain/mailbox-use.aggregate"; import { MailboxError } from "../../domain/mailbox-values"; -import { - MailboxPersistenceMapper, - type MailboxRevisionRow, - type MailboxRow, - type MailboxUseRow, - mailboxIdentity, -} from "./mailbox-persistence.mapper"; +import type { MailboxRevisionRow, MailboxRow, MailboxUseRow } from "./mailbox-persistence.mapper"; +import { MailboxPersistenceMapper, mailboxIdentity } from "./mailbox-persistence.mapper"; export class SequelizeMailboxRepository implements IMailboxRepository { private readonly mapper = new MailboxPersistenceMapper(); diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-printer-configuration.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-printer-configuration.repository.ts index 18296d5..d55bc3a 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-printer-configuration.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-printer-configuration.repository.ts @@ -1,6 +1,7 @@ import type { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { IPrinterConfigurationRepository, @@ -10,17 +11,10 @@ import { printerReferences } from "../../application/printer-configuration-polic import type { IWorkProfileInventoryService } from "../../application/work-profile.repository"; import { PrinterConfigurationError } from "../../domain/printer-configuration-values"; -import { - PrinterConfigurationPersistenceMapper, - type PrinterRevisionRow, - type PrinterRow, -} from "./printer-configuration-persistence.mapper"; -import { - type ProfileRevisionRow, - type ProfileRow, - WorkProfilePersistenceMapper, - profileIdentity, -} from "./work-profile-persistence.mapper"; +import type { PrinterRevisionRow, PrinterRow } from "./printer-configuration-persistence.mapper"; +import { PrinterConfigurationPersistenceMapper } from "./printer-configuration-persistence.mapper"; +import type { ProfileRevisionRow, ProfileRow } from "./work-profile-persistence.mapper"; +import { WorkProfilePersistenceMapper, profileIdentity } from "./work-profile-persistence.mapper"; export class SequelizePrinterConfigurationRepository implements IPrinterConfigurationRepository { private readonly mapper = new PrinterConfigurationPersistenceMapper(); constructor( diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-process.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-process.repository.ts index 2633d85..cbd1b5c 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-process.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-process.repository.ts @@ -1,7 +1,8 @@ import type { IResourceInventoryService } from "@metis/resources/services"; import { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { IProcessAssetInventoryService, @@ -11,17 +12,14 @@ import type { } from "../../application/process.repository"; import { ProcessError } from "../../domain/process-values"; -import { - PersonProcessPersistenceMapper, - type PersonProcessRevisionRow, - type PersonProcessRow, -} from "./process-persistence.mapper"; +import type { PersonProcessRevisionRow, PersonProcessRow } from "./process-persistence.mapper"; +import { PersonProcessPersistenceMapper } from "./process-persistence.mapper"; import { ProcessReviewReader } from "./process-review-reader"; -import { - ProcessTemplatePersistenceMapper, - type ProcessTemplateRevisionRow, - type ProcessTemplateRow, +import type { + ProcessTemplateRevisionRow, + ProcessTemplateRow, } from "./process-template-persistence.mapper"; +import { ProcessTemplatePersistenceMapper } from "./process-template-persistence.mapper"; export class SequelizeProcessRepository implements IProcessRepository { private readonly processMapper = new PersonProcessPersistenceMapper(); private readonly templateMapper = new ProcessTemplatePersistenceMapper(); diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-remote-connection.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-remote-connection.repository.ts index ce8d967..935df8a 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-remote-connection.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-remote-connection.repository.ts @@ -1,7 +1,8 @@ import type { IResourceInventoryService } from "@metis/resources/services"; import type { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { IRemoteConnectionRepository, @@ -11,15 +12,11 @@ import { remoteReferences } from "../../application/remote-connection-policy"; import type { IWorkProfileInventoryService } from "../../application/work-profile.repository"; import { RemoteConnectionError } from "../../domain/remote-connection-values"; -import { - RemoteConnectionPersistenceMapper, - type RemoteRevisionRow, - type RemoteRow, -} from "./remote-connection-persistence.mapper"; +import type { RemoteRevisionRow, RemoteRow } from "./remote-connection-persistence.mapper"; +import { RemoteConnectionPersistenceMapper } from "./remote-connection-persistence.mapper"; +import type { TeleworkRevisionRow, TeleworkRow } from "./telework-authorization-persistence.mapper"; import { TeleworkAuthorizationPersistenceMapper, - type TeleworkRevisionRow, - type TeleworkRow, teleworkIdentity, } from "./telework-authorization-persistence.mapper"; diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-telework-authorization.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-telework-authorization.repository.ts index 699d81a..757bbba 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-telework-authorization.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-telework-authorization.repository.ts @@ -1,6 +1,7 @@ import type { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { ITeleworkAuthorizationRepository, @@ -8,10 +9,9 @@ import type { } from "../../application/telework-authorization.repository"; import { TeleworkAuthorizationError } from "../../domain/telework-authorization-values"; +import type { TeleworkRevisionRow, TeleworkRow } from "./telework-authorization-persistence.mapper"; import { TeleworkAuthorizationPersistenceMapper, - type TeleworkRevisionRow, - type TeleworkRow, teleworkIdentity, } from "./telework-authorization-persistence.mapper"; diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-ticket.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-ticket.repository.ts index 4da77c3..6eaabd4 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-ticket.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-ticket.repository.ts @@ -1,7 +1,8 @@ import type { IResourceInventoryService } from "@metis/resources/services"; import type { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import { z } from "zod/v4"; import type { diff --git a/modules/companies/src/api/infrastructure/persistence/sequelize-work-profile.repository.ts b/modules/companies/src/api/infrastructure/persistence/sequelize-work-profile.repository.ts index cc062f3..530e437 100644 --- a/modules/companies/src/api/infrastructure/persistence/sequelize-work-profile.repository.ts +++ b/modules/companies/src/api/infrastructure/persistence/sequelize-work-profile.repository.ts @@ -1,6 +1,7 @@ import type { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; -import { QueryTypes, type Sequelize, type Transaction } from "sequelize"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; import type { IWorkProfileInventoryService, @@ -10,9 +11,8 @@ import type { import { AccessDefinitionSchema } from "../../domain/access/access-definition"; import { WorkProfileError } from "../../domain/work-profile-values"; +import type { ProfileRevisionRow, ProfileRow } from "./work-profile-persistence.mapper"; import { - type ProfileRevisionRow, - type ProfileRow, WorkProfilePersistenceMapper, persistedJson, profileIdentity, diff --git a/modules/companies/src/api/infrastructure/persistence/telework-authorization-migration.ts b/modules/companies/src/api/infrastructure/persistence/telework-authorization-migration.ts index ca50c30..fae4a77 100644 --- a/modules/companies/src/api/infrastructure/persistence/telework-authorization-migration.ts +++ b/modules/companies/src/api/infrastructure/persistence/telework-authorization-migration.ts @@ -1,4 +1,5 @@ -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; export async function migrateTeleworkAuthorizations(database: Sequelize) { const query = database.getQueryInterface(); const tables = await database.query<{ name: string }>( diff --git a/modules/companies/src/api/infrastructure/persistence/ticket-migration.ts b/modules/companies/src/api/infrastructure/persistence/ticket-migration.ts index 6a659ec..a3eac16 100644 --- a/modules/companies/src/api/infrastructure/persistence/ticket-migration.ts +++ b/modules/companies/src/api/infrastructure/persistence/ticket-migration.ts @@ -1,4 +1,5 @@ -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; export async function migrateTickets(database: Sequelize) { const query = database.getQueryInterface(); const tables = await database.query<{ name: string }>( diff --git a/modules/companies/src/api/infrastructure/persistence/work-profile-migration.ts b/modules/companies/src/api/infrastructure/persistence/work-profile-migration.ts index 62e6198..50c81b4 100644 --- a/modules/companies/src/api/infrastructure/persistence/work-profile-migration.ts +++ b/modules/companies/src/api/infrastructure/persistence/work-profile-migration.ts @@ -1,4 +1,5 @@ -import { DataTypes, QueryTypes, type Sequelize } from "sequelize"; +import type { Sequelize } from "sequelize"; +import { DataTypes, QueryTypes } from "sequelize"; export async function migrateWorkProfiles(database: Sequelize) { const query = database.getQueryInterface(); const rows = await database.query<{ name: string }>( diff --git a/modules/companies/src/web/access/access-editor-dialog.tsx b/modules/companies/src/web/access/access-editor-dialog.tsx new file mode 100644 index 0000000..4803337 --- /dev/null +++ b/modules/companies/src/web/access/access-editor-dialog.tsx @@ -0,0 +1,56 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import type { ComponentProps } from "react"; +import { useTranslation } from "react-i18next"; + +import type { AccessKind } from "../../common"; + +import { createLabels } from "./access-fields"; +import { AccessForm } from "./access-form"; + +export function AccessEditorDialog({ + editor, + selected, + kind, + scope, + csrfToken, + data, + people, + complex, + onSaved, + onOpenChange, +}: { + editor: string | undefined; + selected: ComponentProps["item"]; + kind: AccessKind; + scope: string; + csrfToken: string; + data: ComponentProps["data"]; + people: ComponentProps["people"]; + complex: boolean; + onSaved: () => void; + onOpenChange: (open: boolean) => void; +}) { + const { t } = useTranslation("access"); + + return ( + + + + ); +} diff --git a/modules/companies/src/web/access/access-help-dialog.tsx b/modules/companies/src/web/access/access-help-dialog.tsx new file mode 100644 index 0000000..6fc59f4 --- /dev/null +++ b/modules/companies/src/web/access/access-help-dialog.tsx @@ -0,0 +1,31 @@ +import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; +import { useTranslation } from "react-i18next"; + +import type { AccessKind } from "../../common"; + +import { EntityHelp } from "./entity-help"; + +export function AccessHelpDialog({ + kind, + scope, + open, + onOpenChange, +}: { + kind: AccessKind; + scope: string; + open: boolean; + onOpenChange: (open: boolean) => void; +}) { + const { t } = useTranslation("access"); + + return ( + + + + ); +} diff --git a/modules/companies/src/web/access/access-workspace.tsx b/modules/companies/src/web/access/access-workspace.tsx index bb42fbd..f11259b 100644 --- a/modules/companies/src/web/access/access-workspace.tsx +++ b/modules/companies/src/web/access/access-workspace.tsx @@ -1,6 +1,5 @@ import { Button } from "@repo/shadcn-ui/components/button"; import { EntityListHeader, EntityTable } from "@repo/shadcn-ui/components/entity-list"; -import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; import { useQuery } from "@tanstack/react-query"; import { useState } from "react"; import { useTranslation } from "react-i18next"; @@ -8,12 +7,12 @@ import { useTranslation } from "react-i18next"; import type { AccessKind, PersonDTO } from "../../common"; import { AccessApiError, accessApi, accessKeys } from "./access-api"; +import { AccessEditorDialog } from "./access-editor-dialog"; import { accessFields, createLabels } from "./access-fields"; -import { AccessForm } from "./access-form"; +import { AccessHelpDialog } from "./access-help-dialog"; import { AccessHistory } from "./access-history"; import { accessLabel } from "./access-labels"; import { AccessCell } from "./access-row"; -import { EntityHelp } from "./entity-help"; export function AccessWorkspacePage({ scope, @@ -82,14 +81,7 @@ export function AccessWorkspacePage({ locale={i18n.language} title={t(`kinds.${kind}`)} /> - - - + - + setSettingsOpen(true)} + />
-
-
-
- - -
- - - - {userName} - {coreTranslation("shell.supportWorkspace")} - - -
- {accountNavigation} - {languageSwitcher} -
-
-
- + - {accountNavigation} - {languageSwitcher} - + /> {coreTranslation("workspace")} {query.isPending && (

diff --git a/modules/companies/src/web/components/company-detail.tsx b/modules/companies/src/web/components/company-detail.tsx index 78f55f1..875c541 100644 --- a/modules/companies/src/web/components/company-detail.tsx +++ b/modules/companies/src/web/components/company-detail.tsx @@ -1,5 +1,4 @@ import { Button } from "@repo/shadcn-ui/components/button"; -import { FormDialog } from "@repo/shadcn-ui/components/form-dialog"; import { BoxIcon, BriefcaseIcon, @@ -17,8 +16,8 @@ import { useTranslation } from "react-i18next"; import { companyApi, companyKeys } from "../api/company-api"; +import { CompanyEditorDialog } from "./company-editor-dialog"; import { CompanyFeedback } from "./company-feedback"; -import { CompanyForm } from "./company-form"; import { CompanySection } from "./company-section"; import type { CompanyTab } from "./company-tab"; @@ -96,21 +95,13 @@ export function CompanyDetail({ {t("editCompany")}

- setEditOpen(false)} open={editOpen} - title={t("editCompany")} - > - setEditOpen(false)} - showTitle={false} - /> - + />