@endora-commerce/mod-organizations 0.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +62 -0
  3. package/dist/admin/components/OrganizationSalesRepsTab.d.ts +27 -0
  4. package/dist/admin/components/OrganizationSalesRepsTab.d.ts.map +1 -0
  5. package/dist/admin/components/OrganizationSalesRepsTab.js +170 -0
  6. package/dist/admin/components/OrganizationSalesRepsTab.js.map +1 -0
  7. package/dist/admin/index.d.ts +30 -0
  8. package/dist/admin/index.d.ts.map +1 -0
  9. package/dist/admin/index.js +59 -0
  10. package/dist/admin/index.js.map +1 -0
  11. package/dist/admin/pages/OrganizationDetail.d.ts +9 -0
  12. package/dist/admin/pages/OrganizationDetail.d.ts.map +1 -0
  13. package/dist/admin/pages/OrganizationDetail.js +247 -0
  14. package/dist/admin/pages/OrganizationDetail.js.map +1 -0
  15. package/dist/admin/pages/OrganizationsList.d.ts +9 -0
  16. package/dist/admin/pages/OrganizationsList.d.ts.map +1 -0
  17. package/dist/admin/pages/OrganizationsList.js +73 -0
  18. package/dist/admin/pages/OrganizationsList.js.map +1 -0
  19. package/dist/admin/panels/ApplicablePriceListsPanel.d.ts +12 -0
  20. package/dist/admin/panels/ApplicablePriceListsPanel.d.ts.map +1 -0
  21. package/dist/admin/panels/ApplicablePriceListsPanel.js +49 -0
  22. package/dist/admin/panels/ApplicablePriceListsPanel.js.map +1 -0
  23. package/dist/admin/panels/FulfilmentStrategyPanel.d.ts +16 -0
  24. package/dist/admin/panels/FulfilmentStrategyPanel.d.ts.map +1 -0
  25. package/dist/admin/panels/FulfilmentStrategyPanel.js +29 -0
  26. package/dist/admin/panels/FulfilmentStrategyPanel.js.map +1 -0
  27. package/dist/admin/panels/HierarchyPanel.d.ts +15 -0
  28. package/dist/admin/panels/HierarchyPanel.d.ts.map +1 -0
  29. package/dist/admin/panels/HierarchyPanel.js +65 -0
  30. package/dist/admin/panels/HierarchyPanel.js.map +1 -0
  31. package/dist/admin/panels/ModerationActionsPanel.d.ts +28 -0
  32. package/dist/admin/panels/ModerationActionsPanel.d.ts.map +1 -0
  33. package/dist/admin/panels/ModerationActionsPanel.js +111 -0
  34. package/dist/admin/panels/ModerationActionsPanel.js.map +1 -0
  35. package/dist/admin/panels/RestrictionsPanel.d.ts +24 -0
  36. package/dist/admin/panels/RestrictionsPanel.d.ts.map +1 -0
  37. package/dist/admin/panels/RestrictionsPanel.js +121 -0
  38. package/dist/admin/panels/RestrictionsPanel.js.map +1 -0
  39. package/dist/admin/panels/VatValidationPanel.d.ts +28 -0
  40. package/dist/admin/panels/VatValidationPanel.d.ts.map +1 -0
  41. package/dist/admin/panels/VatValidationPanel.js +79 -0
  42. package/dist/admin/panels/VatValidationPanel.js.map +1 -0
  43. package/dist/backend/commands/move.command.d.ts +11 -0
  44. package/dist/backend/commands/move.command.d.ts.map +1 -0
  45. package/dist/backend/commands/move.command.js +11 -0
  46. package/dist/backend/commands/move.command.js.map +1 -0
  47. package/dist/backend/commands/set-cart-approval-policy.command.d.ts +31 -0
  48. package/dist/backend/commands/set-cart-approval-policy.command.d.ts.map +1 -0
  49. package/dist/backend/commands/set-cart-approval-policy.command.js +56 -0
  50. package/dist/backend/commands/set-cart-approval-policy.command.js.map +1 -0
  51. package/dist/backend/commands/set-credit-mode.command.d.ts +16 -0
  52. package/dist/backend/commands/set-credit-mode.command.d.ts.map +1 -0
  53. package/dist/backend/commands/set-credit-mode.command.js +25 -0
  54. package/dist/backend/commands/set-credit-mode.command.js.map +1 -0
  55. package/dist/backend/commands/set-parent.command.d.ts +26 -0
  56. package/dist/backend/commands/set-parent.command.d.ts.map +1 -0
  57. package/dist/backend/commands/set-parent.command.js +51 -0
  58. package/dist/backend/commands/set-parent.command.js.map +1 -0
  59. package/dist/backend/demo/reset.d.ts +20 -0
  60. package/dist/backend/demo/reset.d.ts.map +1 -0
  61. package/dist/backend/demo/reset.js +11 -0
  62. package/dist/backend/demo/reset.js.map +1 -0
  63. package/dist/backend/demo/rows.d.ts +44 -0
  64. package/dist/backend/demo/rows.d.ts.map +1 -0
  65. package/dist/backend/demo/rows.js +44 -0
  66. package/dist/backend/demo/rows.js.map +1 -0
  67. package/dist/backend/demo/seed.d.ts +20 -0
  68. package/dist/backend/demo/seed.d.ts.map +1 -0
  69. package/dist/backend/demo/seed.js +28 -0
  70. package/dist/backend/demo/seed.js.map +1 -0
  71. package/dist/backend/email-templates/invitation.d.ts +23 -0
  72. package/dist/backend/email-templates/invitation.d.ts.map +1 -0
  73. package/dist/backend/email-templates/invitation.js +35 -0
  74. package/dist/backend/email-templates/invitation.js.map +1 -0
  75. package/dist/backend/email-templates/transactional-defaults.d.ts +54 -0
  76. package/dist/backend/email-templates/transactional-defaults.d.ts.map +1 -0
  77. package/dist/backend/email-templates/transactional-defaults.js +242 -0
  78. package/dist/backend/email-templates/transactional-defaults.js.map +1 -0
  79. package/dist/backend/email-templates/verification.d.ts +14 -0
  80. package/dist/backend/email-templates/verification.d.ts.map +1 -0
  81. package/dist/backend/email-templates/verification.js +34 -0
  82. package/dist/backend/email-templates/verification.js.map +1 -0
  83. package/dist/backend/entities/email-verification-token.entity.d.ts +17 -0
  84. package/dist/backend/entities/email-verification-token.entity.d.ts.map +1 -0
  85. package/dist/backend/entities/email-verification-token.entity.js +60 -0
  86. package/dist/backend/entities/email-verification-token.entity.js.map +1 -0
  87. package/dist/backend/entities/organization-delivery-method-link.entity.d.ts +14 -0
  88. package/dist/backend/entities/organization-delivery-method-link.entity.d.ts.map +1 -0
  89. package/dist/backend/entities/organization-delivery-method-link.entity.js +41 -0
  90. package/dist/backend/entities/organization-delivery-method-link.entity.js.map +1 -0
  91. package/dist/backend/entities/organization-invitation.entity.d.ts +21 -0
  92. package/dist/backend/entities/organization-invitation.entity.d.ts.map +1 -0
  93. package/dist/backend/entities/organization-invitation.entity.js +85 -0
  94. package/dist/backend/entities/organization-invitation.entity.js.map +1 -0
  95. package/dist/backend/entities/organization-payment-method-link.entity.d.ts +14 -0
  96. package/dist/backend/entities/organization-payment-method-link.entity.d.ts.map +1 -0
  97. package/dist/backend/entities/organization-payment-method-link.entity.js +41 -0
  98. package/dist/backend/entities/organization-payment-method-link.entity.js.map +1 -0
  99. package/dist/backend/entities/organization-sales-rep-assignment.entity.d.ts +17 -0
  100. package/dist/backend/entities/organization-sales-rep-assignment.entity.d.ts.map +1 -0
  101. package/dist/backend/entities/organization-sales-rep-assignment.entity.js +56 -0
  102. package/dist/backend/entities/organization-sales-rep-assignment.entity.js.map +1 -0
  103. package/dist/backend/entities/organization-tax-id-validation.entity.d.ts +29 -0
  104. package/dist/backend/entities/organization-tax-id-validation.entity.d.ts.map +1 -0
  105. package/dist/backend/entities/organization-tax-id-validation.entity.js +78 -0
  106. package/dist/backend/entities/organization-tax-id-validation.entity.js.map +1 -0
  107. package/dist/backend/entities/organization-warehouse-link.entity.d.ts +15 -0
  108. package/dist/backend/entities/organization-warehouse-link.entity.d.ts.map +1 -0
  109. package/dist/backend/entities/organization-warehouse-link.entity.js +42 -0
  110. package/dist/backend/entities/organization-warehouse-link.entity.js.map +1 -0
  111. package/dist/backend/entities/organization.entity.d.ts +125 -0
  112. package/dist/backend/entities/organization.entity.d.ts.map +1 -0
  113. package/dist/backend/entities/organization.entity.js +282 -0
  114. package/dist/backend/entities/organization.entity.js.map +1 -0
  115. package/dist/backend/index.d.ts +250 -0
  116. package/dist/backend/index.d.ts.map +1 -0
  117. package/dist/backend/index.js +506 -0
  118. package/dist/backend/index.js.map +1 -0
  119. package/dist/backend/integrations/ministerstwo-finansow-client.d.ts +22 -0
  120. package/dist/backend/integrations/ministerstwo-finansow-client.d.ts.map +1 -0
  121. package/dist/backend/integrations/ministerstwo-finansow-client.js +172 -0
  122. package/dist/backend/integrations/ministerstwo-finansow-client.js.map +1 -0
  123. package/dist/backend/integrations/vies-client.d.ts +18 -0
  124. package/dist/backend/integrations/vies-client.d.ts.map +1 -0
  125. package/dist/backend/integrations/vies-client.js +133 -0
  126. package/dist/backend/integrations/vies-client.js.map +1 -0
  127. package/dist/backend/plugin.d.ts +126 -0
  128. package/dist/backend/plugin.d.ts.map +1 -0
  129. package/dist/backend/plugin.js +139 -0
  130. package/dist/backend/plugin.js.map +1 -0
  131. package/dist/backend/routes.admin.d.ts +66 -0
  132. package/dist/backend/routes.admin.d.ts.map +1 -0
  133. package/dist/backend/routes.admin.js +711 -0
  134. package/dist/backend/routes.admin.js.map +1 -0
  135. package/dist/backend/routes.customer.d.ts +33 -0
  136. package/dist/backend/routes.customer.d.ts.map +1 -0
  137. package/dist/backend/routes.customer.js +139 -0
  138. package/dist/backend/routes.customer.js.map +1 -0
  139. package/dist/backend/routes.members.d.ts +31 -0
  140. package/dist/backend/routes.members.d.ts.map +1 -0
  141. package/dist/backend/routes.members.js +109 -0
  142. package/dist/backend/routes.members.js.map +1 -0
  143. package/dist/backend/routes.public.d.ts +49 -0
  144. package/dist/backend/routes.public.d.ts.map +1 -0
  145. package/dist/backend/routes.public.js +220 -0
  146. package/dist/backend/routes.public.js.map +1 -0
  147. package/dist/backend/routes.sales-reps.d.ts +46 -0
  148. package/dist/backend/routes.sales-reps.d.ts.map +1 -0
  149. package/dist/backend/routes.sales-reps.js +114 -0
  150. package/dist/backend/routes.sales-reps.js.map +1 -0
  151. package/dist/backend/routes.storefront.d.ts +25 -0
  152. package/dist/backend/routes.storefront.d.ts.map +1 -0
  153. package/dist/backend/routes.storefront.js +65 -0
  154. package/dist/backend/routes.storefront.js.map +1 -0
  155. package/dist/backend/schemas/organization.d.ts +59 -0
  156. package/dist/backend/schemas/organization.d.ts.map +1 -0
  157. package/dist/backend/schemas/organization.js +55 -0
  158. package/dist/backend/schemas/organization.js.map +1 -0
  159. package/dist/backend/schemas/settings.d.ts +30 -0
  160. package/dist/backend/schemas/settings.d.ts.map +1 -0
  161. package/dist/backend/schemas/settings.js +35 -0
  162. package/dist/backend/schemas/settings.js.map +1 -0
  163. package/dist/backend/services/email-verification-service.d.ts +45 -0
  164. package/dist/backend/services/email-verification-service.d.ts.map +1 -0
  165. package/dist/backend/services/email-verification-service.js +95 -0
  166. package/dist/backend/services/email-verification-service.js.map +1 -0
  167. package/dist/backend/services/invitation-service.d.ts +85 -0
  168. package/dist/backend/services/invitation-service.d.ts.map +1 -0
  169. package/dist/backend/services/invitation-service.js +266 -0
  170. package/dist/backend/services/invitation-service.js.map +1 -0
  171. package/dist/backend/services/normalize-name.d.ts +14 -0
  172. package/dist/backend/services/normalize-name.d.ts.map +1 -0
  173. package/dist/backend/services/normalize-name.js +14 -0
  174. package/dist/backend/services/normalize-name.js.map +1 -0
  175. package/dist/backend/services/org-registration-notifier.d.ts +36 -0
  176. package/dist/backend/services/org-registration-notifier.d.ts.map +1 -0
  177. package/dist/backend/services/org-registration-notifier.js +109 -0
  178. package/dist/backend/services/org-registration-notifier.js.map +1 -0
  179. package/dist/backend/services/org-template-email.d.ts +18 -0
  180. package/dist/backend/services/org-template-email.d.ts.map +1 -0
  181. package/dist/backend/services/org-template-email.js +16 -0
  182. package/dist/backend/services/org-template-email.js.map +1 -0
  183. package/dist/backend/services/organization-context-service.d.ts +52 -0
  184. package/dist/backend/services/organization-context-service.d.ts.map +1 -0
  185. package/dist/backend/services/organization-context-service.js +70 -0
  186. package/dist/backend/services/organization-context-service.js.map +1 -0
  187. package/dist/backend/services/organization-country-reference.d.ts +11 -0
  188. package/dist/backend/services/organization-country-reference.d.ts.map +1 -0
  189. package/dist/backend/services/organization-country-reference.js +24 -0
  190. package/dist/backend/services/organization-country-reference.js.map +1 -0
  191. package/dist/backend/services/organization-details-port.d.ts +33 -0
  192. package/dist/backend/services/organization-details-port.d.ts.map +1 -0
  193. package/dist/backend/services/organization-details-port.js +95 -0
  194. package/dist/backend/services/organization-details-port.js.map +1 -0
  195. package/dist/backend/services/organization-effective-pricelists-service.d.ts +50 -0
  196. package/dist/backend/services/organization-effective-pricelists-service.d.ts.map +1 -0
  197. package/dist/backend/services/organization-effective-pricelists-service.js +68 -0
  198. package/dist/backend/services/organization-effective-pricelists-service.js.map +1 -0
  199. package/dist/backend/services/organization-inheritance-service.d.ts +73 -0
  200. package/dist/backend/services/organization-inheritance-service.d.ts.map +1 -0
  201. package/dist/backend/services/organization-inheritance-service.js +63 -0
  202. package/dist/backend/services/organization-inheritance-service.js.map +1 -0
  203. package/dist/backend/services/organization-moderation-service.d.ts +124 -0
  204. package/dist/backend/services/organization-moderation-service.d.ts.map +1 -0
  205. package/dist/backend/services/organization-moderation-service.js +337 -0
  206. package/dist/backend/services/organization-moderation-service.js.map +1 -0
  207. package/dist/backend/services/organization-restriction-service.d.ts +70 -0
  208. package/dist/backend/services/organization-restriction-service.d.ts.map +1 -0
  209. package/dist/backend/services/organization-restriction-service.js +210 -0
  210. package/dist/backend/services/organization-restriction-service.js.map +1 -0
  211. package/dist/backend/services/organization-tax-id-validation-service.d.ts +59 -0
  212. package/dist/backend/services/organization-tax-id-validation-service.d.ts.map +1 -0
  213. package/dist/backend/services/organization-tax-id-validation-service.js +115 -0
  214. package/dist/backend/services/organization-tax-id-validation-service.js.map +1 -0
  215. package/dist/backend/services/organization-tree-service.d.ts +102 -0
  216. package/dist/backend/services/organization-tree-service.d.ts.map +1 -0
  217. package/dist/backend/services/organization-tree-service.js +184 -0
  218. package/dist/backend/services/organization-tree-service.js.map +1 -0
  219. package/dist/backend/services/personal-organization-service.d.ts +130 -0
  220. package/dist/backend/services/personal-organization-service.d.ts.map +1 -0
  221. package/dist/backend/services/personal-organization-service.js +207 -0
  222. package/dist/backend/services/personal-organization-service.js.map +1 -0
  223. package/dist/backend/services/registration-service.d.ts +80 -0
  224. package/dist/backend/services/registration-service.d.ts.map +1 -0
  225. package/dist/backend/services/registration-service.js +126 -0
  226. package/dist/backend/services/registration-service.js.map +1 -0
  227. package/dist/backend/services/sales-rep-assignment-service.d.ts +89 -0
  228. package/dist/backend/services/sales-rep-assignment-service.d.ts.map +1 -0
  229. package/dist/backend/services/sales-rep-assignment-service.js +176 -0
  230. package/dist/backend/services/sales-rep-assignment-service.js.map +1 -0
  231. package/dist/backend/services/vat-validator-port.d.ts +20 -0
  232. package/dist/backend/services/vat-validator-port.d.ts.map +1 -0
  233. package/dist/backend/services/vat-validator-port.js +2 -0
  234. package/dist/backend/services/vat-validator-port.js.map +1 -0
  235. package/dist/manifest.d.ts +176 -0
  236. package/dist/manifest.d.ts.map +1 -0
  237. package/dist/manifest.js +503 -0
  238. package/dist/manifest.js.map +1 -0
  239. package/dist/migrations/20260424T205317_organizations_init.d.ts +13 -0
  240. package/dist/migrations/20260424T205317_organizations_init.d.ts.map +1 -0
  241. package/dist/migrations/20260424T205317_organizations_init.js +100 -0
  242. package/dist/migrations/20260424T205317_organizations_init.js.map +1 -0
  243. package/dist/migrations/20260425T051700_organizations_invitations_init.d.ts +13 -0
  244. package/dist/migrations/20260425T051700_organizations_invitations_init.d.ts.map +1 -0
  245. package/dist/migrations/20260425T051700_organizations_invitations_init.js +39 -0
  246. package/dist/migrations/20260425T051700_organizations_invitations_init.js.map +1 -0
  247. package/dist/migrations/20260611T140349_organizations_consolidation.d.ts +35 -0
  248. package/dist/migrations/20260611T140349_organizations_consolidation.d.ts.map +1 -0
  249. package/dist/migrations/20260611T140349_organizations_consolidation.js +180 -0
  250. package/dist/migrations/20260611T140349_organizations_consolidation.js.map +1 -0
  251. package/dist/migrations/20260611T140358_organizations_org_order_confirmation_emails.d.ts +10 -0
  252. package/dist/migrations/20260611T140358_organizations_org_order_confirmation_emails.d.ts.map +1 -0
  253. package/dist/migrations/20260611T140358_organizations_org_order_confirmation_emails.js +14 -0
  254. package/dist/migrations/20260611T140358_organizations_org_order_confirmation_emails.js.map +1 -0
  255. package/dist/migrations/20260611T140402_organizations_org_fulfilment_strategy.d.ts +14 -0
  256. package/dist/migrations/20260611T140402_organizations_org_fulfilment_strategy.d.ts.map +1 -0
  257. package/dist/migrations/20260611T140402_organizations_org_fulfilment_strategy.js +20 -0
  258. package/dist/migrations/20260611T140402_organizations_org_fulfilment_strategy.js.map +1 -0
  259. package/dist/migrations/20260717T151403_organizations_personal_organizations.d.ts +24 -0
  260. package/dist/migrations/20260717T151403_organizations_personal_organizations.d.ts.map +1 -0
  261. package/dist/migrations/20260717T151403_organizations_personal_organizations.js +63 -0
  262. package/dist/migrations/20260717T151403_organizations_personal_organizations.js.map +1 -0
  263. package/dist/migrations/20260718T200340_organizations_organization_custom_field_values.d.ts +12 -0
  264. package/dist/migrations/20260718T200340_organizations_organization_custom_field_values.d.ts.map +1 -0
  265. package/dist/migrations/20260718T200340_organizations_organization_custom_field_values.js +16 -0
  266. package/dist/migrations/20260718T200340_organizations_organization_custom_field_values.js.map +1 -0
  267. package/dist/migrations/20260720T044254_organizations_org_hierarchy.d.ts +23 -0
  268. package/dist/migrations/20260720T044254_organizations_org_hierarchy.d.ts.map +1 -0
  269. package/dist/migrations/20260720T044254_organizations_org_hierarchy.js +37 -0
  270. package/dist/migrations/20260720T044254_organizations_org_hierarchy.js.map +1 -0
  271. package/dist/migrations/20260912T094646_organizations_sales_channel_organizations.d.ts +27 -0
  272. package/dist/migrations/20260912T094646_organizations_sales_channel_organizations.d.ts.map +1 -0
  273. package/dist/migrations/20260912T094646_organizations_sales_channel_organizations.js +44 -0
  274. package/dist/migrations/20260912T094646_organizations_sales_channel_organizations.js.map +1 -0
  275. package/dist/migrations/index.d.ts +35 -0
  276. package/dist/migrations/index.d.ts.map +1 -0
  277. package/dist/migrations/index.js +45 -0
  278. package/dist/migrations/index.js.map +1 -0
  279. package/dist/ports/index.d.ts +53 -0
  280. package/dist/ports/index.d.ts.map +1 -0
  281. package/dist/ports/index.js +2 -0
  282. package/dist/ports/index.js.map +1 -0
  283. package/docs/organization-hierarchy.md +117 -0
  284. package/docs/organizations.md +312 -0
  285. package/i18n/en.json +17 -0
  286. package/i18n/pl.json +17 -0
  287. package/package.json +107 -0
  288. package/tailwind.css +14 -0
