@tailor-platform/erp-kit 0.2.1 → 0.2.2

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 (618) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -23
  3. package/dist/cli.mjs +1613 -0
  4. package/package.json +14 -13
  5. package/schemas/app-compose/story.yml +12 -0
  6. package/schemas/module/command.yml +9 -0
  7. package/schemas/module/module.yml +4 -0
  8. package/schemas/module/query.yml +9 -0
  9. package/skills/erp-kit-app-1-requirements/SKILL.md +4 -4
  10. package/skills/erp-kit-app-2-requirements-review/SKILL.md +102 -0
  11. package/skills/erp-kit-app-2-requirements-review/references/best-practices-check.md +66 -0
  12. package/skills/erp-kit-app-2-requirements-review/references/boundary-consistency-check.md +69 -0
  13. package/skills/erp-kit-app-2-requirements-review/references/requirements-report-format.md +25 -0
  14. package/skills/erp-kit-app-3-plan/SKILL.md +157 -0
  15. package/skills/erp-kit-app-3-plan/references/resolver-extraction.md +107 -0
  16. package/skills/erp-kit-app-3-plan/references/screen-extraction.md +74 -0
  17. package/skills/erp-kit-app-3-plan/references/story-extraction.md +86 -0
  18. package/skills/erp-kit-app-4-plan-review/SKILL.md +177 -0
  19. package/skills/erp-kit-app-4-plan-review/references/actor-flow-parity.md +73 -0
  20. package/skills/erp-kit-app-4-plan-review/references/business-flow-story-parity.md +86 -0
  21. package/skills/erp-kit-app-4-plan-review/references/orphan-detection.md +69 -0
  22. package/skills/erp-kit-app-4-plan-review/references/parity-report-format.md +52 -0
  23. package/skills/erp-kit-app-4-plan-review/references/story-resolver-parity.md +83 -0
  24. package/skills/erp-kit-app-4-plan-review/references/story-screen-parity.md +73 -0
  25. package/skills/{erp-kit-app-5-implementation → erp-kit-app-5-impl-backend}/SKILL.md +24 -68
  26. package/skills/erp-kit-app-5-impl-backend/references/app-config.md +38 -0
  27. package/skills/erp-kit-app-5-impl-backend/references/module-wiring.md +48 -0
  28. package/skills/erp-kit-app-5-impl-backend/references/resolver-patterns.md +68 -0
  29. package/skills/erp-kit-app-6-impl-frontend/SKILL.md +74 -0
  30. package/skills/{erp-kit-app-5-implementation/references/frontend.md → erp-kit-app-6-impl-frontend/references/pages.md} +8 -90
  31. package/skills/erp-kit-app-7-impl-review/SKILL.md +176 -0
  32. package/skills/erp-kit-app-7-impl-review/references/impl-parity-report-format.md +52 -0
  33. package/skills/erp-kit-app-7-impl-review/references/module-wiring-parity.md +84 -0
  34. package/skills/erp-kit-app-7-impl-review/references/resolver-doc-code-parity.md +86 -0
  35. package/skills/erp-kit-app-7-impl-review/references/screen-doc-code-parity.md +86 -0
  36. package/skills/erp-kit-module-1-requirements/SKILL.md +126 -0
  37. package/skills/erp-kit-module-1-requirements/references/boundary-analysis.md +51 -0
  38. package/skills/erp-kit-module-1-requirements/references/erp-research.md +57 -0
  39. package/skills/erp-kit-module-1-requirements/references/feature-doc.md +61 -0
  40. package/skills/erp-kit-module-2-requirements-review/SKILL.md +112 -0
  41. package/skills/erp-kit-module-2-requirements-review/references/best-practices-check.md +79 -0
  42. package/skills/erp-kit-module-2-requirements-review/references/boundary-consistency-check.md +70 -0
  43. package/skills/erp-kit-module-2-requirements-review/references/requirements-report-format.md +25 -0
  44. package/skills/erp-kit-module-3-plan/SKILL.md +107 -0
  45. package/skills/erp-kit-module-3-plan/references/command-extraction.md +87 -0
  46. package/skills/erp-kit-module-3-plan/references/model-extraction.md +72 -0
  47. package/skills/erp-kit-module-3-plan/references/query-extraction.md +59 -0
  48. package/skills/erp-kit-module-4-plan-review/SKILL.md +158 -0
  49. package/skills/erp-kit-module-4-plan-review/references/command-model-consistency.md +46 -0
  50. package/skills/erp-kit-module-4-plan-review/references/feature-command-parity.md +97 -0
  51. package/skills/erp-kit-module-4-plan-review/references/feature-model-parity.md +47 -0
  52. package/skills/erp-kit-module-4-plan-review/references/feature-query-parity.md +70 -0
  53. package/skills/erp-kit-module-4-plan-review/references/parity-report-format.md +52 -0
  54. package/skills/erp-kit-module-5-impl/SKILL.md +118 -0
  55. package/skills/erp-kit-module-5-impl/references/command-impl.md +68 -0
  56. package/skills/erp-kit-module-5-impl/references/exports.md +10 -0
  57. package/skills/erp-kit-module-5-impl/references/model-impl.md +45 -0
  58. package/skills/erp-kit-module-5-impl/references/query-impl.md +53 -0
  59. package/skills/erp-kit-module-6-impl-review/SKILL.md +187 -0
  60. package/skills/erp-kit-module-6-impl-review/references/command-doc-code-parity.md +92 -0
  61. package/skills/erp-kit-module-6-impl-review/references/command-doc-test-parity.md +93 -0
  62. package/skills/erp-kit-module-6-impl-review/references/error-implementation-parity.md +95 -0
  63. package/skills/{erp-kit-module-5-impl-review → erp-kit-module-6-impl-review}/references/errors.md +1 -1
  64. package/skills/erp-kit-module-6-impl-review/references/impl-parity-report-format.md +52 -0
  65. package/skills/erp-kit-module-6-impl-review/references/model-doc-code-parity.md +80 -0
  66. package/skills/erp-kit-module-shared/SKILL.md +1 -1
  67. package/skills/erp-kit-module-shared/references/commands.md +1 -1
  68. package/skills/erp-kit-module-shared/references/errors.md +12 -9
  69. package/skills/erp-kit-module-shared/references/queries.md +109 -36
  70. package/skills/erp-kit-module-shared/references/testing.md +10 -0
  71. package/skills/erp-kit-update/SKILL.md +2 -2
  72. package/src/app.ts +1 -1
  73. package/src/commands/check.ts +1 -1
  74. package/src/commands/index.ts +16 -5
  75. package/src/commands/init.test.ts +22 -69
  76. package/src/commands/init.ts +28 -115
  77. package/src/commands/lib/distribute.test.ts +126 -0
  78. package/src/commands/lib/distribute.ts +129 -0
  79. package/src/commands/parse-doc-test-cases.ts +55 -0
  80. package/src/commands/scaffold.test.ts +74 -33
  81. package/src/commands/scaffold.ts +54 -18
  82. package/src/commands/sync-check.test.ts +173 -0
  83. package/src/commands/sync-check.ts +103 -2
  84. package/src/commands/update.test.ts +87 -0
  85. package/src/commands/update.ts +41 -0
  86. package/src/generator/generate-code.test.ts +23 -12
  87. package/src/generator/generate-code.ts +22 -16
  88. package/src/integration.test.ts +1 -1
  89. package/src/module.ts +14 -97
  90. package/src/modules/item-management/README.md +8 -0
  91. package/src/modules/item-management/command/activateItem.generated.ts +1 -1
  92. package/src/modules/item-management/command/activateItem.test.ts +12 -18
  93. package/src/modules/item-management/command/activateItem.ts +9 -5
  94. package/src/modules/item-management/command/assignItemToTaxonomy.generated.ts +1 -1
  95. package/src/modules/item-management/command/assignItemToTaxonomy.test.ts +10 -24
  96. package/src/modules/item-management/command/assignItemToTaxonomy.ts +19 -16
  97. package/src/modules/item-management/command/createItem.generated.ts +1 -1
  98. package/src/modules/item-management/command/createItem.test.ts +11 -11
  99. package/src/modules/item-management/command/createItem.ts +16 -7
  100. package/src/modules/item-management/command/createTaxonomyNode.generated.ts +1 -1
  101. package/src/modules/item-management/command/createTaxonomyNode.test.ts +9 -9
  102. package/src/modules/item-management/command/createTaxonomyNode.ts +33 -14
  103. package/src/modules/item-management/command/deactivateItem.generated.ts +1 -1
  104. package/src/modules/item-management/command/deactivateItem.test.ts +12 -18
  105. package/src/modules/item-management/command/deactivateItem.ts +9 -5
  106. package/src/modules/item-management/command/deleteItem.generated.ts +1 -1
  107. package/src/modules/item-management/command/deleteItem.test.ts +10 -16
  108. package/src/modules/item-management/command/deleteItem.ts +9 -5
  109. package/src/modules/item-management/command/deleteTaxonomyNode.generated.ts +1 -1
  110. package/src/modules/item-management/command/deleteTaxonomyNode.test.ts +10 -16
  111. package/src/modules/item-management/command/deleteTaxonomyNode.ts +22 -12
  112. package/src/modules/item-management/command/moveTaxonomyNode.generated.ts +1 -1
  113. package/src/modules/item-management/command/moveTaxonomyNode.test.ts +10 -10
  114. package/src/modules/item-management/command/moveTaxonomyNode.ts +63 -19
  115. package/src/modules/item-management/command/reactivateItem.generated.ts +1 -1
  116. package/src/modules/item-management/command/reactivateItem.test.ts +12 -18
  117. package/src/modules/item-management/command/reactivateItem.ts +9 -5
  118. package/src/modules/item-management/command/removeItemFromTaxonomy.generated.ts +1 -1
  119. package/src/modules/item-management/command/removeItemFromTaxonomy.test.ts +9 -16
  120. package/src/modules/item-management/command/removeItemFromTaxonomy.ts +11 -6
  121. package/src/modules/item-management/command/updateItem.generated.ts +1 -1
  122. package/src/modules/item-management/command/updateItem.test.ts +16 -16
  123. package/src/modules/item-management/command/updateItem.ts +11 -6
  124. package/src/modules/item-management/command/updateTaxonomyNode.generated.ts +1 -1
  125. package/src/modules/item-management/command/updateTaxonomyNode.test.ts +14 -20
  126. package/src/modules/item-management/command/updateTaxonomyNode.ts +9 -6
  127. package/src/modules/item-management/docs/commands/ActivateItem.md +8 -0
  128. package/src/modules/item-management/docs/commands/AssignItemToTaxonomy.md +7 -0
  129. package/src/modules/item-management/docs/commands/CreateItem.md +10 -0
  130. package/src/modules/item-management/docs/commands/CreateTaxonomyNode.md +9 -0
  131. package/src/modules/item-management/docs/commands/DeactivateItem.md +8 -0
  132. package/src/modules/item-management/docs/commands/DeleteItem.md +7 -0
  133. package/src/modules/item-management/docs/commands/DeleteTaxonomyNode.md +7 -0
  134. package/src/modules/item-management/docs/commands/MoveTaxonomyNode.md +10 -0
  135. package/src/modules/item-management/docs/commands/ReactivateItem.md +8 -0
  136. package/src/modules/item-management/docs/commands/RemoveItemFromTaxonomy.md +5 -0
  137. package/src/modules/item-management/docs/commands/UpdateItem.md +15 -0
  138. package/src/modules/item-management/docs/commands/UpdateTaxonomyNode.md +9 -0
  139. package/src/modules/item-management/docs/queries/CalculateNodeDepth.md +8 -0
  140. package/src/modules/item-management/docs/queries/CalculateSubtreeDepth.md +7 -0
  141. package/src/modules/item-management/docs/queries/DetectCircularReference.md +9 -0
  142. package/src/modules/item-management/docs/queries/GetItem.md +9 -0
  143. package/src/modules/item-management/docs/queries/GetItemTaxonomyAssignment.md +5 -0
  144. package/src/modules/item-management/docs/queries/GetTaxonomyNode.md +7 -0
  145. package/src/modules/item-management/docs/queries/GetTaxonomyNodeAssignments.md +5 -0
  146. package/src/modules/item-management/docs/queries/GetTaxonomyNodeChildren.md +6 -0
  147. package/src/modules/item-management/index.ts +0 -51
  148. package/src/modules/item-management/lib/errors.generated.ts +24 -24
  149. package/src/modules/item-management/lib/permissions.generated.ts +1 -1
  150. package/src/modules/item-management/lib/types.ts +1 -1
  151. package/src/modules/item-management/module.ts +1 -1
  152. package/src/modules/item-management/query/calculateNodeDepth.generated.ts +1 -1
  153. package/src/modules/item-management/query/calculateNodeDepth.test.ts +21 -6
  154. package/src/modules/item-management/query/calculateNodeDepth.ts +2 -2
  155. package/src/modules/item-management/query/calculateSubtreeDepth.generated.ts +1 -1
  156. package/src/modules/item-management/query/calculateSubtreeDepth.test.ts +17 -5
  157. package/src/modules/item-management/query/calculateSubtreeDepth.ts +2 -2
  158. package/src/modules/item-management/query/detectCircularReference.generated.ts +1 -1
  159. package/src/modules/item-management/query/detectCircularReference.test.ts +25 -7
  160. package/src/modules/item-management/query/detectCircularReference.ts +4 -4
  161. package/src/modules/item-management/query/getItem.generated.ts +1 -1
  162. package/src/modules/item-management/query/getItem.test.ts +25 -7
  163. package/src/modules/item-management/query/getItem.ts +2 -2
  164. package/src/modules/item-management/query/getItemTaxonomyAssignment.generated.ts +1 -1
  165. package/src/modules/item-management/query/getItemTaxonomyAssignment.test.ts +9 -3
  166. package/src/modules/item-management/query/getItemTaxonomyAssignment.ts +2 -2
  167. package/src/modules/item-management/query/getTaxonomyNode.generated.ts +1 -1
  168. package/src/modules/item-management/query/getTaxonomyNode.test.ts +17 -5
  169. package/src/modules/item-management/query/getTaxonomyNode.ts +2 -2
  170. package/src/modules/item-management/query/getTaxonomyNodeAssignments.generated.ts +1 -1
  171. package/src/modules/item-management/query/getTaxonomyNodeAssignments.test.ts +9 -3
  172. package/src/modules/item-management/query/getTaxonomyNodeAssignments.ts +2 -2
  173. package/src/modules/item-management/query/getTaxonomyNodeChildren.generated.ts +1 -1
  174. package/src/modules/item-management/query/getTaxonomyNodeChildren.test.ts +13 -4
  175. package/src/modules/item-management/query/getTaxonomyNodeChildren.ts +2 -2
  176. package/src/modules/item-management/tailor.config.ts +6 -4
  177. package/src/modules/item-management/tailor.d.ts +13 -0
  178. package/src/modules/primitives/README.md +8 -0
  179. package/src/modules/primitives/command/activateCategory.generated.ts +1 -1
  180. package/src/modules/primitives/command/activateCategory.test.ts +8 -18
  181. package/src/modules/primitives/command/activateCategory.ts +9 -5
  182. package/src/modules/primitives/command/activateCurrency.generated.ts +1 -1
  183. package/src/modules/primitives/command/activateCurrency.test.ts +8 -18
  184. package/src/modules/primitives/command/activateCurrency.ts +9 -5
  185. package/src/modules/primitives/command/activateUnit.generated.ts +1 -1
  186. package/src/modules/primitives/command/activateUnit.test.ts +8 -15
  187. package/src/modules/primitives/command/activateUnit.ts +9 -5
  188. package/src/modules/primitives/command/createCategory.generated.ts +1 -1
  189. package/src/modules/primitives/command/createCategory.test.ts +29 -44
  190. package/src/modules/primitives/command/createCategory.ts +9 -5
  191. package/src/modules/primitives/command/createCurrency.generated.ts +1 -1
  192. package/src/modules/primitives/command/createCurrency.test.ts +53 -78
  193. package/src/modules/primitives/command/createCurrency.ts +9 -6
  194. package/src/modules/primitives/command/createExchangeRate.generated.ts +1 -1
  195. package/src/modules/primitives/command/createExchangeRate.test.ts +59 -97
  196. package/src/modules/primitives/command/createExchangeRate.ts +13 -7
  197. package/src/modules/primitives/command/createUnit.generated.ts +1 -1
  198. package/src/modules/primitives/command/createUnit.test.ts +59 -90
  199. package/src/modules/primitives/command/createUnit.ts +9 -6
  200. package/src/modules/primitives/command/deactivateCategory.generated.ts +1 -1
  201. package/src/modules/primitives/command/deactivateCategory.test.ts +15 -33
  202. package/src/modules/primitives/command/deactivateCategory.ts +9 -5
  203. package/src/modules/primitives/command/deactivateCurrency.generated.ts +1 -1
  204. package/src/modules/primitives/command/deactivateCurrency.test.ts +12 -26
  205. package/src/modules/primitives/command/deactivateCurrency.ts +9 -5
  206. package/src/modules/primitives/command/deactivateUnit.generated.ts +1 -1
  207. package/src/modules/primitives/command/deactivateUnit.test.ts +15 -30
  208. package/src/modules/primitives/command/deactivateUnit.ts +14 -7
  209. package/src/modules/primitives/command/setBaseCurrency.generated.ts +1 -1
  210. package/src/modules/primitives/command/setBaseCurrency.test.ts +18 -40
  211. package/src/modules/primitives/command/setBaseCurrency.ts +15 -7
  212. package/src/modules/primitives/command/setReferenceUnit.generated.ts +1 -1
  213. package/src/modules/primitives/command/setReferenceUnit.test.ts +22 -44
  214. package/src/modules/primitives/command/setReferenceUnit.ts +21 -9
  215. package/src/modules/primitives/docs/commands/ActivateCategory.md +6 -0
  216. package/src/modules/primitives/docs/commands/ActivateCurrency.md +6 -0
  217. package/src/modules/primitives/docs/commands/ActivateUnit.md +6 -0
  218. package/src/modules/primitives/docs/commands/CreateCategory.md +6 -0
  219. package/src/modules/primitives/docs/commands/CreateCurrency.md +10 -0
  220. package/src/modules/primitives/docs/commands/CreateExchangeRate.md +11 -0
  221. package/src/modules/primitives/docs/commands/CreateUnit.md +10 -0
  222. package/src/modules/primitives/docs/commands/DeactivateCategory.md +7 -0
  223. package/src/modules/primitives/docs/commands/DeactivateCurrency.md +7 -0
  224. package/src/modules/primitives/docs/commands/DeactivateUnit.md +7 -0
  225. package/src/modules/primitives/docs/commands/SetBaseCurrency.md +7 -0
  226. package/src/modules/primitives/docs/commands/SetReferenceUnit.md +7 -0
  227. package/src/modules/primitives/docs/queries/ConvertAmount.md +14 -0
  228. package/src/modules/primitives/docs/queries/ConvertQuantity.md +13 -0
  229. package/src/modules/primitives/docs/queries/GetBaseCurrency.md +5 -0
  230. package/src/modules/primitives/docs/queries/GetCurrency.md +7 -0
  231. package/src/modules/primitives/docs/queries/GetUnit.md +7 -0
  232. package/src/modules/primitives/docs/queries/GetUoMCategory.md +7 -0
  233. package/src/modules/primitives/docs/queries/ListUnitsByCategory.md +15 -5
  234. package/src/modules/primitives/index.ts +0 -49
  235. package/src/modules/primitives/lib/errors.generated.ts +23 -23
  236. package/src/modules/primitives/lib/permissions.generated.ts +1 -1
  237. package/src/modules/primitives/lib/types.ts +1 -1
  238. package/src/modules/primitives/module.ts +1 -1
  239. package/src/modules/primitives/query/convertAmount.generated.ts +1 -1
  240. package/src/modules/primitives/query/convertAmount.test.ts +110 -77
  241. package/src/modules/primitives/query/convertAmount.ts +61 -47
  242. package/src/modules/primitives/query/convertQuantity.generated.ts +1 -1
  243. package/src/modules/primitives/query/convertQuantity.test.ts +99 -69
  244. package/src/modules/primitives/query/convertQuantity.ts +12 -10
  245. package/src/modules/primitives/query/getBaseCurrency.generated.ts +1 -1
  246. package/src/modules/primitives/query/getBaseCurrency.test.ts +10 -4
  247. package/src/modules/primitives/query/getBaseCurrency.ts +2 -2
  248. package/src/modules/primitives/query/getCurrency.generated.ts +1 -1
  249. package/src/modules/primitives/query/getCurrency.test.ts +17 -5
  250. package/src/modules/primitives/query/getCurrency.ts +2 -2
  251. package/src/modules/primitives/query/getUnit.generated.ts +1 -1
  252. package/src/modules/primitives/query/getUnit.test.ts +17 -5
  253. package/src/modules/primitives/query/getUnit.ts +2 -2
  254. package/src/modules/primitives/query/getUoMCategory.generated.ts +1 -1
  255. package/src/modules/primitives/query/getUoMCategory.test.ts +17 -5
  256. package/src/modules/primitives/query/getUoMCategory.ts +2 -2
  257. package/src/modules/primitives/query/listUnitsByCategory.generated.ts +1 -1
  258. package/src/modules/primitives/query/listUnitsByCategory.test.ts +80 -0
  259. package/src/modules/primitives/query/listUnitsByCategory.ts +19 -3
  260. package/src/modules/primitives/tailor.config.ts +6 -4
  261. package/src/modules/primitives/tailor.d.ts +13 -0
  262. package/src/modules/product-management/README.md +52 -0
  263. package/src/modules/product-management/command/activateProduct.generated.ts +6 -0
  264. package/src/modules/product-management/command/activateProduct.test.ts +40 -0
  265. package/src/modules/product-management/command/activateProduct.ts +42 -0
  266. package/src/modules/product-management/command/assignProductToCategory.generated.ts +6 -0
  267. package/src/modules/product-management/command/assignProductToCategory.test.ts +90 -0
  268. package/src/modules/product-management/command/assignProductToCategory.ts +62 -0
  269. package/src/modules/product-management/command/createProduct.generated.ts +6 -0
  270. package/src/modules/product-management/command/createProduct.test.ts +149 -0
  271. package/src/modules/product-management/command/createProduct.ts +73 -0
  272. package/src/modules/product-management/command/createProductAttribute.generated.ts +6 -0
  273. package/src/modules/product-management/command/createProductAttribute.test.ts +70 -0
  274. package/src/modules/product-management/command/createProductAttribute.ts +53 -0
  275. package/src/modules/product-management/command/createProductAttributeValue.generated.ts +6 -0
  276. package/src/modules/product-management/command/createProductAttributeValue.test.ts +68 -0
  277. package/src/modules/product-management/command/createProductAttributeValue.ts +63 -0
  278. package/src/modules/product-management/command/createProductCategory.generated.ts +6 -0
  279. package/src/modules/product-management/command/createProductCategory.test.ts +135 -0
  280. package/src/modules/product-management/command/createProductCategory.ts +82 -0
  281. package/src/modules/product-management/command/deactivateProduct.generated.ts +6 -0
  282. package/src/modules/product-management/command/deactivateProduct.test.ts +40 -0
  283. package/src/modules/product-management/command/deactivateProduct.ts +42 -0
  284. package/src/modules/product-management/command/deleteProduct.generated.ts +6 -0
  285. package/src/modules/product-management/command/deleteProduct.test.ts +42 -0
  286. package/src/modules/product-management/command/deleteProduct.ts +42 -0
  287. package/src/modules/product-management/command/deleteProductAttribute.generated.ts +6 -0
  288. package/src/modules/product-management/command/deleteProductAttribute.test.ts +49 -0
  289. package/src/modules/product-management/command/deleteProductAttribute.ts +45 -0
  290. package/src/modules/product-management/command/deleteProductAttributeValue.generated.ts +6 -0
  291. package/src/modules/product-management/command/deleteProductAttributeValue.test.ts +71 -0
  292. package/src/modules/product-management/command/deleteProductAttributeValue.ts +68 -0
  293. package/src/modules/product-management/command/deleteProductCategory.generated.ts +6 -0
  294. package/src/modules/product-management/command/deleteProductCategory.test.ts +74 -0
  295. package/src/modules/product-management/command/deleteProductCategory.ts +53 -0
  296. package/src/modules/product-management/command/generateVariants.generated.ts +6 -0
  297. package/src/modules/product-management/command/generateVariants.test.ts +365 -0
  298. package/src/modules/product-management/command/generateVariants.ts +168 -0
  299. package/src/modules/product-management/command/moveProductCategory.generated.ts +6 -0
  300. package/src/modules/product-management/command/moveProductCategory.test.ts +170 -0
  301. package/src/modules/product-management/command/moveProductCategory.ts +124 -0
  302. package/src/modules/product-management/command/reactivateProduct.generated.ts +6 -0
  303. package/src/modules/product-management/command/reactivateProduct.test.ts +40 -0
  304. package/src/modules/product-management/command/reactivateProduct.ts +42 -0
  305. package/src/modules/product-management/command/removeProductFromCategory.generated.ts +6 -0
  306. package/src/modules/product-management/command/removeProductFromCategory.test.ts +42 -0
  307. package/src/modules/product-management/command/removeProductFromCategory.ts +32 -0
  308. package/src/modules/product-management/command/setProductAttributeAssignment.generated.ts +6 -0
  309. package/src/modules/product-management/command/setProductAttributeAssignment.test.ts +206 -0
  310. package/src/modules/product-management/command/setProductAttributeAssignment.ts +102 -0
  311. package/src/modules/product-management/command/updateProduct.generated.ts +6 -0
  312. package/src/modules/product-management/command/updateProduct.test.ts +168 -0
  313. package/src/modules/product-management/command/updateProduct.ts +95 -0
  314. package/src/modules/product-management/command/updateProductAttribute.generated.ts +6 -0
  315. package/src/modules/product-management/command/updateProductAttribute.test.ts +101 -0
  316. package/src/modules/product-management/command/updateProductAttribute.ts +68 -0
  317. package/src/modules/product-management/command/updateProductAttributeValue.generated.ts +6 -0
  318. package/src/modules/product-management/command/updateProductAttributeValue.test.ts +80 -0
  319. package/src/modules/product-management/command/updateProductAttributeValue.ts +58 -0
  320. package/src/modules/product-management/command/updateProductCategory.generated.ts +6 -0
  321. package/src/modules/product-management/command/updateProductCategory.test.ts +80 -0
  322. package/src/modules/product-management/command/updateProductCategory.ts +66 -0
  323. package/src/modules/product-management/db/product.ts +47 -0
  324. package/src/modules/product-management/db/productAttribute.ts +26 -0
  325. package/src/modules/product-management/db/productAttributeAssignment.ts +58 -0
  326. package/src/modules/product-management/db/productAttributeValue.ts +39 -0
  327. package/src/modules/product-management/db/productCategory.ts +34 -0
  328. package/src/modules/product-management/db/productCategoryAssignment.ts +49 -0
  329. package/src/modules/product-management/db/productVariant.ts +52 -0
  330. package/src/modules/product-management/docs/commands/ActivateProduct.md +39 -0
  331. package/src/modules/product-management/docs/commands/AssignProductToCategory.md +43 -0
  332. package/src/modules/product-management/docs/commands/CreateProduct.md +48 -0
  333. package/src/modules/product-management/docs/commands/CreateProductAttribute.md +39 -0
  334. package/src/modules/product-management/docs/commands/CreateProductAttributeValue.md +42 -0
  335. package/src/modules/product-management/docs/commands/CreateProductCategory.md +54 -0
  336. package/src/modules/product-management/docs/commands/DeactivateProduct.md +39 -0
  337. package/src/modules/product-management/docs/commands/DeleteProduct.md +42 -0
  338. package/src/modules/product-management/docs/commands/DeleteProductAttribute.md +39 -0
  339. package/src/modules/product-management/docs/commands/DeleteProductAttributeValue.md +42 -0
  340. package/src/modules/product-management/docs/commands/DeleteProductCategory.md +43 -0
  341. package/src/modules/product-management/docs/commands/GenerateVariants.md +68 -0
  342. package/src/modules/product-management/docs/commands/MoveProductCategory.md +54 -0
  343. package/src/modules/product-management/docs/commands/ReactivateProduct.md +38 -0
  344. package/src/modules/product-management/docs/commands/RemoveProductFromCategory.md +34 -0
  345. package/src/modules/product-management/docs/commands/SetProductAttributeAssignment.md +62 -0
  346. package/src/modules/product-management/docs/commands/UpdateProduct.md +61 -0
  347. package/src/modules/product-management/docs/commands/UpdateProductAttribute.md +46 -0
  348. package/src/modules/product-management/docs/commands/UpdateProductAttributeValue.md +47 -0
  349. package/src/modules/product-management/docs/commands/UpdateProductCategory.md +46 -0
  350. package/src/modules/product-management/docs/features/attribute-management.md +48 -0
  351. package/src/modules/product-management/docs/features/product-category.md +71 -0
  352. package/src/modules/product-management/docs/features/product-lifecycle.md +66 -0
  353. package/src/modules/product-management/docs/features/variant-generation.md +77 -0
  354. package/src/modules/product-management/docs/models/Product.md +58 -0
  355. package/src/modules/product-management/docs/models/ProductAttribute.md +37 -0
  356. package/src/modules/product-management/docs/models/ProductAttributeAssignment.md +41 -0
  357. package/src/modules/product-management/docs/models/ProductAttributeValue.md +40 -0
  358. package/src/modules/product-management/docs/models/ProductCategory.md +46 -0
  359. package/src/modules/product-management/docs/models/ProductCategoryAssignment.md +37 -0
  360. package/src/modules/product-management/docs/models/ProductVariant.md +41 -0
  361. package/src/modules/product-management/docs/queries/CalculateCategoryDepth.md +47 -0
  362. package/src/modules/product-management/docs/queries/DetectCategoryCircularReference.md +51 -0
  363. package/src/modules/product-management/docs/queries/GetProduct.md +42 -0
  364. package/src/modules/product-management/docs/queries/GetProductAttribute.md +42 -0
  365. package/src/modules/product-management/docs/queries/GetProductAttributeAssignment.md +34 -0
  366. package/src/modules/product-management/docs/queries/GetProductAttributeValue.md +40 -0
  367. package/src/modules/product-management/docs/queries/GetProductCategory.md +42 -0
  368. package/src/modules/product-management/docs/queries/GetProductCategoryAssignment.md +34 -0
  369. package/src/modules/product-management/docs/queries/GetProductVariant.md +41 -0
  370. package/src/modules/product-management/docs/queries/ListAttributeAssignmentsByAttribute.md +34 -0
  371. package/src/modules/product-management/docs/queries/ListCategoryAssignmentsByProduct.md +35 -0
  372. package/src/modules/product-management/docs/queries/ListProductAttributeAssignments.md +34 -0
  373. package/src/modules/product-management/docs/queries/ListProductAttributeValues.md +36 -0
  374. package/src/modules/product-management/docs/queries/ListProductCategoryAssignments.md +34 -0
  375. package/src/modules/product-management/docs/queries/ListProductCategoryChildren.md +34 -0
  376. package/src/modules/product-management/docs/queries/ListProductVariants.md +34 -0
  377. package/src/modules/product-management/generated/enums.ts +9 -0
  378. package/src/modules/product-management/generated/kysely-tailordb.ts +100 -0
  379. package/src/modules/product-management/index.ts +2 -0
  380. package/src/modules/product-management/lib/_db_deps.ts +17 -0
  381. package/src/modules/product-management/lib/errors.generated.ts +152 -0
  382. package/src/modules/product-management/lib/permissions.generated.ts +25 -0
  383. package/src/modules/product-management/lib/types.ts +51 -0
  384. package/src/modules/product-management/module.ts +201 -0
  385. package/src/modules/product-management/query/calculateCategoryDepth.generated.ts +5 -0
  386. package/src/modules/product-management/query/calculateCategoryDepth.test.ts +72 -0
  387. package/src/modules/product-management/query/calculateCategoryDepth.ts +37 -0
  388. package/src/modules/product-management/query/detectCategoryCircularReference.generated.ts +5 -0
  389. package/src/modules/product-management/query/detectCategoryCircularReference.test.ts +72 -0
  390. package/src/modules/product-management/query/detectCategoryCircularReference.ts +44 -0
  391. package/src/modules/product-management/query/getProduct.generated.ts +5 -0
  392. package/src/modules/product-management/query/getProduct.test.ts +59 -0
  393. package/src/modules/product-management/query/getProduct.ts +18 -0
  394. package/src/modules/product-management/query/getProductAttribute.generated.ts +5 -0
  395. package/src/modules/product-management/query/getProductAttribute.test.ts +59 -0
  396. package/src/modules/product-management/query/getProductAttribute.ts +18 -0
  397. package/src/modules/product-management/query/getProductAttributeAssignment.generated.ts +5 -0
  398. package/src/modules/product-management/query/getProductAttributeAssignment.test.ts +37 -0
  399. package/src/modules/product-management/query/getProductAttributeAssignment.ts +18 -0
  400. package/src/modules/product-management/query/getProductAttributeValue.generated.ts +5 -0
  401. package/src/modules/product-management/query/getProductAttributeValue.test.ts +31 -0
  402. package/src/modules/product-management/query/getProductAttributeValue.ts +16 -0
  403. package/src/modules/product-management/query/getProductCategory.generated.ts +5 -0
  404. package/src/modules/product-management/query/getProductCategory.test.ts +59 -0
  405. package/src/modules/product-management/query/getProductCategory.ts +18 -0
  406. package/src/modules/product-management/query/getProductCategoryAssignment.generated.ts +5 -0
  407. package/src/modules/product-management/query/getProductCategoryAssignment.test.ts +37 -0
  408. package/src/modules/product-management/query/getProductCategoryAssignment.ts +18 -0
  409. package/src/modules/product-management/query/getProductVariant.generated.ts +5 -0
  410. package/src/modules/product-management/query/getProductVariant.test.ts +43 -0
  411. package/src/modules/product-management/query/getProductVariant.ts +20 -0
  412. package/src/modules/product-management/query/listAttributeAssignmentsByAttribute.generated.ts +5 -0
  413. package/src/modules/product-management/query/listAttributeAssignmentsByAttribute.test.ts +31 -0
  414. package/src/modules/product-management/query/listAttributeAssignmentsByAttribute.ts +16 -0
  415. package/src/modules/product-management/query/listCategoryAssignmentsByProduct.generated.ts +5 -0
  416. package/src/modules/product-management/query/listCategoryAssignmentsByProduct.test.ts +31 -0
  417. package/src/modules/product-management/query/listCategoryAssignmentsByProduct.ts +16 -0
  418. package/src/modules/product-management/query/listProductAttributeAssignments.generated.ts +5 -0
  419. package/src/modules/product-management/query/listProductAttributeAssignments.test.ts +31 -0
  420. package/src/modules/product-management/query/listProductAttributeAssignments.ts +16 -0
  421. package/src/modules/product-management/query/listProductAttributeValues.generated.ts +5 -0
  422. package/src/modules/product-management/query/listProductAttributeValues.test.ts +31 -0
  423. package/src/modules/product-management/query/listProductAttributeValues.ts +17 -0
  424. package/src/modules/product-management/query/listProductCategoryAssignments.generated.ts +5 -0
  425. package/src/modules/product-management/query/listProductCategoryAssignments.test.ts +31 -0
  426. package/src/modules/product-management/query/listProductCategoryAssignments.ts +16 -0
  427. package/src/modules/product-management/query/listProductCategoryChildren.generated.ts +5 -0
  428. package/src/modules/product-management/query/listProductCategoryChildren.test.ts +31 -0
  429. package/src/modules/product-management/query/listProductCategoryChildren.ts +16 -0
  430. package/src/modules/product-management/query/listProductVariants.generated.ts +5 -0
  431. package/src/modules/product-management/query/listProductVariants.test.ts +31 -0
  432. package/src/modules/product-management/query/listProductVariants.ts +16 -0
  433. package/src/modules/product-management/tailor.config.ts +13 -0
  434. package/src/modules/product-management/tailor.d.ts +13 -0
  435. package/src/modules/product-management/testing/fixtures.ts +151 -0
  436. package/src/modules/user-management/README.md +9 -3
  437. package/src/modules/user-management/command/activateUser.generated.ts +1 -1
  438. package/src/modules/user-management/command/activateUser.test.ts +12 -65
  439. package/src/modules/user-management/command/activateUser.ts +5 -20
  440. package/src/modules/user-management/command/assignPermissionToRole.generated.ts +1 -1
  441. package/src/modules/user-management/command/assignPermissionToRole.test.ts +25 -60
  442. package/src/modules/user-management/command/assignPermissionToRole.ts +5 -24
  443. package/src/modules/user-management/command/assignRoleToUser.generated.ts +1 -1
  444. package/src/modules/user-management/command/assignRoleToUser.test.ts +35 -87
  445. package/src/modules/user-management/command/assignRoleToUser.ts +5 -24
  446. package/src/modules/user-management/command/createPermission.generated.ts +1 -1
  447. package/src/modules/user-management/command/createPermission.test.ts +23 -33
  448. package/src/modules/user-management/command/createPermission.ts +4 -5
  449. package/src/modules/user-management/command/createRole.generated.ts +1 -1
  450. package/src/modules/user-management/command/createRole.test.ts +17 -27
  451. package/src/modules/user-management/command/createRole.ts +4 -5
  452. package/src/modules/user-management/command/createUser.generated.ts +1 -1
  453. package/src/modules/user-management/command/createUser.test.ts +31 -118
  454. package/src/modules/user-management/command/createUser.ts +7 -25
  455. package/src/modules/user-management/command/deactivateUser.generated.ts +1 -1
  456. package/src/modules/user-management/command/deactivateUser.test.ts +12 -65
  457. package/src/modules/user-management/command/deactivateUser.ts +6 -21
  458. package/src/modules/user-management/command/reactivateUser.generated.ts +1 -1
  459. package/src/modules/user-management/command/reactivateUser.test.ts +13 -66
  460. package/src/modules/user-management/command/reactivateUser.ts +5 -20
  461. package/src/modules/user-management/command/revokePermissionFromRole.generated.ts +1 -1
  462. package/src/modules/user-management/command/revokePermissionFromRole.test.ts +24 -62
  463. package/src/modules/user-management/command/revokePermissionFromRole.ts +5 -24
  464. package/src/modules/user-management/command/revokeRoleFromUser.generated.ts +1 -1
  465. package/src/modules/user-management/command/revokeRoleFromUser.test.ts +24 -60
  466. package/src/modules/user-management/command/revokeRoleFromUser.ts +5 -24
  467. package/src/modules/user-management/docs/commands/ActivateUser.md +7 -0
  468. package/src/modules/user-management/docs/commands/AssignPermissionToRole.md +7 -0
  469. package/src/modules/user-management/docs/commands/AssignRoleToUser.md +9 -0
  470. package/src/modules/user-management/docs/commands/CreatePermission.md +12 -0
  471. package/src/modules/user-management/docs/commands/CreateRole.md +9 -0
  472. package/src/modules/user-management/docs/commands/CreateUser.md +11 -0
  473. package/src/modules/user-management/docs/commands/DeactivateUser.md +7 -0
  474. package/src/modules/user-management/docs/commands/ReactivateUser.md +7 -0
  475. package/src/modules/user-management/docs/commands/RevokePermissionFromRole.md +7 -0
  476. package/src/modules/user-management/docs/commands/RevokeRoleFromUser.md +7 -0
  477. package/src/modules/user-management/index.ts +0 -30
  478. package/src/modules/user-management/lib/errors.generated.ts +14 -14
  479. package/src/modules/user-management/lib/permissions.generated.ts +1 -2
  480. package/src/modules/user-management/lib/recomputeUserPermissions.ts +4 -3
  481. package/src/modules/user-management/lib/types.ts +1 -1
  482. package/src/modules/user-management/module.ts +2 -7
  483. package/src/modules/user-management/tailor.config.ts +6 -4
  484. package/src/modules/user-management/tailor.d.ts +13 -0
  485. package/src/modules/user-management/testing/fixtures.ts +1 -20
  486. package/src/schemas.ts +1 -1
  487. package/src/{modules/shared → shared}/defineCommand.test.ts +23 -7
  488. package/src/{modules/shared → shared}/defineCommand.ts +19 -10
  489. package/src/{modules/shared/internal.ts → shared/index.ts} +9 -1
  490. package/src/shared/pagination.test.ts +43 -0
  491. package/src/shared/pagination.ts +22 -0
  492. package/src/{modules/shared → shared}/types.ts +13 -0
  493. package/src/{modules/testing → testing}/index.ts +14 -7
  494. package/src/testing.ts +1 -1
  495. package/src/util.ts +8 -0
  496. package/templates/config/license.config.json +4 -0
  497. package/templates/scaffold/app/backend/.env.example +1 -0
  498. package/templates/scaffold/app/backend/__dot__gitignore +4 -0
  499. package/templates/scaffold/app/backend/eslint.config.js +32 -0
  500. package/templates/scaffold/app/backend/package.json +31 -0
  501. package/templates/scaffold/app/backend/seed/data/AuditEvent.jsonl +0 -0
  502. package/templates/scaffold/app/backend/seed/data/Permission.jsonl +0 -0
  503. package/templates/scaffold/app/backend/seed/data/Permission.schema.ts +20 -0
  504. package/templates/scaffold/app/backend/seed/data/Role.jsonl +0 -0
  505. package/templates/scaffold/app/backend/seed/data/Role.schema.ts +20 -0
  506. package/templates/scaffold/app/backend/seed/data/RolePermission.jsonl +0 -0
  507. package/templates/scaffold/app/backend/seed/data/RolePermission.schema.ts +24 -0
  508. package/templates/scaffold/app/backend/seed/data/User.jsonl +1 -0
  509. package/templates/scaffold/app/backend/seed/data/User.schema.ts +20 -0
  510. package/templates/scaffold/app/backend/seed/data/UserRole.jsonl +0 -0
  511. package/templates/scaffold/app/backend/seed/data/UserRole.schema.ts +24 -0
  512. package/templates/scaffold/app/backend/seed/data/_User.jsonl +1 -0
  513. package/templates/scaffold/app/backend/seed/data/_User.schema.ts +30 -0
  514. package/templates/scaffold/app/backend/seed/exec.mjs +659 -0
  515. package/templates/scaffold/app/backend/src/executors/permissionCreated.ts +3 -0
  516. package/templates/scaffold/app/backend/src/executors/permissionDeleted.ts +3 -0
  517. package/templates/scaffold/app/backend/src/generated/kysely-tailordb.ts +83 -0
  518. package/templates/scaffold/app/backend/src/modules.ts +9 -0
  519. package/templates/scaffold/app/backend/src/resolvers/createUser.ts +46 -0
  520. package/templates/scaffold/app/backend/tailor.config.ts +68 -0
  521. package/templates/scaffold/app/backend/tailor.d.ts +15 -0
  522. package/templates/scaffold/app/backend/tsconfig.json +19 -0
  523. package/templates/scaffold/app/docs/actors/.gitkeep +0 -0
  524. package/templates/scaffold/app/docs/business-flow/.gitkeep +0 -0
  525. package/templates/scaffold/app/docs/resolver/.gitkeep +0 -0
  526. package/templates/scaffold/app/docs/screen/.gitkeep +0 -0
  527. package/templates/scaffold/app/frontend/.env.example +2 -0
  528. package/templates/scaffold/app/frontend/__dot__gitignore +3 -0
  529. package/templates/scaffold/app/frontend/components.json +23 -0
  530. package/templates/scaffold/app/frontend/eslint.config.js +48 -0
  531. package/templates/scaffold/app/frontend/index.html +13 -0
  532. package/templates/scaffold/app/frontend/package.json +53 -0
  533. package/templates/scaffold/app/frontend/scripts/generate-graphql.mjs +6 -0
  534. package/templates/scaffold/app/frontend/src/App.tsx +58 -0
  535. package/templates/scaffold/app/frontend/src/components/composed/empty-state.tsx +26 -0
  536. package/templates/scaffold/app/frontend/src/components/composed/error-fallback.tsx +28 -0
  537. package/templates/scaffold/app/frontend/src/components/composed/loading.tsx +13 -0
  538. package/templates/scaffold/app/frontend/src/components/ui/badge.tsx +39 -0
  539. package/templates/scaffold/app/frontend/src/components/ui/button.tsx +60 -0
  540. package/templates/scaffold/app/frontend/src/components/ui/card.tsx +75 -0
  541. package/templates/scaffold/app/frontend/src/components/ui/form.tsx +152 -0
  542. package/templates/scaffold/app/frontend/src/components/ui/input.tsx +21 -0
  543. package/templates/scaffold/app/frontend/src/components/ui/label.tsx +21 -0
  544. package/templates/scaffold/app/frontend/src/components/ui/spinner.tsx +16 -0
  545. package/templates/scaffold/app/frontend/src/components/ui/table.tsx +90 -0
  546. package/templates/scaffold/app/frontend/src/graphql/generated/graphql-env.d.ts +103 -0
  547. package/templates/scaffold/app/frontend/src/graphql/generated/schema.graphql +1235 -0
  548. package/templates/scaffold/app/frontend/src/graphql/index.ts +15 -0
  549. package/templates/scaffold/app/frontend/src/index.css +5 -0
  550. package/templates/scaffold/app/frontend/src/lib/auth-client.ts +17 -0
  551. package/templates/scaffold/app/frontend/src/lib/utils.ts +6 -0
  552. package/templates/scaffold/app/frontend/src/main.tsx +10 -0
  553. package/templates/scaffold/app/frontend/src/pages/page.tsx +20 -0
  554. package/templates/scaffold/app/frontend/src/pages/user-management/page.tsx +19 -0
  555. package/templates/scaffold/app/frontend/src/pages/user-management/profile/page.tsx +97 -0
  556. package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/components/user-detail.tsx +58 -0
  557. package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/page.tsx +51 -0
  558. package/templates/scaffold/app/frontend/src/pages/user-management/user/components/users-table.tsx +101 -0
  559. package/templates/scaffold/app/frontend/src/pages/user-management/user/create/components/create-user-form.tsx +99 -0
  560. package/templates/scaffold/app/frontend/src/pages/user-management/user/create/page.tsx +19 -0
  561. package/templates/scaffold/app/frontend/src/pages/user-management/user/page.tsx +61 -0
  562. package/templates/scaffold/app/frontend/src/providers/graphql-provider.tsx +21 -0
  563. package/templates/scaffold/app/frontend/tsconfig.app.json +35 -0
  564. package/templates/scaffold/app/frontend/tsconfig.json +16 -0
  565. package/templates/scaffold/app/frontend/tsconfig.node.json +23 -0
  566. package/templates/scaffold/app/frontend/vite.config.ts +23 -0
  567. package/templates/scaffold/module/command/.gitkeep +0 -0
  568. package/templates/scaffold/module/db/.gitkeep +0 -0
  569. package/templates/scaffold/module/executor/.gitkeep +0 -0
  570. package/templates/scaffold/module/generated/.gitkeep +0 -0
  571. package/templates/scaffold/module/index.ts +2 -0
  572. package/templates/scaffold/module/lib/errors.ts +1 -0
  573. package/templates/scaffold/module/lib/types.ts +4 -0
  574. package/templates/scaffold/module/module.ts +7 -0
  575. package/templates/scaffold/module/permissions.ts +3 -0
  576. package/templates/scaffold/module/query/.gitkeep +0 -0
  577. package/templates/scaffold/module/tailor.config.ts +13 -0
  578. package/templates/scaffold/module/testing/fixtures.ts +1 -0
  579. package/templates/workflows/erp-kit-check.yml +37 -0
  580. package/dist/cli.js +0 -1654
  581. package/skills/erp-kit-app-2-breakdown/SKILL.md +0 -88
  582. package/skills/erp-kit-app-3-doc-review/SKILL.md +0 -112
  583. package/skills/erp-kit-app-4-impl-spec/SKILL.md +0 -116
  584. package/skills/erp-kit-app-5-implementation/references/backend.md +0 -232
  585. package/skills/erp-kit-module-1-docs/SKILL.md +0 -111
  586. package/skills/erp-kit-module-2-feature-breakdown/SKILL.md +0 -76
  587. package/skills/erp-kit-module-3-doc-review/SKILL.md +0 -294
  588. package/skills/erp-kit-module-4-tdd/SKILL.md +0 -94
  589. package/skills/erp-kit-module-4-tdd/references/exports.md +0 -8
  590. package/skills/erp-kit-module-5-impl-review/SKILL.md +0 -410
  591. package/src/commands/scaffold-templates.ts +0 -65
  592. package/src/modules/shared/index.ts +0 -1
  593. package/src/modules/user-management/command/logAuditEvent.generated.ts +0 -6
  594. package/src/modules/user-management/command/logAuditEvent.test.ts +0 -187
  595. package/src/modules/user-management/command/logAuditEvent.ts +0 -56
  596. package/src/modules/user-management/db/auditEvent.ts +0 -47
  597. package/src/modules/user-management/docs/commands/LogAuditEvent.md +0 -37
  598. package/src/modules/user-management/docs/features/audit-trail.md +0 -80
  599. package/src/modules/user-management/docs/models/AuditEvent.md +0 -36
  600. /package/skills/{erp-kit-module-2-feature-breakdown → erp-kit-module-3-plan}/references/naming.md +0 -0
  601. /package/skills/{erp-kit-module-4-tdd → erp-kit-module-5-impl}/references/cross-module-dependency.md +0 -0
  602. /package/skills/{erp-kit-module-4-tdd → erp-kit-module-5-impl}/references/db-relations.md +0 -0
  603. /package/skills/{erp-kit-module-4-tdd → erp-kit-module-5-impl}/references/generated-code.md +0 -0
  604. /package/skills/{erp-kit-module-4-tdd → erp-kit-module-5-impl}/references/models.md +0 -0
  605. /package/skills/{erp-kit-module-5-impl-review → erp-kit-module-6-impl-review}/references/commands.md +0 -0
  606. /package/skills/{erp-kit-module-5-impl-review → erp-kit-module-6-impl-review}/references/testing.md +0 -0
  607. /package/src/modules/{product-management → audit}/.gitkeep +0 -0
  608. /package/src/{modules/shared → shared}/createContext.test.ts +0 -0
  609. /package/src/{modules/shared → shared}/createContext.ts +0 -0
  610. /package/src/{modules/shared → shared}/definePermissions.test.ts +0 -0
  611. /package/src/{modules/shared → shared}/definePermissions.ts +0 -0
  612. /package/src/{modules/shared → shared}/defineQuery.test.ts +0 -0
  613. /package/src/{modules/shared → shared}/defineQuery.ts +0 -0
  614. /package/src/{modules/shared → shared}/entityTypes.ts +0 -0
  615. /package/src/{modules/shared → shared}/errors.ts +0 -0
  616. /package/src/{modules/shared → shared}/requirePermission.test.ts +0 -0
  617. /package/src/{modules/shared → shared}/requirePermission.ts +0 -0
  618. /package/src/{modules/shared → shared}/result.ts +0 -0
