@tailor-platform/erp-kit 0.7.0 → 0.9.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 (756) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +8 -4
  3. package/dist/cli.mjs +70 -70
  4. package/package.json +1 -1
  5. package/skills/erp-kit-app-1-requirements/SKILL.md +6 -0
  6. package/skills/erp-kit-app-2-requirements-review/SKILL.md +6 -0
  7. package/skills/erp-kit-app-3-plan/SKILL.md +6 -0
  8. package/skills/erp-kit-app-4-plan-review/SKILL.md +6 -0
  9. package/skills/erp-kit-app-5-impl-backend/SKILL.md +12 -5
  10. package/skills/erp-kit-app-5-impl-backend/references/app-config.md +1 -1
  11. package/skills/erp-kit-app-5-impl-backend/references/module-wiring.md +37 -12
  12. package/skills/erp-kit-app-6-impl-frontend/SKILL.md +9 -1
  13. package/skills/erp-kit-app-6-impl-frontend/references/component.md +90 -0
  14. package/skills/erp-kit-app-6-impl-frontend/references/detail-view.md +255 -0
  15. package/skills/erp-kit-app-6-impl-frontend/references/pages.md +1 -5
  16. package/skills/erp-kit-app-7-impl-review/SKILL.md +9 -2
  17. package/skills/erp-kit-app-7-impl-review/references/module-wiring-parity.md +14 -8
  18. package/skills/erp-kit-app-shared/SKILL.md +2 -0
  19. package/skills/erp-kit-mock-scenario/SKILL.md +6 -0
  20. package/skills/erp-kit-module-1-requirements/SKILL.md +6 -0
  21. package/skills/erp-kit-module-2-requirements-review/SKILL.md +6 -0
  22. package/skills/erp-kit-module-3-plan/SKILL.md +6 -0
  23. package/skills/erp-kit-module-3-update-plan/SKILL.md +6 -0
  24. package/skills/erp-kit-module-4-plan-review/SKILL.md +6 -0
  25. package/skills/erp-kit-module-5-impl/SKILL.md +6 -0
  26. package/skills/erp-kit-module-6-impl-review/SKILL.md +22 -19
  27. package/skills/erp-kit-module-shared/SKILL.md +2 -0
  28. package/skills/erp-kit-module-shared/references/commands.md +71 -1
  29. package/skills/erp-kit-update/SKILL.md +6 -0
  30. package/src/commands/index.ts +8 -2
  31. package/src/commands/init.test.ts +24 -8
  32. package/src/commands/init.ts +5 -12
  33. package/src/commands/lib/distribute.test.ts +1 -20
  34. package/src/commands/lib/distribute.ts +0 -14
  35. package/src/commands/update.test.ts +1 -1
  36. package/src/generator/scaffold.ts +25 -4
  37. package/src/module.ts +4 -1
  38. package/src/modules/accounting/README.md +63 -0
  39. package/src/modules/accounting/command/activateBudget.generated.ts +6 -0
  40. package/src/modules/accounting/command/activateBudget.test.ts +119 -0
  41. package/src/modules/accounting/command/activateBudget.ts +77 -0
  42. package/src/modules/accounting/command/activateCostElement.generated.ts +6 -0
  43. package/src/modules/accounting/command/activateCostElement.test.ts +59 -0
  44. package/src/modules/accounting/command/activateCostElement.ts +41 -0
  45. package/src/modules/accounting/command/activateProfitCenter.generated.ts +6 -0
  46. package/src/modules/accounting/command/activateProfitCenter.test.ts +60 -0
  47. package/src/modules/accounting/command/activateProfitCenter.ts +38 -0
  48. package/src/modules/accounting/command/approveBudget.generated.ts +6 -0
  49. package/src/modules/accounting/command/approveBudget.test.ts +69 -0
  50. package/src/modules/accounting/command/approveBudget.ts +47 -0
  51. package/src/modules/accounting/command/assignCostCenterToHierarchyNode.generated.ts +6 -0
  52. package/src/modules/accounting/command/assignCostCenterToHierarchyNode.test.ts +112 -0
  53. package/src/modules/accounting/command/assignCostCenterToHierarchyNode.ts +67 -0
  54. package/src/modules/accounting/command/assignProfitCenterToHierarchyNode.generated.ts +6 -0
  55. package/src/modules/accounting/command/assignProfitCenterToHierarchyNode.test.ts +123 -0
  56. package/src/modules/accounting/command/assignProfitCenterToHierarchyNode.ts +71 -0
  57. package/src/modules/accounting/command/closeBudget.generated.ts +6 -0
  58. package/src/modules/accounting/command/closeBudget.test.ts +93 -0
  59. package/src/modules/accounting/command/closeBudget.ts +40 -0
  60. package/src/modules/accounting/command/closeInternalOrder.generated.ts +6 -0
  61. package/src/modules/accounting/command/closeInternalOrder.test.ts +74 -0
  62. package/src/modules/accounting/command/closeInternalOrder.ts +38 -0
  63. package/src/modules/accounting/command/consumeCommitment.generated.ts +6 -0
  64. package/src/modules/accounting/command/consumeCommitment.test.ts +123 -0
  65. package/src/modules/accounting/command/consumeCommitment.ts +62 -0
  66. package/src/modules/accounting/command/createAllocationCycle.generated.ts +6 -0
  67. package/src/modules/accounting/command/createAllocationCycle.test.ts +166 -0
  68. package/src/modules/accounting/command/createAllocationCycle.ts +68 -0
  69. package/src/modules/accounting/command/createAllocationRule.generated.ts +6 -0
  70. package/src/modules/accounting/command/createAllocationRule.test.ts +195 -0
  71. package/src/modules/accounting/command/createAllocationRule.ts +103 -0
  72. package/src/modules/accounting/command/createBudget.generated.ts +6 -0
  73. package/src/modules/accounting/command/createBudget.test.ts +159 -0
  74. package/src/modules/accounting/command/createBudget.ts +100 -0
  75. package/src/modules/accounting/command/createBudgetLineItem.generated.ts +6 -0
  76. package/src/modules/accounting/command/createBudgetLineItem.test.ts +178 -0
  77. package/src/modules/accounting/command/createBudgetLineItem.ts +104 -0
  78. package/src/modules/accounting/command/createCostCenter.generated.ts +6 -0
  79. package/src/modules/accounting/command/createCostCenter.test.ts +179 -0
  80. package/src/modules/accounting/command/createCostCenter.ts +112 -0
  81. package/src/modules/accounting/command/createCostCenterHierarchy.generated.ts +6 -0
  82. package/src/modules/accounting/command/createCostCenterHierarchy.test.ts +91 -0
  83. package/src/modules/accounting/command/createCostCenterHierarchy.ts +48 -0
  84. package/src/modules/accounting/command/createCostCenterHierarchyNode.generated.ts +6 -0
  85. package/src/modules/accounting/command/createCostCenterHierarchyNode.test.ts +171 -0
  86. package/src/modules/accounting/command/createCostCenterHierarchyNode.ts +117 -0
  87. package/src/modules/accounting/command/createCostElement.generated.ts +6 -0
  88. package/src/modules/accounting/command/createCostElement.test.ts +317 -0
  89. package/src/modules/accounting/command/createCostElement.ts +149 -0
  90. package/src/modules/accounting/command/createInternalOrder.generated.ts +6 -0
  91. package/src/modules/accounting/command/createInternalOrder.test.ts +206 -0
  92. package/src/modules/accounting/command/createInternalOrder.ts +104 -0
  93. package/src/modules/accounting/command/createPlanVersion.generated.ts +6 -0
  94. package/src/modules/accounting/command/createPlanVersion.test.ts +230 -0
  95. package/src/modules/accounting/command/createPlanVersion.ts +71 -0
  96. package/src/modules/accounting/command/createProfitCenter.generated.ts +6 -0
  97. package/src/modules/accounting/command/createProfitCenter.test.ts +227 -0
  98. package/src/modules/accounting/command/createProfitCenter.ts +81 -0
  99. package/src/modules/accounting/command/createProfitCenterHierarchy.generated.ts +6 -0
  100. package/src/modules/accounting/command/createProfitCenterHierarchy.test.ts +91 -0
  101. package/src/modules/accounting/command/createProfitCenterHierarchy.ts +46 -0
  102. package/src/modules/accounting/command/createProfitCenterHierarchyNode.generated.ts +6 -0
  103. package/src/modules/accounting/command/createProfitCenterHierarchyNode.test.ts +160 -0
  104. package/src/modules/accounting/command/createProfitCenterHierarchyNode.ts +109 -0
  105. package/src/modules/accounting/command/deactivateCostElement.generated.ts +6 -0
  106. package/src/modules/accounting/command/deactivateCostElement.test.ts +59 -0
  107. package/src/modules/accounting/command/deactivateCostElement.ts +41 -0
  108. package/src/modules/accounting/command/deactivateProfitCenter.generated.ts +6 -0
  109. package/src/modules/accounting/command/deactivateProfitCenter.test.ts +60 -0
  110. package/src/modules/accounting/command/deactivateProfitCenter.ts +42 -0
  111. package/src/modules/accounting/command/deleteAllocationCycle.generated.ts +6 -0
  112. package/src/modules/accounting/command/deleteAllocationCycle.test.ts +90 -0
  113. package/src/modules/accounting/command/deleteAllocationCycle.ts +39 -0
  114. package/src/modules/accounting/command/deleteAllocationRule.generated.ts +6 -0
  115. package/src/modules/accounting/command/deleteAllocationRule.test.ts +98 -0
  116. package/src/modules/accounting/command/deleteAllocationRule.ts +40 -0
  117. package/src/modules/accounting/command/deleteBudget.generated.ts +6 -0
  118. package/src/modules/accounting/command/deleteBudget.test.ts +90 -0
  119. package/src/modules/accounting/command/deleteBudget.ts +35 -0
  120. package/src/modules/accounting/command/deleteBudgetLineItem.generated.ts +6 -0
  121. package/src/modules/accounting/command/deleteBudgetLineItem.test.ts +85 -0
  122. package/src/modules/accounting/command/deleteBudgetLineItem.ts +50 -0
  123. package/src/modules/accounting/command/deleteCostCenter.generated.ts +6 -0
  124. package/src/modules/accounting/command/deleteCostCenter.test.ts +79 -0
  125. package/src/modules/accounting/command/deleteCostCenter.ts +67 -0
  126. package/src/modules/accounting/command/deleteCostCenterHierarchyNode.generated.ts +6 -0
  127. package/src/modules/accounting/command/deleteCostCenterHierarchyNode.test.ts +59 -0
  128. package/src/modules/accounting/command/deleteCostCenterHierarchyNode.ts +58 -0
  129. package/src/modules/accounting/command/deleteCostElement.generated.ts +6 -0
  130. package/src/modules/accounting/command/deleteCostElement.test.ts +58 -0
  131. package/src/modules/accounting/command/deleteCostElement.ts +33 -0
  132. package/src/modules/accounting/command/deleteInternalOrder.generated.ts +6 -0
  133. package/src/modules/accounting/command/deleteInternalOrder.test.ts +81 -0
  134. package/src/modules/accounting/command/deleteInternalOrder.ts +37 -0
  135. package/src/modules/accounting/command/deleteProfitCenter.generated.ts +6 -0
  136. package/src/modules/accounting/command/deleteProfitCenter.test.ts +68 -0
  137. package/src/modules/accounting/command/deleteProfitCenter.ts +39 -0
  138. package/src/modules/accounting/command/deleteProfitCenterHierarchyNode.generated.ts +6 -0
  139. package/src/modules/accounting/command/deleteProfitCenterHierarchyNode.test.ts +72 -0
  140. package/src/modules/accounting/command/deleteProfitCenterHierarchyNode.ts +61 -0
  141. package/src/modules/accounting/command/executeAllocationCycle.generated.ts +6 -0
  142. package/src/modules/accounting/command/executeAllocationCycle.test.ts +167 -0
  143. package/src/modules/accounting/command/executeAllocationCycle.ts +94 -0
  144. package/src/modules/accounting/command/finalizeVarianceReport.generated.ts +6 -0
  145. package/src/modules/accounting/command/finalizeVarianceReport.test.ts +60 -0
  146. package/src/modules/accounting/command/finalizeVarianceReport.ts +45 -0
  147. package/src/modules/accounting/command/generateVarianceReport.generated.ts +6 -0
  148. package/src/modules/accounting/command/generateVarianceReport.test.ts +386 -0
  149. package/src/modules/accounting/command/generateVarianceReport.ts +219 -0
  150. package/src/modules/accounting/command/invalidateAllocationCycle.generated.ts +6 -0
  151. package/src/modules/accounting/command/invalidateAllocationCycle.test.ts +84 -0
  152. package/src/modules/accounting/command/invalidateAllocationCycle.ts +45 -0
  153. package/src/modules/accounting/command/moveCostCenterHierarchyNode.generated.ts +6 -0
  154. package/src/modules/accounting/command/moveCostCenterHierarchyNode.test.ts +135 -0
  155. package/src/modules/accounting/command/moveCostCenterHierarchyNode.ts +81 -0
  156. package/src/modules/accounting/command/postAllocationCycle.generated.ts +6 -0
  157. package/src/modules/accounting/command/postAllocationCycle.test.ts +98 -0
  158. package/src/modules/accounting/command/postAllocationCycle.ts +65 -0
  159. package/src/modules/accounting/command/reactivateCostElement.generated.ts +6 -0
  160. package/src/modules/accounting/command/reactivateCostElement.test.ts +59 -0
  161. package/src/modules/accounting/command/reactivateCostElement.ts +41 -0
  162. package/src/modules/accounting/command/reactivateProfitCenter.generated.ts +6 -0
  163. package/src/modules/accounting/command/reactivateProfitCenter.test.ts +60 -0
  164. package/src/modules/accounting/command/reactivateProfitCenter.ts +42 -0
  165. package/src/modules/accounting/command/recordCommitment.generated.ts +6 -0
  166. package/src/modules/accounting/command/recordCommitment.test.ts +157 -0
  167. package/src/modules/accounting/command/recordCommitment.ts +113 -0
  168. package/src/modules/accounting/command/rejectBudget.generated.ts +6 -0
  169. package/src/modules/accounting/command/rejectBudget.test.ts +105 -0
  170. package/src/modules/accounting/command/rejectBudget.ts +51 -0
  171. package/src/modules/accounting/command/releaseCommitment.generated.ts +6 -0
  172. package/src/modules/accounting/command/releaseCommitment.test.ts +94 -0
  173. package/src/modules/accounting/command/releaseCommitment.ts +51 -0
  174. package/src/modules/accounting/command/releaseInternalOrder.generated.ts +6 -0
  175. package/src/modules/accounting/command/releaseInternalOrder.test.ts +74 -0
  176. package/src/modules/accounting/command/releaseInternalOrder.ts +38 -0
  177. package/src/modules/accounting/command/reverseAllocationCycle.generated.ts +6 -0
  178. package/src/modules/accounting/command/reverseAllocationCycle.test.ts +124 -0
  179. package/src/modules/accounting/command/reverseAllocationCycle.ts +63 -0
  180. package/src/modules/accounting/command/submitBudget.generated.ts +6 -0
  181. package/src/modules/accounting/command/submitBudget.test.ts +60 -0
  182. package/src/modules/accounting/command/submitBudget.ts +51 -0
  183. package/src/modules/accounting/command/technicallyCompleteInternalOrder.generated.ts +6 -0
  184. package/src/modules/accounting/command/technicallyCompleteInternalOrder.test.ts +74 -0
  185. package/src/modules/accounting/command/technicallyCompleteInternalOrder.ts +42 -0
  186. package/src/modules/accounting/command/updateAllocationCycle.generated.ts +6 -0
  187. package/src/modules/accounting/command/updateAllocationCycle.test.ts +112 -0
  188. package/src/modules/accounting/command/updateAllocationCycle.ts +41 -0
  189. package/src/modules/accounting/command/updateBudget.generated.ts +6 -0
  190. package/src/modules/accounting/command/updateBudget.test.ts +112 -0
  191. package/src/modules/accounting/command/updateBudget.ts +44 -0
  192. package/src/modules/accounting/command/updateCostCenter.generated.ts +6 -0
  193. package/src/modules/accounting/command/updateCostCenter.test.ts +105 -0
  194. package/src/modules/accounting/command/updateCostCenter.ts +79 -0
  195. package/src/modules/accounting/command/updateCostElement.generated.ts +6 -0
  196. package/src/modules/accounting/command/updateCostElement.test.ts +265 -0
  197. package/src/modules/accounting/command/updateCostElement.ts +158 -0
  198. package/src/modules/accounting/command/updateInternalOrder.generated.ts +6 -0
  199. package/src/modules/accounting/command/updateInternalOrder.test.ts +209 -0
  200. package/src/modules/accounting/command/updateInternalOrder.ts +88 -0
  201. package/src/modules/accounting/command/updateProfitCenter.generated.ts +6 -0
  202. package/src/modules/accounting/command/updateProfitCenter.test.ts +162 -0
  203. package/src/modules/accounting/command/updateProfitCenter.ts +73 -0
  204. package/src/modules/accounting/command/validateAllocationCycle.generated.ts +6 -0
  205. package/src/modules/accounting/command/validateAllocationCycle.test.ts +141 -0
  206. package/src/modules/accounting/command/validateAllocationCycle.ts +80 -0
  207. package/src/modules/accounting/db/allocationCycle.ts +59 -0
  208. package/src/modules/accounting/db/allocationResult.ts +58 -0
  209. package/src/modules/accounting/db/allocationRule.ts +48 -0
  210. package/src/modules/accounting/db/budget.ts +84 -0
  211. package/src/modules/accounting/db/budgetLineItem.ts +64 -0
  212. package/src/modules/accounting/db/commitment.ts +60 -0
  213. package/src/modules/accounting/db/costCenter.ts +73 -0
  214. package/src/modules/accounting/db/costCenterHierarchy.ts +37 -0
  215. package/src/modules/accounting/db/costCenterHierarchyNode.ts +48 -0
  216. package/src/modules/accounting/db/costElement.ts +56 -0
  217. package/src/modules/accounting/db/internalOrder.ts +69 -0
  218. package/src/modules/accounting/db/planVersion.ts +47 -0
  219. package/src/modules/accounting/db/profitCenter.ts +52 -0
  220. package/src/modules/accounting/db/profitCenterHierarchy.ts +36 -0
  221. package/src/modules/accounting/db/profitCenterHierarchyAssignment.ts +62 -0
  222. package/src/modules/accounting/db/profitCenterHierarchyNode.ts +48 -0
  223. package/src/modules/accounting/db/varianceReport.ts +54 -0
  224. package/src/modules/accounting/db/varianceReportLine.ts +62 -0
  225. package/src/modules/accounting/docs/commands/ActivateBudget.md +54 -0
  226. package/src/modules/accounting/docs/commands/ActivateCostElement.md +43 -0
  227. package/src/modules/accounting/docs/commands/ActivateProfitCenter.md +43 -0
  228. package/src/modules/accounting/docs/commands/ApproveBudget.md +46 -0
  229. package/src/modules/accounting/docs/commands/AssignCostCenterToHierarchyNode.md +46 -0
  230. package/src/modules/accounting/docs/commands/AssignProfitCenterToHierarchyNode.md +47 -0
  231. package/src/modules/accounting/docs/commands/CloseBudget.md +47 -0
  232. package/src/modules/accounting/docs/commands/CloseInternalOrder.md +45 -0
  233. package/src/modules/accounting/docs/commands/ConsumeCommitment.md +53 -0
  234. package/src/modules/accounting/docs/commands/CreateAllocationCycle.md +55 -0
  235. package/src/modules/accounting/docs/commands/CreateAllocationRule.md +60 -0
  236. package/src/modules/accounting/docs/commands/CreateBudget.md +65 -0
  237. package/src/modules/accounting/docs/commands/CreateBudgetLineItem.md +66 -0
  238. package/src/modules/accounting/docs/commands/CreateCostCenter.md +64 -0
  239. package/src/modules/accounting/docs/commands/CreateCostCenterHierarchy.md +45 -0
  240. package/src/modules/accounting/docs/commands/CreateCostCenterHierarchyNode.md +61 -0
  241. package/src/modules/accounting/docs/commands/CreateCostElement.md +91 -0
  242. package/src/modules/accounting/docs/commands/CreateInternalOrder.md +72 -0
  243. package/src/modules/accounting/docs/commands/CreatePlanVersion.md +59 -0
  244. package/src/modules/accounting/docs/commands/CreateProfitCenter.md +63 -0
  245. package/src/modules/accounting/docs/commands/CreateProfitCenterHierarchy.md +45 -0
  246. package/src/modules/accounting/docs/commands/CreateProfitCenterHierarchyNode.md +60 -0
  247. package/src/modules/accounting/docs/commands/DeactivateCostElement.md +43 -0
  248. package/src/modules/accounting/docs/commands/DeactivateProfitCenter.md +44 -0
  249. package/src/modules/accounting/docs/commands/DeleteAllocationCycle.md +46 -0
  250. package/src/modules/accounting/docs/commands/DeleteAllocationRule.md +45 -0
  251. package/src/modules/accounting/docs/commands/DeleteBudget.md +46 -0
  252. package/src/modules/accounting/docs/commands/DeleteBudgetLineItem.md +45 -0
  253. package/src/modules/accounting/docs/commands/DeleteCostCenter.md +50 -0
  254. package/src/modules/accounting/docs/commands/DeleteCostCenterHierarchyNode.md +45 -0
  255. package/src/modules/accounting/docs/commands/DeleteCostElement.md +43 -0
  256. package/src/modules/accounting/docs/commands/DeleteInternalOrder.md +45 -0
  257. package/src/modules/accounting/docs/commands/DeleteProfitCenter.md +46 -0
  258. package/src/modules/accounting/docs/commands/DeleteProfitCenterHierarchyNode.md +46 -0
  259. package/src/modules/accounting/docs/commands/ExecuteAllocationCycle.md +54 -0
  260. package/src/modules/accounting/docs/commands/FinalizeVarianceReport.md +44 -0
  261. package/src/modules/accounting/docs/commands/GenerateVarianceReport.md +83 -0
  262. package/src/modules/accounting/docs/commands/InvalidateAllocationCycle.md +45 -0
  263. package/src/modules/accounting/docs/commands/MoveCostCenterHierarchyNode.md +51 -0
  264. package/src/modules/accounting/docs/commands/PostAllocationCycle.md +58 -0
  265. package/src/modules/accounting/docs/commands/ReactivateCostElement.md +43 -0
  266. package/src/modules/accounting/docs/commands/ReactivateProfitCenter.md +43 -0
  267. package/src/modules/accounting/docs/commands/RecordCommitment.md +60 -0
  268. package/src/modules/accounting/docs/commands/RejectBudget.md +49 -0
  269. package/src/modules/accounting/docs/commands/ReleaseCommitment.md +45 -0
  270. package/src/modules/accounting/docs/commands/ReleaseInternalOrder.md +44 -0
  271. package/src/modules/accounting/docs/commands/ReverseAllocationCycle.md +55 -0
  272. package/src/modules/accounting/docs/commands/SubmitBudget.md +47 -0
  273. package/src/modules/accounting/docs/commands/TechnicallyCompleteInternalOrder.md +44 -0
  274. package/src/modules/accounting/docs/commands/UpdateAllocationCycle.md +45 -0
  275. package/src/modules/accounting/docs/commands/UpdateBudget.md +47 -0
  276. package/src/modules/accounting/docs/commands/UpdateCostCenter.md +50 -0
  277. package/src/modules/accounting/docs/commands/UpdateCostElement.md +82 -0
  278. package/src/modules/accounting/docs/commands/UpdateInternalOrder.md +62 -0
  279. package/src/modules/accounting/docs/commands/UpdateProfitCenter.md +56 -0
  280. package/src/modules/accounting/docs/commands/ValidateAllocationCycle.md +57 -0
  281. package/src/modules/accounting/docs/features/budget-management.md +147 -0
  282. package/src/modules/accounting/docs/features/cost-allocation.md +129 -0
  283. package/src/modules/accounting/docs/features/cost-center-management.md +118 -0
  284. package/src/modules/accounting/docs/features/cost-element-management.md +114 -0
  285. package/src/modules/accounting/docs/features/internal-order-management.md +111 -0
  286. package/src/modules/accounting/docs/features/profit-center-management.md +120 -0
  287. package/src/modules/accounting/docs/features/variance-analysis.md +130 -0
  288. package/src/modules/accounting/docs/models/AllocationCycle.md +81 -0
  289. package/src/modules/accounting/docs/models/AllocationResult.md +37 -0
  290. package/src/modules/accounting/docs/models/AllocationRule.md +41 -0
  291. package/src/modules/accounting/docs/models/Budget.md +77 -0
  292. package/src/modules/accounting/docs/models/BudgetLineItem.md +40 -0
  293. package/src/modules/accounting/docs/models/Commitment.md +45 -0
  294. package/src/modules/accounting/docs/models/CostCenter.md +51 -0
  295. package/src/modules/accounting/docs/models/CostCenterHierarchy.md +38 -0
  296. package/src/modules/accounting/docs/models/CostCenterHierarchyNode.md +41 -0
  297. package/src/modules/accounting/docs/models/CostElement.md +66 -0
  298. package/src/modules/accounting/docs/models/InternalOrder.md +67 -0
  299. package/src/modules/accounting/docs/models/PlanVersion.md +36 -0
  300. package/src/modules/accounting/docs/models/ProfitCenter.md +66 -0
  301. package/src/modules/accounting/docs/models/ProfitCenterHierarchy.md +36 -0
  302. package/src/modules/accounting/docs/models/ProfitCenterHierarchyAssignment.md +36 -0
  303. package/src/modules/accounting/docs/models/ProfitCenterHierarchyNode.md +39 -0
  304. package/src/modules/accounting/docs/models/VarianceReport.md +58 -0
  305. package/src/modules/accounting/docs/models/VarianceReportLine.md +43 -0
  306. package/src/modules/accounting/docs/queries/CalculateBudgetAvailability.md +64 -0
  307. package/src/modules/accounting/docs/queries/GetAllocationCycle.md +43 -0
  308. package/src/modules/accounting/docs/queries/GetBudget.md +42 -0
  309. package/src/modules/accounting/docs/queries/GetCostCenter.md +38 -0
  310. package/src/modules/accounting/docs/queries/GetCostCenterHierarchy.md +45 -0
  311. package/src/modules/accounting/docs/queries/GetCostElement.md +39 -0
  312. package/src/modules/accounting/docs/queries/GetInternalOrder.md +42 -0
  313. package/src/modules/accounting/docs/queries/GetProfitCenter.md +38 -0
  314. package/src/modules/accounting/docs/queries/GetProfitCenterHierarchy.md +46 -0
  315. package/src/modules/accounting/docs/queries/GetVarianceReport.md +45 -0
  316. package/src/modules/accounting/docs/queries/ListAllocationCycles.md +63 -0
  317. package/src/modules/accounting/docs/queries/ListBudgets.md +70 -0
  318. package/src/modules/accounting/docs/queries/ListCostCenters.md +55 -0
  319. package/src/modules/accounting/docs/queries/ListCostElements.md +63 -0
  320. package/src/modules/accounting/docs/queries/ListInternalOrders.md +62 -0
  321. package/src/modules/accounting/docs/queries/ListProfitCenters.md +49 -0
  322. package/src/modules/accounting/generated/enums.ts +110 -0
  323. package/src/modules/accounting/generated/kysely-tailordb.ts +302 -0
  324. package/src/modules/accounting/index.ts +2 -0
  325. package/src/modules/accounting/lib/_db_deps.ts +70 -0
  326. package/src/modules/accounting/lib/actualAmounts.ts +93 -0
  327. package/src/modules/accounting/lib/allocationPosting.ts +152 -0
  328. package/src/modules/accounting/lib/errors.generated.ts +432 -0
  329. package/src/modules/accounting/lib/permissions.generated.ts +61 -0
  330. package/src/modules/accounting/lib/types.ts +114 -0
  331. package/src/modules/accounting/module.ts +429 -0
  332. package/src/modules/accounting/permissions.ts +3 -0
  333. package/src/modules/accounting/query/calculateBudgetAvailability.generated.ts +5 -0
  334. package/src/modules/accounting/query/calculateBudgetAvailability.test.ts +229 -0
  335. package/src/modules/accounting/query/calculateBudgetAvailability.ts +147 -0
  336. package/src/modules/accounting/query/getAllocationCycle.generated.ts +5 -0
  337. package/src/modules/accounting/query/getAllocationCycle.test.ts +94 -0
  338. package/src/modules/accounting/query/getAllocationCycle.ts +37 -0
  339. package/src/modules/accounting/query/getBudget.generated.ts +5 -0
  340. package/src/modules/accounting/query/getBudget.test.ts +80 -0
  341. package/src/modules/accounting/query/getBudget.ts +31 -0
  342. package/src/modules/accounting/query/getCostCenter.generated.ts +5 -0
  343. package/src/modules/accounting/query/getCostCenter.test.ts +50 -0
  344. package/src/modules/accounting/query/getCostCenter.ts +33 -0
  345. package/src/modules/accounting/query/getCostCenterHierarchy.generated.ts +5 -0
  346. package/src/modules/accounting/query/getCostCenterHierarchy.test.ts +100 -0
  347. package/src/modules/accounting/query/getCostCenterHierarchy.ts +80 -0
  348. package/src/modules/accounting/query/getCostElement.generated.ts +5 -0
  349. package/src/modules/accounting/query/getCostElement.test.ts +57 -0
  350. package/src/modules/accounting/query/getCostElement.ts +21 -0
  351. package/src/modules/accounting/query/getInternalOrder.generated.ts +5 -0
  352. package/src/modules/accounting/query/getInternalOrder.test.ts +73 -0
  353. package/src/modules/accounting/query/getInternalOrder.ts +21 -0
  354. package/src/modules/accounting/query/getProfitCenter.generated.ts +5 -0
  355. package/src/modules/accounting/query/getProfitCenter.test.ts +65 -0
  356. package/src/modules/accounting/query/getProfitCenter.ts +31 -0
  357. package/src/modules/accounting/query/getProfitCenterHierarchy.generated.ts +5 -0
  358. package/src/modules/accounting/query/getProfitCenterHierarchy.test.ts +97 -0
  359. package/src/modules/accounting/query/getProfitCenterHierarchy.ts +87 -0
  360. package/src/modules/accounting/query/getVarianceReport.generated.ts +5 -0
  361. package/src/modules/accounting/query/getVarianceReport.test.ts +108 -0
  362. package/src/modules/accounting/query/getVarianceReport.ts +31 -0
  363. package/src/modules/accounting/query/listAllocationCycles.generated.ts +5 -0
  364. package/src/modules/accounting/query/listAllocationCycles.test.ts +152 -0
  365. package/src/modules/accounting/query/listAllocationCycles.ts +96 -0
  366. package/src/modules/accounting/query/listBudgets.generated.ts +5 -0
  367. package/src/modules/accounting/query/listBudgets.test.ts +150 -0
  368. package/src/modules/accounting/query/listBudgets.ts +85 -0
  369. package/src/modules/accounting/query/listCostCenters.generated.ts +5 -0
  370. package/src/modules/accounting/query/listCostCenters.test.ts +111 -0
  371. package/src/modules/accounting/query/listCostCenters.ts +71 -0
  372. package/src/modules/accounting/query/listCostElements.generated.ts +5 -0
  373. package/src/modules/accounting/query/listCostElements.test.ts +138 -0
  374. package/src/modules/accounting/query/listCostElements.ts +105 -0
  375. package/src/modules/accounting/query/listInternalOrders.generated.ts +5 -0
  376. package/src/modules/accounting/query/listInternalOrders.test.ts +129 -0
  377. package/src/modules/accounting/query/listInternalOrders.ts +94 -0
  378. package/src/modules/accounting/query/listProfitCenters.generated.ts +5 -0
  379. package/src/modules/accounting/query/listProfitCenters.test.ts +94 -0
  380. package/src/modules/accounting/query/listProfitCenters.ts +56 -0
  381. package/src/modules/accounting/seed/index.ts +19 -0
  382. package/src/modules/accounting/tailor.config.ts +13 -0
  383. package/src/modules/accounting/testing/commandTestUtils.ts +35 -0
  384. package/src/modules/accounting/testing/fixtures.ts +502 -0
  385. package/src/modules/audit/command/logAuditEvent.ts +43 -38
  386. package/src/modules/audit/command/updateAuditPolicy.ts +2 -2
  387. package/src/modules/audit/docs/commands/UpdateAuditPolicy.md +1 -1
  388. package/src/modules/audit/module.ts +4 -0
  389. package/src/modules/business-partner/command/createPartnerBankAccount.test.ts +3 -3
  390. package/src/modules/business-partner/command/createPartnerBankAccount.ts +1 -1
  391. package/src/modules/business-partner/command/updateContactPerson.ts +3 -4
  392. package/src/modules/business-partner/command/updatePartner.ts +13 -6
  393. package/src/modules/business-partner/command/updatePartnerAddress.ts +13 -6
  394. package/src/modules/business-partner/command/updatePartnerBankAccount.ts +3 -4
  395. package/src/modules/business-partner/command/updatePartnerIdentification.ts +3 -4
  396. package/src/modules/business-partner/docs/commands/UpdateContactPerson.md +3 -3
  397. package/src/modules/business-partner/docs/commands/UpdatePartner.md +2 -2
  398. package/src/modules/business-partner/docs/commands/UpdatePartnerAddress.md +2 -2
  399. package/src/modules/business-partner/docs/commands/UpdatePartnerIdentification.md +2 -2
  400. package/src/modules/business-partner/module.ts +1 -0
  401. package/src/modules/coa-management/command/activateAccount.test.ts +0 -15
  402. package/src/modules/coa-management/command/activateAccount.ts +1 -42
  403. package/src/modules/coa-management/command/activateChartOfAccounts.test.ts +2 -31
  404. package/src/modules/coa-management/command/activateChartOfAccounts.ts +1 -37
  405. package/src/modules/coa-management/command/createAccount.test.ts +0 -28
  406. package/src/modules/coa-management/command/createAccount.ts +0 -43
  407. package/src/modules/coa-management/command/createAccountGroup.test.ts +2 -51
  408. package/src/modules/coa-management/command/createAccountGroup.ts +1 -56
  409. package/src/modules/coa-management/command/createChartOfAccounts.test.ts +1 -49
  410. package/src/modules/coa-management/command/createChartOfAccounts.ts +0 -51
  411. package/src/modules/coa-management/command/deactivateAccount.test.ts +0 -15
  412. package/src/modules/coa-management/command/deactivateAccount.ts +1 -53
  413. package/src/modules/coa-management/command/deactivateChartOfAccounts.test.ts +2 -29
  414. package/src/modules/coa-management/command/deactivateChartOfAccounts.ts +1 -37
  415. package/src/modules/coa-management/command/deleteAccount.test.ts +0 -13
  416. package/src/modules/coa-management/command/deleteAccount.ts +1 -42
  417. package/src/modules/coa-management/command/deleteAccountGroup.test.ts +0 -19
  418. package/src/modules/coa-management/command/deleteAccountGroup.ts +1 -42
  419. package/src/modules/coa-management/command/deleteChartOfAccounts.test.ts +2 -58
  420. package/src/modules/coa-management/command/deleteChartOfAccounts.ts +4 -88
  421. package/src/modules/coa-management/command/moveAccountGroup.test.ts +0 -27
  422. package/src/modules/coa-management/command/moveAccountGroup.ts +1 -48
  423. package/src/modules/coa-management/command/reactivateAccount.test.ts +0 -15
  424. package/src/modules/coa-management/command/reactivateAccount.ts +1 -53
  425. package/src/modules/coa-management/command/updateAccount.test.ts +0 -15
  426. package/src/modules/coa-management/command/updateAccount.ts +3 -95
  427. package/src/modules/coa-management/command/updateAccountGroup.test.ts +22 -20
  428. package/src/modules/coa-management/command/updateAccountGroup.ts +30 -78
  429. package/src/modules/coa-management/command/updateChartOfAccounts.test.ts +2 -31
  430. package/src/modules/coa-management/command/updateChartOfAccounts.ts +4 -54
  431. package/src/modules/coa-management/docs/commands/ActivateAccount.md +1 -4
  432. package/src/modules/coa-management/docs/commands/ActivateChartOfAccounts.md +1 -4
  433. package/src/modules/coa-management/docs/commands/CreateAccount.md +1 -4
  434. package/src/modules/coa-management/docs/commands/CreateAccountGroup.md +2 -5
  435. package/src/modules/coa-management/docs/commands/CreateChartOfAccounts.md +2 -6
  436. package/src/modules/coa-management/docs/commands/DeactivateAccount.md +1 -4
  437. package/src/modules/coa-management/docs/commands/DeactivateChartOfAccounts.md +1 -4
  438. package/src/modules/coa-management/docs/commands/DeleteAccount.md +1 -4
  439. package/src/modules/coa-management/docs/commands/DeleteAccountGroup.md +1 -4
  440. package/src/modules/coa-management/docs/commands/DeleteChartOfAccounts.md +1 -6
  441. package/src/modules/coa-management/docs/commands/MoveAccountGroup.md +1 -4
  442. package/src/modules/coa-management/docs/commands/ReactivateAccount.md +1 -4
  443. package/src/modules/coa-management/docs/commands/UpdateAccount.md +1 -4
  444. package/src/modules/coa-management/docs/commands/UpdateAccountGroup.md +6 -8
  445. package/src/modules/coa-management/docs/commands/UpdateChartOfAccounts.md +1 -4
  446. package/src/modules/coa-management/module.ts +16 -27
  447. package/src/modules/finance-ledger/command/updateFiscalYear.ts +2 -3
  448. package/src/modules/finance-ledger/command/updateJournalEntry.test.ts +0 -17
  449. package/src/modules/finance-ledger/command/updateJournalEntry.ts +2 -10
  450. package/src/modules/finance-ledger/command/updateJournalLine.ts +2 -3
  451. package/src/modules/finance-ledger/docs/commands/UpdateJournalEntry.md +1 -4
  452. package/src/modules/finance-ledger/module.ts +1 -0
  453. package/src/modules/inventory/command/approveInventoryAdjustment.test.ts +1 -1
  454. package/src/modules/inventory/command/approveInventoryAdjustment.ts +1 -1
  455. package/src/modules/inventory/command/cancelStockMovement.test.ts +2 -2
  456. package/src/modules/inventory/command/cancelStockMovement.ts +1 -1
  457. package/src/modules/inventory/command/confirmInventoryAdjustment.test.ts +4 -4
  458. package/src/modules/inventory/command/confirmInventoryAdjustment.ts +1 -1
  459. package/src/modules/inventory/command/confirmStockMovement.test.ts +1 -1
  460. package/src/modules/inventory/command/confirmStockMovement.ts +1 -1
  461. package/src/modules/inventory/command/createInventoryAdjustment.test.ts +6 -6
  462. package/src/modules/inventory/command/createInventoryAdjustment.ts +1 -1
  463. package/src/modules/inventory/command/createStockMovement.test.ts +3 -3
  464. package/src/modules/inventory/command/createStockMovement.ts +1 -1
  465. package/src/modules/inventory/command/executeStockMovement.test.ts +5 -5
  466. package/src/modules/inventory/command/executeStockMovement.ts +1 -1
  467. package/src/modules/inventory/command/rejectInventoryAdjustment.test.ts +1 -1
  468. package/src/modules/inventory/command/rejectInventoryAdjustment.ts +1 -1
  469. package/src/modules/inventory/command/reviseInventoryAdjustment.test.ts +2 -2
  470. package/src/modules/inventory/command/reviseInventoryAdjustment.ts +1 -1
  471. package/src/modules/inventory/command/submitInventoryAdjustment.test.ts +1 -1
  472. package/src/modules/inventory/command/submitInventoryAdjustment.ts +1 -1
  473. package/src/modules/inventory/command/updateLot.test.ts +1 -1
  474. package/src/modules/inventory/command/updateLot.ts +2 -3
  475. package/src/modules/inventory/command/updateStockMovement.test.ts +4 -4
  476. package/src/modules/inventory/command/updateStockMovement.ts +4 -5
  477. package/src/modules/inventory/command/updateStorageLocation.ts +12 -17
  478. package/src/modules/inventory/command/updateValuationPolicy.ts +2 -3
  479. package/src/modules/inventory/command/updateWarehouse.ts +2 -3
  480. package/src/modules/inventory/docs/commands/UpdateLot.md +3 -3
  481. package/src/modules/inventory/docs/commands/UpdateStorageLocation.md +6 -6
  482. package/src/modules/inventory/docs/commands/UpdateWarehouse.md +2 -2
  483. package/src/modules/inventory/module.ts +1 -0
  484. package/src/modules/item-management/command/createTaxonomyNode.test.ts +4 -4
  485. package/src/modules/item-management/command/createTaxonomyNode.ts +1 -1
  486. package/src/modules/item-management/command/moveTaxonomyNode.test.ts +2 -2
  487. package/src/modules/item-management/command/moveTaxonomyNode.ts +2 -2
  488. package/src/modules/item-management/command/updateItem.test.ts +16 -12
  489. package/src/modules/item-management/command/updateItem.ts +47 -31
  490. package/src/modules/item-management/command/updateTaxonomyNode.test.ts +16 -17
  491. package/src/modules/item-management/command/updateTaxonomyNode.ts +43 -30
  492. package/src/modules/item-management/docs/commands/UpdateItem.md +7 -11
  493. package/src/modules/item-management/docs/commands/UpdateTaxonomyNode.md +10 -14
  494. package/src/modules/item-management/module.ts +1 -0
  495. package/src/modules/manufacturing/command/createRouting.ts +1 -1
  496. package/src/modules/manufacturing/command/recordInventoryIssueOutcome.test.ts +1 -1
  497. package/src/modules/manufacturing/command/recordInventoryIssueOutcome.ts +1 -1
  498. package/src/modules/manufacturing/command/recordManufacturingCostSettlementAcknowledgment.test.ts +1 -1
  499. package/src/modules/manufacturing/command/recordManufacturingCostSettlementAcknowledgment.ts +1 -1
  500. package/src/modules/manufacturing/command/reviewManufacturingCostSummary.test.ts +1 -1
  501. package/src/modules/manufacturing/command/reviewManufacturingCostSummary.ts +1 -1
  502. package/src/modules/manufacturing/command/updateBillOfMaterial.ts +3 -4
  503. package/src/modules/manufacturing/command/updateProductionOrder.ts +3 -4
  504. package/src/modules/manufacturing/command/updateRouting.ts +4 -5
  505. package/src/modules/manufacturing/command/updateWorkCenter.test.ts +16 -7
  506. package/src/modules/manufacturing/command/updateWorkCenter.ts +41 -38
  507. package/src/modules/manufacturing/docs/commands/ActivateWorkCenter.md +2 -0
  508. package/src/modules/manufacturing/docs/commands/CompleteWorkOrder.md +2 -0
  509. package/src/modules/manufacturing/docs/commands/CreateBillOfMaterial.md +1 -0
  510. package/src/modules/manufacturing/docs/commands/ReviewManufacturingCostSummary.md +1 -0
  511. package/src/modules/manufacturing/docs/commands/UpdateWorkCenter.md +6 -5
  512. package/src/modules/manufacturing/docs/models/BillOfMaterialLine.md +42 -0
  513. package/src/modules/manufacturing/docs/models/CostVarianceLine.md +36 -0
  514. package/src/modules/manufacturing/docs/models/ManufacturingCostLine.md +37 -0
  515. package/src/modules/manufacturing/docs/models/ManufacturingCostSettlementRecord.md +34 -0
  516. package/src/modules/manufacturing/docs/models/ProductionOrderBomSnapshot.md +35 -0
  517. package/src/modules/manufacturing/docs/models/ProductionOrderCostBaseline.md +36 -0
  518. package/src/modules/manufacturing/docs/models/ProductionOrderMaterialRequirement.md +35 -0
  519. package/src/modules/manufacturing/docs/models/ProductionOrderRoutingSnapshot.md +34 -0
  520. package/src/modules/manufacturing/docs/models/RoutingOperation.md +40 -0
  521. package/src/modules/manufacturing/docs/models/WorkOrderExecutionEvent.md +38 -0
  522. package/src/modules/manufacturing/docs/queries/ExplodeBillOfMaterial.md +1 -0
  523. package/src/modules/manufacturing/docs/queries/ListWorkCentersBySite.md +1 -0
  524. package/src/modules/manufacturing/module.ts +1 -0
  525. package/src/modules/organization/command/updateCompany.test.ts +6 -6
  526. package/src/modules/organization/command/updateCompany.ts +3 -4
  527. package/src/modules/organization/command/updateDepartment.test.ts +7 -7
  528. package/src/modules/organization/command/updateDepartment.ts +13 -12
  529. package/src/modules/organization/command/updateSite.test.ts +10 -10
  530. package/src/modules/organization/command/updateSite.ts +3 -4
  531. package/src/modules/organization/docs/commands/UpdateCompany.md +6 -6
  532. package/src/modules/organization/docs/commands/UpdateDepartment.md +9 -10
  533. package/src/modules/organization/docs/commands/UpdateSite.md +12 -12
  534. package/src/modules/organization/module.ts +1 -0
  535. package/src/modules/primitives/module.ts +1 -0
  536. package/src/modules/product-management/command/assignProductToCategory.test.ts +2 -2
  537. package/src/modules/product-management/command/assignProductToCategory.ts +2 -2
  538. package/src/modules/product-management/command/createProductAttribute.test.ts +1 -1
  539. package/src/modules/product-management/command/createProductAttribute.ts +1 -1
  540. package/src/modules/product-management/command/createProductAttributeValue.test.ts +1 -1
  541. package/src/modules/product-management/command/createProductAttributeValue.ts +1 -1
  542. package/src/modules/product-management/command/createProductCategory.test.ts +2 -2
  543. package/src/modules/product-management/command/createProductCategory.ts +1 -1
  544. package/src/modules/product-management/command/setProductAttributeAssignment.test.ts +3 -3
  545. package/src/modules/product-management/command/setProductAttributeAssignment.ts +2 -2
  546. package/src/modules/product-management/command/updateProduct.test.ts +17 -11
  547. package/src/modules/product-management/command/updateProduct.ts +45 -28
  548. package/src/modules/product-management/command/updateProductAttribute.test.ts +16 -21
  549. package/src/modules/product-management/command/updateProductAttribute.ts +40 -26
  550. package/src/modules/product-management/command/updateProductAttributeValue.ts +2 -3
  551. package/src/modules/product-management/command/updateProductCategory.test.ts +14 -19
  552. package/src/modules/product-management/command/updateProductCategory.ts +42 -26
  553. package/src/modules/product-management/docs/commands/UpdateProduct.md +16 -20
  554. package/src/modules/product-management/docs/commands/UpdateProductAttribute.md +10 -14
  555. package/src/modules/product-management/docs/commands/UpdateProductCategory.md +10 -14
  556. package/src/modules/product-management/module.ts +1 -0
  557. package/src/modules/purchase/command/activatePurchasePaymentTerm.test.ts +4 -4
  558. package/src/modules/purchase/command/activatePurchasePaymentTerm.ts +2 -2
  559. package/src/modules/purchase/command/deactivatePurchasePaymentTerm.test.ts +4 -4
  560. package/src/modules/purchase/command/deactivatePurchasePaymentTerm.ts +2 -2
  561. package/src/modules/purchase/command/updateGoodsReceipt.ts +2 -3
  562. package/src/modules/purchase/command/updatePurchaseBill.ts +2 -3
  563. package/src/modules/purchase/command/updatePurchaseOrder.ts +2 -3
  564. package/src/modules/purchase/command/updatePurchasePaymentTerm.test.ts +2 -2
  565. package/src/modules/purchase/command/updatePurchasePaymentTerm.ts +3 -4
  566. package/src/modules/purchase/command/updatePurchasePriceList.ts +2 -3
  567. package/src/modules/purchase/command/updatePurchasePriceRule.ts +2 -3
  568. package/src/modules/purchase/module.ts +1 -0
  569. package/src/modules/sales/command/createSalesOrder.ts +1 -1
  570. package/src/modules/sales/command/updateChannel.test.ts +4 -4
  571. package/src/modules/sales/command/updateChannel.ts +2 -3
  572. package/src/modules/sales/command/updateListing.test.ts +2 -2
  573. package/src/modules/sales/command/updateListing.ts +2 -3
  574. package/src/modules/sales/command/updateSalesCreditNote.test.ts +2 -2
  575. package/src/modules/sales/command/updateSalesCreditNote.ts +2 -3
  576. package/src/modules/sales/command/updateSalesInvoice.test.ts +2 -2
  577. package/src/modules/sales/command/updateSalesInvoice.ts +2 -3
  578. package/src/modules/sales/command/updateSalesOrder.test.ts +3 -3
  579. package/src/modules/sales/command/updateSalesOrder.ts +2 -3
  580. package/src/modules/sales/command/updateSalesPaymentTerm.test.ts +2 -2
  581. package/src/modules/sales/command/updateSalesPaymentTerm.ts +2 -3
  582. package/src/modules/sales/command/updateSalesPriceList.test.ts +3 -3
  583. package/src/modules/sales/command/updateSalesPriceList.ts +2 -3
  584. package/src/modules/sales/command/updateSalesPriceRule.test.ts +3 -3
  585. package/src/modules/sales/command/updateSalesPriceRule.ts +2 -3
  586. package/src/modules/sales/command/updateShipment.test.ts +2 -2
  587. package/src/modules/sales/command/updateShipment.ts +2 -3
  588. package/src/modules/sales/docs/commands/UpdateChannel.md +4 -4
  589. package/src/modules/sales/docs/commands/UpdateListing.md +2 -2
  590. package/src/modules/sales/docs/commands/UpdateSalesCreditNote.md +2 -2
  591. package/src/modules/sales/docs/commands/UpdateSalesInvoice.md +2 -2
  592. package/src/modules/sales/docs/commands/UpdateSalesOrder.md +3 -3
  593. package/src/modules/sales/docs/commands/UpdateSalesPaymentTerm.md +2 -2
  594. package/src/modules/sales/docs/commands/UpdateSalesPriceList.md +3 -3
  595. package/src/modules/sales/docs/commands/UpdateSalesPriceRule.md +3 -3
  596. package/src/modules/sales/docs/commands/UpdateShipment.md +2 -2
  597. package/src/modules/sales/module.ts +1 -0
  598. package/src/modules/user-management/README.md +2 -1
  599. package/src/modules/user-management/command/updateOwnProfile.generated.ts +6 -0
  600. package/src/modules/user-management/command/updateOwnProfile.test.ts +191 -0
  601. package/src/modules/user-management/command/updateOwnProfile.ts +82 -0
  602. package/src/modules/user-management/command/updateUser.generated.ts +6 -0
  603. package/src/modules/user-management/command/updateUser.test.ts +195 -0
  604. package/src/modules/user-management/command/updateUser.ts +76 -0
  605. package/src/modules/user-management/docs/commands/UpdateOwnProfile.md +68 -0
  606. package/src/modules/user-management/docs/commands/UpdateUser.md +67 -0
  607. package/src/modules/user-management/docs/features/user-account-management.md +28 -3
  608. package/src/modules/user-management/docs/models/User.md +2 -0
  609. package/src/modules/user-management/lib/errors.generated.ts +5 -0
  610. package/src/modules/user-management/lib/permissions.generated.ts +2 -0
  611. package/src/modules/user-management/module.ts +5 -0
  612. package/src/modules/user-management/seed/index.ts +19 -0
  613. package/templates/scaffold/app/backend/eslint.config.js +17 -0
  614. package/templates/scaffold/app/backend/package.json +1 -0
  615. package/templates/scaffold/app/backend/seed/data/AuditEntry.schema.ts +20 -0
  616. package/templates/scaffold/app/backend/seed/data/AuditPolicy.jsonl +7 -0
  617. package/templates/scaffold/app/backend/seed/data/AuditPolicy.schema.ts +15 -0
  618. package/templates/scaffold/app/backend/seed/data/AuditableEntity.jsonl +4 -0
  619. package/templates/scaffold/app/backend/seed/data/AuditableEntity.schema.ts +20 -0
  620. package/templates/scaffold/app/backend/seed/data/ChangeDetail.schema.ts +20 -0
  621. package/templates/scaffold/app/backend/seed/data/Company.schema.ts +15 -0
  622. package/templates/scaffold/app/backend/seed/data/Permission.jsonl +13 -0
  623. package/templates/scaffold/app/backend/seed/data/Permission.schema.ts +1 -1
  624. package/templates/scaffold/app/backend/seed/data/PolicyFieldRule.schema.ts +20 -0
  625. package/templates/scaffold/app/backend/seed/data/Role.jsonl +1 -0
  626. package/templates/scaffold/app/backend/seed/data/Role.schema.ts +1 -1
  627. package/templates/scaffold/app/backend/seed/data/RolePermission.jsonl +13 -0
  628. package/templates/scaffold/app/backend/seed/data/RolePermission.schema.ts +1 -1
  629. package/templates/scaffold/app/backend/seed/data/User.jsonl +1 -1
  630. package/templates/scaffold/app/backend/seed/data/User.schema.ts +1 -1
  631. package/templates/scaffold/app/backend/seed/data/UserRole.jsonl +1 -0
  632. package/templates/scaffold/app/backend/seed/data/UserRole.schema.ts +1 -1
  633. package/templates/scaffold/app/backend/seed/data/_User.jsonl +1 -1
  634. package/templates/scaffold/app/backend/seed/exec.mjs +12 -0
  635. package/templates/scaffold/app/backend/src/executors/permissionCreated.ts +2 -2
  636. package/templates/scaffold/app/backend/src/executors/permissionDeleted.ts +2 -2
  637. package/templates/scaffold/app/backend/src/generated/kysely-tailordb.ts +62 -0
  638. package/templates/scaffold/app/backend/src/modules-db.ts +13 -0
  639. package/templates/scaffold/app/backend/src/modules.ts +3 -5
  640. package/templates/scaffold/app/backend/src/resolvers/assignPermissionToRole.ts +70 -0
  641. package/templates/scaffold/app/backend/src/resolvers/assignRoleToUser.ts +72 -0
  642. package/templates/scaffold/app/backend/src/resolvers/createRole.ts +92 -0
  643. package/templates/scaffold/app/backend/src/resolvers/createUser.ts +113 -13
  644. package/templates/scaffold/app/backend/src/resolvers/deactivateUser.ts +67 -0
  645. package/templates/scaffold/app/backend/src/resolvers/reactivateUser.ts +63 -0
  646. package/templates/scaffold/app/backend/src/resolvers/revokePermissionFromRole.ts +72 -0
  647. package/templates/scaffold/app/backend/src/resolvers/revokeRoleFromUser.ts +72 -0
  648. package/templates/scaffold/app/backend/src/resolvers/updateOwnProfile.ts +107 -0
  649. package/templates/scaffold/app/backend/src/resolvers/updateUserProfile.ts +107 -0
  650. package/templates/scaffold/app/backend/src/tests/stories/audit-log/user--view-audit-log-detail.test.ts +79 -0
  651. package/templates/scaffold/app/backend/src/tests/stories/audit-log/user--view-audit-log.test.ts +86 -0
  652. package/templates/scaffold/app/backend/src/tests/stories/role-management/user--assign-role-to-user.test.ts +103 -0
  653. package/templates/scaffold/app/backend/src/tests/stories/role-management/user--create-role.test.ts +61 -0
  654. package/templates/scaffold/app/backend/src/tests/stories/role-management/user--remove-role-from-user.test.ts +89 -0
  655. package/templates/scaffold/app/backend/src/tests/stories/role-management/user--update-role-permissions.test.ts +125 -0
  656. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--browse-user-list.test.ts +91 -0
  657. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--create-user-account.test.ts +97 -0
  658. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--toggle-user-status.test.ts +131 -0
  659. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--update-own-profile.test.ts +85 -0
  660. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--update-user-profile.test.ts +157 -0
  661. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--view-own-profile.test.ts +30 -0
  662. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--view-user-detail.test.ts +98 -0
  663. package/templates/scaffold/app/backend/tailor.config.ts +21 -3
  664. package/templates/scaffold/app/backend/tsconfig.json +1 -1
  665. package/templates/scaffold/app/docs/actors/user.md +11 -0
  666. package/templates/scaffold/app/docs/business-flow/audit-log/README.md +31 -0
  667. package/templates/scaffold/app/docs/business-flow/audit-log/story/user--view-audit-log-detail.md +35 -0
  668. package/templates/scaffold/app/docs/business-flow/audit-log/story/user--view-audit-log.md +44 -0
  669. package/templates/scaffold/app/docs/business-flow/role-management/README.md +33 -0
  670. package/templates/scaffold/app/docs/business-flow/role-management/story/user--assign-role-to-user.md +35 -0
  671. package/templates/scaffold/app/docs/business-flow/role-management/story/user--create-role.md +41 -0
  672. package/templates/scaffold/app/docs/business-flow/role-management/story/user--remove-role-from-user.md +33 -0
  673. package/templates/scaffold/app/docs/business-flow/role-management/story/user--update-role-permissions.md +41 -0
  674. package/templates/scaffold/app/docs/business-flow/user-lifecycle/README.md +48 -0
  675. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--browse-user-list.md +38 -0
  676. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--create-user-account.md +45 -0
  677. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--toggle-user-status.md +38 -0
  678. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--update-own-profile.md +36 -0
  679. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--update-user-profile.md +41 -0
  680. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--view-own-profile.md +30 -0
  681. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--view-user-detail.md +33 -0
  682. package/templates/scaffold/app/docs/resolver/assignPermissionToRole.md +16 -0
  683. package/templates/scaffold/app/docs/resolver/assignRoleToUser.md +17 -0
  684. package/templates/scaffold/app/docs/resolver/createRole.md +17 -0
  685. package/templates/scaffold/app/docs/resolver/createUser.md +23 -0
  686. package/templates/scaffold/app/docs/resolver/deactivateUser.md +17 -0
  687. package/templates/scaffold/app/docs/resolver/reactivateUser.md +16 -0
  688. package/templates/scaffold/app/docs/resolver/revokePermissionFromRole.md +17 -0
  689. package/templates/scaffold/app/docs/resolver/revokeRoleFromUser.md +17 -0
  690. package/templates/scaffold/app/docs/resolver/updateOwnProfile.md +20 -0
  691. package/templates/scaffold/app/docs/resolver/updateUserProfile.md +19 -0
  692. package/templates/scaffold/app/docs/screen/audit-entry-detail.md +30 -0
  693. package/templates/scaffold/app/docs/screen/audit-entry-list.md +25 -0
  694. package/templates/scaffold/app/docs/screen/my-profile-edit-form.md +22 -0
  695. package/templates/scaffold/app/docs/screen/my-profile.md +27 -0
  696. package/templates/scaffold/app/docs/screen/role-create-form.md +23 -0
  697. package/templates/scaffold/app/docs/screen/role-detail.md +27 -0
  698. package/templates/scaffold/app/docs/screen/role-edit-form.md +21 -0
  699. package/templates/scaffold/app/docs/screen/role-list.md +23 -0
  700. package/templates/scaffold/app/docs/screen/user-create-form.md +23 -0
  701. package/templates/scaffold/app/docs/screen/user-detail.md +33 -0
  702. package/templates/scaffold/app/docs/screen/user-edit-form.md +22 -0
  703. package/templates/scaffold/app/docs/screen/user-list.md +24 -0
  704. package/templates/scaffold/app/frontend/package.json +1 -1
  705. package/templates/scaffold/app/frontend/src/App.tsx +57 -12
  706. package/templates/scaffold/app/frontend/src/components/composed/error-fallback.tsx +1 -1
  707. package/templates/scaffold/app/frontend/src/graphql/generated/graphql-env.d.ts +59 -31
  708. package/templates/scaffold/app/frontend/src/graphql/generated/schema.graphql +1411 -688
  709. package/templates/scaffold/app/frontend/src/hooks/use-toast.ts +1 -1
  710. package/templates/scaffold/app/frontend/src/lib/permission-groups.ts +59 -0
  711. package/templates/scaffold/app/frontend/src/pages/audit/[id]/components/audit-entry-detail.tsx +102 -0
  712. package/templates/scaffold/app/frontend/src/pages/audit/[id]/page.tsx +65 -0
  713. package/templates/scaffold/app/frontend/src/pages/audit/components/audit-entries-table.tsx +90 -0
  714. package/templates/scaffold/app/frontend/src/pages/audit/page.tsx +52 -0
  715. package/templates/scaffold/app/frontend/src/pages/user-management/profile/edit/components/edit-profile-form.tsx +125 -0
  716. package/templates/scaffold/app/frontend/src/pages/user-management/profile/edit/page.tsx +19 -0
  717. package/templates/scaffold/app/frontend/src/pages/user-management/profile/page.tsx +41 -21
  718. package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/components/role-actions.tsx +26 -0
  719. package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/components/role-detail.tsx +69 -0
  720. package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/edit/components/edit-role-form.tsx +192 -0
  721. package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/edit/page.tsx +51 -0
  722. package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/page.tsx +56 -0
  723. package/templates/scaffold/app/frontend/src/pages/user-management/role/components/roles-table.tsx +85 -0
  724. package/templates/scaffold/app/frontend/src/pages/user-management/role/create/components/create-role-form.tsx +204 -0
  725. package/templates/scaffold/app/frontend/src/pages/user-management/role/create/page.tsx +19 -0
  726. package/templates/scaffold/app/frontend/src/pages/user-management/role/page.tsx +60 -0
  727. package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/components/user-actions.tsx +216 -0
  728. package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/components/user-detail.tsx +97 -33
  729. package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/edit/components/edit-user-form.tsx +115 -0
  730. package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/edit/page.tsx +51 -0
  731. package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/page.tsx +8 -2
  732. package/templates/scaffold/app/frontend/src/pages/user-management/user/components/users-table.tsx +43 -42
  733. package/templates/scaffold/app/frontend/src/pages/user-management/user/create/components/create-user-form.tsx +120 -45
  734. package/templates/scaffold/app/frontend/src/pages/user-management/user/page.tsx +3 -4
  735. package/templates/scaffold/app/frontend/src/providers/graphql-provider.tsx +8 -1
  736. package/templates/scaffold/module/eslint.config.js +32 -0
  737. package/templates/scaffold/module/module.ts +1 -0
  738. package/templates/scaffold/module/package.json +3 -1
  739. package/templates/scaffold/module/vitest.config.ts +11 -0
  740. package/templates/scaffold/project/__dot__gitignore +1 -0
  741. package/templates/scaffold/project/__pnpm-workspace.yaml +3 -0
  742. package/templates/scaffold/project/apps/.gitkeep +0 -0
  743. package/templates/scaffold/project/modules/.gitkeep +0 -0
  744. package/templates/scaffold/project/package.json +15 -0
  745. package/templates/workflows/erp-kit-check.yml +10 -4
  746. package/templates/scaffold/app/frontend/src/components/ui/badge.tsx +0 -39
  747. package/templates/scaffold/app/frontend/src/components/ui/button.tsx +0 -60
  748. package/templates/scaffold/app/frontend/src/components/ui/card.tsx +0 -75
  749. package/templates/scaffold/app/frontend/src/components/ui/input.tsx +0 -21
  750. package/templates/scaffold/app/frontend/src/components/ui/table.tsx +0 -90
  751. /package/src/modules/{supplier-portal → accounting/executor}/.gitkeep +0 -0
  752. /package/templates/scaffold/app/{docs/actors/.gitkeep → backend/seed/data/AuditEntry.jsonl} +0 -0
  753. /package/templates/scaffold/app/{docs/business-flow/.gitkeep → backend/seed/data/ChangeDetail.jsonl} +0 -0
  754. /package/templates/scaffold/app/{docs/resolver/.gitkeep → backend/seed/data/Company.jsonl} +0 -0
  755. /package/templates/scaffold/app/{docs/screen/.gitkeep → backend/seed/data/PolicyFieldRule.jsonl} +0 -0
  756. /package/templates/{config → scaffold/project}/license.config.json +0 -0
