@floristcloud/api-lib 1.2.180 → 1.2.182

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 (281) hide show
  1. package/build/commands/consignment/execute-consignment-product-update.command.js +4 -54
  2. package/build/commands/consignment/import-consignment.command.js +4 -33
  3. package/build/commands/consignment/import-packing-consignment.command.js +4 -20
  4. package/build/commands/index.js +1 -0
  5. package/build/commands/integration/moysklad/execute-moysklad-import.command.js +4 -40
  6. package/build/commands/integration/moysklad/scan-moysklad-clients-import.query.js +2 -1
  7. package/build/commands/integration/moysklad/scan-moysklad-import.query.js +2 -59
  8. package/build/commands/integration/one-c/index.js +1 -0
  9. package/build/commands/integration/one-c/update-one-c-settings.command.js +10 -0
  10. package/build/commands/measure-unit/archive-measure-unit.command.js +8 -0
  11. package/build/commands/measure-unit/create-measure-unit.command.js +10 -0
  12. package/build/commands/measure-unit/get-measure-unit-by-uuid.query.js +8 -0
  13. package/build/commands/measure-unit/get-measure-unit-list.query.js +10 -0
  14. package/build/commands/measure-unit/index.js +24 -0
  15. package/build/commands/measure-unit/reorder-measure-units.command.js +10 -0
  16. package/build/commands/measure-unit/set-default-measure-unit.command.js +8 -0
  17. package/build/commands/measure-unit/unarchive-measure-unit.command.js +8 -0
  18. package/build/commands/measure-unit/update-measure-unit.command.js +10 -0
  19. package/build/commands/order/group/order-vat-transition-analyze.command.js +10 -0
  20. package/build/commands/order/group/order-vat-transition-execute.command.js +10 -0
  21. package/build/commands/order/index.js +2 -0
  22. package/build/commands/pre-order/import-standing-order.command.js +2 -18
  23. package/build/commands/pre-order-collection-item/import-pre-order-collection-item.command.js +4 -32
  24. package/build/commands/pre-order-collection-item/update-group-pre-order-collection-item.command.js +4 -14
  25. package/build/commands/product/create-product.command.js +4 -39
  26. package/build/commands/product/group/update-group-product-update-batch.command.js +4 -41
  27. package/build/commands/product/update-product.command.js +4 -39
  28. package/build/commands/report/get-daily-orders-summary.query.js +4 -62
  29. package/build/constant/error.js +40 -3
  30. package/build/constant/index.js +1 -0
  31. package/build/constant/measure-unit-limits.js +4 -0
  32. package/build/enum/external-entity-type.enum.js +1 -0
  33. package/build/enum/index.js +2 -0
  34. package/build/enum/measure-unit-match-source.enum.js +10 -0
  35. package/build/enum/moysklad-import-item-status.enum.js +10 -0
  36. package/build/enum/order-updated-field.enum.js +2 -0
  37. package/build/schemas/consignment/consignment-product-multiplicity-option-update.schema.js +13 -0
  38. package/build/schemas/consignment/consignment-product-position-update.schema.js +38 -0
  39. package/build/schemas/consignment/execute-consignment-product-update-request.schema.js +8 -0
  40. package/build/schemas/consignment/execute-consignment-product-update-response-data-errors.schema.js +8 -0
  41. package/build/schemas/consignment/execute-consignment-product-update-response-data.schema.js +13 -0
  42. package/build/schemas/consignment/execute-consignment-product-update-response.schema.js +8 -0
  43. package/build/schemas/consignment/import-consignment-request-constant-data.schema.js +10 -0
  44. package/build/schemas/consignment/import-consignment-request.schema.js +17 -0
  45. package/build/schemas/consignment/import-consignment-response-data-warnings.schema.js +10 -0
  46. package/build/schemas/consignment/import-consignment-response-data.schema.js +12 -0
  47. package/build/schemas/consignment/import-consignment-response.schema.js +9 -0
  48. package/build/schemas/consignment/import-packing-consignment-request.schema.js +9 -0
  49. package/build/schemas/consignment/import-packing-consignment-response-data-warnings.schema.js +11 -0
  50. package/build/schemas/consignment/import-packing-consignment-response-data.schema.js +12 -0
  51. package/build/schemas/consignment/import-packing-consignment-response.schema.js +9 -0
  52. package/build/schemas/consignment/index.js +31 -0
  53. package/build/schemas/index.js +8 -0
  54. package/build/schemas/integration/moysklad/execute-moysklad-import-request.schema.js +17 -0
  55. package/build/schemas/integration/moysklad/execute-moysklad-import-response-data.schema.js +13 -0
  56. package/build/schemas/integration/moysklad/execute-moysklad-import-response.schema.js +9 -0
  57. package/build/schemas/integration/moysklad/index.js +16 -0
  58. package/build/schemas/integration/moysklad/moysklad-category-match.schema.js +9 -0
  59. package/build/schemas/integration/moysklad/moysklad-executable-item.schema.js +30 -0
  60. package/build/schemas/integration/moysklad/moysklad-measure-unit-alias-added.schema.js +8 -0
  61. package/build/schemas/integration/moysklad/moysklad-measure-unit-create-mapping.schema.js +9 -0
  62. package/build/schemas/integration/moysklad/moysklad-measure-unit-dictionary-item.schema.js +9 -0
  63. package/build/schemas/integration/moysklad/moysklad-measure-unit-link-mapping.schema.js +9 -0
  64. package/build/schemas/integration/moysklad/moysklad-measure-unit-mapping.schema.js +10 -0
  65. package/build/schemas/integration/moysklad/moysklad-scanned-item.schema.js +34 -0
  66. package/build/schemas/integration/moysklad/moysklad-scanned-measure-unit.schema.js +13 -0
  67. package/build/schemas/integration/moysklad/scan-moysklad-import-response-data-categories.schema.js +8 -0
  68. package/build/schemas/integration/moysklad/scan-moysklad-import-response-data-summary.schema.js +13 -0
  69. package/build/schemas/integration/moysklad/scan-moysklad-import-response-data.schema.js +24 -0
  70. package/build/schemas/integration/moysklad/scan-moysklad-import-response.schema.js +9 -0
  71. package/build/schemas/integration/one-c/index.js +2 -0
  72. package/build/schemas/integration/one-c/one-c-status.schema.js +1 -0
  73. package/build/schemas/integration/one-c/update-one-c-settings-request.schema.js +5 -0
  74. package/build/schemas/integration/one-c/update-one-c-settings-response.schema.js +6 -0
  75. package/build/schemas/measure-unit/create-measure-unit-request.schema.js +19 -0
  76. package/build/schemas/measure-unit/get-measure-unit-list-request.schema.js +7 -0
  77. package/build/schemas/measure-unit/index.js +25 -0
  78. package/build/schemas/measure-unit/measure-unit-list-response.schema.js +6 -0
  79. package/build/schemas/measure-unit/measure-unit-response.schema.js +6 -0
  80. package/build/schemas/measure-unit/measure-unit-short.schema.js +10 -0
  81. package/build/schemas/measure-unit/measure-unit-text.schema.js +7 -0
  82. package/build/schemas/measure-unit/measure-unit.schema.js +16 -0
  83. package/build/schemas/measure-unit/reorder-measure-units-request.schema.js +12 -0
  84. package/build/schemas/measure-unit/update-measure-unit-request.schema.js +5 -0
  85. package/build/schemas/order/index.js +9 -0
  86. package/build/schemas/order/order-vat-transition-analyze-item.schema.js +25 -0
  87. package/build/schemas/order/order-vat-transition-analyze-response.schema.js +9 -0
  88. package/build/schemas/order/order-vat-transition-analyze-result.schema.js +13 -0
  89. package/build/schemas/order/order-vat-transition-analyze-summary.schema.js +15 -0
  90. package/build/schemas/order/order-vat-transition-execute-failure.schema.js +10 -0
  91. package/build/schemas/order/order-vat-transition-execute-request.schema.js +12 -0
  92. package/build/schemas/order/order-vat-transition-execute-response.schema.js +9 -0
  93. package/build/schemas/order/order-vat-transition-execute-result.schema.js +16 -0
  94. package/build/schemas/order/order-vat-transition-request.schema.js +14 -0
  95. package/build/schemas/pre-order/import-standing-order-response-data.schema.js +12 -0
  96. package/build/schemas/pre-order/import-standing-order-response.schema.js +9 -0
  97. package/build/schemas/pre-order/index.js +3 -0
  98. package/build/schemas/pre-order/standing-order-import-row-error.schema.js +12 -0
  99. package/build/schemas/pre-order-collection-item/create-pre-order-collection-item.schema.js +2 -1
  100. package/build/schemas/pre-order-collection-item/import-pre-order-collection-item-request.schema.js +5 -0
  101. package/build/schemas/pre-order-collection-item/import-pre-order-collection-item-response-data.schema.js +16 -0
  102. package/build/schemas/pre-order-collection-item/import-pre-order-collection-item-response.schema.js +9 -0
  103. package/build/schemas/pre-order-collection-item/index.js +11 -0
  104. package/build/schemas/pre-order-collection-item/pre-order-collection-item-base.schema.js +3 -0
  105. package/build/schemas/pre-order-collection-item/pre-order-collection-item-for-client.schema.js +3 -0
  106. package/build/schemas/pre-order-collection-item/pre-order-collection-item-import-created-row.schema.js +8 -0
  107. package/build/schemas/pre-order-collection-item/pre-order-collection-item-import-global-error.schema.js +8 -0
  108. package/build/schemas/pre-order-collection-item/pre-order-collection-item-import-issue-params.schema.js +5 -0
  109. package/build/schemas/pre-order-collection-item/pre-order-collection-item-import-issue.schema.js +12 -0
  110. package/build/schemas/pre-order-collection-item/pre-order-collection-item-import-row-error.schema.js +9 -0
  111. package/build/schemas/pre-order-collection-item/pre-order-collection-item-position-update.schema.js +2 -0
  112. package/build/schemas/pre-order-collection-item/pre-order-collection-item-update-batch-response-data.schema.js +2 -0
  113. package/build/schemas/pre-order-collection-item/update-group-pre-order-collection-item-request.schema.js +9 -0
  114. package/build/schemas/pre-order-collection-item/update-group-pre-order-collection-item-response-data.schema.js +7 -0
  115. package/build/schemas/pre-order-collection-item/update-group-pre-order-collection-item-response.schema.js +9 -0
  116. package/build/schemas/pre-order-collection-item/update-pre-order-collection-item.schema.js +2 -1
  117. package/build/schemas/product/create-product-request.schema.js +36 -0
  118. package/build/schemas/product/create-product-response.schema.js +9 -0
  119. package/build/schemas/product/group/index.js +21 -0
  120. package/build/schemas/product/group/update-group-product-update-batch-request-data.schema.js +24 -0
  121. package/build/schemas/product/group/update-group-product-update-batch-request.schema.js +9 -0
  122. package/build/schemas/product/group/update-group-product-update-batch-response-data-errors.schema.js +8 -0
  123. package/build/schemas/product/group/update-group-product-update-batch-response-data.schema.js +11 -0
  124. package/build/schemas/product/group/update-group-product-update-batch-response.schema.js +9 -0
  125. package/build/schemas/product/index.js +4 -0
  126. package/build/schemas/product/product-base.schema.js +3 -0
  127. package/build/schemas/product/product-for-client.schema.js +3 -0
  128. package/build/schemas/product/update-product-request.schema.js +36 -0
  129. package/build/schemas/product/update-product-response.schema.js +9 -0
  130. package/build/schemas/report/daily-orders-summary-by-day-item.schema.js +6 -0
  131. package/build/schemas/report/daily-orders-summary-by-responsible-item.schema.js +6 -0
  132. package/build/schemas/report/daily-orders-summary-legacy-units.schema.js +9 -0
  133. package/build/schemas/report/daily-orders-summary-metrics.schema.js +17 -0
  134. package/build/schemas/report/daily-orders-summary-totals.schema.js +6 -0
  135. package/build/schemas/report/get-daily-orders-summary-request.schema.js +39 -0
  136. package/build/schemas/report/get-daily-orders-summary-response-data.schema.js +12 -0
  137. package/build/schemas/report/get-daily-orders-summary-response.schema.js +8 -0
  138. package/build/schemas/report/index.js +24 -0
  139. package/build/schemas/report/measure-unit-quantity.schema.js +10 -0
  140. package/build/schemas/report/sales-by-client-row.schema.js +2 -0
  141. package/commands/consignment/execute-consignment-product-update.command.ts +5 -60
  142. package/commands/consignment/import-consignment.command.ts +3 -35
  143. package/commands/consignment/import-packing-consignment.command.ts +3 -22
  144. package/commands/index.ts +1 -0
  145. package/commands/integration/moysklad/execute-moysklad-import.command.ts +3 -42
  146. package/commands/integration/moysklad/scan-moysklad-clients-import.query.ts +2 -1
  147. package/commands/integration/moysklad/scan-moysklad-import.query.ts +2 -62
  148. package/commands/integration/one-c/index.ts +2 -0
  149. package/commands/integration/one-c/update-one-c-settings.command.ts +10 -0
  150. package/commands/measure-unit/archive-measure-unit.command.ts +7 -0
  151. package/commands/measure-unit/create-measure-unit.command.ts +10 -0
  152. package/commands/measure-unit/get-measure-unit-by-uuid.query.ts +7 -0
  153. package/commands/measure-unit/get-measure-unit-list.query.ts +10 -0
  154. package/commands/measure-unit/index.ts +8 -0
  155. package/commands/measure-unit/reorder-measure-units.command.ts +10 -0
  156. package/commands/measure-unit/set-default-measure-unit.command.ts +7 -0
  157. package/commands/measure-unit/unarchive-measure-unit.command.ts +7 -0
  158. package/commands/measure-unit/update-measure-unit.command.ts +10 -0
  159. package/commands/order/group/order-vat-transition-analyze.command.ts +11 -0
  160. package/commands/order/group/order-vat-transition-execute.command.ts +11 -0
  161. package/commands/order/index.ts +2 -0
  162. package/commands/pre-order/import-standing-order.command.ts +2 -19
  163. package/commands/pre-order-collection-item/import-pre-order-collection-item.command.ts +3 -40
  164. package/commands/pre-order-collection-item/update-group-pre-order-collection-item.command.ts +3 -14
  165. package/commands/product/create-product.command.ts +3 -40
  166. package/commands/product/group/update-group-product-update-batch.command.ts +3 -43
  167. package/commands/product/update-product.command.ts +3 -40
  168. package/commands/report/get-daily-orders-summary.query.ts +3 -74
  169. package/constant/error.ts +41 -3
  170. package/constant/index.ts +1 -0
  171. package/constant/measure-unit-limits.ts +1 -0
  172. package/enum/external-entity-type.enum.ts +1 -0
  173. package/enum/index.ts +2 -0
  174. package/enum/measure-unit-match-source.enum.ts +6 -0
  175. package/enum/moysklad-import-item-status.enum.ts +6 -0
  176. package/enum/order-updated-field.enum.ts +2 -0
  177. package/package.json +1 -1
  178. package/schemas/consignment/consignment-product-multiplicity-option-update.schema.ts +11 -0
  179. package/schemas/consignment/consignment-product-position-update.schema.ts +36 -0
  180. package/schemas/consignment/execute-consignment-product-update-request.schema.ts +6 -0
  181. package/schemas/consignment/execute-consignment-product-update-response-data-errors.schema.ts +6 -0
  182. package/schemas/consignment/execute-consignment-product-update-response-data.schema.ts +11 -0
  183. package/schemas/consignment/execute-consignment-product-update-response.schema.ts +6 -0
  184. package/schemas/consignment/import-consignment-request-constant-data.schema.ts +8 -0
  185. package/schemas/consignment/import-consignment-request.schema.ts +15 -0
  186. package/schemas/consignment/import-consignment-response-data-warnings.schema.ts +8 -0
  187. package/schemas/consignment/import-consignment-response-data.schema.ts +10 -0
  188. package/schemas/consignment/import-consignment-response.schema.ts +7 -0
  189. package/schemas/consignment/import-packing-consignment-request.schema.ts +7 -0
  190. package/schemas/consignment/import-packing-consignment-response-data-warnings.schema.ts +9 -0
  191. package/schemas/consignment/import-packing-consignment-response-data.schema.ts +10 -0
  192. package/schemas/consignment/import-packing-consignment-response.schema.ts +7 -0
  193. package/schemas/consignment/index.ts +16 -0
  194. package/schemas/index.ts +14 -0
  195. package/schemas/integration/moysklad/execute-moysklad-import-request.schema.ts +15 -0
  196. package/schemas/integration/moysklad/execute-moysklad-import-response-data.schema.ts +11 -0
  197. package/schemas/integration/moysklad/execute-moysklad-import-response.schema.ts +7 -0
  198. package/schemas/integration/moysklad/index.ts +18 -0
  199. package/schemas/integration/moysklad/moysklad-category-match.schema.ts +7 -0
  200. package/schemas/integration/moysklad/moysklad-executable-item.schema.ts +28 -0
  201. package/schemas/integration/moysklad/moysklad-measure-unit-alias-added.schema.ts +6 -0
  202. package/schemas/integration/moysklad/moysklad-measure-unit-create-mapping.schema.ts +7 -0
  203. package/schemas/integration/moysklad/moysklad-measure-unit-dictionary-item.schema.ts +7 -0
  204. package/schemas/integration/moysklad/moysklad-measure-unit-link-mapping.schema.ts +7 -0
  205. package/schemas/integration/moysklad/moysklad-measure-unit-mapping.schema.ts +8 -0
  206. package/schemas/integration/moysklad/moysklad-scanned-item.schema.ts +32 -0
  207. package/schemas/integration/moysklad/moysklad-scanned-measure-unit.schema.ts +11 -0
  208. package/schemas/integration/moysklad/scan-moysklad-import-response-data-categories.schema.ts +6 -0
  209. package/schemas/integration/moysklad/scan-moysklad-import-response-data-summary.schema.ts +11 -0
  210. package/schemas/integration/moysklad/scan-moysklad-import-response-data.schema.ts +22 -0
  211. package/schemas/integration/moysklad/scan-moysklad-import-response.schema.ts +7 -0
  212. package/schemas/integration/one-c/index.ts +2 -0
  213. package/schemas/integration/one-c/one-c-status.schema.ts +1 -0
  214. package/schemas/integration/one-c/update-one-c-settings-request.schema.ts +3 -0
  215. package/schemas/integration/one-c/update-one-c-settings-response.schema.ts +4 -0
  216. package/schemas/measure-unit/create-measure-unit-request.schema.ts +17 -0
  217. package/schemas/measure-unit/get-measure-unit-list-request.schema.ts +5 -0
  218. package/schemas/measure-unit/index.ts +9 -0
  219. package/schemas/measure-unit/measure-unit-list-response.schema.ts +4 -0
  220. package/schemas/measure-unit/measure-unit-response.schema.ts +4 -0
  221. package/schemas/measure-unit/measure-unit-short.schema.ts +8 -0
  222. package/schemas/measure-unit/measure-unit-text.schema.ts +8 -0
  223. package/schemas/measure-unit/measure-unit.schema.ts +14 -0
  224. package/schemas/measure-unit/reorder-measure-units-request.schema.ts +10 -0
  225. package/schemas/measure-unit/update-measure-unit-request.schema.ts +3 -0
  226. package/schemas/order/index.ts +10 -0
  227. package/schemas/order/order-vat-transition-analyze-item.schema.ts +23 -0
  228. package/schemas/order/order-vat-transition-analyze-response.schema.ts +7 -0
  229. package/schemas/order/order-vat-transition-analyze-result.schema.ts +11 -0
  230. package/schemas/order/order-vat-transition-analyze-summary.schema.ts +13 -0
  231. package/schemas/order/order-vat-transition-execute-failure.schema.ts +8 -0
  232. package/schemas/order/order-vat-transition-execute-request.schema.ts +10 -0
  233. package/schemas/order/order-vat-transition-execute-response.schema.ts +7 -0
  234. package/schemas/order/order-vat-transition-execute-result.schema.ts +14 -0
  235. package/schemas/order/order-vat-transition-request.schema.ts +12 -0
  236. package/schemas/pre-order/import-standing-order-response-data.schema.ts +10 -0
  237. package/schemas/pre-order/import-standing-order-response.schema.ts +7 -0
  238. package/schemas/pre-order/index.ts +4 -0
  239. package/schemas/pre-order/standing-order-import-row-error.schema.ts +10 -0
  240. package/schemas/pre-order-collection-item/create-pre-order-collection-item.schema.ts +2 -1
  241. package/schemas/pre-order-collection-item/import-pre-order-collection-item-request.schema.ts +3 -0
  242. package/schemas/pre-order-collection-item/import-pre-order-collection-item-response-data.schema.ts +14 -0
  243. package/schemas/pre-order-collection-item/import-pre-order-collection-item-response.schema.ts +7 -0
  244. package/schemas/pre-order-collection-item/index.ts +12 -0
  245. package/schemas/pre-order-collection-item/pre-order-collection-item-base.schema.ts +3 -0
  246. package/schemas/pre-order-collection-item/pre-order-collection-item-for-client.schema.ts +3 -0
  247. package/schemas/pre-order-collection-item/pre-order-collection-item-import-created-row.schema.ts +6 -0
  248. package/schemas/pre-order-collection-item/pre-order-collection-item-import-global-error.schema.ts +6 -0
  249. package/schemas/pre-order-collection-item/pre-order-collection-item-import-issue-params.schema.ts +6 -0
  250. package/schemas/pre-order-collection-item/pre-order-collection-item-import-issue.schema.ts +10 -0
  251. package/schemas/pre-order-collection-item/pre-order-collection-item-import-row-error.schema.ts +7 -0
  252. package/schemas/pre-order-collection-item/pre-order-collection-item-position-update.schema.ts +2 -0
  253. package/schemas/pre-order-collection-item/pre-order-collection-item-update-batch-response-data.schema.ts +2 -0
  254. package/schemas/pre-order-collection-item/update-group-pre-order-collection-item-request.schema.ts +7 -0
  255. package/schemas/pre-order-collection-item/update-group-pre-order-collection-item-response-data.schema.ts +5 -0
  256. package/schemas/pre-order-collection-item/update-group-pre-order-collection-item-response.schema.ts +7 -0
  257. package/schemas/pre-order-collection-item/update-pre-order-collection-item.schema.ts +2 -1
  258. package/schemas/product/create-product-request.schema.ts +35 -0
  259. package/schemas/product/create-product-response.schema.ts +7 -0
  260. package/schemas/product/group/index.ts +5 -0
  261. package/schemas/product/group/update-group-product-update-batch-request-data.schema.ts +22 -0
  262. package/schemas/product/group/update-group-product-update-batch-request.schema.ts +7 -0
  263. package/schemas/product/group/update-group-product-update-batch-response-data-errors.schema.ts +6 -0
  264. package/schemas/product/group/update-group-product-update-batch-response-data.schema.ts +9 -0
  265. package/schemas/product/group/update-group-product-update-batch-response.schema.ts +7 -0
  266. package/schemas/product/index.ts +5 -0
  267. package/schemas/product/product-base.schema.ts +3 -0
  268. package/schemas/product/product-for-client.schema.ts +3 -0
  269. package/schemas/product/update-product-request.schema.ts +35 -0
  270. package/schemas/product/update-product-response.schema.ts +7 -0
  271. package/schemas/report/daily-orders-summary-by-day-item.schema.ts +7 -0
  272. package/schemas/report/daily-orders-summary-by-responsible-item.schema.ts +8 -0
  273. package/schemas/report/daily-orders-summary-legacy-units.schema.ts +7 -0
  274. package/schemas/report/daily-orders-summary-metrics.schema.ts +15 -0
  275. package/schemas/report/daily-orders-summary-totals.schema.ts +4 -0
  276. package/schemas/report/get-daily-orders-summary-request.schema.ts +37 -0
  277. package/schemas/report/get-daily-orders-summary-response-data.schema.ts +10 -0
  278. package/schemas/report/get-daily-orders-summary-response.schema.ts +6 -0
  279. package/schemas/report/index.ts +8 -0
  280. package/schemas/report/measure-unit-quantity.schema.ts +8 -0
  281. package/schemas/report/sales-by-client-row.schema.ts +2 -0