@@ -1,9 +1,6 @@
1
- import { ok, err, type CommandContext } from "../../shared/internal";
2
- import { DB } from "../generated/kysely-tailordb";
1
+ import { ok, err } from "../../../shared";
2
+ import { Transaction } from "../generated/kysely-tailordb";
3
3
  import { UnitNotFoundError, UnitNotInCategoryError } from "../lib/errors.generated";
4
- import { getUnit } from "../query/getUnit.generated";
5
- import { getUoMCategory } from "../query/getUoMCategory.generated";
6
- import { listUnitsByCategory } from "../query/listUnitsByCategory.generated";
7
4
 
8
5
  export interface SetReferenceUnitInput {
9
6
  unitId: string;
@@ -16,9 +13,14 @@ export interface SetReferenceUnitInput {
16
13
  * Changes the reference unit for a UoM category. All conversion factors
17
14
  * are recalculated relative to the new reference unit.
18
15
  */
19
- export async function run(db: DB, input: SetReferenceUnitInput, ctx: CommandContext) {
16
+ export async function run(db: Transaction, input: SetReferenceUnitInput) {
20
17
  // 1. Find unit by ID
21
- const { unit } = await getUnit(db, { id: input.unitId }, ctx);
18
+ const unit = await db
19
+ .selectFrom("Unit")
20
+ .selectAll()
21
+ .where("id", "=", input.unitId)
22
+ .forUpdate()
23
+ .executeTakeFirst();
22
24
 
23
25
  if (!unit) {
24
26
  return err(new UnitNotFoundError(input.unitId));
@@ -30,7 +32,12 @@ export async function run(db: DB, input: SetReferenceUnitInput, ctx: CommandCont
30
32
  }
31
33
 
32
34
  // 3. Get category
33
- const { uoMCategory } = await getUoMCategory(db, { id: input.categoryId }, ctx);
35
+ const uoMCategory = await db
36
+ .selectFrom("UoMCategory")
37
+ .selectAll()
38
+ .where("id", "=", input.categoryId)
39
+ .forUpdate()
40
+ .executeTakeFirst();
34
41
 
35
42
  // 4. If already reference unit, return (idempotent)
36
43
  if (uoMCategory?.referenceUnitId === input.unitId && uoMCategory) {
@@ -38,7 +45,12 @@ export async function run(db: DB, input: SetReferenceUnitInput, ctx: CommandCont
38
45
  }
39
46
 
40
47
  // 5. Get all units in category for recalculation
41
- const { units } = await listUnitsByCategory(db, { categoryId: input.categoryId }, ctx);
48
+ const units = await db
49
+ .selectFrom("Unit")
50
+ .selectAll()
51
+ .where("categoryId", "=", input.categoryId)
52
+ .forUpdate()
53
+ .execute();
42
54
 
43
55
  // 6. Recalculate all conversion factors
44
56
  // new_factor = old_factor / new_reference_old_factor
@@ -31,3 +31,9 @@ flowchart TD
31
31
  ## Error Scenarios
32
32
 
33
33
  - **UOM_CATEGORY_NOT_FOUND**: Specified category ID does not exist
34
+
35
+ ## Test Cases
36
+
37
+ - throws when category doesn
38
+ - returns category unchanged when already active
39
+ - activates inactive category
@@ -30,3 +30,9 @@ flowchart TD
30
30
  ## Error Scenarios
31
31
 
32
32
  - **CURRENCY_NOT_FOUND**: Specified currency ID does not exist
33
+
34
+ ## Test Cases
35
+
36
+ - throws when currency doesn
37
+ - returns currency unchanged when already active
38
+ - activates inactive currency
@@ -31,3 +31,9 @@ flowchart TD
31
31
  ## Error Scenarios
32
32
 
33
33
  - **UNIT_NOT_FOUND**: Specified unit ID does not exist
34
+
35
+ ## Test Cases
36
+
37
+ - throws when unit doesn
38
+ - returns unit unchanged when already active
39
+ - activates inactive unit
@@ -39,3 +39,9 @@ flowchart TD
39
39
  ## Error Scenarios
40
40
 
41
41
  - **DUPLICATE_CATEGORY_NAME**: Category with same name already exists
42
+
43
+ ## Test Cases
44
+
45
+ - throws when category name already exists
46
+ - creates category with reference unit
47
+ - passes custom fields through to insert
@@ -44,3 +44,13 @@ flowchart TD
44
44
  - **INVALID_ISO_CODE**: Code is not exactly 3 uppercase letters
45
45
  - **DUPLICATE_CURRENCY_CODE**: Currency with same code already exists
46
46
  - **INVALID_DECIMAL_PLACES**: Value is negative or exceeds maximum (typically 4)
47
+
48
+ ## Test Cases
49
+
50
+ - throws when ISO code is invalid format
51
+ - throws when ISO code already exists
52
+ - throws when decimal places is negative
53
+ - throws when decimal places exceeds maximum
54
+ - creates first currency as base currency
55
+ - creates subsequent currency as non-base
56
+ - passes custom fields through to insert
@@ -45,3 +45,14 @@ flowchart TD
45
45
  - **INACTIVE_CURRENCY**: Source or target currency is inactive
46
46
  - **SAME_CURRENCY_PAIR**: Source and target currencies are the same
47
47
  - **INVALID_EXCHANGE_RATE**: Rate is zero, negative, or not a valid number
48
+
49
+ ## Test Cases
50
+
51
+ - throws when source currency doesn
52
+ - throws when source currency is inactive
53
+ - throws when target currency doesn
54
+ - throws when target currency is inactive
55
+ - throws when source and target are the same
56
+ - throws when rate is not positive
57
+ - creates exchange rate successfully
58
+ - passes custom fields through to insert
@@ -46,3 +46,13 @@ flowchart TD
46
46
  - **DUPLICATE_UNIT_SYMBOL**: Unit with same symbol already exists in category
47
47
  - **INVALID_CONVERSION_FACTOR**: Factor is zero, negative, or not a valid number
48
48
  - **INVALID_ROUNDING_PRECISION**: Precision is negative
49
+
50
+ ## Test Cases
51
+
52
+ - throws when category doesn
53
+ - throws when category is inactive
54
+ - throws when symbol already exists in category
55
+ - throws when conversion factor is not positive
56
+ - throws when rounding precision is negative
57
+ - creates unit successfully
58
+ - passes custom fields through to insert
@@ -35,3 +35,10 @@ flowchart TD
35
35
 
36
36
  - **UOM_CATEGORY_NOT_FOUND**: Specified category ID does not exist
37
37
  - **CATEGORY_HAS_ACTIVE_UNITS**: Category still contains active units that must be deactivated first
38
+
39
+ ## Test Cases
40
+
41
+ - throws when category doesn
42
+ - throws when category has active units
43
+ - returns category unchanged when already inactive
44
+ - deactivates active category with no active units
@@ -35,3 +35,10 @@ flowchart TD
35
35
 
36
36
  - **CURRENCY_NOT_FOUND**: Specified currency ID does not exist
37
37
  - **CANNOT_DEACTIVATE_BASE_CURRENCY**: Attempting to deactivate the base currency, must change base currency first
38
+
39
+ ## Test Cases
40
+
41
+ - throws when currency doesn
42
+ - throws when attempting to deactivate base currency
43
+ - returns currency unchanged when already inactive
44
+ - deactivates active non-base currency
@@ -35,3 +35,10 @@ flowchart TD
35
35
 
36
36
  - **UNIT_NOT_FOUND**: Specified unit ID does not exist
37
37
  - **CANNOT_DEACTIVATE_REFERENCE_UNIT**: Attempting to deactivate the category's reference unit, must change reference unit first
38
+
39
+ ## Test Cases
40
+
41
+ - throws when unit doesn
42
+ - throws when attempting to deactivate reference unit
43
+ - returns unit unchanged when already inactive
44
+ - deactivates active non-reference unit
@@ -36,3 +36,10 @@ flowchart TD
36
36
 
37
37
  - **CURRENCY_NOT_FOUND**: Specified currency ID does not exist
38
38
  - **CANNOT_SET_INACTIVE_AS_BASE_CURRENCY**: Target currency is not in Active status, must be activated first
39
+
40
+ ## Test Cases
41
+
42
+ - throws when currency doesn
43
+ - throws when currency is inactive
44
+ - returns currency unchanged when already base
45
+ - changes base currency
@@ -40,3 +40,10 @@ flowchart TD
40
40
 
41
41
  - **UNIT_NOT_FOUND**: Specified unit ID does not exist
42
42
  - **UNIT_NOT_IN_CATEGORY**: Unit belongs to a different category than specified
43
+
44
+ ## Test Cases
45
+
46
+ - throws when unit doesn
47
+ - throws when unit is not in specified category
48
+ - returns category unchanged when unit is already reference
49
+ - changes reference unit and recalculates conversion factors
@@ -46,3 +46,17 @@ flowchart TD
46
46
  - **INACTIVE_CURRENCY**: Either source or target currency is inactive
47
47
  - **EXCHANGE_RATE_NOT_FOUND**: No rate found for the currency pair on or before the specified date
48
48
  - **CURRENCY_NOT_FOUND**: Specified currency code/ID does not exist
49
+
50
+ ## Test Cases
51
+
52
+ - returns error when source currency doesn
53
+ - returns error when target currency doesn
54
+ - returns error when source currency is inactive
55
+ - returns error when target currency is inactive
56
+ - returns error when no exchange rate exists for the currency pair
57
+ - returns same amount when source and target are the same currency
58
+ - converts USD to EUR using direct rate
59
+ - uses inverse rate when no direct rate exists
60
+ - uses most recent rate on or before the conversion date
61
+ - rounds to target currency decimal places (JPY has 0)
62
+ - handles zero amount correctly
@@ -39,3 +39,16 @@ flowchart TD
39
39
  - **INCOMPATIBLE_UNITS**: Source and target units belong to different categories
40
40
  - **INACTIVE_UNIT**: Either source or target unit is inactive
41
41
  - **UNIT_NOT_FOUND**: Specified unit ID does not exist
42
+
43
+ ## Test Cases
44
+
45
+ - returns error when source unit doesn
46
+ - returns error when target unit doesn
47
+ - returns error when source unit is inactive
48
+ - returns error when target unit is inactive
49
+ - returns error when units belong to different categories
50
+ - returns same quantity when source and target are the same unit
51
+ - converts kg to grams correctly
52
+ - converts grams to kg correctly
53
+ - converts pounds to kg correctly
54
+ - handles zero quantity correctly
@@ -30,3 +30,8 @@ flowchart TD
30
30
  ## Error Scenarios
31
31
 
32
32
  - None (returns null when no base currency is set instead of throwing)
33
+
34
+ ## Test Cases
35
+
36
+ - returns base currency when set
37
+ - returns null when no base currency is set
@@ -34,3 +34,10 @@ flowchart TD
34
34
  ## Error Scenarios
35
35
 
36
36
  - None (returns null when not found instead of throwing)
37
+
38
+ ## Test Cases
39
+
40
+ - returns currency when found
41
+ - returns null when currency not found
42
+ - returns currency when found
43
+ - returns null when currency not found
@@ -34,3 +34,10 @@ flowchart TD
34
34
  ## Error Scenarios
35
35
 
36
36
  - None (returns null when not found instead of throwing)
37
+
38
+ ## Test Cases
39
+
40
+ - returns unit when found
41
+ - returns null when unit not found
42
+ - returns unit when found
43
+ - returns null when unit not found
@@ -34,3 +34,10 @@ flowchart TD
34
34
  ## Error Scenarios
35
35
 
36
36
  - None (returns null when not found instead of throwing)
37
+
38
+ ## Test Cases
39
+
40
+ - returns category when found
41
+ - returns null when category not found
42
+ - returns category when found
43
+ - returns null when category not found
@@ -2,19 +2,21 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- ListUnitsByCategory retrieves all units belonging to a specific UoM category. Used to find related units within a category and to validate category constraints such as ensuring a category has units before deactivation.
5
+ ListUnitsByCategory retrieves paginated units belonging to a specific UoM category. Used to find related units within a category and to validate category constraints such as ensuring a category has units before deactivation.
6
6
 
7
7
  ## Business Rules
8
8
 
9
- - Returns all units with the matching categoryId
10
- - Returns empty array if no units match
9
+ - Returns paginated units with the matching categoryId
10
+ - Returns empty result if no units match
11
+ - Supports limit, offset, orderBy, and orderDirection parameters
12
+ - Indicates whether more results exist via hasNextPage
11
13
 
12
14
  ## Process Flow
13
15
 
14
16
  ```mermaid
15
17
  flowchart TD
16
- A[Receive categoryId] --> B[SELECT from Unit where categoryId = input]
17
- B --> C[Return units array]
18
+ A[Receive categoryId and pagination params] --> B[SELECT from Unit where categoryId = input with limit+1, offset, order]
19
+ B --> C[Build paginated result with items and hasNextPage]
18
20
  ```
19
21
 
20
22
  ## External Dependencies
@@ -24,3 +26,11 @@ flowchart TD
24
26
  ## Error Scenarios
25
27
 
26
28
  - None
29
+
30
+ ## Test Cases
31
+
32
+ - returns paginated units with default page size
33
+ - returns hasNextPage true when more results exist
34
+ - returns empty result when no units match
35
+ - respects custom limit and offset
36
+ - accepts orderBy and orderDirection
@@ -1,51 +1,2 @@
1
1
  export { defineModule } from "./module";
2
2
  export { permissions, own, all } from "./lib/permissions.generated";
3
-
4
- // errors
5
- export {
6
- UomCategoryNotFoundError,
7
- UnitNotFoundError,
8
- IncompatibleUnitsError,
9
- InactiveUnitError,
10
- CurrencyNotFoundError,
11
- InactiveCurrencyError,
12
- ExchangeRateNotFoundError,
13
- CannotDeactivateReferenceUnitError,
14
- CategoryNotActiveError,
15
- DuplicateUnitSymbolError,
16
- InvalidConversionFactorError,
17
- InvalidRoundingPrecisionError,
18
- DuplicateCategoryNameError,
19
- CategoryHasActiveUnitsError,
20
- UnitNotInCategoryError,
21
- InvalidIsoCodeError,
22
- DuplicateCurrencyCodeError,
23
- InvalidDecimalPlacesError,
24
- CannotDeactivateBaseCurrencyError,
25
- CannotSetInactiveAsBaseCurrencyError,
26
- SameCurrencyPairError,
27
- InvalidExchangeRateError,
28
- } from "./lib/errors.generated";
29
-
30
- // queries
31
- export { getUnit } from "./query/getUnit.generated";
32
- export { getCurrency } from "./query/getCurrency.generated";
33
- export { getUoMCategory } from "./query/getUoMCategory.generated";
34
- export { getBaseCurrency } from "./query/getBaseCurrency.generated";
35
- export { listUnitsByCategory } from "./query/listUnitsByCategory.generated";
36
-
37
- // input types
38
- export { type GetUnitInput } from "./query/getUnit";
39
- export { type GetCurrencyInput } from "./query/getCurrency";
40
- export { type GetUoMCategoryInput } from "./query/getUoMCategory";
41
- export { type ListUnitsByCategoryInput } from "./query/listUnitsByCategory";
42
- export { type ConvertQuantityInput } from "./query/convertQuantity";
43
- export { type ActivateCategoryInput } from "./command/activateCategory";
44
- export { type DeactivateCategoryInput } from "./command/deactivateCategory";
45
- export { type SetReferenceUnitInput } from "./command/setReferenceUnit";
46
- export { type ActivateUnitInput } from "./command/activateUnit";
47
- export { type DeactivateUnitInput } from "./command/deactivateUnit";
48
- export { type ConvertAmountInput } from "./query/convertAmount";
49
- export { type ActivateCurrencyInput } from "./command/activateCurrency";
50
- export { type DeactivateCurrencyInput } from "./command/deactivateCurrency";
51
- export { type SetBaseCurrencyInput } from "./command/setBaseCurrency";
@@ -1,112 +1,112 @@
1
1
  // @generated — do not edit
2
- import { createDomainError } from "../../shared/internal";
2
+ import { createDomainError } from "../../../shared";
3
3
 
4
4
  export const UomCategoryNotFoundError = createDomainError(
5
- "UomCategoryNotFoundError", "UOM_CATEGORY_NOT_FOUND",
5
+ "UomCategoryNotFoundError", "PRIMITIVES_UOM_CATEGORY_NOT_FOUND",
6
6
  (identifier: string) => `Specified category ID does not exist: ${identifier}`,
7
7
  );
8
8
 
9
9
  export const CurrencyNotFoundError = createDomainError(
10
- "CurrencyNotFoundError", "CURRENCY_NOT_FOUND",
10
+ "CurrencyNotFoundError", "PRIMITIVES_CURRENCY_NOT_FOUND",
11
11
  (identifier: string) => `Specified currency ID does not exist: ${identifier}`,
12
12
  );
13
13
 
14
14
  export const UnitNotFoundError = createDomainError(
15
- "UnitNotFoundError", "UNIT_NOT_FOUND",
15
+ "UnitNotFoundError", "PRIMITIVES_UNIT_NOT_FOUND",
16
16
  (identifier: string) => `Specified unit ID does not exist: ${identifier}`,
17
17
  );
18
18
 
19
19
  export const DuplicateCategoryNameError = createDomainError(
20
- "DuplicateCategoryNameError", "DUPLICATE_CATEGORY_NAME",
20
+ "DuplicateCategoryNameError", "PRIMITIVES_DUPLICATE_CATEGORY_NAME",
21
21
  (identifier: string) => `Category with same name already exists: ${identifier}`,
22
22
  );
23
23
 
24
24
  export const InvalidIsoCodeError = createDomainError(
25
- "InvalidIsoCodeError", "INVALID_ISO_CODE",
25
+ "InvalidIsoCodeError", "PRIMITIVES_INVALID_ISO_CODE",
26
26
  (identifier: string) => `Code is not exactly 3 uppercase letters: ${identifier}`,
27
27
  );
28
28
 
29
29
  export const DuplicateCurrencyCodeError = createDomainError(
30
- "DuplicateCurrencyCodeError", "DUPLICATE_CURRENCY_CODE",
30
+ "DuplicateCurrencyCodeError", "PRIMITIVES_DUPLICATE_CURRENCY_CODE",
31
31
  (identifier: string) => `Currency with same code already exists: ${identifier}`,
32
32
  );
33
33
 
34
34
  export const InvalidDecimalPlacesError = createDomainError(
35
- "InvalidDecimalPlacesError", "INVALID_DECIMAL_PLACES",
35
+ "InvalidDecimalPlacesError", "PRIMITIVES_INVALID_DECIMAL_PLACES",
36
36
  (identifier: string) => `Value is negative or exceeds maximum (typically 4): ${identifier}`,
37
37
  );
38
38
 
39
39
  export const InactiveCurrencyError = createDomainError(
40
- "InactiveCurrencyError", "INACTIVE_CURRENCY",
40
+ "InactiveCurrencyError", "PRIMITIVES_INACTIVE_CURRENCY",
41
41
  (identifier: string) => `Source or target currency is inactive: ${identifier}`,
42
42
  );
43
43
 
44
44
  export const SameCurrencyPairError = createDomainError(
45
- "SameCurrencyPairError", "SAME_CURRENCY_PAIR",
45
+ "SameCurrencyPairError", "PRIMITIVES_SAME_CURRENCY_PAIR",
46
46
  (identifier: string) => `Source and target currencies are the same: ${identifier}`,
47
47
  );
48
48
 
49
49
  export const InvalidExchangeRateError = createDomainError(
50
- "InvalidExchangeRateError", "INVALID_EXCHANGE_RATE",
50
+ "InvalidExchangeRateError", "PRIMITIVES_INVALID_EXCHANGE_RATE",
51
51
  (identifier: string) => `Rate is zero, negative, or not a valid number: ${identifier}`,
52
52
  );
53
53
 
54
54
  export const CategoryNotActiveError = createDomainError(
55
- "CategoryNotActiveError", "CATEGORY_NOT_ACTIVE",
55
+ "CategoryNotActiveError", "PRIMITIVES_CATEGORY_NOT_ACTIVE",
56
56
  (identifier: string) => `Category is inactive: ${identifier}`,
57
57
  );
58
58
 
59
59
  export const DuplicateUnitSymbolError = createDomainError(
60
- "DuplicateUnitSymbolError", "DUPLICATE_UNIT_SYMBOL",
60
+ "DuplicateUnitSymbolError", "PRIMITIVES_DUPLICATE_UNIT_SYMBOL",
61
61
  (identifier: string) => `Unit with same symbol already exists in category: ${identifier}`,
62
62
  );
63
63
 
64
64
  export const InvalidConversionFactorError = createDomainError(
65
- "InvalidConversionFactorError", "INVALID_CONVERSION_FACTOR",
65
+ "InvalidConversionFactorError", "PRIMITIVES_INVALID_CONVERSION_FACTOR",
66
66
  (identifier: string) => `Factor is zero, negative, or not a valid number: ${identifier}`,
67
67
  );
68
68
 
69
69
  export const InvalidRoundingPrecisionError = createDomainError(
70
- "InvalidRoundingPrecisionError", "INVALID_ROUNDING_PRECISION",
70
+ "InvalidRoundingPrecisionError", "PRIMITIVES_INVALID_ROUNDING_PRECISION",
71
71
  (identifier: string) => `Precision is negative: ${identifier}`,
72
72
  );
73
73
 
74
74
  export const CategoryHasActiveUnitsError = createDomainError(
75
- "CategoryHasActiveUnitsError", "CATEGORY_HAS_ACTIVE_UNITS",
75
+ "CategoryHasActiveUnitsError", "PRIMITIVES_CATEGORY_HAS_ACTIVE_UNITS",
76
76
  (identifier: string) => `Category still contains active units that must be deactivated first: ${identifier}`,
77
77
  );
78
78
 
79
79
  export const CannotDeactivateBaseCurrencyError = createDomainError(
80
- "CannotDeactivateBaseCurrencyError", "CANNOT_DEACTIVATE_BASE_CURRENCY",
80
+ "CannotDeactivateBaseCurrencyError", "PRIMITIVES_CANNOT_DEACTIVATE_BASE_CURRENCY",
81
81
  (identifier: string) => `Attempting to deactivate the base currency, must change base currency first: ${identifier}`,
82
82
  );
83
83
 
84
84
  export const CannotDeactivateReferenceUnitError = createDomainError(
85
- "CannotDeactivateReferenceUnitError", "CANNOT_DEACTIVATE_REFERENCE_UNIT",
85
+ "CannotDeactivateReferenceUnitError", "PRIMITIVES_CANNOT_DEACTIVATE_REFERENCE_UNIT",
86
86
  (identifier: string) => `Attempting to deactivate the category's reference unit, must change reference unit first: ${identifier}`,
87
87
  );
88
88
 
89
89
  export const CannotSetInactiveAsBaseCurrencyError = createDomainError(
90
- "CannotSetInactiveAsBaseCurrencyError", "CANNOT_SET_INACTIVE_AS_BASE_CURRENCY",
90
+ "CannotSetInactiveAsBaseCurrencyError", "PRIMITIVES_CANNOT_SET_INACTIVE_AS_BASE_CURRENCY",
91
91
  (identifier: string) => `Target currency is not in Active status, must be activated first: ${identifier}`,
92
92
  );
93
93
 
94
94
  export const UnitNotInCategoryError = createDomainError(
95
- "UnitNotInCategoryError", "UNIT_NOT_IN_CATEGORY",
95
+ "UnitNotInCategoryError", "PRIMITIVES_UNIT_NOT_IN_CATEGORY",
96
96
  (identifier: string) => `Unit belongs to a different category than specified: ${identifier}`,
97
97
  );
98
98
 
99
99
  export const ExchangeRateNotFoundError = createDomainError(
100
- "ExchangeRateNotFoundError", "EXCHANGE_RATE_NOT_FOUND",
100
+ "ExchangeRateNotFoundError", "PRIMITIVES_EXCHANGE_RATE_NOT_FOUND",
101
101
  (identifier: string) => `No rate found for the currency pair on or before the specified date: ${identifier}`,
102
102
  );
103
103
 
104
104
  export const IncompatibleUnitsError = createDomainError(
105
- "IncompatibleUnitsError", "INCOMPATIBLE_UNITS",
105
+ "IncompatibleUnitsError", "PRIMITIVES_INCOMPATIBLE_UNITS",
106
106
  (identifier: string) => `Source and target units belong to different categories: ${identifier}`,
107
107
  );
108
108
 
109
109
  export const InactiveUnitError = createDomainError(
110
- "InactiveUnitError", "INACTIVE_UNIT",
110
+ "InactiveUnitError", "PRIMITIVES_INACTIVE_UNIT",
111
111
  (identifier: string) => `Either source or target unit is inactive: ${identifier}`,
112
112
  );
@@ -1,5 +1,5 @@
1
1
  // @generated — do not edit
2
- import { definePermissions } from "../../shared/internal";
2
+ import { definePermissions } from "../../../shared";
3
3
 
4
4
  export const { permissions, own, all } = definePermissions("primitives", [
5
5
  "activateCategory",
@@ -1,4 +1,4 @@
1
- import type { InferSchema, Selectable, Insertable, Updateable } from "../../shared/internal";
1
+ import type { InferSchema, Selectable, Insertable, Updateable } from "../../../shared";
2
2
  import type { DB } from "../generated/kysely-tailordb";
3
3
 
4
4
  export type Schema = InferSchema<DB>;
@@ -1,5 +1,5 @@
1
1
  import { type TailorAnyDBField } from "@tailor-platform/sdk";
2
- import { type EmptyFields, type FieldsToInsertable } from "../shared/internal";
2
+ import { type EmptyFields, type FieldsToInsertable } from "../../shared";
3
3
  import { createCategory } from "./command/createCategory.generated";
4
4
  import { createCurrency } from "./command/createCurrency.generated";
5
5
  import { createUnit } from "./command/createUnit.generated";
@@ -1,5 +1,5 @@
1
1
  // @generated — do not edit
2
- import { defineQuery } from "../../shared/internal";
2
+ import { defineQuery } from "../../../shared";
3
3
  import { run } from "./convertAmount";
4
4
 
5
5
  export const convertAmount = defineQuery(run);