@@ -2,12 +2,11 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- updateProductAttribute modifies the display name of an existing product attribute. In extensible module configurations, consumer-defined custom fields may also be updated through this command. Attribute code is immutable through this command.
5
+ updateProductAttribute modifies the display name of an existing product attribute. The attribute can be looked up by `id` or `code`. In extensible module configurations, consumer-defined custom fields may also be updated through this command.
6
6
 
7
7
  ## Business Rules
8
8
 
9
- - Target attribute must exist
10
- - Attribute code is immutable — cannot be changed
9
+ - Target attribute must exist (looked up by `id` or `code`)
11
10
  - At least one updatable field must be provided
12
11
  - Name must remain non-empty when provided
13
12
  - Consumer-defined custom fields may be updated
@@ -16,14 +15,12 @@ updateProductAttribute modifies the display name of an existing product attribut
16
15
 
17
16
  ```mermaid
18
17
  flowchart TD
19
- A[Receive update request] --> B{Attribute exists?}
20
- B -->|No| C[Return error: ATTRIBUTE_NOT_FOUND]
21
- B -->|Yes| D{Code change attempted?}
22
- D -->|Yes| E[Return error: CODE_IMMUTABLE]
23
- D -->|No| F{Any updatable fields provided?}
24
- F -->|No| G[Return error: MISSING_REQUIRED_FIELD]
25
- F -->|Yes| H[Apply name and/or custom field updates]
26
- H --> I[Return updated attribute]
18
+ A[Receive update request] --> B{Lookup by id or code}
19
+ B -->|Not found| C[Return error: ATTRIBUTE_NOT_FOUND]
20
+ B -->|Found| D{Any updatable fields provided?}
21
+ D -->|No| E[Return error: MISSING_REQUIRED_FIELD]
22
+ D -->|Yes| F[Apply name and/or custom field updates]
23
+ F --> G[Return updated attribute]
27
24
  ```