@@ -1,43 +1,6 @@
1
- import { z } from 'zod';
2
- import { ProductMarkEnum, SalesUnitEnum } from '../../enum';
3
- import { ProductExtendedForAdminSchema } from '../../schemas';
4
- import { MoneySchema } from '../../schemas/money.schema';
5
-
6
- const UpdateProductRequestSchema = z.object({
7
- name: z.string(),
8
- consignmentUUID: z.string(),
9
- categoryUUID: z.string(),
10
- balance: z.number(),
11
- quantity: z.number(),
12
- price: MoneySchema,
13
- costPrice: MoneySchema,
14
- multiplicity: z.number(),
15
- isOpen: z.coerce.boolean(),
16
-
17
- article: z.string().nullable(),
18
- vbn: z.string().nullable(),
19
- barcode: z.string().nullable(),
20
- color: z.string().nullable(),
21
- size: z.string().nullable(),
22
- size2: z.string().nullable(),
23
- size3: z.string().nullable(),
24
- invoicePrice: MoneySchema.nullable(),
25
- invoiceNumber: z.string().nullable(),
26
- imageUUID: z.string().nullable(),
27
- country: z.string().nullable(),
28
- description: z.string().nullable(),
29
- quality: z.string().nullable(),
30
- grower: z.string().nullable(),
31
- vat: z.number().nullable(),
32
- multiplicityDescription: z.string().nullable(),
33
- salesUnit: z.nativeEnum(SalesUnitEnum).optional().nullable(),
34
- marks: z.array(z.nativeEnum(ProductMarkEnum)).optional(),
35
- });
36
-
37
- const UpdateProductResponseSchema = z.object({
38
- message: z.string().optional(),
39
- data: ProductExtendedForAdminSchema,
40
- });
1
+ import type { z } from 'zod';
2
+ import { UpdateProductRequestSchema } from '../../schemas/product/update-product-request.schema';
3
+ import { UpdateProductResponseSchema } from '../../schemas/product/update-product-response.schema';
41
4
 
