@floristcloud/api-lib 1.2.160 → 1.2.161

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 (363) hide show
  1. package/build/commands/client/index.js +1 -0
  2. package/build/commands/client/webshop/get-client-me-webshop.query.js +8 -0
  3. package/build/commands/client/webshop/register-client-webshop.command.js +2 -16
  4. package/build/commands/client/webshop/update-client-for-client.command.js +2 -14
  5. package/build/commands/discount-rules/get-product-discount-price.query.js +2 -68
  6. package/build/commands/order/webshop/create-cart.command.js +2 -8
  7. package/build/commands/order/webshop/get-order-for-client.query.js +2 -8
  8. package/build/commands/order/webshop/get-order-list-for-client.query.js +2 -46
  9. package/build/commands/order/webshop/update-cart.command.js +2 -25
  10. package/build/commands/order-product/webshop/get-order-product-for-client-list.query.js +2 -8
  11. package/build/commands/pre-order/webshop/get-pre-order-list-webshop.command.js +2 -16
  12. package/build/commands/pre-order/webshop/get-pre-order-list-webshop.query.js +9 -0
  13. package/build/commands/pre-order/webshop/get-pre-order-webshop.query.js +8 -0
  14. package/build/commands/pre-order/webshop/index.js +2 -1
  15. package/build/commands/pre-order-collection-item/delete-group-pre-order-collection-item.command.js +3 -13
  16. package/build/commands/pre-order-collection-item/get-pre-order-collection-item-grouped-list-for-client.query.js +2 -18
  17. package/build/commands/pre-order-collection-item/get-pre-order-collection-item-list-for-client.query.js +2 -18
  18. package/build/commands/pre-order-product/create-pre-order-product-webshop.command.js +2 -7
  19. package/build/commands/pre-order-product/get-pre-order-product-extended-list-webshop.query.js +9 -0
  20. package/build/commands/pre-order-product/index.js +1 -0
  21. package/build/commands/pre-order-product/update-pre-order-product-webshop.command.js +2 -7
  22. package/build/commands/product/webshop/get-product-list-for-client.query.js +2 -31
  23. package/build/commands/transaction/webshop/get-transaction-list-for-client.query.js +2 -30
  24. package/build/commands/write-off/webshop/create-write-off-from-order-for-client.command.js +2 -14
  25. package/build/commands/write-off/webshop/get-write-off-list-by-order.query.js +2 -8
  26. package/build/constant/error.js +13 -0
  27. package/build/schemas/category/category-name.schema.js +6 -0
  28. package/build/schemas/category/index.js +23 -0
  29. package/build/schemas/client/client-base.schema.js +37 -0
  30. package/build/schemas/client/client-extended-for-client.schema.js +17 -0
  31. package/build/schemas/client/client-extended-list.schema.js +9 -0
  32. package/build/schemas/client/client-extended.schema.js +21 -0
  33. package/build/schemas/client/client-for-client.schema.js +30 -0
  34. package/build/schemas/client/client-name.schema.js +6 -0
  35. package/build/schemas/client/client.schema.js +6 -54
  36. package/build/schemas/client/get-client-me-webshop-response.schema.js +9 -0
  37. package/build/schemas/client/index.js +10 -0
  38. package/build/schemas/client/register-client-webshop-request.schema.js +13 -0
  39. package/build/schemas/client/register-client-webshop-response.schema.js +9 -0
  40. package/build/schemas/client/update-client-for-client-request.schema.js +11 -0
  41. package/build/schemas/client/update-client-for-client-response.schema.js +9 -0
  42. package/build/schemas/consignment/consignment-distribution-validation.schema.js +4 -4
  43. package/build/schemas/consignment/consignment.schema.js +2 -2
  44. package/build/schemas/discount-rules/discount-rules-data-for-client.schema.js +8 -0
  45. package/build/schemas/discount-rules/discount-rules-for-client.schema.js +11 -0
  46. package/build/schemas/discount-rules/discount-rules.schema.js +4 -4
  47. package/build/schemas/discount-rules/get-product-discount-price-request.schema.js +10 -0
  48. package/build/schemas/discount-rules/get-product-discount-price-response.schema.js +17 -0
  49. package/build/schemas/discount-rules/index.js +24 -0
  50. package/build/schemas/discount-rules/product-discount-price-data.schema.js +18 -0
  51. package/build/schemas/discount-rules/product-discount-price-item.schema.js +22 -0
  52. package/build/schemas/discount-rules/product-discount-price-multiplicity-option.schema.js +25 -0
  53. package/build/schemas/index.js +15 -41
  54. package/build/schemas/money-account/index.js +19 -0
  55. package/build/schemas/money-account/money-account-name.schema.js +6 -0
  56. package/build/schemas/order/create-cart-request.schema.js +5 -0
  57. package/build/schemas/order/create-cart-response.schema.js +9 -0
  58. package/build/schemas/order/get-order-for-client-list-request.schema.js +40 -0
  59. package/build/schemas/order/get-order-for-client-list-response.schema.js +9 -0
  60. package/build/schemas/order/get-order-for-client-request.schema.js +5 -0
  61. package/build/schemas/order/get-order-for-client-response.schema.js +9 -0
  62. package/build/schemas/order/index.js +30 -0
  63. package/build/schemas/order/order-base.schema.js +50 -0
  64. package/build/schemas/order/order-extended-for-client-list.schema.js +9 -0
  65. package/build/schemas/order/order-extended-for-client.schema.js +19 -0
  66. package/build/schemas/order/order-extended.schema.js +19 -0
  67. package/build/schemas/order/order-for-client.schema.js +36 -0
  68. package/build/schemas/order/order.schema.js +9 -81
  69. package/build/schemas/order/update-cart-delivery-request.schema.js +10 -0
  70. package/build/schemas/order/update-cart-request.schema.js +15 -0
  71. package/build/schemas/order/update-cart-response.schema.js +9 -0
  72. package/build/schemas/order-product/active-stepper-positions-for-order-response.schema.js +8 -0
  73. package/build/schemas/order-product/get-order-product-for-client-list-request.schema.js +5 -0
  74. package/build/schemas/order-product/get-order-product-for-client-list-response.schema.js +9 -0
  75. package/build/schemas/order-product/index.js +27 -0
  76. package/build/schemas/order-product/order-product-base.schema.js +27 -0
  77. package/build/schemas/order-product/order-product-extended-for-client-list.schema.js +9 -0
  78. package/build/schemas/order-product/order-product-extended-for-client.schema.js +10 -0
  79. package/build/schemas/order-product/order-product-extended.schema.js +12 -0
  80. package/build/schemas/order-product/order-product-for-client.schema.js +20 -0
  81. package/build/schemas/order-product/order-product-for-distribute.schema.js +15 -0
  82. package/build/schemas/order-product/order-product-list.schema.js +5 -6
  83. package/build/schemas/order-product/order-product-stepper-position.schema.js +13 -0
  84. package/build/schemas/order-product/order-product.schema.js +20 -70
  85. package/build/schemas/order-product/set-order-product-quantity-webshop-request.schema.js +7 -0
  86. package/build/schemas/order-product/set-order-product-quantity-webshop-response.schema.js +9 -0
  87. package/build/schemas/pagination-request.schema.js +9 -0
  88. package/build/schemas/pre-order/get-pre-order-list-webshop-request.schema.js +10 -0
  89. package/build/schemas/pre-order/get-pre-order-list-webshop-response.schema.js +8 -0
  90. package/build/schemas/pre-order/get-pre-order-webshop-response.schema.js +8 -0
  91. package/build/schemas/pre-order/index.js +25 -0
  92. package/build/schemas/pre-order/pre-order-copy.schema.js +4 -4
  93. package/build/schemas/pre-order/pre-order-extended-for-client-list.schema.js +9 -0
  94. package/build/schemas/pre-order/pre-order-extended-for-client.schema.js +15 -0
  95. package/build/schemas/pre-order/pre-order-for-client.schema.js +15 -0
  96. package/build/schemas/pre-order/pre-order-summary.schema.js +5 -0
  97. package/build/schemas/pre-order/pre-order.schema.js +3 -3
  98. package/build/schemas/pre-order-collection/index.js +18 -0
  99. package/build/schemas/pre-order-collection/pre-order-collection-summary-for-client.schema.js +10 -0
  100. package/build/schemas/pre-order-collection-item/create-pre-order-collection-item.schema.js +32 -0
  101. package/build/schemas/pre-order-collection-item/delete-group-pre-order-collection-item-request.schema.js +7 -0
  102. package/build/schemas/pre-order-collection-item/delete-group-pre-order-collection-item-response.schema.js +9 -0
  103. package/build/schemas/pre-order-collection-item/delete-group-pre-order-collection-item-result.schema.js +8 -0
  104. package/build/schemas/pre-order-collection-item/get-pre-order-collection-item-grouped-list-for-client-response.schema.js +9 -0
  105. package/build/schemas/pre-order-collection-item/get-pre-order-collection-item-list-for-client-response.schema.js +9 -0
  106. package/build/schemas/pre-order-collection-item/index.js +34 -0
  107. package/build/schemas/pre-order-collection-item/matching-product.schema.js +13 -0
  108. package/build/schemas/pre-order-collection-item/pre-order-collection-item-base.schema.js +36 -0
  109. package/build/schemas/pre-order-collection-item/pre-order-collection-item-catalog-filter-for-client-request.schema.js +15 -0
  110. package/build/schemas/pre-order-collection-item/pre-order-collection-item-catalog-for-client-list.schema.js +9 -0
  111. package/build/schemas/pre-order-collection-item/pre-order-collection-item-catalog-for-client.schema.js +11 -0
  112. package/build/schemas/pre-order-collection-item/pre-order-collection-item-catalog-grouped-for-client-list.schema.js +9 -0
  113. package/build/schemas/pre-order-collection-item/pre-order-collection-item-catalog-grouped-for-client.schema.js +9 -0
  114. package/build/schemas/pre-order-collection-item/pre-order-collection-item-category.schema.js +11 -0
  115. package/build/schemas/pre-order-collection-item/pre-order-collection-item-client-pre-order-product.schema.js +13 -0
  116. package/build/schemas/pre-order-collection-item/pre-order-collection-item-extended-list.schema.js +9 -0
  117. package/build/schemas/pre-order-collection-item/pre-order-collection-item-extended-with-clients-pre-order-product-list.schema.js +9 -0
  118. package/build/schemas/pre-order-collection-item/pre-order-collection-item-extended-with-clients-pre-order-product.schema.js +8 -0
  119. package/build/schemas/pre-order-collection-item/pre-order-collection-item-extended.schema.js +18 -0
  120. package/build/schemas/pre-order-collection-item/pre-order-collection-item-for-client.schema.js +34 -0
  121. package/build/schemas/pre-order-collection-item/pre-order-collection-item-image.schema.js +7 -0
  122. package/build/schemas/pre-order-collection-item/pre-order-collection-item.schema.js +31 -150
  123. package/build/schemas/pre-order-collection-item/update-pre-order-collection-item.schema.js +35 -0
  124. package/build/schemas/pre-order-product/active-stepper-positions-response.schema.js +8 -0
  125. package/build/schemas/pre-order-product/create-pre-order-product-webshop-request.schema.js +16 -0
  126. package/build/schemas/pre-order-product/create-pre-order-product-webshop-response.schema.js +9 -0
  127. package/build/schemas/pre-order-product/create-pre-order-product.schema.js +18 -0
  128. package/build/schemas/pre-order-product/get-pre-order-product-extended-list-webshop-response.schema.js +9 -0
  129. package/build/schemas/pre-order-product/index.js +25 -0
  130. package/build/schemas/pre-order-product/matching-config.schema.js +12 -0
  131. package/build/schemas/pre-order-product/pre-order-product-base.schema.js +27 -0
  132. package/build/schemas/pre-order-product/pre-order-product-extended-for-client-list.schema.js +9 -0
  133. package/build/schemas/pre-order-product/pre-order-product-extended-for-client.schema.js +15 -0
  134. package/build/schemas/pre-order-product/pre-order-product-extended-list.schema.js +9 -0
  135. package/build/schemas/pre-order-product/pre-order-product-extended.schema.js +14 -0
  136. package/build/schemas/pre-order-product/pre-order-product-for-client.schema.js +24 -0
  137. package/build/schemas/pre-order-product/pre-order-product-list.schema.js +9 -0
  138. package/build/schemas/pre-order-product/pre-order-product-stepper-position.schema.js +14 -0
  139. package/build/schemas/pre-order-product/pre-order-product.schema.js +29 -126
  140. package/build/schemas/pre-order-product/set-pre-order-product-quantity-webshop-request.schema.js +7 -0
  141. package/build/schemas/pre-order-product/set-pre-order-product-quantity-webshop-response.schema.js +9 -0
  142. package/build/schemas/pre-order-product/update-pre-order-product-webshop-request.schema.js +16 -0
  143. package/build/schemas/pre-order-product/update-pre-order-product-webshop-response.schema.js +9 -0
  144. package/build/schemas/pre-order-product/update-pre-order-product.schema.js +24 -0
  145. package/build/schemas/product/get-product-list-for-client-request.schema.js +28 -0
  146. package/build/schemas/product/get-product-list-for-client-response.schema.js +9 -0
  147. package/build/schemas/product/index.js +31 -0
  148. package/build/schemas/product/product-base.schema.js +38 -0
  149. package/build/schemas/product/product-catalog-name.schema.js +10 -0
  150. package/build/schemas/product/product-consignment-for-client.schema.js +8 -0
  151. package/build/schemas/product/product-discount-price-for-client.schema.js +8 -0
  152. package/build/schemas/product/product-extended-for-admin-with-statistic.schema.js +8 -0
  153. package/build/schemas/product/product-extended-for-admin.schema.js +9 -0
  154. package/build/schemas/product/product-extended-for-client.schema.js +31 -0
  155. package/build/schemas/product/product-extended.schema.js +15 -0
  156. package/build/schemas/product/product-for-client.schema.js +25 -0
  157. package/build/schemas/product/product-image-for-client.schema.js +7 -0
  158. package/build/schemas/product/product-list-extended-for-client.schema.js +9 -0
  159. package/build/schemas/product/product-list.schema.js +5 -7
  160. package/build/schemas/product/product.schema.js +12 -135
  161. package/build/schemas/transaction/get-transaction-list-for-client-request.schema.js +27 -0
  162. package/build/schemas/transaction/get-transaction-list-for-client-response.schema.js +9 -0
  163. package/build/schemas/transaction/index.js +23 -0
  164. package/build/schemas/transaction/transaction-base.schema.js +24 -0
  165. package/build/schemas/transaction/transaction-extended-for-client-list.schema.js +9 -0
  166. package/build/schemas/transaction/transaction-extended-for-client.schema.js +12 -0
  167. package/build/schemas/transaction/transaction-extended.schema.js +12 -0
  168. package/build/schemas/transaction/transaction-for-client.schema.js +19 -0
  169. package/build/schemas/transaction/transaction-list.schema.js +5 -6
  170. package/build/schemas/transaction/transaction.schema.js +7 -35
  171. package/build/schemas/user/index.js +19 -0
  172. package/build/schemas/user/user-contact-for-client.schema.js +10 -0
  173. package/build/schemas/user/user-name.schema.js +6 -0
  174. package/build/schemas/write-off/create-write-off-from-order-for-client-request.schema.js +11 -0
  175. package/build/schemas/write-off/create-write-off-from-order-for-client-response.schema.js +9 -0
  176. package/build/schemas/write-off/get-write-off-list-by-order-for-client-request.schema.js +5 -0
  177. package/build/schemas/write-off/get-write-off-list-by-order-for-client-response.schema.js +9 -0
  178. package/build/schemas/write-off/index.js +27 -0
  179. package/build/schemas/write-off/write-off-for-client.schema.js +26 -0
  180. package/build/schemas/write-off/write-off-order-product-for-client.schema.js +8 -0
  181. package/build/schemas/write-off/write-off.schema.js +8 -8
  182. package/commands/client/index.ts +1 -0
  183. package/commands/client/webshop/get-client-me-webshop.query.ts +7 -0
  184. package/commands/client/webshop/register-client-webshop.command.ts +1 -16
  185. package/commands/client/webshop/update-client-for-client.command.ts +1 -14
  186. package/commands/discount-rules/get-product-discount-price.query.ts +1 -69
  187. package/commands/order/webshop/create-cart.command.ts +1 -8
  188. package/commands/order/webshop/get-order-for-client.query.ts +1 -8
  189. package/commands/order/webshop/get-order-list-for-client.query.ts +1 -49
  190. package/commands/order/webshop/update-cart.command.ts +1 -25
  191. package/commands/order-product/webshop/get-order-product-for-client-list.query.ts +1 -8
  192. package/commands/pre-order/webshop/get-pre-order-list-webshop.command.ts +1 -21
  193. package/commands/pre-order/webshop/get-pre-order-list-webshop.query.ts +10 -0
  194. package/commands/pre-order/webshop/get-pre-order-webshop.query.ts +7 -0
  195. package/commands/pre-order/webshop/index.ts +2 -1
  196. package/commands/pre-order-collection-item/delete-group-pre-order-collection-item.command.ts +1 -12
  197. package/commands/pre-order-collection-item/get-pre-order-collection-item-grouped-list-for-client.query.ts +5 -19
  198. package/commands/pre-order-collection-item/get-pre-order-collection-item-list-for-client.query.ts +5 -19
  199. package/commands/pre-order-product/create-pre-order-product-webshop.command.ts +2 -7
  200. package/commands/pre-order-product/get-pre-order-product-extended-list-webshop.query.ts +10 -0
  201. package/commands/pre-order-product/index.ts +1 -0
  202. package/commands/pre-order-product/update-pre-order-product-webshop.command.ts +2 -7
  203. package/commands/product/webshop/get-product-list-for-client.query.ts +1 -31
  204. package/commands/transaction/webshop/get-transaction-list-for-client.query.ts +1 -33
  205. package/commands/write-off/webshop/create-write-off-from-order-for-client.command.ts +1 -14
  206. package/commands/write-off/webshop/get-write-off-list-by-order.query.ts +1 -8
  207. package/constant/error.ts +13 -0
  208. package/package.json +1 -1
  209. package/schemas/category/category-name.schema.ts +4 -0
  210. package/schemas/category/index.ts +7 -0
  211. package/schemas/client/client-base.schema.ts +38 -0
  212. package/schemas/client/client-extended-for-client.schema.ts +15 -0
  213. package/schemas/client/client-extended-list.schema.ts +7 -0
  214. package/schemas/client/client-extended.schema.ts +20 -0
  215. package/schemas/client/client-for-client.schema.ts +28 -0
  216. package/schemas/client/client-name.schema.ts +4 -0
  217. package/schemas/client/client.schema.ts +3 -62
  218. package/schemas/client/get-client-me-webshop-response.schema.ts +7 -0
  219. package/schemas/client/index.ts +10 -0
  220. package/schemas/client/register-client-webshop-request.schema.ts +11 -0
  221. package/schemas/client/register-client-webshop-response.schema.ts +7 -0
  222. package/schemas/client/update-client-for-client-request.schema.ts +9 -0
  223. package/schemas/client/update-client-for-client-response.schema.ts +7 -0
  224. package/schemas/consignment/consignment-distribution-validation.schema.ts +2 -2
  225. package/schemas/consignment/consignment.schema.ts +1 -1
  226. package/schemas/discount-rules/discount-rules-data-for-client.schema.ts +6 -0
  227. package/schemas/discount-rules/discount-rules-for-client.schema.ts +9 -0
  228. package/schemas/discount-rules/discount-rules.schema.ts +2 -2
  229. package/schemas/discount-rules/get-product-discount-price-request.schema.ts +8 -0
  230. package/schemas/discount-rules/get-product-discount-price-response.schema.ts +15 -0
  231. package/schemas/discount-rules/index.ts +8 -0
  232. package/schemas/discount-rules/product-discount-price-data.schema.ts +16 -0
  233. package/schemas/discount-rules/product-discount-price-item.schema.ts +20 -0
  234. package/schemas/discount-rules/product-discount-price-multiplicity-option.schema.ts +23 -0
  235. package/schemas/index.ts +15 -41
  236. package/schemas/money-account/index.ts +3 -0
  237. package/schemas/money-account/money-account-name.schema.ts +4 -0
  238. package/schemas/order/create-cart-request.schema.ts +3 -0
  239. package/schemas/order/create-cart-response.schema.ts +7 -0
  240. package/schemas/order/get-order-for-client-list-request.schema.ts +41 -0
  241. package/schemas/order/get-order-for-client-list-response.schema.ts +7 -0
  242. package/schemas/order/get-order-for-client-request.schema.ts +3 -0
  243. package/schemas/order/get-order-for-client-response.schema.ts +7 -0
  244. package/schemas/order/index.ts +14 -0
  245. package/schemas/order/order-base.schema.ts +54 -0
  246. package/schemas/order/order-extended-for-client-list.schema.ts +7 -0
  247. package/schemas/order/order-extended-for-client.schema.ts +17 -0
  248. package/schemas/order/order-extended.schema.ts +17 -0
  249. package/schemas/order/order-for-client.schema.ts +34 -0
  250. package/schemas/order/order.schema.ts +4 -90
  251. package/schemas/order/update-cart-delivery-request.schema.ts +8 -0
  252. package/schemas/order/update-cart-request.schema.ts +13 -0
  253. package/schemas/order/update-cart-response.schema.ts +7 -0
  254. package/schemas/order-product/active-stepper-positions-for-order-response.schema.ts +6 -0
  255. package/schemas/order-product/get-order-product-for-client-list-request.schema.ts +3 -0
  256. package/schemas/order-product/get-order-product-for-client-list-response.schema.ts +7 -0
  257. package/schemas/order-product/index.ts +11 -0
  258. package/schemas/order-product/order-product-base.schema.ts +30 -0
  259. package/schemas/order-product/order-product-extended-for-client-list.schema.ts +7 -0
  260. package/schemas/order-product/order-product-extended-for-client.schema.ts +8 -0
  261. package/schemas/order-product/order-product-extended.schema.ts +10 -0
  262. package/schemas/order-product/order-product-for-client.schema.ts +18 -0
  263. package/schemas/order-product/order-product-for-distribute.schema.ts +13 -0
  264. package/schemas/order-product/order-product-list.schema.ts +5 -6
  265. package/schemas/order-product/order-product-stepper-position.schema.ts +11 -0
  266. package/schemas/order-product/order-product.schema.ts +12 -83
  267. package/schemas/order-product/set-order-product-quantity-webshop-request.schema.ts +5 -0
  268. package/schemas/order-product/set-order-product-quantity-webshop-response.schema.ts +7 -0
  269. package/schemas/pagination-request.schema.ts +7 -0
  270. package/schemas/pre-order/get-pre-order-list-webshop-request.schema.ts +8 -0
  271. package/schemas/pre-order/get-pre-order-list-webshop-response.schema.ts +6 -0
  272. package/schemas/pre-order/get-pre-order-webshop-response.schema.ts +6 -0
  273. package/schemas/pre-order/index.ts +9 -0
  274. package/schemas/pre-order/pre-order-copy.schema.ts +2 -2
  275. package/schemas/pre-order/pre-order-extended-for-client-list.schema.ts +7 -0
  276. package/schemas/pre-order/pre-order-extended-for-client.schema.ts +13 -0
  277. package/schemas/pre-order/pre-order-for-client.schema.ts +13 -0
  278. package/schemas/pre-order/pre-order-summary.schema.ts +3 -0
  279. package/schemas/pre-order/pre-order.schema.ts +1 -1
  280. package/schemas/pre-order-collection/index.ts +2 -0
  281. package/schemas/pre-order-collection/pre-order-collection-summary-for-client.schema.ts +8 -0
  282. package/schemas/pre-order-collection-item/create-pre-order-collection-item.schema.ts +30 -0
  283. package/schemas/pre-order-collection-item/delete-group-pre-order-collection-item-request.schema.ts +5 -0
  284. package/schemas/pre-order-collection-item/delete-group-pre-order-collection-item-response.schema.ts +7 -0
  285. package/schemas/pre-order-collection-item/delete-group-pre-order-collection-item-result.schema.ts +6 -0
  286. package/schemas/pre-order-collection-item/get-pre-order-collection-item-grouped-list-for-client-response.schema.ts +7 -0
  287. package/schemas/pre-order-collection-item/get-pre-order-collection-item-list-for-client-response.schema.ts +7 -0
  288. package/schemas/pre-order-collection-item/index.ts +18 -0
  289. package/schemas/pre-order-collection-item/matching-product.schema.ts +11 -0
  290. package/schemas/pre-order-collection-item/pre-order-collection-item-base.schema.ts +34 -0
  291. package/schemas/pre-order-collection-item/pre-order-collection-item-catalog-filter-for-client-request.schema.ts +13 -0
  292. package/schemas/pre-order-collection-item/pre-order-collection-item-catalog-for-client-list.schema.ts +7 -0
  293. package/schemas/pre-order-collection-item/pre-order-collection-item-catalog-for-client.schema.ts +9 -0
  294. package/schemas/pre-order-collection-item/pre-order-collection-item-catalog-grouped-for-client-list.schema.ts +7 -0
  295. package/schemas/pre-order-collection-item/pre-order-collection-item-catalog-grouped-for-client.schema.ts +7 -0
  296. package/schemas/pre-order-collection-item/pre-order-collection-item-category.schema.ts +9 -0
  297. package/schemas/pre-order-collection-item/pre-order-collection-item-client-pre-order-product.schema.ts +11 -0
  298. package/schemas/pre-order-collection-item/pre-order-collection-item-extended-list.schema.ts +7 -0
  299. package/schemas/pre-order-collection-item/pre-order-collection-item-extended-with-clients-pre-order-product-list.schema.ts +7 -0
  300. package/schemas/pre-order-collection-item/pre-order-collection-item-extended-with-clients-pre-order-product.schema.ts +6 -0
  301. package/schemas/pre-order-collection-item/pre-order-collection-item-extended.schema.ts +16 -0
  302. package/schemas/pre-order-collection-item/pre-order-collection-item-for-client.schema.ts +32 -0
  303. package/schemas/pre-order-collection-item/pre-order-collection-item-image.schema.ts +5 -0
  304. package/schemas/pre-order-collection-item/pre-order-collection-item.schema.ts +25 -162
  305. package/schemas/pre-order-collection-item/update-pre-order-collection-item.schema.ts +33 -0
  306. package/schemas/pre-order-product/active-stepper-positions-response.schema.ts +6 -0
  307. package/schemas/pre-order-product/create-pre-order-product-webshop-request.schema.ts +14 -0
  308. package/schemas/pre-order-product/create-pre-order-product-webshop-response.schema.ts +7 -0
  309. package/schemas/pre-order-product/create-pre-order-product.schema.ts +16 -0
  310. package/schemas/pre-order-product/get-pre-order-product-extended-list-webshop-response.schema.ts +7 -0
  311. package/schemas/pre-order-product/index.ts +9 -0
  312. package/schemas/pre-order-product/matching-config.schema.ts +10 -0
  313. package/schemas/pre-order-product/pre-order-product-base.schema.ts +25 -0
  314. package/schemas/pre-order-product/pre-order-product-extended-for-client-list.schema.ts +7 -0
  315. package/schemas/pre-order-product/pre-order-product-extended-for-client.schema.ts +13 -0
  316. package/schemas/pre-order-product/pre-order-product-extended-list.schema.ts +7 -0
  317. package/schemas/pre-order-product/pre-order-product-extended.schema.ts +12 -0
  318. package/schemas/pre-order-product/pre-order-product-for-client.schema.ts +22 -0
  319. package/schemas/pre-order-product/pre-order-product-list.schema.ts +7 -0
  320. package/schemas/pre-order-product/pre-order-product-stepper-position.schema.ts +12 -0
  321. package/schemas/pre-order-product/pre-order-product.schema.ts +19 -138
  322. package/schemas/pre-order-product/set-pre-order-product-quantity-webshop-request.schema.ts +5 -0
  323. package/schemas/pre-order-product/set-pre-order-product-quantity-webshop-response.schema.ts +7 -0
  324. package/schemas/pre-order-product/update-pre-order-product-webshop-request.schema.ts +14 -0
  325. package/schemas/pre-order-product/update-pre-order-product-webshop-response.schema.ts +7 -0
  326. package/schemas/pre-order-product/update-pre-order-product.schema.ts +22 -0
  327. package/schemas/product/get-product-list-for-client-request.schema.ts +26 -0
  328. package/schemas/product/get-product-list-for-client-response.schema.ts +7 -0
  329. package/schemas/product/index.ts +15 -0
  330. package/schemas/product/product-base.schema.ts +39 -0
  331. package/schemas/product/product-catalog-name.schema.ts +8 -0
  332. package/schemas/product/product-consignment-for-client.schema.ts +6 -0
  333. package/schemas/product/product-discount-price-for-client.schema.ts +6 -0
  334. package/schemas/product/product-extended-for-admin-with-statistic.schema.ts +8 -0
  335. package/schemas/product/product-extended-for-admin.schema.ts +9 -0
  336. package/schemas/product/product-extended-for-client.schema.ts +31 -0
  337. package/schemas/product/product-extended.schema.ts +15 -0
  338. package/schemas/product/product-for-client.schema.ts +23 -0
  339. package/schemas/product/product-image-for-client.schema.ts +5 -0
  340. package/schemas/product/product-list-extended-for-client.schema.ts +7 -0
  341. package/schemas/product/product-list.schema.ts +2 -6
  342. package/schemas/product/product.schema.ts +6 -152
  343. package/schemas/transaction/get-transaction-list-for-client-request.schema.ts +28 -0
  344. package/schemas/transaction/get-transaction-list-for-client-response.schema.ts +7 -0
  345. package/schemas/transaction/index.ts +7 -0
  346. package/schemas/transaction/transaction-base.schema.ts +27 -0
  347. package/schemas/transaction/transaction-extended-for-client-list.schema.ts +7 -0
  348. package/schemas/transaction/transaction-extended-for-client.schema.ts +10 -0
  349. package/schemas/transaction/transaction-extended.schema.ts +10 -0
  350. package/schemas/transaction/transaction-for-client.schema.ts +17 -0
  351. package/schemas/transaction/transaction-list.schema.ts +5 -6
  352. package/schemas/transaction/transaction.schema.ts +6 -43
  353. package/schemas/user/index.ts +3 -0
  354. package/schemas/user/user-contact-for-client.schema.ts +8 -0
  355. package/schemas/user/user-name.schema.ts +4 -0
  356. package/schemas/write-off/create-write-off-from-order-for-client-request.schema.ts +9 -0
  357. package/schemas/write-off/create-write-off-from-order-for-client-response.schema.ts +7 -0
  358. package/schemas/write-off/get-write-off-list-by-order-for-client-request.schema.ts +3 -0
  359. package/schemas/write-off/get-write-off-list-by-order-for-client-response.schema.ts +7 -0
  360. package/schemas/write-off/index.ts +11 -0
  361. package/schemas/write-off/write-off-for-client.schema.ts +26 -0
  362. package/schemas/write-off/write-off-order-product-for-client.schema.ts +6 -0
  363. package/schemas/write-off/write-off.schema.ts +4 -4
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ import { MoneySchema } from '../money.schema';
3
+
4
+ export const PreOrderProductForClientSchema = z.object({
5
+ uuid: z.string(),
6
+ preOrderCollectionItemUUID: z.string().nullable(),
7
+ preOrderUUID: z.string(),
8
+ multiplicityOptionUUID: z.uuid().nullable().optional(),
9
+ quantity: z.number(),
10
+ comment: z.string().nullable(),
11
+ tag: z.string().nullable(),
12
+ isReplaceable: z.boolean(),
13
+ stopPrice: MoneySchema.nullable(),
14
+ highAttention: z.boolean(),
15
+ categoryUUID: z.string().nullable(),
16
+ name: z.string().nullable(),
17
+ grower: z.string().nullable(),
18
+ size: z.string().nullable(),
19
+ price: MoneySchema.nullable(),
20
+ color: z.string().nullable(),
21
+ parentPreOrderProductUUID: z.string().nullable(),
22
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { PreOrderProductSchema } from './pre-order-product-base.schema';
3
+
4
+ export const PreOrderProductListSchema = z.object({
5
+ list: PreOrderProductSchema.array(),
6
+ total: z.number(),
7
+ });
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+
3
+ export const PreOrderProductStepperPositionSchema = z.object({
4
+ uuid: z.string(),
5
+ preOrderUUID: z.string(),
6
+ preOrderCollectionUUID: z.string().nullable(),
7
+ preOrderCollectionItemUUID: z.string().nullable(),
8
+ multiplicityOptionUUID: z.string().nullable().optional(),
9
+ multiplicityOptionTitle: z.string().nullable().optional(),
10
+ quantity: z.number(),
11
+ balance: z.number().nullable(),
12
+ });
@@ -1,138 +1,19 @@
1
- import { z } from 'zod';
2
- import { PreOrderCollectionItemExtendedSchema } from '../pre-order-collection-item/pre-order-collection-item.schema';
3
- import { CategorySchema } from '../category/category.schema';
4
- import { PreOrderCollectionItemMultiplicityOptionSchema } from '../pre-order-collection-item/pre-order-collection-item-multiplicity-option.schema';
5
- import { MoneySchema } from '../money.schema';
6
-
7
- export const MatchingConfigSchema = z.object({
8
- matchByName: z.coerce.boolean(),
9
- matchByCategory: z.coerce.boolean(),
10
- matchByColor: z.coerce.boolean(),
11
- matchBySize: z.coerce.boolean(),
12
- matchByGrower: z.coerce.boolean(),
13
- usePreOrderMultiplicity: z.coerce.boolean().optional(),
14
- });
15
-
16
- export const PreOrderProductSchema = z.object({
17
- uuid: z.string(),
18
- preOrderCollectionItemUUID: z.string().nullable(),
19
- preOrderUUID: z.string(),
20
- multiplicityOptionUUID: z.uuid().nullable().optional(),
21
- quantity: z.number(),
22
- comment: z.string().nullable(),
23
- tag: z.string().nullable(),
24
- isPurchased: z.boolean(),
25
- isReplaceable: z.boolean(),
26
- stopPrice: MoneySchema.nullable(),
27
- highAttention: z.boolean(),
28
- categoryUUID: z.string().nullable(),
29
- name: z.string().nullable(),
30
- grower: z.string().nullable(),
31
- size: z.string().nullable(),
32
- price: MoneySchema.nullable(),
33
- color: z.string().nullable(),
34
- parentPreOrderProductUUID: z.string().nullable(),
35
- matchingConfig: MatchingConfigSchema.optional().nullable(),
36
- });
37
-
38
- export const PreOrderProductExtendedSchema = PreOrderProductSchema.extend({
39
- preOrderCollectionItem: PreOrderCollectionItemExtendedSchema,
40
- category: CategorySchema.nullable(),
41
- deliveryDate: z.coerce.date().nullable(),
42
- multiplicityOption: PreOrderCollectionItemMultiplicityOptionSchema.nullable().optional(),
43
- });
44
-
45
- export const CreatePreOrderProductSchema = PreOrderProductSchema.omit({ uuid: true, preOrderUUID: true }).extend({
46
- multiplicityOptionUUID: z.uuid().nullable().optional(),
47
- categoryUUID: z.string().nullable().optional(),
48
- name: z.string().nullable().optional(),
49
- grower: z.string().nullable().optional(),
50
- size: z.string().nullable().optional(),
51
- price: MoneySchema.nullable().optional(),
52
- color: z.string().nullable().optional(),
53
- parentPreOrderProductUUID: z.string().nullable().optional(),
54
- matchingConfig: MatchingConfigSchema.optional().nullable(),
55
- });
56
-
57
- export const UpdatePreOrderProductSchema = PreOrderProductSchema.omit({
58
- uuid: true,
59
- preOrderUUID: true,
60
- })
61
- .extend({
62
- multiplicityOptionUUID: z.uuid().nullable().optional(),
63
- categoryUUID: z.string().nullable().optional(),
64
- name: z.string().nullable().optional(),
65
- grower: z.string().nullable().optional(),
66
- size: z.string().nullable().optional(),
67
- price: MoneySchema.nullable().optional(),
68
- color: z.string().nullable().optional(),
69
- parentPreOrderProductUUID: z.string().nullable().optional(),
70
- matchingConfig: MatchingConfigSchema.optional().nullable(),
71
- imageUUID: z.string().uuid().nullable().optional(),
72
- })
73
- .partial();
74
-
75
- export const CreatePreOrderProductWebshopSchema = PreOrderProductSchema.omit({
76
- uuid: true,
77
- tag: true,
78
- isPurchased: true,
79
- categoryUUID: true,
80
- name: true,
81
- grower: true,
82
- size: true,
83
- price: true,
84
- color: true,
85
- parentPreOrderProductUUID: true,
86
- matchingConfig: true,
87
- });
88
-
89
- export const UpdatePreOrderProductWebshopSchema = PreOrderProductSchema.omit({
90
- uuid: true,
91
- tag: true,
92
- isPurchased: true,
93
- preOrderUUID: true,
94
- preOrderCollectionItemUUID: true,
95
- categoryUUID: true,
96
- name: true,
97
- grower: true,
98
- size: true,
99
- price: true,
100
- color: true,
101
- parentPreOrderProductUUID: true,
102
- matchingConfig: true,
103
- }).partial();
104
-
105
- export const PreOrderProductListSchema = z.object({
106
- list: PreOrderProductSchema.array(),
107
- total: z.number(),
108
- });
109
-
110
- export const preOrderProductExtendedListSchema = z.object({
111
- list: PreOrderProductExtendedSchema.array(),
112
- total: z.number(),
113
- });
114
-
115
- export const PreOrderProductStepperPositionSchema = z.object({
116
- uuid: z.string(),
117
- preOrderUUID: z.string(),
118
- preOrderCollectionUUID: z.string().nullable(),
119
- preOrderCollectionItemUUID: z.string().nullable(),
120
- multiplicityOptionUUID: z.string().nullable().optional(),
121
- multiplicityOptionTitle: z.string().nullable().optional(),
122
- quantity: z.number(),
123
- balance: z.number().nullable(),
124
- });
125
-
126
- export const ActiveStepperPositionsResponseSchema = z.object({
127
- list: PreOrderProductStepperPositionSchema.array(),
128
- });
129
-
130
- export const SetPreOrderProductQuantityWebshopRequestSchema = z.object({
131
- quantity: z.number().int().min(0),
132
- });
133
-
134
- export const SetPreOrderProductQuantityWebshopResponseSchema = z.object({
135
- uuid: z.string().optional(),
136
- quantity: z.number().optional(),
137
- deleted: z.boolean().optional(),
138
- });
1
+ export { MatchingConfigSchema } from './matching-config.schema';
2
+ export { PreOrderProductSchema } from './pre-order-product-base.schema';
3
+ export { PreOrderProductExtendedSchema } from './pre-order-product-extended.schema';
4
+ export { CreatePreOrderProductSchema } from './create-pre-order-product.schema';
5
+ export { UpdatePreOrderProductSchema } from './update-pre-order-product.schema';
6
+ export { PreOrderProductListSchema } from './pre-order-product-list.schema';
7
+ export { preOrderProductExtendedListSchema } from './pre-order-product-extended-list.schema';
8
+ export { PreOrderProductStepperPositionSchema } from './pre-order-product-stepper-position.schema';
9
+ export { ActiveStepperPositionsResponseSchema } from './active-stepper-positions-response.schema';
10
+ export { SetPreOrderProductQuantityWebshopRequestSchema } from './set-pre-order-product-quantity-webshop-request.schema';
11
+ export { SetPreOrderProductQuantityWebshopResponseSchema } from './set-pre-order-product-quantity-webshop-response.schema';
12
+ export {
13
+ /** @deprecated Используйте CreatePreOrderProductWebshopRequestSchema. */
14
+ CreatePreOrderProductWebshopRequestSchema as CreatePreOrderProductWebshopSchema,
15
+ } from './create-pre-order-product-webshop-request.schema';
16
+ export {
17
+ /** @deprecated Используйте UpdatePreOrderProductWebshopRequestSchema. */
18
+ UpdatePreOrderProductWebshopRequestSchema as UpdatePreOrderProductWebshopSchema,
19
+ } from './update-pre-order-product-webshop-request.schema';
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+
3
+ export const SetPreOrderProductQuantityWebshopRequestSchema = z.object({
4
+ quantity: z.number().int().min(0),
5
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+
3
+ export const SetPreOrderProductQuantityWebshopResponseSchema = z.object({
4
+ uuid: z.string().optional(),
5
+ quantity: z.number().optional(),
6
+ deleted: z.boolean().optional(),
7
+ });
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import { MoneySchema } from '../money.schema';
3
+
4
+ // Правка позиции предзаказа с витрины — без привязки к предзаказу и коллекции.
5
+ export const UpdatePreOrderProductWebshopRequestSchema = z
6
+ .object({
7
+ multiplicityOptionUUID: z.uuid().nullable().optional(),
8
+ quantity: z.number().int().positive(),
9
+ comment: z.string().nullable(),
10
+ isReplaceable: z.boolean(),
11
+ stopPrice: MoneySchema.nullable(),
12
+ highAttention: z.boolean(),
13
+ })
14
+ .partial();
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { PreOrderProductForClientSchema } from './pre-order-product-for-client.schema';
3
+
4
+ export const UpdatePreOrderProductWebshopResponseSchema = z.object({
5
+ message: z.string().optional(),
6
+ data: PreOrderProductForClientSchema,
7
+ });
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ import { MoneySchema } from '../money.schema';
3
+ import { MatchingConfigSchema } from './matching-config.schema';
4
+ import { PreOrderProductSchema } from './pre-order-product-base.schema';
5
+
6
+ export const UpdatePreOrderProductSchema = PreOrderProductSchema.omit({
7
+ uuid: true,
8
+ preOrderUUID: true,
9
+ })
10
+ .extend({
11
+ multiplicityOptionUUID: z.uuid().nullable().optional(),
12
+ categoryUUID: z.string().nullable().optional(),
13
+ name: z.string().nullable().optional(),
14
+ grower: z.string().nullable().optional(),
15
+ size: z.string().nullable().optional(),
16
+ price: MoneySchema.nullable().optional(),
17
+ color: z.string().nullable().optional(),
18
+ parentPreOrderProductUUID: z.string().nullable().optional(),
19
+ matchingConfig: MatchingConfigSchema.optional().nullable(),
20
+ imageUUID: z.string().uuid().nullable().optional(),
21
+ })
22
+ .partial();
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ import { OrderByEnum, ProductClientSortByEnum, ProductMarkEnum } from '../../enum';
3
+
4
+ export const GetProductListForClientRequestSchema = z.object({
5
+ page: z.string().transform(val => Number(val) || 1),
6
+ count: z.string().transform(val => Number(val) || 10),
7
+ stock: z
8
+ .string()
9
+ .transform(val => (val === 'true' ? true : val === 'false' ? false : undefined))
10
+ .optional(),
11
+ deliveryDates: z.coerce.date().array().optional(),
12
+ sizes: z.string().array().optional(),
13
+ colors: z.string().array().optional(),
14
+ growers: z.string().array().optional(),
15
+ countries: z.string().array().optional(),
16
+ categoryUUID: z.string().optional(),
17
+ typeUUID: z.string().optional(),
18
+ searchQuery: z.string().optional(),
19
+ marks: z.nativeEnum(ProductMarkEnum).array().optional(),
20
+ // Без `sortBy` порядок остаётся прежним — по категории, названию и размеру. Сортировка по цене
21
+ // идёт по базовому прайсу, скидки клиента её не двигают: см. ProductClientSortByEnum.
22
+ sortBy: z.nativeEnum(ProductClientSortByEnum).optional(),
23
+ // Без `.default()`: он уезжает в `_output`, а значит и в опубликованный `Request`, делая поле
24
+ // обязательным для клиентов. Отсутствующее направление билдер и так читает как ASC.
25
+ sortOrder: z.nativeEnum(OrderByEnum).optional(),
26
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { ProductListExtendedForClientSchema } from './product-list-extended-for-client.schema';
3
+
4
+ export const GetProductListForClientResponseSchema = z.object({
5
+ message: z.string().optional(),
6
+ data: ProductListExtendedForClientSchema,
7
+ });
@@ -0,0 +1,15 @@
1
+ export * from './product-discount-price-for-client.schema';
2
+ export * from './product.schema';
3
+ export * from './product-list.schema';
4
+ export * from './get-product-list-request.schema';
5
+ export * from './get-product-list-response.schema';
6
+ export * from './export-stock-products-request.schema';
7
+ export * from './export-stock-products-response.schema';
8
+ export * from './product-multiplicity-option.schema';
9
+ export * from './product-multiplicity-option-for-client.schema';
10
+ export * from './product-list-extended-for-client.schema';
11
+ export * from './get-product-list-for-client-request.schema';
12
+ export * from './get-product-list-for-client-response.schema';
13
+ export * from './product-catalog-name.schema';
14
+ export * from './product-image-for-client.schema';
15
+ export * from './product-consignment-for-client.schema';
@@ -0,0 +1,39 @@
1
+ import { z } from 'zod';
2
+ import { ProductMarkEnum, SalesUnitEnum } from '../../enum';
3
+ import { MoneySchema } from '../money.schema';
4
+
5
+ export const ProductSchema = z.object({
6
+ uuid: z.uuid(),
7
+ consignmentUUID: z.uuid(),
8
+ categoryUUID: z.uuid().nullable(),
9
+ name: z.string(),
10
+
11
+ balance: z.number(),
12
+ quantity: z.number(),
13
+ price: MoneySchema,
14
+ costPrice: MoneySchema,
15
+ multiplicity: z.number(),
16
+ isOpen: z.boolean(),
17
+
18
+ article: z.string().nullable(),
19
+ vbn: z.string().nullable(),
20
+ barcode: z.string().nullable(),
21
+ color: z.string().nullable(),
22
+ size: z.string().nullable(),
23
+ size2: z.string().nullable(),
24
+ size3: z.string().nullable(),
25
+ invoicePrice: MoneySchema.nullable(),
26
+ invoiceNumber: z.string().nullable(),
27
+ imageUUID: z.string().nullable(),
28
+ country: z.string().nullable(),
29
+ description: z.string().nullable(),
30
+ quality: z.string().nullable(),
31
+ grower: z.string().nullable(),
32
+ vat: z.number().nullable(),
33
+ multiplicityDescription: z.string().nullable(),
34
+ salesUnit: z.nativeEnum(SalesUnitEnum).nullable(),
35
+ marks: z.array(z.nativeEnum(ProductMarkEnum)),
36
+
37
+ createdAt: z.date(),
38
+ updatedAt: z.date(),
39
+ });
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { LocalizedNameSchema } from '../i18n/localized-name.schema';
3
+
4
+ export const ProductCatalogNameSchema = z.object({
5
+ uuid: z.string(),
6
+ name: z.string(),
7
+ nameTranslations: LocalizedNameSchema,
8
+ });
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+
3
+ export const ProductConsignmentForClientSchema = z.object({
4
+ deliveryDate: z.date(),
5
+ isInStock: z.boolean(),
6
+ });
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import { MoneySchema } from '../money.schema';
3
+
4
+ export const ProductDiscountPriceForClientSchema = z.object({
5
+ priceWithDiscount: MoneySchema,
6
+ });
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { ProductExtendedForAdminSchema } from './product-extended-for-admin.schema';
3
+
4
+ export const ProductExtendedForAdminWithStatistic = ProductExtendedForAdminSchema.merge(
5
+ z.object({
6
+ writeOffQuantity: z.number(),
7
+ }),
8
+ );
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import { ConsignmentSchema } from '../consignment/consignment.schema';
3
+ import { ProductExtendedSchema } from './product-extended.schema';
4
+
5
+ export const ProductExtendedForAdminSchema = ProductExtendedSchema.merge(
6
+ z.object({
7
+ consignment: ConsignmentSchema,
8
+ }),
9
+ );
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ import { ProductCatalogNameSchema } from './product-catalog-name.schema';
3
+ import { ProductImageForClientSchema } from './product-image-for-client.schema';
4
+ import { ProductConsignmentForClientSchema } from './product-consignment-for-client.schema';
5
+ import { ProductMultiplicityOptionForClientSchema } from './product-multiplicity-option-for-client.schema';
6
+ import { ProductDiscountPriceForClientSchema } from './product-discount-price-for-client.schema';
7
+ import { MoneySchema } from '../money.schema';
8
+ import { ProductForClientSchema } from './product-for-client.schema';
9
+
10
+ export const ProductExtendedForClientSchema = ProductForClientSchema.merge(
11
+ z.object({
12
+ category: ProductCatalogNameSchema.nullable(),
13
+ type: ProductCatalogNameSchema.nullable(),
14
+ image: ProductImageForClientSchema.nullable(),
15
+ consignment: ProductConsignmentForClientSchema,
16
+ multiplicityOptions: z.array(ProductMultiplicityOptionForClientSchema).optional(),
17
+ /**
18
+ * Сохранён для совместимости и содержит только цену, без данных правил.
19
+ * @deprecated Используйте priceWithBestDiscount.
20
+ */
21
+ discountDataList: ProductDiscountPriceForClientSchema.array().optional(),
22
+ /**
23
+ * Лучшая цена базового тарифа после скидки. `null` — скидка неприменима.
24
+ *
25
+ * Отдельное поле, потому что «лучшая» — это выбор, а не порядок: раньше клиент брал
26
+ * `discountDataList[0]`, полагаясь на сортировку бэка, которая нигде не зафиксирована.
27
+ * Выбор делает бэк.
28
+ */
29
+ priceWithBestDiscount: MoneySchema.nullable().optional(),
30
+ }),
31
+ );
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ import { ProductImageSchema } from '../product-image/product-image.schema';
3
+ import { CategorySchema } from '../category/category.schema';
4
+ import { TypeSchema } from '../type/type.schema';
5
+ import { ProductMultiplicityOptionSchema } from './product-multiplicity-option.schema';
6
+ import { ProductSchema } from './product-base.schema';
7
+
8
+ export const ProductExtendedSchema = ProductSchema.merge(
9
+ z.object({
10
+ category: CategorySchema.nullable(),
11
+ type: TypeSchema.nullable(),
12
+ image: ProductImageSchema.nullable(),
13
+ multiplicityOptions: z.array(ProductMultiplicityOptionSchema).optional(),
14
+ }),
15
+ );
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ import { ProductMarkEnum, SalesUnitEnum } from '../../enum';
3
+ import { MoneySchema } from '../money.schema';
4
+
5
+ export const ProductForClientSchema = z.object({
6
+ uuid: z.uuid(),
7
+ name: z.string(),
8
+ balance: z.number(),
9
+ price: MoneySchema,
10
+ multiplicity: z.number(),
11
+ article: z.string().nullable(),
12
+ barcode: z.string().nullable(),
13
+ color: z.string().nullable(),
14
+ size: z.string().nullable(),
15
+ size2: z.string().nullable(),
16
+ size3: z.string().nullable(),
17
+ country: z.string().nullable(),
18
+ description: z.string().nullable(),
19
+ grower: z.string().nullable(),
20
+ multiplicityDescription: z.string().nullable(),
21
+ salesUnit: z.nativeEnum(SalesUnitEnum).nullable(),
22
+ marks: z.array(z.nativeEnum(ProductMarkEnum)),
23
+ });
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+
3
+ export const ProductImageForClientSchema = z.object({
4
+ productImageUrl: z.string(),
5
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { ProductExtendedForClientSchema } from './product-extended-for-client.schema';
3
+
4
+ export const ProductListExtendedForClientSchema = z.object({
5
+ productList: ProductExtendedForClientSchema.array(),
6
+ total: z.number(),
7
+ });
@@ -1,12 +1,8 @@
1
1
  import { z } from 'zod';
2
- import { ProductExtendedForClientSchema, ProductExtendedForAdminWithStatistic } from './product.schema';
3
-
4
- export const ProductListExtendedForClientSchema = z.object({
5
- productList: ProductExtendedForClientSchema.array(),
6
- total: z.number(),
7
- });
2
+ import { ProductExtendedForAdminWithStatistic } from './product-extended-for-admin-with-statistic.schema';
8
3
 
9
4
  export const ProductListSchema = z.object({
10
5
  productList: ProductExtendedForAdminWithStatistic.array(),
11
6
  total: z.number(),
12
7
  });
8
+ export { ProductListExtendedForClientSchema } from './product-list-extended-for-client.schema';