28
25
 
29
26
  ## External Dependencies
@@ -32,15 +29,14 @@ flowchart TD
32
29
 
33
30
  ## Error Scenarios
34
31
 
35
- - **ATTRIBUTE_NOT_FOUND**: Specified attribute ID does not exist
36
- - **CODE_IMMUTABLE**: Attempt to change the attribute code
32
+ - **ATTRIBUTE_NOT_FOUND**: Specified attribute does not exist
37
33
  - **MISSING_REQUIRED_FIELD**: No updatable fields were provided, or name is empty when provided without any custom field updates
38
34
 
39
35
  ## Test Cases
40
36
 
41
37
  - returns error when attribute not found
42
- - returns error when trying to change code
43
38
  - returns error when no fields provided
44
39
  - returns error when name is empty string
45
40
  - passes custom fields through to update
46
41
  - updates name successfully
42
+ - looks up attribute by code and updates name
@@ -2,12 +2,11 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- updateProductCategory modifies the display name of an existing product category. In extensible module configurations, consumer-defined custom fields may also be updated through this command. Category code and parent reference are immutable through this command — use moveProductCategory to change the parent.
5
+ updateProductCategory modifies the display name of an existing product category. The category can be looked up by `id` or `code`. In extensible module configurations, consumer-defined custom fields may also be updated through this command. Use moveProductCategory to change the parent.
6
6
 