42
5
  export namespace UpdateProductContractCommand {
43
6
  export const RequestSchema = UpdateProductRequestSchema;
@@ -1,77 +1,6 @@
1
- import { z } from 'zod';
2
- import { OrderStatusEnum } from '../../enum/order-status.enum';
3
- import { ReportOrderDateBasisEnum } from '../../enum/report-order-date-basis.enum';
4
- import { dateRangeCheck, isStatementPeriodWithinLimit } from '../../helpers/date.helper';
5
- import { MoneySchema } from '../../schemas/money.schema';
6
-
7
- const GetDailyOrdersSummaryRequestSchema = z
8
- .object({
9
- startDate: z.coerce.date(),
10
- endDate: z.coerce.date(),
11
- // Ось периода — общая с отчётами продаж, чтобы сводка и отчёт за тот же период не разошлись
12
- // в семантике. Дизъюнкции «любая из дат» здесь нет намеренно, см. ReportOrderDateBasisEnum.
13
- //
14
- // COMPLETED_AT сужает сводку до отгруженных заказов: даты отгрузки у остальных статусов
15
- // просто нет. Поэтому на этой оси ordersCompleted равен ordersCreated, а фильтр по любому
16
- // статусу кроме COMPLETED даёт нули — на фронте эти два фильтра совмещать не нужно.
17
- dateBasis: z.nativeEnum(ReportOrderDateBasisEnum).default(ReportOrderDateBasisEnum.CREATED_AT),
18
- // Необязательное сужение по статусу. Принимается и CSV (`?status=NEW,ACCEPTED`), и повтор
19
- // параметра — как excludeClientUUID в ReportOrderFilterSchema.
20
- //
21
- // Служебные статусы здесь НЕ отсеиваются, хотя в сводку они и так не попадают: отсев на
22
- // этом слое означал бы «фильтр пуст → фильтра нет», и `?status=TEMPLATE` вернул бы весь
23
- // отчёт вместо нулей. Отбрасывает их билдер — там пустой результат остаётся пустым.
24
- status: z
25
- .union([z.string(), z.array(z.string())])
26
- .transform(value => (Array.isArray(value) ? value : value.split(',')).map(item => item.trim()).filter(Boolean))
27
- .pipe(z.array(z.nativeEnum(OrderStatusEnum)))
28
- .optional(),
29
- })
30
- .refine(value => dateRangeCheck(value.startDate, value.endDate), {
31
- message: 'validation.dateRange',
32
- path: ['endDate', 'startDate'],
33
- })
34
- .refine(value => isStatementPeriodWithinLimit(value.startDate, value.endDate), {
35
- message: 'validation.reportPeriodMax',
36
- path: ['endDate', 'startDate'],
37
- });
38
-
39
- const UnitsByMeasureSchema = z.object({
40
- PIECE: z.number(),
41
- PACK: z.number(),
42
- BOX: z.number(),
43
- });
44
-
45
- const metricsShape = {
46
- ordersCreated: z.number(),
47
- ordersCompleted: z.number(),
48
- totalSum: MoneySchema,
49
- // Часть totalSum по заказам со статусом COMPLETED. На оси COMPLETED_AT равна totalSum:
50
- // там весь срез и так отгружен.
51
- completedSum: MoneySchema,
52
- unitsByMeasure: UnitsByMeasureSchema,
53
- };
54
-
55
- const DailyOrdersSummaryTotalsSchema = z.object({ ...metricsShape });
56
-
57
- const DailyOrdersSummaryByDayItemSchema = z.object({
58
- date: z.string(),
59
- ...metricsShape,
60
- });
61
-
62
- const DailyOrdersSummaryByResponsibleItemSchema = z.object({
63
- responsibleUserUUID: z.string().nullable(),
64
- responsibleUserName: z.string().nullable(),
65
- ...metricsShape,
66
- });
67
-
68
- const GetDailyOrdersSummaryResponseSchema = z.object({
69
- data: z.object({
70
- totals: DailyOrdersSummaryTotalsSchema,
71
- byDay: z.array(DailyOrdersSummaryByDayItemSchema),
72
- byResponsible: z.array(DailyOrdersSummaryByResponsibleItemSchema),
73
- }),
74
- });
1
+ import type { z } from 'zod';
2
+ import { GetDailyOrdersSummaryRequestSchema } from '../../schemas/report/get-daily-orders-summary-request.schema';
3
+ import { GetDailyOrdersSummaryResponseSchema } from '../../schemas/report/get-daily-orders-summary-response.schema';
75
4
 
76
5
  export namespace GetDailyOrdersSummaryContractQuery {
77
6
  export const RequestSchema = GetDailyOrdersSummaryRequestSchema;
package/constant/error.ts CHANGED
@@ -234,6 +234,34 @@ export const ERRORS = {
234
234
  BRANCH_NOT_FOUND: { code: 'B004', message: 'Branch not founded', httpCode: 404 },
235
235
  BRANCH_NOT_DELETED: { code: 'B005', message: 'Branch not deleted', httpCode: 500 },
236
236
  BRANCH_NOT_UPDATED: { code: 'B006', message: 'Branch not updated', httpCode: 500 },
237
+ // MEASURE_UNIT
238
+ MEASURE_UNIT_NOT_FOUND: { code: 'MU001', message: 'Measure unit not found', httpCode: 404 },
239
+ MEASURE_UNIT_NAME_EXISTS: { code: 'MU002', message: 'Measure unit name is already used', httpCode: 409 },
240
+ MEASURE_UNIT_SHORT_NAME_EXISTS: { code: 'MU003', message: 'Measure unit short name is already used', httpCode: 409 },
241
+ MEASURE_UNIT_ALIAS_CONFLICT: { code: 'MU004', message: 'Measure unit alias overlaps another unit', httpCode: 409 },
242
+ MEASURE_UNIT_INVALID_OKEI: { code: 'MU005', message: 'OKEI code must contain three digits', httpCode: 400 },
243
+ MEASURE_UNIT_DEFAULT_ARCHIVE: { code: 'MU006', message: 'Cannot archive the default measure unit', httpCode: 400 },
244
+ MEASURE_UNIT_ARCHIVED_DEFAULT: { code: 'MU007', message: 'Cannot make an archived measure unit default', httpCode: 400 },
245
+ MEASURE_UNIT_ARCHIVED: { code: 'MU008', message: 'Measure unit is archived', httpCode: 400 },
246
+ MEASURE_UNIT_INVALID_ORDER: {
247
+ code: 'MU009',
248
+ message: 'Measure unit order must contain all units or all active units exactly once',
249
+ httpCode: 400,
250
+ },
251
+ MEASURE_UNIT_FAILED: { code: 'MU010', message: 'Failed to process measure units', httpCode: 500 },
252
+ MEASURE_UNIT_INVALID_NAME: { code: 'MU011', message: 'Measure unit names must not be empty', httpCode: 400 },
253
+ MEASURE_UNIT_ALREADY_LINKED: { code: 'MU012', message: 'Measure unit is already linked to another external unit', httpCode: 409 },
254
+ MEASURE_UNIT_INVALID_TEXT: {
255
+ code: 'MU013',
256
+ message: 'Measure unit names or aliases exceed limits or contain control characters (name/alias: 100, short name: 32, aliases: 50)',
257
+ httpCode: 400,
258
+ },
259
+ MEASURE_UNIT_LIMIT_EXCEEDED: {
260
+ code: 'MU014',
261
+ message: 'Company may have at most 100 measure units, including archived units',
262
+ httpCode: 400,
263
+ },
264
+
237
265
  //PRODUCT
238
266
  PRODUCT_NOT_CREATED: { code: 'P001', message: 'Failed to create product', httpCode: 500 },
239
267
  PRODUCT_FETCH_FAILED: { code: 'P002', message: 'Error when retrieving a product', httpCode: 500 },
@@ -544,6 +572,13 @@ export const ERRORS = {
544
572
  ORDER_PLANNED_SHIPMENT_DATE_NOT_UPDATED: { code: 'O062', message: 'Failed to update order planned shipment date', httpCode: 500 },
545
573
  // Источник объединения удаляется, и его связь с документом ERP пропала бы молча.
546
574
  ORDER_MERGE_SOURCE_HAS_EXTERNAL_NUMBER: { code: 'O064', message: 'Source order has an external number', httpCode: 400 },
575
+ // FC-569: заказ отгружен до даты перехода на НДС — пересчёт его не трогает.
576
+ ORDER_VAT_TRANSITION_NOT_ELIGIBLE: {
577
+ code: 'O065',
578
+ message: 'The order was shipped before the VAT transition date',
579
+ httpCode: 409,
580
+ },
581
+ ORDER_VAT_TRANSITION_FAILED: { code: 'O066', message: 'Failed to recalculate order VAT', httpCode: 500 },
547
582
  ORDER_MERGE_BALANCE_STATUS_NOT_ALLOWED: {
548
583
  code: 'O033',
549
584
  message: 'Order status is balance affecting, merge not allowed',
@@ -1936,9 +1971,12 @@ export const ERRORS = {
1936
1971
  },
1937
1972
  TRANSFER_DOCUMENT_AMOUNT_INVALID: { code: 'TDOC009', message: 'Transfer document amount must be greater than zero', httpCode: 400 },
1938
1973
  TRANSFER_DOCUMENT_EXPORT_FAILED: { code: 'TDOC010', message: 'Failed to build transfer document file', httpCode: 500 },
1939
- TRANSFER_DOCUMENT_VAT_NOT_SUPPORTED: {
1940
- code: 'TDOC011',
1941
- message: 'Transfer documents are only issued as an act (status 2); VAT payers are not supported yet',
1974
+ // FC-569: статус документа выводится из заказов — с НДС счёт-фактура (статус 1), без НДС акт (статус 2),
1975
+ // и заказы обоих видов в один документ не сходятся. TDOC011 («плательщики НДС не поддерживаются»)
1976
+ // больше не выдаётся: статус 1 выпускается.
1977
+ TRANSFER_DOCUMENT_VAT_MIXED: {
1978
+ code: 'TDOC015',
1979
+ message: 'Orders with and without VAT cannot be issued in one transfer document',
1942
1980
  httpCode: 409,
1943
1981
  },
1944
1982
  // Реквизиты сторон проверяем до выпуска: движок считает пустое значение штатным и напечатал бы
package/constant/index.ts CHANGED
@@ -16,3 +16,4 @@ export * from './client-group-actions.constant';
16
16
  export * from './standing-order-positions.constant';
17
17
  export * from './order-external-number.constant';
18
18
  export * from './discount-rules-pricing-type-list.constant';
19
+ export * from './measure-unit-limits';
@@ -0,0 +1 @@
1
+ export const MEASURE_UNIT_LIMITS = { name: 100, shortName: 32, alias: 100, aliases: 50, perCompany: 100 };
@@ -1,4 +1,5 @@
1
1
  export enum ExternalEntityTypeEnum {
2
+ MEASURE_UNIT = 'MEASURE_UNIT',
2
3
  PRODUCT = 'PRODUCT',
3
4
  CATEGORY = 'CATEGORY',
4
5
  CLIENT = 'CLIENT',
package/enum/index.ts CHANGED
@@ -55,6 +55,7 @@ export * from './language.enum';
55
55
  export * from './legal-identifier-field.enum';
56
56
  export * from './match-confidence.enum';
57
57
  export * from './moysklad-sync-status.enum';
58
+ export * from './moysklad-import-item-status.enum';
58
59
  export * from './normalization-decision-action.enum';
59
60
  export * from './normalization-target.enum';
60
61
  export * from './normalization-value-state.enum';
@@ -162,3 +163,4 @@ export * from './pre-order-fulfillment-status.enum';
162
163
 
163
164
  export * from './delivery-pricing-rule-scope.enum';
164
165
  export * from './delivery-pricing-in-transit-mode.enum';
166
+ export * from './measure-unit-match-source.enum';
@@ -0,0 +1,6 @@
1
+ export enum MeasureUnitMatchSourceEnum {
2
+ LINK = 'LINK',
3
+ OKEI = 'OKEI',
4
+ NAME = 'NAME',
5
+ DEFAULT = 'DEFAULT',
6
+ }
@@ -0,0 +1,6 @@
1
+ // Строка предпросмотра импорта из МойСклада: NEW — в FC ещё нет, создастся; KNOWN — уже связана ссылкой.
2
+ // Значения в нижнем регистре — так их уже шлёт и сравнивает fc-app.
3
+ export enum MoyskladImportItemStatusEnum {
4
+ NEW = 'new',
5
+ KNOWN = 'known',
6
+ }
@@ -18,4 +18,6 @@ export enum OrderUpdatedFieldEnum {
18
18
  PAYMENT_DUE_AT = 'PAYMENT_DUE_AT',
19
19
  PLANNED_SHIPMENT_DATE = 'PLANNED_SHIPMENT_DATE',
20
20
  EXTERNAL_NUMBER = 'EXTERNAL_NUMBER',
21
+ // Пересчёт НДС заказа при переходе компании на НДС (FC-569): итог налога до и после.
22
+ VAT_AMOUNT = 'VAT_AMOUNT',
21
23
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@floristcloud/api-lib",
3
- "version": "1.2.180",
3
+ "version": "1.2.182",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "scripts": {
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ import { MoneySchema } from '../money.schema';
3
+
4
+ export const ConsignmentProductMultiplicityOptionUpdateSchema = z.object({
5
+ title: z.string().nullable().optional(),
6
+ optionMultiplicity: z.number().nullable().optional(),
7
+ optionPrice: MoneySchema.nullable().optional(),
8
+ // Отсутствие поля — флаг не меняем; у создаваемой кратности берётся умолчание (скидки разрешены).
9
+ // Пустая ячейка в файле сюда не доезжает: разбор превращает её в отсутствие поля, а не в `false`.
10
+ isDiscountAllowed: z.boolean().optional(),
11
+ });
@@ -0,0 +1,36 @@
1
+ import { z } from 'zod';
2
+ import { SalesUnitEnum } from '../../enum/sales-unit.enum';
3
+ import { MoneySchema } from '../money.schema';
4
+ import { ConsignmentProductMultiplicityOptionUpdateSchema } from './consignment-product-multiplicity-option-update.schema';
5
+
6
+ export const ConsignmentProductPositionUpdateSchema = z.object({
7
+ measureUnitUUID: z.string().uuid().optional(),
8
+ salesUnit: z.nativeEnum(SalesUnitEnum).nullable().optional(),
9
+ measureUnitText: z.string().nullable().optional(),
10
+ name: z.string().nullable().optional(),
11
+ multiplicity: z.number().nullable().optional(),
12
+ quantity: z.number().nullable().optional(),
13
+ balance: z.number().nullable().optional(),
14
+ price: MoneySchema.nullable().optional(),
15
+ costPrice: MoneySchema.nullable().optional(),
16
+ invoicePrice: MoneySchema.nullable().optional(),
17
+ invoiceNumber: z.string().nullable().optional(),
18
+ multiplicityDescription: z.string().nullable().optional(),
19
+ vat: z.number().nullable().optional(),
20
+ article: z.string().nullable().optional(),
21
+ color: z.string().nullable().optional(),
22
+ vbn: z.string().nullable().optional(),
23
+ barcode: z.string().nullable().optional(),
24
+ size: z.string().nullable().optional(),
25
+ size2: z.string().nullable().optional(),
26
+ size3: z.string().nullable().optional(),
27
+ country: z.string().nullable().optional(),
28
+ description: z.string().nullable().optional(),
29
+ quality: z.string().nullable().optional(),
30
+ grower: z.string().nullable().optional(),
31
+ // `null` — слот кратности очищен, кратность надо удалить; отсутствие поля — слотом не управляем.
32
+ // Различие существенное: обновление по схеме импорта видит только те колонки, что она отображает,
33
+ // и не должно сносить кратность, которую просто не читает.
34
+ option1: ConsignmentProductMultiplicityOptionUpdateSchema.nullable().optional(),
35
+ option2: ConsignmentProductMultiplicityOptionUpdateSchema.nullable().optional(),
36
+ });
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import { ConsignmentProductPositionUpdateSchema } from './consignment-product-position-update.schema';
3
+
4
+ export const ExecuteConsignmentProductUpdateRequestSchema = z.object({
5
+ updates: z.record(z.string(), ConsignmentProductPositionUpdateSchema),
6
+ });
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import { ErrorMessageSchema } from '../error-message.schema';
3
+
4
+ export const ExecuteConsignmentProductUpdateResponseDataErrorsSchema = ErrorMessageSchema.extend({
5
+ uuid: z.string(),
6
+ });
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ import { ExecuteConsignmentProductUpdateResponseDataErrorsSchema } from './execute-consignment-product-update-response-data-errors.schema';
3
+
4
+ export const ExecuteConsignmentProductUpdateResponseDataSchema = z.object({
5
+ unrecognizedMeasureUnitCount: z.number(),
6
+ unrecognizedMeasureUnitExamples: z.array(z.string()),
7
+ success: z.boolean(),
8
+ successCount: z.number(),
9
+ failedCount: z.number(),
10
+ errors: z.array(ExecuteConsignmentProductUpdateResponseDataErrorsSchema),
11
+ });
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import { ExecuteConsignmentProductUpdateResponseDataSchema } from './execute-consignment-product-update-response-data.schema';
3
+
4
+ export const ExecuteConsignmentProductUpdateResponseSchema = z.object({
5
+ data: ExecuteConsignmentProductUpdateResponseDataSchema,
6
+ });
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { ConsignmentImportSchemaRelationEntityPropertyEnum } from '../../enum';
3
+
4
+ export const ImportConsignmentRequestConstantDataSchema = z.object({
5
+ [ConsignmentImportSchemaRelationEntityPropertyEnum.INVOICE_NUMBER]: z.string().nullable().optional(),
6
+ [ConsignmentImportSchemaRelationEntityPropertyEnum.GROWER]: z.string().nullable().optional(),
7
+ [ConsignmentImportSchemaRelationEntityPropertyEnum.COUNTRY]: z.string().nullable().optional(),
8
+ });
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ import { ConsignmentImportNameConventionEnum } from '../../enum';
3
+ import { ImportConsignmentRequestConstantDataSchema } from './import-consignment-request-constant-data.schema';
4
+
5
+ export const ImportConsignmentRequestSchema = z.object({
6
+ isAggregate: z.coerce.boolean().optional().default(false),
7
+ isSeparateByGrower: z.coerce.boolean().optional().default(false),
8
+ isCutCategoryFromName: z.coerce.boolean().optional().default(false),
9
+ isFindImage: z.coerce.boolean().optional().default(false),
10
+ isRemoveSize: z.coerce.boolean().optional().default(false),
11
+ tradeMargin: z.coerce.number().optional().default(0),
12
+ coefficient: z.coerce.number().optional().default(0),
13
+ nameConvention: z.nativeEnum(ConsignmentImportNameConventionEnum).optional(),
14
+ constantData: ImportConsignmentRequestConstantDataSchema.optional(),
15
+ });
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { DataNotExistsSchema } from './consignment.schema';
3
+ import { ProductErrorTypeSchema } from './consignment.schema';
4
+
5
+ export const ImportConsignmentResponseDataWarningsSchema = z.object({
6
+ row: z.number(),
7
+ errors: z.array(z.union([ProductErrorTypeSchema, DataNotExistsSchema])),
8
+ });
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ import { ImportConsignmentResponseDataWarningsSchema } from './import-consignment-response-data-warnings.schema';
3
+
4
+ export const ImportConsignmentResponseDataSchema = z.object({
5
+ success: z.boolean(),
6
+ rows: z.number(),
7
+ unrecognizedMeasureUnitCount: z.number(),
8
+ unrecognizedMeasureUnitExamples: z.array(z.string()),
9
+ warnings: z.array(ImportConsignmentResponseDataWarningsSchema),
10
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { ImportConsignmentResponseDataSchema } from './import-consignment-response-data.schema';
3
+
4
+ export const ImportConsignmentResponseSchema = z.object({
5
+ message: z.string().optional(),
6
+ data: ImportConsignmentResponseDataSchema,
7
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+
3
+ export const ImportPackingConsignmentRequestSchema = z.object({
4
+ isSeparateByGrower: z.coerce.boolean().optional().default(false),
5
+ isCutCategoryFromName: z.coerce.boolean().optional().default(false),
6
+ isRemoveSize: z.coerce.boolean().optional().default(false),
7
+ });
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import { DataNotExistsSchema } from './consignment.schema';
3
+ import { ProductErrorTypeSchema } from './consignment.schema';
4
+
5
+ export const ImportPackingConsignmentResponseDataWarningsSchema = z.object({
6
+ row: z.number(),
7
+ productUUID: z.string().uuid().optional(),
8
+ errors: z.array(z.union([ProductErrorTypeSchema, DataNotExistsSchema])),
9
+ });
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ import { ImportPackingConsignmentResponseDataWarningsSchema } from './import-packing-consignment-response-data-warnings.schema';
3
+
4
+ export const ImportPackingConsignmentResponseDataSchema = z.object({
5
+ success: z.boolean(),
6
+ rows: z.number(),
7
+ unrecognizedMeasureUnitCount: z.number(),
8
+ unrecognizedMeasureUnitExamples: z.array(z.string()),
9
+ warnings: z.array(ImportPackingConsignmentResponseDataWarningsSchema),
10
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { ImportPackingConsignmentResponseDataSchema } from './import-packing-consignment-response-data.schema';
3
+
4
+ export const ImportPackingConsignmentResponseSchema = z.object({
5
+ message: z.string().optional(),
6
+ data: ImportPackingConsignmentResponseDataSchema,
7
+ });
@@ -0,0 +1,16 @@
1
+ export * from './import-consignment-request-constant-data.schema';
2
+ export * from './import-consignment-request.schema';
3
+ export * from './import-consignment-response-data-warnings.schema';
4
+ export * from './import-consignment-response-data.schema';
5
+ export * from './import-consignment-response.schema';
6
+ export * from './import-packing-consignment-request.schema';
7
+ export * from './import-packing-consignment-response-data-warnings.schema';
8
+ export * from './import-packing-consignment-response-data.schema';
9
+ export * from './import-packing-consignment-response.schema';
10
+
11
+ export * from './consignment-product-multiplicity-option-update.schema';
12
+ export * from './consignment-product-position-update.schema';
13
+ export * from './execute-consignment-product-update-request.schema';
14
+ export * from './execute-consignment-product-update-response-data-errors.schema';
15
+ export * from './execute-consignment-product-update-response-data.schema';
16
+ export * from './execute-consignment-product-update-response.schema';
package/schemas/index.ts CHANGED
@@ -129,3 +129,17 @@ export * from './write-off/write-off-archive-file.schema';
129
129
  export * from './write-off/write-off-export.schema';
130
130
  export * from './write-off/write-off-list.schema';
131
131
  export * from './write-off/write-off.schema';
132
+ export * from './measure-unit';
133
+
134
+ export * from './integration/one-c/update-one-c-settings-request.schema';
135
+ export * from './integration/one-c/update-one-c-settings-response.schema';
136
+
137
+ export * from './report/measure-unit-quantity.schema';
138
+
139
+ export * from './consignment';
140
+
141
+ export * from './product/group';
142
+
143
+ export * from './report';
144
+
145
+ export * from './integration/moysklad';
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ import { MEASURE_UNIT_LIMITS } from '../../../constant/measure-unit-limits';
3
+ import { MoyskladMeasureUnitMappingSchema } from './moysklad-measure-unit-mapping.schema';
4
+ import { MoyskladExecutableItemSchema } from './moysklad-executable-item.schema';
5
+
6
+ export const ExecuteMoyskladImportRequestSchema = z.object({
7
+ measureUnitMapping: z
8
+ .array(MoyskladMeasureUnitMappingSchema)
9
+ .max(MEASURE_UNIT_LIMITS.perCompany, 'MeasureUnit.mapping.max')
10
+ .refine(items => new Set(items.map(item => item.externalId)).size === items.length, 'Duplicate externalId')
11
+ .optional(),
12
+ items: z.array(MoyskladExecutableItemSchema),
13
+ missingExternalIds: z.array(z.string()).default([]),
14
+ orphanedExternalIds: z.array(z.string()).default([]),
15
+ });
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ import { MoyskladMeasureUnitAliasAddedSchema } from './moysklad-measure-unit-alias-added.schema';
3
+
4
+ export const ExecuteMoyskladImportResponseDataSchema = z.object({
5
+ measureUnitAliasesAdded: z.array(MoyskladMeasureUnitAliasAddedSchema),
6
+ created: z.number(),
7
+ updated: z.number(),
8
+ archived: z.number(),
9
+ orphansCleaned: z.number(),
10
+ consignmentUUID: z.string(),
11
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { ExecuteMoyskladImportResponseDataSchema } from './execute-moysklad-import-response-data.schema';
3
+
4
+ export const ExecuteMoyskladImportResponseSchema = z.object({
5
+ message: z.string().optional(),
6
+ data: ExecuteMoyskladImportResponseDataSchema,
7
+ });
@@ -6,3 +6,21 @@ export * from './moysklad-order-state-mapping.schema';
6
6
  export * from './moysklad-order-state-mapping.type';
7
7
  export * from './moysklad-status.schema';
8
8
  export * from './moysklad-sync-dead-info.schema';
9
+
10
+ export * from './moysklad-scanned-item.schema';
11
+ export * from './moysklad-category-match.schema';
12
+ export * from './scan-moysklad-import-response-data-categories.schema';
13
+ export * from './scan-moysklad-import-response-data-summary.schema';
14
+ export * from './scan-moysklad-import-response-data.schema';
15
+ export * from './scan-moysklad-import-response.schema';
16
+ export * from './moysklad-executable-item.schema';
17
+ export * from './execute-moysklad-import-request.schema';
18
+ export * from './execute-moysklad-import-response-data.schema';
19
+ export * from './execute-moysklad-import-response.schema';
20
+ export * from './moysklad-measure-unit-link-mapping.schema';
21
+ export * from './moysklad-measure-unit-create-mapping.schema';
22
+ export * from './moysklad-measure-unit-mapping.schema';
23
+ export * from './moysklad-scanned-measure-unit.schema';
24
+
25
+ export * from './moysklad-measure-unit-alias-added.schema';
26
+ export * from './moysklad-measure-unit-dictionary-item.schema';
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+
3
+ export const MoyskladCategoryMatchSchema = z.object({
4
+ fcCategoryUUID: z.string(),
5
+ fcCategoryName: z.string(),
6
+ itemsCount: z.number(),
7
+ });
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+ import { MoyskladImportItemStatusEnum, SalesUnitEnum } from '../../../enum';
3
+ import { MoneySchema } from '../../money.schema';
4
+
5
+ export const MoyskladExecutableItemSchema = z.object({
6
+ externalSourceId: z.string(),
7
+ externalHref: z.string(),
8
+ name: z.string(),
9
+ article: z.string().nullable(),
10
+ barcode: z.string().nullable(),
11
+ size: z.string().nullable(),
12
+ color: z.string().nullable(),
13
+ country: z.string().nullable(),
14
+ grower: z.string().nullable(),
15
+ price: MoneySchema,
16
+ costPrice: MoneySchema,
17
+ balance: z.number(),
18
+ vat: z.number().nullable(),
19
+ measureUnitExternalId: z.string().nullable().optional(),
20
+ measureUnitUUID: z.string().uuid().optional(),
21
+ uomCode: z.string().nullable().optional(),
22
+ uomName: z.string().nullable().optional(),
23
+ salesUnit: z.nativeEnum(SalesUnitEnum).nullable().optional(),
24
+ status: z.nativeEnum(MoyskladImportItemStatusEnum),
25
+ internalUUID: z.string().nullable(),
26
+ resolvedCategoryUUID: z.string().nullable(),
27
+ resolvedImageUUID: z.string().nullable(),
28
+ });
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+
3
+ export const MoyskladMeasureUnitAliasAddedSchema = z.object({
4
+ measureUnitUUID: z.string().uuid(),
5
+ alias: z.string(),
6
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { CreateMeasureUnitRequestSchema } from '../../measure-unit/create-measure-unit-request.schema';
3
+
4
+ export const MoyskladMeasureUnitCreateMappingSchema = CreateMeasureUnitRequestSchema.omit({ aliases: true }).extend({
5
+ externalId: z.string().min(1),
6
+ action: z.literal('CREATE'),
7
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { MeasureUnitShortSchema } from '../../measure-unit/measure-unit-short.schema';
3
+
4
+ export const MoyskladMeasureUnitDictionaryItemSchema = MeasureUnitShortSchema.extend({
5
+ linkedExternalId: z.string().nullable(),
6
+ linkedExternalName: z.string().nullable(),
7
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+
3
+ export const MoyskladMeasureUnitLinkMappingSchema = z.object({
4
+ externalId: z.string().min(1),
5
+ action: z.literal('LINK'),
6
+ measureUnitUUID: z.string().uuid(),
7
+ });
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { MoyskladMeasureUnitLinkMappingSchema } from './moysklad-measure-unit-link-mapping.schema';
3
+ import { MoyskladMeasureUnitCreateMappingSchema } from './moysklad-measure-unit-create-mapping.schema';
4
+
5
+ export const MoyskladMeasureUnitMappingSchema = z.discriminatedUnion('action', [
6
+ MoyskladMeasureUnitLinkMappingSchema,
7
+ MoyskladMeasureUnitCreateMappingSchema,
8
+ ]);