@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,68 @@
1
+ import { evaluateApplicationRule, } from '@endora-commerce/contracts';
2
+ import { Organization } from '../entities/organization.entity.js';
3
+ /**
4
+ * Returns the set of Price Lists currently applicable to a given
5
+ * Organization, each tagged with the reasons it applies. Implementation
6
+ * reuses the existing application-rule evaluator (no new persistence
7
+ * surface) — see research.md R6.
8
+ */
9
+ export class OrganizationEffectivePriceListsService {
10
+ deps;
11
+ constructor(deps) {
12
+ this.deps = deps;
13
+ }
14
+ async listApplicable(organizationId) {
15
+ const em = this.deps.emFactory();
16
+ const org = await em.findOne(Organization, { id: organizationId, deletedAt: null });
17
+ if (!org)
18
+ return [];
19
+ const salesChannelId = await this.deps.resolveDefaultSalesChannelId();
20
+ const now = new Date();
21
+ const candidates = await this.deps.priceListRead.listActive();
22
+ const ctx = {
23
+ organizationId: org.id,
24
+ customerGroupId: org.customerGroupId ?? null,
25
+ salesChannelId,
26
+ currencyCode: 'PLN',
27
+ productCategoryIds: new Set(),
28
+ };
29
+ const results = [];
30
+ for (const pl of candidates) {
31
+ // Time-window check: skip lists that haven't started or have expired.
32
+ if (pl.startsAt && pl.startsAt > now)
33
+ continue;
34
+ if (pl.endsAt && pl.endsAt < now)
35
+ continue;
36
+ const evaluation = evaluateApplicationRule(pl.applicationRule, ctx);
37
+ if (!evaluation.matched)
38
+ continue;
39
+ const reasons = [];
40
+ if (evaluation.explicitOn.has('organization'))
41
+ reasons.push('direct_organization_match');
42
+ if (evaluation.explicitOn.has('customerGroup'))
43
+ reasons.push('customer_group_match');
44
+ if (evaluation.explicitOn.has('salesChannel'))
45
+ reasons.push('sales_channel_inheritance');
46
+ if (evaluation.explicitOn.has('category'))
47
+ reasons.push('segment_rule_match');
48
+ // The "all" rule (kind='all') matches without any explicitOn — surface
49
+ // as a segment-rule-match-like blanket entry so the UI shows something.
50
+ if (reasons.length === 0)
51
+ reasons.push('segment_rule_match');
52
+ results.push({
53
+ priceListId: pl.id,
54
+ name: pl.name,
55
+ priority: reasons.length, // higher specificity → higher priority
56
+ reasons,
57
+ });
58
+ }
59
+ // Sort by priority desc, then by name asc for stable display.
60
+ results.sort((a, b) => {
61
+ if (b.priority !== a.priority)
62
+ return b.priority - a.priority;
63
+ return a.name.localeCompare(b.name);
64
+ });
65
+ return results;
66
+ }
67
+ }
68
+ //# sourceMappingURL=organization-effective-pricelists-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-effective-pricelists-service.js","sourceRoot":"","sources":["../../../src/backend/services/organization-effective-pricelists-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import type { EntityManager } from '@mikro-orm/postgresql';
2
+ import type { CreditLimitReadPort } from '@endora-commerce/contracts';
3
+ import type { OrganizationTreeService } from './organization-tree-service.js';
4
+ /**
5
+ * OrganizationInheritanceService (feature 056 US3) — the organizations-owned
6
+ * resolution port that the price-list resolver and the credit-limit service
7
+ * call to walk the ancestor chain (Principle I). No schema change to
8
+ * `price_lists` / `credit_limits`; inheritance is resolution semantics (R5/R6).
9
+ *
10
+ * Flat behavior is preserved: for a root org (no ancestors) the price-list org
11
+ * chain is `[orgId]` and `creditOwner` is the org itself (or none), collapsing
12
+ * to today's single-org resolution byte-for-byte (FR-013).
13
+ */
14
+ export type CreditInheritanceMode = 'shared_pool' | 'independent_default';
15
+ export interface CreditOwner {
16
+ /** Nearest ancestor-or-self holding a `CreditLimit` row, or null when none exists. */
17
+ readonly ownerOrgId: string | null;
18
+ /** Effective mode: the owner's per-org column, else the Settings global default. */
19
+ readonly mode: CreditInheritanceMode;
20
+ }
21
+ export declare class OrganizationInheritanceService {
22
+ private readonly emFactory;
23
+ private readonly treeService;
24
+ /**
25
+ * `creditLimitReadPort`, owned by `credit_limits` — which links of an
26
+ * ancestor chain hold a limit at all (feature 077, D-87).
27
+ *
28
+ * **Required**, and third rather than last, because the optional shape is
29
+ * the one that fails open: a composition that omitted it would answer
30
+ * "nobody in this chain has a limit" for every organisation, which is a
31
+ * plausible reading and the wrong one. The read it replaces was raw SQL
32
+ * against that module's table, so an absent or switched-off owner made no
33
+ * difference to the answer at all.
34
+ */
35
+ private readonly creditLimits;
36
+ /**
37
+ * Resolves the Settings global default `organizations.hierarchy.credit_inheritance_mode`.
38
+ * Defaults to `shared_pool` (factory default, R6) when not injected.
39
+ */
40
+ private readonly resolveGlobalCreditMode;
41
+ constructor(emFactory: () => EntityManager, treeService: OrganizationTreeService,
42
+ /**
43
+ * `creditLimitReadPort`, owned by `credit_limits` — which links of an
44
+ * ancestor chain hold a limit at all (feature 077, D-87).
45
+ *
46
+ * **Required**, and third rather than last, because the optional shape is
47
+ * the one that fails open: a composition that omitted it would answer
48
+ * "nobody in this chain has a limit" for every organisation, which is a
49
+ * plausible reading and the wrong one. The read it replaces was raw SQL
50
+ * against that module's table, so an absent or switched-off owner made no
51
+ * difference to the answer at all.
52
+ */
53
+ creditLimits: CreditLimitReadPort,
54
+ /**
55
+ * Resolves the Settings global default `organizations.hierarchy.credit_inheritance_mode`.
56
+ * Defaults to `shared_pool` (factory default, R6) when not injected.
57
+ */
58
+ resolveGlobalCreditMode?: () => Promise<CreditInheritanceMode>);
59
+ /** Ancestor ids of `orgId`, nearest-first (parent → … → root). `[]` for a root. */
60
+ ancestorIds(orgId: string): Promise<string[]>;
61
+ /**
62
+ * Ordered org candidate set for price-list resolution: `[orgId, ...ancestorIds]`
63
+ * (nearest-first). A nearer org outranks a farther ancestor (R5).
64
+ */
65
+ priceListOrgChain(orgId: string): Promise<string[]>;
66
+ /**
67
+ * Nearest ancestor-or-self holding a `CreditLimit` row, plus the effective
68
+ * credit-inheritance mode (the owner's per-org column, else the global default).
69
+ * `ownerOrgId` is null when neither the org nor any ancestor has a limit.
70
+ */
71
+ creditOwner(orgId: string): Promise<CreditOwner>;
72
+ }
73
+ //# sourceMappingURL=organization-inheritance-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-inheritance-service.d.ts","sourceRoot":"","sources":["../../../src/backend/services/organization-inheritance-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E;;;;;;;;;GASG;AAEH,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,qBAAqB,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,sFAAsF;IACtF,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;CACtC;AAED,qBAAa,8BAA8B;IAEvC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAlBvB,SAAS,EAAE,MAAM,aAAa,EAC9B,WAAW,EAAE,uBAAuB;IACrD;;;;;;;;;;OAUG;IACc,YAAY,EAAE,mBAAmB;IAClD;;;OAGG;IACc,uBAAuB,GAAE,MAAM,OAAO,CAAC,qBAAqB,CAC9D;IAGjB,mFAAmF;IAC7E,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAInD;;;OAGG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzD;;;;OAIG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAuBvD"}
@@ -0,0 +1,63 @@
1
+ export class OrganizationInheritanceService {
2
+ emFactory;
3
+ treeService;
4
+ creditLimits;
5
+ resolveGlobalCreditMode;
6
+ constructor(emFactory, treeService,
7
+ /**
8
+ * `creditLimitReadPort`, owned by `credit_limits` — which links of an
9
+ * ancestor chain hold a limit at all (feature 077, D-87).
10
+ *
11
+ * **Required**, and third rather than last, because the optional shape is
12
+ * the one that fails open: a composition that omitted it would answer
13
+ * "nobody in this chain has a limit" for every organisation, which is a
14
+ * plausible reading and the wrong one. The read it replaces was raw SQL
15
+ * against that module's table, so an absent or switched-off owner made no
16
+ * difference to the answer at all.
17
+ */
18
+ creditLimits,
19
+ /**
20
+ * Resolves the Settings global default `organizations.hierarchy.credit_inheritance_mode`.
21
+ * Defaults to `shared_pool` (factory default, R6) when not injected.
22
+ */
23
+ resolveGlobalCreditMode = async () => 'shared_pool') {
24
+ this.emFactory = emFactory;
25
+ this.treeService = treeService;
26
+ this.creditLimits = creditLimits;
27
+ this.resolveGlobalCreditMode = resolveGlobalCreditMode;
28
+ }
29
+ /** Ancestor ids of `orgId`, nearest-first (parent → … → root). `[]` for a root. */
30
+ async ancestorIds(orgId) {
31
+ return this.treeService.ancestorIds(orgId);
32
+ }
33
+ /**
34
+ * Ordered org candidate set for price-list resolution: `[orgId, ...ancestorIds]`
35
+ * (nearest-first). A nearer org outranks a farther ancestor (R5).
36
+ */
37
+ async priceListOrgChain(orgId) {
38
+ return [orgId, ...(await this.treeService.ancestorIds(orgId))];
39
+ }
40
+ /**
41
+ * Nearest ancestor-or-self holding a `CreditLimit` row, plus the effective
42
+ * credit-inheritance mode (the owner's per-org column, else the global default).
43
+ * `ownerOrgId` is null when neither the org nor any ancestor has a limit.
44
+ */
45
+ async creditOwner(orgId) {
46
+ const chain = [orgId, ...(await this.treeService.ancestorIds(orgId))]; // nearest-first
47
+ // Which orgs in the chain hold a credit limit? Asked of the module that
48
+ // owns the table, not selected out of it (feature 077, D-87). No `catch`:
49
+ // a switched-off `credit_limits` must refuse here rather than report an
50
+ // empty chain, which downstream reads as "no limit applies".
51
+ const hasLimit = new Set(await this.creditLimits.organizationsWithLimit(chain));
52
+ const ownerOrgId = chain.find((id) => hasLimit.has(id)) ?? null;
53
+ if (!ownerOrgId) {
54
+ return { ownerOrgId: null, mode: await this.resolveGlobalCreditMode() };
55
+ }
56
+ // This module's own table, so it stays a statement here.
57
+ const modeRows = (await this.emFactory().getConnection().execute(`select "credit_inheritance_mode" from "organizations" where "id" = ?`, [ownerOrgId]));
58
+ const ownMode = modeRows[0]?.credit_inheritance_mode ?? null;
59
+ const mode = ownMode ?? (await this.resolveGlobalCreditMode());
60
+ return { ownerOrgId, mode };
61
+ }
62
+ }
63
+ //# sourceMappingURL=organization-inheritance-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-inheritance-service.js","sourceRoot":"","sources":["../../../src/backend/services/organization-inheritance-service.ts"],"names":[],"mappings":"AAwBA,MAAM,OAAO,8BAA8B;IAEtB;IACA;IAYA;IAKA;IAnBnB,YACmB,SAA8B,EAC9B,WAAoC;IACrD;;;;;;;;;;OAUG;IACc,YAAiC;IAClD;;;OAGG;IACc,0BAAgE,KAAK,IAAI,EAAE,CAC1F,aAAa;QAnBE,cAAS,GAAT,SAAS,CAAqB;QAC9B,gBAAW,GAAX,WAAW,CAAyB;QAYpC,iBAAY,GAAZ,YAAY,CAAqB;QAKjC,4BAAuB,GAAvB,uBAAuB,CACzB;IACd,CAAC;IAEJ,mFAAmF;IACnF,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,KAAa;QACnC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;QAEvF,wEAAwE;QACxE,0EAA0E;QAC1E,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;QAEhE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;QAC1E,CAAC;QAED,yDAAyD;QACzD,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,EAAE,CAAC,OAAO,CAC9D,sEAAsE,EACtE,CAAC,UAAU,CAAC,CACb,CAAqE,CAAC;QACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,uBAAuB,IAAI,IAAI,CAAC;QAC7D,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC/D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;CACF"}
@@ -0,0 +1,124 @@
1
+ import type { EntityManager } from '@mikro-orm/postgresql';
2
+ import { Organization, type OrganizationStatus } from '../entities/organization.entity.js';
3
+ import type { AuditPort } from '@endora-commerce/platform/kernel';
4
+ import type { CustomerAccountReadPort, EmailMailerPort } from '@endora-commerce/contracts';
5
+ import type { OrganizationEventBus } from './registration-service.js';
6
+ import { type OrgTemplateEmail } from './org-template-email.js';
7
+ /**
8
+ * OrganizationModerationService — owns every status transition on the
9
+ * Organization entity (feature 026 US1 + US3).
10
+ *
11
+ * Lifecycle (see `data-model.md` §3 state diagram):
12
+ * pending_verification -> active via approve()
13
+ * pending_verification -> rejected via reject(reason)
14
+ * active -> blocked via block(reason?)
15
+ * blocked -> active via unblock()
16
+ *
17
+ * Every transition is recorded to `audit_log_entries` with `before/after`
18
+ * snapshots and the actor; emits `organization.status_changed.v1` so the
19
+ * notifier + downstream consumers (pricing cache, sales-rep dashboards)
20
+ * can react. Each write is gated by the Organization's `version` column
21
+ * — mismatch raises `OrganizationVersionMismatchError` which routes map
22
+ * to HTTP 409 with `currentVersion` in the body.
23
+ *
24
+ * The service also exposes `handleNewlyRegistered(orgId)` — invoked by
25
+ * the registration-event subscriber so the moderation-mode setting
26
+ * (`organizations.moderation.mode`) flips the new org straight to
27
+ * `active` when the platform runs in `auto` mode. The subscriber is
28
+ * wired in the composition root.
29
+ *
30
+ * Customer email notifications (approval, rejection) go through the
31
+ * admin-editable transactional template, which resolves them in the
32
+ * recipient's language, and fall back to the English in-code builders below
33
+ * only when the platform holds no definition for the code. The recipient is
34
+ * the Organization's first `organization_admin` Customer account, read through
35
+ * `customer_accounts`' published port (feature 075, D-87).
36
+ */
37
+ export interface ModerationActorContext {
38
+ actorAdminUserId?: string | null;
39
+ requestId?: string | null;
40
+ }
41
+ export interface ApproveOptions extends ModerationActorContext {
42
+ expectedVersion: number;
43
+ }
44
+ export interface RejectOptions extends ModerationActorContext {
45
+ expectedVersion: number;
46
+ reason: string;
47
+ notifyCustomerEmail?: boolean;
48
+ }
49
+ export interface BlockOptions extends ModerationActorContext {
50
+ expectedVersion: number;
51
+ reason?: string | null;
52
+ }
53
+ export interface UnblockOptions extends ModerationActorContext {
54
+ expectedVersion: number;
55
+ }
56
+ export declare class OrganizationModerationService {
57
+ private readonly emFactory;
58
+ private readonly auditLogService;
59
+ private readonly events;
60
+ private readonly mailer;
61
+ /**
62
+ * `customer_accounts`' published read, for the one question this service
63
+ * asks it: who receives the approval or rejection message.
64
+ */
65
+ private readonly customerAccounts;
66
+ /** Resolver for the moderation-mode setting. Returns 'auto' or 'manual'. */
67
+ private readonly resolveModerationMode;
68
+ /**
69
+ * The transactional-template seam, which is where the language comes from.
70
+ *
71
+ * Defaulted to the no-op rather than made required so a composition that
72
+ * does not wire it keeps sending — silence would be worse than the
73
+ * fallback language, which is the whole argument for keeping the in-code
74
+ * builders below.
75
+ */
76
+ private readonly templateEmail;
77
+ constructor(emFactory: () => EntityManager, auditLogService: AuditPort, events: OrganizationEventBus, mailer: EmailMailerPort,
78
+ /**
79
+ * `customer_accounts`' published read, for the one question this service
80
+ * asks it: who receives the approval or rejection message.
81
+ */
82
+ customerAccounts: CustomerAccountReadPort,
83
+ /** Resolver for the moderation-mode setting. Returns 'auto' or 'manual'. */
84
+ resolveModerationMode: () => Promise<'auto' | 'manual'>,
85
+ /**
86
+ * The transactional-template seam, which is where the language comes from.
87
+ *
88
+ * Defaulted to the no-op rather than made required so a composition that
89
+ * does not wire it keeps sending — silence would be worse than the
90
+ * fallback language, which is the whole argument for keeping the in-code
91
+ * builders below.
92
+ */
93
+ templateEmail?: OrgTemplateEmail);
94
+ /**
95
+ * Invoked by the `organization.registered.v1` subscriber. When the
96
+ * setting is `auto`, the freshly created org is approved immediately
97
+ * (system actor = null adminUserId). When `manual`, this is a no-op
98
+ * — the org stays in `pending_verification` until an admin acts.
99
+ */
100
+ handleNewlyRegistered(organizationId: string): Promise<void>;
101
+ approve(organizationId: string, options: ApproveOptions): Promise<Organization>;
102
+ reject(organizationId: string, options: RejectOptions): Promise<Organization>;
103
+ block(organizationId: string, options: BlockOptions): Promise<Organization>;
104
+ unblock(organizationId: string, options: UnblockOptions): Promise<Organization>;
105
+ private transition;
106
+ private notifyCustomer;
107
+ }
108
+ export declare class OrganizationNotFoundError extends Error {
109
+ readonly organizationId: string;
110
+ constructor(organizationId: string);
111
+ }
112
+ export declare class OrganizationVersionMismatchError extends Error {
113
+ readonly organizationId: string;
114
+ readonly expectedVersion: number;
115
+ readonly currentVersion: number;
116
+ constructor(organizationId: string, expectedVersion: number, currentVersion: number);
117
+ }
118
+ export declare class OrganizationStatusGuardError extends Error {
119
+ readonly organizationId: string;
120
+ readonly currentStatus: OrganizationStatus;
121
+ readonly requiredStatus: OrganizationStatus;
122
+ constructor(organizationId: string, currentStatus: OrganizationStatus, requiredStatus: OrganizationStatus);
123
+ }
124
+ //# sourceMappingURL=organization-moderation-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-moderation-service.d.ts","sourceRoot":"","sources":["../../../src/backend/services/organization-moderation-service.ts"],"names":[],"mappings":"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"}