7
7
  ## Business Rules
8
8
 
9
- - Target category must exist
10
- - Category code is immutable — cannot be changed
9
+ - Target category must exist (looked up by `id` or `code`)
11
10
  - At least one updatable field must be provided
12
11
  - Name must remain non-empty when provided
13
12
  - Consumer-defined custom fields may be updated
@@ -17,14 +16,12 @@ updateProductCategory modifies the display name of an existing product category.
17
16
 
18
17
  ```mermaid
19
18
  flowchart TD
20
- A[Receive update request] --> B{Category exists?}
21
- B -->|No| C[Return error: CATEGORY_NOT_FOUND]
22
- B -->|Yes| D{Code change attempted?}
23
- D -->|Yes| E[Return error: CODE_IMMUTABLE]
24
- D -->|No| F{Any updatable fields provided?}
25
- F -->|No| G[Return error: MISSING_REQUIRED_FIELD]
26
- F -->|Yes| H[Apply name and/or custom field updates]
27
- H --> I[Return updated category]
19
+ A[Receive update request] --> B{Lookup by id or code}
20
+ B -->|Not found| C[Return error: CATEGORY_NOT_FOUND]
21
+ B -->|Found| D{Any updatable fields provided?}
22
+ D -->|No| E[Return error: MISSING_REQUIRED_FIELD]
23
+ D -->|Yes| F[Apply name and/or custom field updates]
24
+ F --> G[Return updated category]
28
25
  ```