@@ -0,0 +1,176 @@
1
+ import { OrganizationSalesRepAssignment } from '../entities/organization-sales-rep-assignment.entity.js';
2
+ import { Organization } from '../entities/organization.entity.js';
3
+ import { HttpError } from '@endora-commerce/platform/http';
4
+ import { ERROR_CODES } from '@endora-commerce/contracts';
5
+ import { recordAuditFromContext } from '@endora-commerce/platform/commands';
6
+ /**
7
+ * Centralised visibility predicate for the sales-rep ↔ organization
8
+ * relation. Every endpoint that lists or operates on Quote Requests
9
+ * (and any future module that wants the same scoping) MUST go through
10
+ * this service so the rule is implemented exactly once.
11
+ *
12
+ * Rules (research §R2):
13
+ * - A platform admin sees every organization (decided by the caller —
14
+ * we only check assignment, not platform-admin role).
15
+ * - An admin user with an explicit assignment row sees that org.
16
+ * - An organization with ZERO assignment rows is in
17
+ * "unassigned-org fallback" mode and is visible to every sales rep.
18
+ */
19
+ export class SalesRepAssignmentService {
20
+ emFactory;
21
+ auditLog;
22
+ subtree;
23
+ constructor(emFactory, auditLog, subtree) {
24
+ this.emFactory = emFactory;
25
+ this.auditLog = auditLog;
26
+ this.subtree = subtree;
27
+ }
28
+ /**
29
+ * Returns true when the admin user is allowed to see the
30
+ * organization's RFQs based on the assignment table.
31
+ *
32
+ * Feature 056 — when the actor holds the roll-up capability, the rule is
33
+ * "nearest assignment on the ancestor-or-self chain wins" (FR-011): the org
34
+ * is visible iff the nearest ancestor-or-self carrying any assignment row
35
+ * assigns it to this rep. An org whose entire chain has zero assignments is
36
+ * visible to any rep (unassigned-org fallback, preserved). Without the
37
+ * capability, the legacy exact-assignment + fallback rule applies.
38
+ */
39
+ async canSeeOrganization(adminUserId, organizationId) {
40
+ const em = this.emFactory();
41
+ if (this.subtree && (await this.subtree.hasRollupCapability(adminUserId))) {
42
+ // Nearest-first chain: self, then ancestors up to the root.
43
+ const chain = [organizationId, ...(await this.subtree.treeService.ancestorIds(organizationId))];
44
+ const rows = await em.find(OrganizationSalesRepAssignment, {
45
+ organizationId: { $in: chain },
46
+ });
47
+ const repsByOrg = this.#repsByOrg(rows);
48
+ for (const orgId of chain) {
49
+ const reps = repsByOrg.get(orgId);
50
+ if (reps)
51
+ return reps.has(adminUserId);
52
+ }
53
+ return true; // no assignment anywhere on the chain → unassigned-org fallback
54
+ }
55
+ const isAssigned = await em.findOne(OrganizationSalesRepAssignment, {
56
+ adminUserId,
57
+ organizationId,
58
+ });
59
+ if (isAssigned)
60
+ return true;
61
+ const orgHasAnyRep = await em.count(OrganizationSalesRepAssignment, { organizationId });
62
+ return orgHasAnyRep === 0; // unassigned-org fallback
63
+ }
64
+ /**
65
+ * Returns the list of organization IDs the admin user can act on.
66
+ *
67
+ * Feature 056 — when the actor holds the roll-up capability, each assigned
68
+ * node expands to its subtree MINUS any descendant subtree governed by its
69
+ * own (nearer) assignment (FR-011). Without the capability, returns the flat
70
+ * assigned rows (pre-feature behavior).
71
+ */
72
+ async listAssignedOrganizationIds(adminUserId) {
73
+ const em = this.emFactory();
74
+ const rows = await em.find(OrganizationSalesRepAssignment, { adminUserId });
75
+ const rawAssigned = rows.map((r) => r.organizationId);
76
+ if (!this.subtree || rawAssigned.length === 0)
77
+ return rawAssigned;
78
+ if (!(await this.subtree.hasRollupCapability(adminUserId)))
79
+ return rawAssigned;
80
+ // All assignment rows (small table) → org → set of reps, for the override rule.
81
+ const allRows = await em.find(OrganizationSalesRepAssignment, {});
82
+ const repsByOrg = this.#repsByOrg(allRows);
83
+ const result = new Set();
84
+ for (const nodeId of new Set(rawAssigned)) {
85
+ const nodes = await this.subtree.treeService.subtreeNodes(nodeId);
86
+ const parentOf = new Map();
87
+ for (const n of nodes)
88
+ parentOf.set(n.id, n.parentId);
89
+ for (const n of nodes) {
90
+ // Walk up to the nearest ancestor-or-self carrying an assignment; the
91
+ // assigned root (nodeId, assigned to this rep) always terminates it.
92
+ let cur = n.id;
93
+ while (cur) {
94
+ const reps = repsByOrg.get(cur);
95
+ if (reps) {
96
+ if (reps.has(adminUserId))
97
+ result.add(n.id);
98
+ break;
99
+ }
100
+ cur = parentOf.get(cur) ?? null;
101
+ }
102
+ }
103
+ }
104
+ return [...result];
105
+ }
106
+ #repsByOrg(rows) {
107
+ const map = new Map();
108
+ for (const r of rows) {
109
+ let set = map.get(r.organizationId);
110
+ if (!set) {
111
+ set = new Set();
112
+ map.set(r.organizationId, set);
113
+ }
114
+ set.add(r.adminUserId);
115
+ }
116
+ return map;
117
+ }
118
+ /** Inserts an assignment if not already present. Returns the row. */
119
+ async assign(input) {
120
+ const em = this.emFactory();
121
+ // Feature 051 — sales reps manage company organizations, not individuals'
122
+ // personal (B2C) orgs.
123
+ const org = await em.findOne(Organization, { id: input.organizationId });
124
+ if (org?.isPersonal) {
125
+ throw new HttpError(422, ERROR_CODES.VALIDATION_FAILED, 'A sales representative cannot be assigned to a personal (individual) organization.');
126
+ }
127
+ const existing = await em.findOne(OrganizationSalesRepAssignment, {
128
+ organizationId: input.organizationId,
129
+ adminUserId: input.adminUserId,
130
+ });
131
+ if (existing)
132
+ return existing;
133
+ const row = em.create(OrganizationSalesRepAssignment, {
134
+ organizationId: input.organizationId,
135
+ adminUserId: input.adminUserId,
136
+ assignedByAdminUserId: input.assignedByAdminUserId ?? null,
137
+ });
138
+ em.persist(row);
139
+ if (this.auditLog) {
140
+ recordAuditFromContext(this.auditLog, em, {
141
+ action: 'organization.sales_rep_assign',
142
+ objectType: 'organization',
143
+ objectId: input.organizationId,
144
+ stateBefore: null,
145
+ stateAfter: { adminUserId: input.adminUserId },
146
+ });
147
+ }
148
+ await em.flush();
149
+ return row;
150
+ }
151
+ async unassign(input) {
152
+ const em = this.emFactory();
153
+ const existing = await em.findOne(OrganizationSalesRepAssignment, {
154
+ organizationId: input.organizationId,
155
+ adminUserId: input.adminUserId,
156
+ });
157
+ if (!existing)
158
+ return false;
159
+ if (this.auditLog) {
160
+ recordAuditFromContext(this.auditLog, em, {
161
+ action: 'organization.sales_rep_unassign',
162
+ objectType: 'organization',
163
+ objectId: input.organizationId,
164
+ stateBefore: { adminUserId: input.adminUserId },
165
+ stateAfter: null,
166
+ });
167
+ }
168
+ await em.removeAndFlush(existing);
169
+ return true;
170
+ }
171
+ async listForOrganization(organizationId) {
172
+ const em = this.emFactory();
173
+ return em.find(OrganizationSalesRepAssignment, { organizationId });
174
+ }
175
+ }
176
+ //# sourceMappingURL=sales-rep-assignment-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sales-rep-assignment-service.js","sourceRoot":"","sources":["../../../src/backend/services/sales-rep-assignment-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Pluggable VAT-ID validator port (feature 026 US7).
3
+ *
4
+ * The real production adapters reach out to VIES (EU VAT IDs) and the
5
+ * Polish Ministerstwo Finansów whitelist (Polish NIPs). Tests inject
6
+ * fake adapters so the suite never makes real HTTP calls.
7
+ *
8
+ * Every adapter MUST degrade safely: a transient network failure or a
9
+ * provider-side 5xx returns `{ outcome: 'deferred', errorKind: ... }`
10
+ * rather than throwing. A clean "not registered" response returns
11
+ * `{ outcome: 'failed', errorKind: 'not_found' }`. Only `validated`
12
+ * carries the optional `legalName` + `address` payloads that the
13
+ * applyAutoFill flow consumes.
14
+ *
15
+ * The two declarations moved to `@endora-commerce/contracts` in feature 075's Phase P so
16
+ * `customers` can name the shape without naming this directory. They are
17
+ * re-exported here for the length of Phase P, which cuts no consumer.
18
+ */
19
+ export type { VatValidationResult, VatValidator } from '@endora-commerce/contracts';
20
+ //# sourceMappingURL=vat-validator-port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vat-validator-port.d.ts","sourceRoot":"","sources":["../../../src/backend/services/vat-validator-port.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=vat-validator-port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vat-validator-port.js","sourceRoot":"","sources":["../../../src/backend/services/vat-validator-port.ts"],"names":[],"mappings":""}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Organization-owned setting codes (feature 026 consolidation).
3
+ *
4
+ * Both keys are platform-wide policies (no per-channel override).
5
+ */
6
+ export declare const ORGANIZATIONS_SETTING_CODES: {
7
+ readonly MODERATION_MODE: "organizations.moderation.mode";
8
+ readonly NEW_REGISTRATION_RECIPIENTS: "organizations.notifications.new_registration_recipients";
9
+ readonly CREDIT_INHERITANCE_MODE: "organizations.hierarchy.credit_inheritance_mode";
10
+ };
11
+ /**
12
+ * Organizations module — manifest backfill (Module Lifecycle, feature 018)
13
+ * extended by feature 026 with two settings keys (moderation mode + new
14
+ * registration email recipients).
15
+ */
16
+ export declare const manifest: {
17
+ id: string;
18
+ name: string;
19
+ version: string;
20
+ dependencies: string[];
21
+ description?: string | undefined;
22
+ acknowledgedDependencies?: {
23
+ moduleId: string;
24
+ port: string;
25
+ reason: string;
26
+ }[] | undefined;
27
+ nonBindingDependencies?: {
28
+ moduleId: string;
29
+ name: string;
30
+ kind: "contributes-to" | "degrades-without" | "refuses-without";
31
+ reason: string;
32
+ whenAbsent?: string | undefined;
33
+ }[] | undefined;
34
+ activation?: {
35
+ settingCode: string;
36
+ default: boolean;
37
+ } | {
38
+ nonDeactivatable: true;
39
+ reason: string;
40
+ } | undefined;
41
+ settings?: {
42
+ moduleCode: string;
43
+ groups: {
44
+ code: string;
45
+ name: string;
46
+ salesChannelCodes?: string[] | undefined;
47
+ isSystemProtected?: boolean | undefined;
48
+ }[];
49
+ settings: {
50
+ code: string;
51
+ name: string;
52
+ valueType: "string" | "number" | "boolean" | "json" | "string_list" | "secret" | "credential_ref";
53
+ defaultValue: unknown;
54
+ description?: string | undefined;
55
+ groupCode?: string | undefined;
56
+ previousDefaultValues?: unknown[] | undefined;
57
+ salesChannelCodes?: string[] | undefined;
58
+ enumOptions?: string[] | undefined;
59
+ configurationType?: string | undefined;
60
+ hidden?: boolean | undefined;
61
+ }[];
62
+ } | undefined;
63
+ i18n?: {
64
+ bundlesDir: string;
65
+ } | undefined;
66
+ docs?: false | {
67
+ dir: string;
68
+ } | undefined;
69
+ demo?: false | {
70
+ summary: string;
71
+ seed: (context: import("@endora-commerce/contracts").ModuleDemoContext<never>) => Promise<import("@endora-commerce/contracts").DemoSeedResult>;
72
+ reset: (context: import("@endora-commerce/contracts").ModuleDemoContext<never>) => Promise<import("@endora-commerce/contracts").DemoResetResult>;
73
+ after?: readonly string[] | undefined;
74
+ package?: string | undefined;
75
+ } | undefined;
76
+ actions?: {
77
+ id: string;
78
+ labelKey: string;
79
+ icon: "Plus" | "Sparkles" | "Settings" | "Search" | "Boxes" | "Layers" | "Menu" | "PlusCircle" | "PlusSquare" | "FilePlus" | "FolderPlus" | "Upload" | "FileUp" | "CloudUpload" | "Download" | "FileDown" | "FileText" | "BookOpen" | "Rss" | "Package" | "Tag" | "ShoppingCart" | "Receipt" | "CreditCard" | "Users" | "UserPlus" | "Inbox" | "ListChecks" | "ClipboardList" | "Image" | "Video" | "LayoutDashboard" | "PanelLeft" | "KeyRound" | "ShieldCheck" | "Edit" | "Archive" | "Box" | "Truck" | "CircleDollarSign" | "Activity" | "LineChart" | "Smartphone" | "Webhook" | "Scale" | "PlugZap" | "PercentDiamond" | "Newspaper" | "Languages" | "Eraser" | "Warehouse" | "TrendingDown" | "Bell" | "PackageOpen" | "Building2" | "Store" | "ClipboardCheck";
80
+ targetRoute: string;
81
+ keywords: string[];
82
+ weight: number;
83
+ descriptionKey?: string | undefined;
84
+ requiredPermission?: string | undefined;
85
+ }[] | undefined;
86
+ permissions?: {
87
+ code: string;
88
+ label: string;
89
+ module?: string | undefined;
90
+ description?: string | undefined;
91
+ requires?: string[] | undefined;
92
+ }[] | undefined;
93
+ transactionalEmails?: {
94
+ code: string;
95
+ name: string;
96
+ variables: {
97
+ key: string;
98
+ label: string;
99
+ sampleValue?: string | undefined;
100
+ description?: string | undefined;
101
+ }[];
102
+ description?: string | undefined;
103
+ group?: string | undefined;
104
+ }[] | undefined;
105
+ capabilities?: string[] | undefined;
106
+ exclusiveCapabilities?: {
107
+ key: string;
108
+ errorCode: string;
109
+ }[] | undefined;
110
+ errorCodes?: {
111
+ code: string;
112
+ tokens?: string[] | undefined;
113
+ }[] | undefined;
114
+ blocks?: {
115
+ name: string;
116
+ labelKey: string;
117
+ category: string;
118
+ contexts: ("email" | "invoice" | "cms" | "newsletter")[];
119
+ fields: Record<string, {
120
+ type: "number" | "object" | "array" | "uuid" | "text" | "textarea" | "select" | "radio" | "external" | "richtext";
121
+ label?: string | undefined;
122
+ required?: boolean | undefined;
123
+ options?: {
124
+ label: string;
125
+ value: string | number;
126
+ }[] | undefined;
127
+ refKind?: string | undefined;
128
+ }>;
129
+ descriptionKey?: string | undefined;
130
+ defaultProps?: Record<string, unknown> | undefined;
131
+ responsiveFields?: string[] | undefined;
132
+ previewIcon?: string | undefined;
133
+ weight?: number | undefined;
134
+ }[] | undefined;
135
+ blockCategories?: {
136
+ key: string;
137
+ titleKey: string;
138
+ contexts: ("email" | "invoice" | "cms" | "newsletter")[];
139
+ weight?: number | undefined;
140
+ visible?: boolean | undefined;
141
+ }[] | undefined;
142
+ env?: {
143
+ name: string;
144
+ describes: {
145
+ en: string;
146
+ pl: string;
147
+ };
148
+ requirement: {
149
+ kind: "required";
150
+ } | {
151
+ kind: "requiredWhen";
152
+ input: string;
153
+ equals: string;
154
+ } | {
155
+ kind: "optional";
156
+ without: {
157
+ en: string;
158
+ pl: string;
159
+ };
160
+ };
161
+ secret: boolean;
162
+ generable: boolean;
163
+ owner: {
164
+ kind: "platform";
165
+ } | {
166
+ kind: "application";
167
+ application: "admin" | "backend" | "storefront";
168
+ } | {
169
+ kind: "module";
170
+ moduleId: string;
171
+ };
172
+ consumers: ("admin" | "backend" | "storefront")[];
173
+ addressOf: "admin" | "backend" | "storefront" | null;
174
+ }[] | undefined;
175
+ };
176
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AA+BA;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;;CAM9B,CAAC;AAoCX;;;;GAIG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAybnB,CAAC"}