29
26
 
30
27
  ## External Dependencies
@@ -33,14 +30,13 @@ flowchart TD
33
30
 
34
31
  ## Error Scenarios
35
32
 
36
- - **CATEGORY_NOT_FOUND**: Specified category ID does not exist
37
- - **CODE_IMMUTABLE**: Attempt to change the category code
33
+ - **CATEGORY_NOT_FOUND**: Specified category does not exist
38
34
  - **MISSING_REQUIRED_FIELD**: No updatable fields were provided, or name is empty when provided without any custom field updates
39
35
 
40
36
  ## Test Cases
41
37
 
42
38
  - should return CategoryNotFoundError when category does not exist
43
- - should return CodeImmutableError when code is provided
44
39
  - should return MissingRequiredFieldError when no fields are provided
45
40
  - should pass custom fields through to update
46
41
  - should update category name successfully
42
+ - should look up category by code and update name
@@ -110,6 +110,7 @@ export interface DefineModuleParams<
110
110
  };
111
111
  }
112
112
 
113
+ /* @__NO_SIDE_EFFECTS__ */
113
114
  export const defineModule = <
114
115
  const PF extends Record<string, TailorAnyDBField> = EmptyFields,
115
116
  const PAF extends Record<string, TailorAnyDBField> = EmptyFields,
@@ -13,9 +13,9 @@ describe("activatePurchasePaymentTerm", () => {
13
13
  spies.update.mockReturnValueOnce({ ...inactivePaymentTerm, status: "ACTIVE" });
14
14
 
15
15
  const result = await run(db, { id: inactivePaymentTerm.id }, commandCtx);
16
- const value = expectOk<{ paymentTerm: typeof inactivePaymentTerm }>(result);
16
+ const value = expectOk<{ purchasePaymentTerm: typeof inactivePaymentTerm }>(result);
17
17
 
18
- expect(value.paymentTerm.status).toBe("ACTIVE");
18
+ expect(value.purchasePaymentTerm.status).toBe("ACTIVE");
19
19
  expect(spies.set).toHaveBeenCalledWith(expect.objectContaining({ status: "ACTIVE" }));
20
20
  });
21
21
 
@@ -24,9 +24,9 @@ describe("activatePurchasePaymentTerm", () => {
24
24
  spies.select.mockReturnValueOnce(basePaymentTerm);
25
25
 
26
26
  const result = await run(db, { id: basePaymentTerm.id }, commandCtx);
27
- const value = expectOk<{ paymentTerm: typeof basePaymentTerm }>(result);
27
+ const value = expectOk<{ purchasePaymentTerm: typeof basePaymentTerm }>(result);
28
28
 
29
- expect(value.paymentTerm).toEqual(basePaymentTerm);
29
+ expect(value.purchasePaymentTerm).toEqual(basePaymentTerm);
30
30
  expect(spies.update).not.toHaveBeenCalled();
31
31
  });
32
32
 
@@ -18,7 +18,7 @@ export async function run(
18
18
  return err(new PaymentTermNotFoundError(input.id));
19
19
  }
20
20
  if (paymentTerm.status === "ACTIVE") {
21
- return ok({ paymentTerm });
21
+ return ok({ purchasePaymentTerm: paymentTerm });
22
22
  }
23
23
 
24
24
  const validation = validateScheduleLines(
@@ -35,5 +35,5 @@ export async function run(
35
35
  .returningAll()
36
36
  .executeTakeFirstOrThrow();
37
37
 
38
- return ok({ paymentTerm: activated });
38
+ return ok({ purchasePaymentTerm: activated });
39
39
  }
@@ -13,9 +13,9 @@ describe("deactivatePurchasePaymentTerm", () => {
13
13
  spies.update.mockReturnValueOnce({ ...basePaymentTerm, status: "INACTIVE" });
14
14
 
15
15
  const result = await run(db, { id: basePaymentTerm.id }, commandCtx);
16
- const value = expectOk<{ paymentTerm: typeof basePaymentTerm }>(result);
16
+ const value = expectOk<{ purchasePaymentTerm: typeof basePaymentTerm }>(result);
17
17
 
18
- expect(value.paymentTerm.status).toBe("INACTIVE");
18
+ expect(value.purchasePaymentTerm.status).toBe("INACTIVE");
19
19
  });
20
20
 
21
21
  it("returns success when the payment term is already inactive", async () => {
@@ -23,9 +23,9 @@ describe("deactivatePurchasePaymentTerm", () => {
23
23
  spies.select.mockReturnValueOnce(inactivePaymentTerm);
24
24
 
25
25
  const result = await run(db, { id: inactivePaymentTerm.id }, commandCtx);
26
- const value = expectOk<{ paymentTerm: typeof inactivePaymentTerm }>(result);
26
+ const value = expectOk<{ purchasePaymentTerm: typeof inactivePaymentTerm }>(result);
27
27
 
28
- expect(value.paymentTerm).toEqual(inactivePaymentTerm);
28
+ expect(value.purchasePaymentTerm).toEqual(inactivePaymentTerm);
29
29
  expect(spies.update).not.toHaveBeenCalled();
30
30
  });
31
31
 
@@ -18,7 +18,7 @@ export async function run(
18
18
  return err(new PaymentTermNotFoundError(input.id));
19
19
  }
20
20
  if (paymentTerm.status === "INACTIVE") {
21
- return ok({ paymentTerm });
21
+ return ok({ purchasePaymentTerm: paymentTerm });
22
22
  }
23
23
 
24
24
  const supplierProfile = await db
@@ -37,5 +37,5 @@ export async function run(
37
37
  .returningAll()
38
38
  .executeTakeFirstOrThrow();
39
39
 
40
- return ok({ paymentTerm: deactivated });
40
+ return ok({ purchasePaymentTerm: deactivated });
41
41
  }
@@ -17,12 +17,11 @@ import {
17
17
  } from "../lib/domain";
18
18
  import { err, ok, type CommandContext } from "@tailor-platform/erp-kit/module";
19
19
 
20
- export interface UpdateGoodsReceiptInput {
20
+ export type UpdateGoodsReceiptInput = {
21
21
  id: string;
22
22
  receiptDate?: Date;
23
23
  lines?: GoodsReceiptLineInput[];
24
- }
25
-
24
+ };
26
25
  export async function run(db: Transaction, input: UpdateGoodsReceiptInput, ctx: CommandContext) {
27
26
  void ctx;
28
27
  const goodsReceipt = await selectOne(db, "GoodsReceipt", "id", input.id, true);
@@ -17,13 +17,12 @@ import {
17
17
  } from "../lib/domain";
18
18
  import { err, ok, type CommandContext } from "@tailor-platform/erp-kit/module";
19
19
 
20
- export interface UpdatePurchaseBillInput {
20
+ export type UpdatePurchaseBillInput = {
21
21
  id: string;
22
22
  invoiceNumber?: string;
23
23
  invoiceDate?: Date;
24
24
  lines?: PurchaseBillLineInput[];
25
- }
26
-
25
+ };
27
26
  export async function run(db: Transaction, input: UpdatePurchaseBillInput, ctx: CommandContext) {
28
27
  void ctx;
29
28
  const purchaseBill = await db
@@ -22,15 +22,14 @@ import {
22
22
  } from "../lib/domain";
23
23
  import { err, ok, type CommandContext } from "@tailor-platform/erp-kit/module";
24
24
 
25
- export interface UpdatePurchaseOrderInput {
25
+ export type UpdatePurchaseOrderInput = {
26
26
  id: string;
27
27
  orderDate?: Date;
28
28
  documentReceivingSiteId?: string | null;
29
29
  paymentTermId?: string | null;
30
30
  externalSupplierOrderReference?: string | null;
31
31
  lines?: PurchaseOrderLineInput[];
32
- }
33
-
32
+ };
34
33
  export async function run(db: Transaction, input: UpdatePurchaseOrderInput, ctx: CommandContext) {
35
34
  void ctx;
36
35
  const existing = await selectOne(db, "PurchaseOrder", "id", input.id, true);
@@ -30,7 +30,7 @@ describe("updatePurchasePaymentTerm", () => {
30
30
  commandCtx,
31
31
  );
32
32
 
33
- expect(expectOk(result).paymentTerm.name).toBe("Net 45");
33
+ expect(expectOk(result).purchasePaymentTerm.name).toBe("Net 45");
34
34
  });
35
35
 
36
36
  it("updates an inactive payment term without reactivating it", async () => {
@@ -45,7 +45,7 @@ describe("updatePurchasePaymentTerm", () => {
45
45
  commandCtx,
46
46
  );
47
47
 
48
- expect(expectOk(result).paymentTerm.status).toBe("INACTIVE");
48
+ expect(expectOk(result).purchasePaymentTerm.status).toBe("INACTIVE");
49
49
  });
50
50
 
51
51
  it("preserves historical purchase-order snapshots after update", async () => {
@@ -17,15 +17,14 @@ import {
17
17
  } from "../lib/domain";
18
18
  import { err, ok, type CommandContext } from "@tailor-platform/erp-kit/module";
19
19
 
20
- export interface UpdatePurchasePaymentTermInput {
20
+ export type UpdatePurchasePaymentTermInput = {
21
21
  id: string;
22
22
  companyId?: string;
23
23
  name?: string;
24
24
  code?: string;
25
25
  scheduleLines?: PaymentTermScheduleLineInput[];
26
26
  notes?: string | null;
27
- }
28
-
27
+ };
29
28
  export async function run(
30
29
  db: Transaction,
31
30
  input: UpdatePurchasePaymentTermInput,
@@ -69,5 +68,5 @@ export async function run(
69
68
  .returningAll()
70
69
  .executeTakeFirstOrThrow();
71
70
 
72
- return ok({ paymentTerm });
71
+ return ok({ purchasePaymentTerm: paymentTerm });
73
72
  }
@@ -8,7 +8,7 @@ import {
8
8
  import { selectOne } from "../lib/domain";
9
9
  import { err, ok, type CommandContext } from "@tailor-platform/erp-kit/module";
10
10
 
11
- export interface UpdatePurchasePriceListInput {
11
+ export type UpdatePurchasePriceListInput = {
12
12
  id: string;
13
13
  companyId?: string;
14
14
  supplierId?: string;
@@ -16,8 +16,7 @@ export interface UpdatePurchasePriceListInput {
16
16
  code?: string;
17
17
  priority?: number;
18
18
  notes?: string | null;
19
- }
20
-
19
+ };
21
20
  export async function run(
22
21
  db: Transaction,
23
22
  input: UpdatePurchasePriceListInput,
@@ -14,7 +14,7 @@ import {
14
14
  import { findRuleConflict, isActiveStatus, selectOne } from "../lib/domain";
15
15
  import { err, ok, type CommandContext } from "@tailor-platform/erp-kit/module";
16
16
 
17
- export interface UpdatePurchasePriceRuleInput {
17
+ export type UpdatePurchasePriceRuleInput = {
18
18
  id: string;
19
19
  itemId?: string;
20
20
  currencyId?: string;
@@ -25,8 +25,7 @@ export interface UpdatePurchasePriceRuleInput {
25
25
  effectiveTo?: Date | null;
26
26
  priority?: number;
27
27
  notes?: string | null;
28
- }
29
-
28
+ };
30
29
  export async function run(
31
30
  db: Transaction,
32
31
  input: UpdatePurchasePriceRuleInput,
@@ -111,6 +111,7 @@ export interface DefineModuleParams<
111
111
  };
112
112
  }
113
113
 
114
+ /* @__NO_SIDE_EFFECTS__ */
114
115
  export const defineModule = <
115
116
  const SPF extends Record<string, TailorAnyDBField> = Record<never, never>,
116
117
  const PTF extends Record<string, TailorAnyDBField> = Record<never, never>,
@@ -136,5 +136,5 @@ export async function run(db: Transaction, input: CreateSalesOrderInput, ctx: Co
136
136
  insertedLines.push(inserted);
137
137
  }
138
138
 
139
- return ok({ salesOrder: salesOrder!, lines: insertedLines });
139
+ return ok({ salesOrder: salesOrder!, salesOrderLines: insertedLines });
140
140
  }
@@ -31,7 +31,7 @@ describe("updateChannel", () => {
31
31
  expectOk(result);
32
32
  });
33
33
 
34
- it("throws when Channel does not exist", async () => {
34
+ it("returns error when Channel does not exist", async () => {
35
35
  const { db, spies } = createMockDb<Transaction>();
36
36
  spies.select.mockReturnValueOnce(undefined);
37
37
 
@@ -40,7 +40,7 @@ describe("updateChannel", () => {
40
40
  expectErr(result, ChannelNotFoundError);
41
41
  });
42
42
 
43
- it("throws when Channel is not editable", async () => {
43
+ it("returns error when Channel is not editable", async () => {
44
44
  const { db, spies } = createMockDb<Transaction>();
45
45
  spies.select.mockReturnValueOnce({ ...baseChannel, status: "ARCHIVED" });
46
46
 
@@ -49,7 +49,7 @@ describe("updateChannel", () => {
49
49
  expectErr(result, ChannelNotEditableError);
50
50
  });
51
51
 
52
- it("throws when the resulting channel type is empty", async () => {
52
+ it("returns error when the resulting channel type is empty", async () => {
53
53
  const { db, spies } = createMockDb<Transaction>();
54
54
  spies.select.mockReturnValueOnce(baseChannel);
55
55
 
@@ -58,7 +58,7 @@ describe("updateChannel", () => {
58
58
  expectErr(result, InvalidChannelTypeError);
59
59
  });
60
60
 
61
- it("throws when the updated channel name conflicts within the company", async () => {
61
+ it("returns error when the updated channel name conflicts within the company", async () => {
62
62
  const { db, spies } = createMockDb<Transaction>();
63
63
  spies.select
64
64
  .mockReturnValueOnce(baseChannel)
@@ -8,14 +8,13 @@ import {
8
8
  import { encodeJson } from "../lib/domain";
9
9
  import { err, ok, type CommandContext } from "@tailor-platform/erp-kit/module";
10
10
 
11
- export interface UpdateChannelInput {
11
+ export type UpdateChannelInput = {
12
12
  channelId: string;
13
13
  type?: string;
14
14
  name?: string;
15
15
  code?: string | null;
16
16
  settings?: Record<string, unknown> | null;
17
- }
18
-
17
+ };
19
18
  export async function run(db: Transaction, input: UpdateChannelInput, ctx: CommandContext) {
20
19
  void ctx;
21
20
  const channel = await db
@@ -23,7 +23,7 @@ describe("updateListing", () => {
23
23
  expect(spies.set).toHaveBeenCalledWith(expect.objectContaining({ title: "Updated Title" }));
24
24
  });
25
25
 
26
- it("throws when listing is retired", async () => {
26
+ it("returns error when listing is retired", async () => {
27
27
  const { db, spies } = createMockDb<Transaction>();
28
28
  spies.select.mockReturnValueOnce(retiredListing);
29
29
 
@@ -36,7 +36,7 @@ describe("updateListing", () => {
36
36
  expectErr(result, ListingNotEditableError);
37
37
  });
38
38
 
39
- it("throws when updated external identifier conflicts with another listing", async () => {
39
+ it("returns error when updated external identifier conflicts with another listing", async () => {
40
40
  const { db, spies } = createMockDb<Transaction>();
41
41
  spies.select
42
42
  .mockReturnValueOnce(baseListing)
@@ -6,15 +6,14 @@ import {
6
6
  } from "../lib/errors.generated";
7
7
  import { err, ok, type CommandContext } from "@tailor-platform/erp-kit/module";
8
8
 
9
- export interface UpdateListingInput {
9
+ export type UpdateListingInput = {
10
10
  listingId: string;
11
11
  sku?: string | null;
12
12
  externalIdentifier?: string | null;
13
13
  title?: string | null;
14
14
  requiresPriceSync?: boolean;
15
15
  salesPriceListId?: string | null;
16
- }
17
-
16
+ };
18
17
  export async function run(db: Transaction, input: UpdateListingInput, ctx: CommandContext) {
19
18
  void ctx;
20
19
  const listing = await db
@@ -37,7 +37,7 @@ describe("updateSalesCreditNote", () => {
37
37
  expect(spies.set).toHaveBeenCalledWith(expect.objectContaining({ reason: "Updated" }));
38
38
  });
39
39
 
40
- it("throws when updating an issued credit note", async () => {
40
+ it("returns error when updating an issued credit note", async () => {
41
41
  const { db, spies } = createMockDb<Transaction>();
42
42
  spies.select.mockReturnValueOnce(issuedCreditNote);
43
43
 
@@ -50,7 +50,7 @@ describe("updateSalesCreditNote", () => {
50
50
  expectErr(result, CreditNoteNotEditableError);
51
51
  });
52
52
 
53
- it("throws when correction content is invalid", async () => {
53
+ it("returns error when correction content is invalid", async () => {
54
54
  const { db, spies } = createMockDb<Transaction>();
55
55
  spies.select.mockReturnValueOnce(baseCreditNote);
56
56
 
@@ -7,12 +7,11 @@ import {
7
7
  import { type SalesCreditNoteLineInput } from "../lib/domain";
8
8
  import { err, ok, type CommandContext } from "@tailor-platform/erp-kit/module";
9
9
 
10
- export interface UpdateSalesCreditNoteInput {
10
+ export type UpdateSalesCreditNoteInput = {
11
11
  salesCreditNoteId: string;
12
12
  reason?: string | null;
13
13
  lines?: SalesCreditNoteLineInput[];
14
- }
15
-
14
+ };
16
15
  export async function run(db: Transaction, input: UpdateSalesCreditNoteInput, ctx: CommandContext) {
17
16
  void ctx;
18
17
  const salesCreditNote = await db
@@ -42,7 +42,7 @@ describe("updateSalesInvoice", () => {
42
42
  expect(spies.set).toHaveBeenCalledWith(expect.objectContaining({ notes: "Updated" }));
43
43
  });
44
44
 
45
- it("throws when updating an issued invoice", async () => {
45
+ it("returns error when updating an issued invoice", async () => {
46
46
  const { db, spies } = createMockDb<Transaction>();
47
47
  spies.select.mockReturnValueOnce(issuedSalesInvoice);
48
48
 
@@ -55,7 +55,7 @@ describe("updateSalesInvoice", () => {
55
55
  expectErr(result, InvoiceNotEditableError);
56
56
  });
57
57
 
58
- it("throws when updated line content is invalid", async () => {
58
+ it("returns error when updated line content is invalid", async () => {
59
59
  const { db, spies } = createMockDb<Transaction>();
60
60
  spies.select.mockReturnValueOnce(baseSalesInvoice);
61
61
 
@@ -7,13 +7,12 @@ import {
7
7
  import { encodeJson, type SalesInvoiceLineInput } from "../lib/domain";
8
8
  import { err, ok, type CommandContext } from "@tailor-platform/erp-kit/module";
9
9
 
10
- export interface UpdateSalesInvoiceInput {
10
+ export type UpdateSalesInvoiceInput = {
11
11
  salesInvoiceId: string;
12
12
  invoiceDate?: Date;
13
13
  notes?: string | null;
14
14
  lines?: SalesInvoiceLineInput[];
15
- }
16
-
15
+ };
17
16
  export async function run(db: Transaction, input: UpdateSalesInvoiceInput, ctx: CommandContext) {
18
17
  void ctx;
19
18
  const salesInvoice = await db
@@ -64,7 +64,7 @@ describe("updateSalesOrder", () => {
64
64
  );
65
65
  });
66
66
 
67
- it("throws when the order does not exist", async () => {
67
+ it("returns error when the order does not exist", async () => {
68
68
  const { db, spies } = createMockDb<Transaction>();
69
69
  spies.select.mockReturnValueOnce(undefined);
70
70
 
@@ -73,7 +73,7 @@ describe("updateSalesOrder", () => {
73
73
  expectErr(result, SalesOrderNotFoundError);
74
74
  });
75
75
 
76
- it("throws when updating a non-draft order", async () => {
76
+ it("returns error when updating a non-draft order", async () => {
77
77
  const { db, spies } = createMockDb<Transaction>();
78
78
  spies.select.mockReturnValueOnce({ ...baseSalesOrder, status: "SUBMITTED" });
79
79
 
@@ -82,7 +82,7 @@ describe("updateSalesOrder", () => {
82
82
  expectErr(result, OrderNotEditableError);
83
83
  });
84
84
 
85
- it("throws when the update would remove all lines", async () => {
85
+ it("returns error when the update would remove all lines", async () => {
86
86
  const { db, spies } = createMockDb<Transaction>();
87
87
  spies.select.mockReturnValueOnce(baseSalesOrder);
88
88
 
@@ -11,7 +11,7 @@ import {
11
11
  import { encodeJson, type SalesOrderLineInput } from "../lib/domain";
12
12
  import { err, ok, type CommandContext } from "@tailor-platform/erp-kit/module";
13
13
 
14
- export interface UpdateSalesOrderInput {
14
+ export type UpdateSalesOrderInput = {
15
15
  salesOrderId: string;
16
16
  customerId?: string;
17
17
  paymentTermId?: string | null;
@@ -20,8 +20,7 @@ export interface UpdateSalesOrderInput {
20
20
  shippingAddressSnapshot?: Record<string, unknown> | null;
21
21
  billingAddressSnapshot?: Record<string, unknown> | null;
22
22
  lines?: SalesOrderLineInput[];
23
- }
24
-
23
+ };
25
24
  export async function run(db: Transaction, input: UpdateSalesOrderInput, ctx: CommandContext) {
26
25
  void ctx;
27
26
  const salesOrder = await db
@@ -38,7 +38,7 @@ describe("updateSalesPaymentTerm", () => {
38
38
  expect(spies.set).toHaveBeenCalledWith(expect.objectContaining({ name: "Installments" }));
39
39
  });
40
40
 
41
- it("throws when SalesPaymentTerm does not exist", async () => {
41
+ it("returns error when SalesPaymentTerm does not exist", async () => {
42
42
  const { db, spies } = createMockDb<Transaction>();
43
43
  spies.select.mockReturnValueOnce(undefined);
44
44
 
@@ -51,7 +51,7 @@ describe("updateSalesPaymentTerm", () => {
51
51
  expectErr(result, SalespaymenttermNotFoundError);
52
52
  });
53
53
 
54
- it("throws when SalesPaymentTerm is not editable", async () => {
54
+ it("returns error when SalesPaymentTerm is not editable", async () => {
55
55
  const { db, spies } = createMockDb<Transaction>();
56
56
  spies.select.mockReturnValueOnce(inactivePaymentTerm);
57
57
 
@@ -11,14 +11,13 @@ import {
11
11
  } from "../lib/domain";
12
12
  import { err, ok, type CommandContext } from "@tailor-platform/erp-kit/module";
13
13
 
14
- export interface UpdateSalesPaymentTermInput {
14
+ export type UpdateSalesPaymentTermInput = {
15
15
  salesPaymentTermId: string;
16
16
  name?: string;
17
17
  code?: string | null;
18
18
  scheduleLines?: PaymentTermScheduleLineInput[];
19
19
  notes?: string | null;
20
- }
21
-
20
+ };
22
21
  export async function run(
23
22
  db: Transaction,
24
23
  input: UpdateSalesPaymentTermInput,
@@ -30,7 +30,7 @@ describe("updateSalesPriceList", () => {
30
30
  expectOk(result);
31
31
  });
32
32
 
33
- it("throws when SalesPriceList does not exist", async () => {
33
+ it("returns error when SalesPriceList does not exist", async () => {
34
34
  const { db, spies } = createMockDb<Transaction>();
35
35
  spies.select.mockReturnValueOnce(undefined);
36
36
 
@@ -43,7 +43,7 @@ describe("updateSalesPriceList", () => {
43
43
  expectErr(result, SalespricelistNotFoundError);
44
44
  });
45
45
 
46
- it("throws when SalesPriceList is not editable", async () => {
46
+ it("returns error when SalesPriceList is not editable", async () => {
47
47
  const { db, spies } = createMockDb<Transaction>();
48
48
  spies.select.mockReturnValueOnce({ ...basePriceList, status: "INACTIVE" });
49
49
 
@@ -56,7 +56,7 @@ describe("updateSalesPriceList", () => {
56
56
  expectErr(result, SalespricelistNotEditableError);
57
57
  });
58
58
 
59
- it("throws when the company backing the price list does not exist", async () => {
59
+ it("returns error when the company backing the price list does not exist", async () => {
60
60
  const { db, spies } = createMockDb<Transaction>();
61
61
  spies.select.mockReturnValueOnce(draftPriceList).mockReturnValueOnce(undefined);
62
62
 
@@ -6,14 +6,13 @@ import {
6
6
  } from "../lib/errors.generated";
7
7
  import { err, ok, type CommandContext } from "@tailor-platform/erp-kit/module";
8
8
 
9
- export interface UpdateSalesPriceListInput {
9
+ export type UpdateSalesPriceListInput = {
10
10
  salesPriceListId: string;
11
11
  name?: string;
12
12
  code?: string | null;
13
13
  priority?: number;
14
14
  notes?: string | null;
15
- }
16
-
15
+ };
17
16
  export async function run(db: Transaction, input: UpdateSalesPriceListInput, ctx: CommandContext) {
18
17
  void ctx;
19
18
  const salesPriceList = await db