@floristcloud/api-lib 1.2.108 → 1.2.110

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 (173) hide show
  1. package/build/commands/client/get-client-calculate.query.js +6 -4
  2. package/build/commands/consignment/execute-consignment-product-update.command.js +5 -4
  3. package/build/commands/integration/moysklad/execute-moysklad-import.command.js +3 -2
  4. package/build/commands/integration/moysklad/preview-moysklad-products.query.js +3 -2
  5. package/build/commands/integration/moysklad/scan-moysklad-import.query.js +3 -2
  6. package/build/commands/order/create-order.command.js +2 -1
  7. package/build/commands/order/update-order.command.js +3 -2
  8. package/build/commands/order/webshop/get-order-sales-by-month.query.js +2 -1
  9. package/build/commands/order-product/create-order-product.command.js +2 -1
  10. package/build/commands/order-product/group/price-valuation-execute.command.js +3 -1
  11. package/build/commands/order-product/update-order-product.command.js +2 -1
  12. package/build/commands/payment-invoice/create-payment-invoice.command.js +3 -1
  13. package/build/commands/payment-invoice/pay-payment-invoice.command.js +3 -1
  14. package/build/commands/pre-order-collection-item/execute-pre-order-collection-item-update.command.js +3 -2
  15. package/build/commands/pre-order-collection-item/multiplicity-option/create-pre-order-collection-item-multiplicity-option.command.js +2 -1
  16. package/build/commands/pre-order-collection-item/multiplicity-option/update-pre-order-collection-item-multiplicity-option.command.js +2 -1
  17. package/build/commands/product/create-product.command.js +4 -3
  18. package/build/commands/product/group/update-group-product-prices.command.js +3 -2
  19. package/build/commands/product/group/update-group-product-update-batch.command.js +4 -3
  20. package/build/commands/product/multiplicity-option/create-product-multiplicity-option.command.js +2 -1
  21. package/build/commands/product/multiplicity-option/update-product-multiplicity-option.command.js +2 -1
  22. package/build/commands/product/update-product.command.js +4 -3
  23. package/build/commands/report/export-sales-by-client.query.js +3 -0
  24. package/build/commands/report/export-sales-by-position.query.js +3 -0
  25. package/build/commands/report/export-sales-revenue.query.js +3 -0
  26. package/build/commands/report/get-cash-flow.query.js +8 -5
  27. package/build/commands/report/get-daily-orders-summary.query.js +2 -1
  28. package/build/commands/report/get-report-for-period.query.js +10 -9
  29. package/build/commands/report/get-report-group-by-client.query.js +15 -10
  30. package/build/commands/report/get-report-group-by-position.query.js +15 -14
  31. package/build/commands/report/get-sales-by-client.query.js +3 -0
  32. package/build/commands/report/get-sales-summary.query.js +17 -11
  33. package/build/commands/transaction/generate-check-transaction.command.js +2 -1
  34. package/build/commands/transaction/generate-pre-payment-check.command.js +2 -1
  35. package/build/commands/transaction/get-sum-transaction-by-money-account.query.js +3 -1
  36. package/build/commands/transaction/get-transaction-summary.query.js +5 -3
  37. package/build/commands/write-off/get-write-off-sum-by-order.query.js +3 -1
  38. package/build/commands/write-off/update-write-off-price.command.js +2 -1
  39. package/build/constant/index.js +1 -0
  40. package/build/constant/report.constant.js +9 -0
  41. package/build/enum/index.js +1 -0
  42. package/build/enum/report-order-date-basis.enum.js +18 -0
  43. package/build/schemas/action-log/action-log-money.schema.js +28 -0
  44. package/build/schemas/action-log/index.js +1 -0
  45. package/build/schemas/action-log/order-info.schema.js +3 -2
  46. package/build/schemas/action-log/order-product-info.schema.js +2 -1
  47. package/build/schemas/action-log/order-product-update-action-log.schema.js +2 -1
  48. package/build/schemas/action-log/pre-order-product-info.schema.js +2 -1
  49. package/build/schemas/action-log/pre-order-product-update-action-log.schema.js +2 -1
  50. package/build/schemas/action-log/transaction-info.schema.js +2 -1
  51. package/build/schemas/bank-payment/bank-payment.schema.js +2 -1
  52. package/build/schemas/client/client-debt.schema.js +8 -5
  53. package/build/schemas/client/client.schema.js +2 -1
  54. package/build/schemas/consignment/consignment.schema.js +10 -9
  55. package/build/schemas/consignment-transfer/accept-consignment-transfer.schema.js +3 -1
  56. package/build/schemas/consignment-transfer/consignment-transfer-request-item.schema.js +2 -1
  57. package/build/schemas/delivery-route/delivery-route.schema.js +2 -1
  58. package/build/schemas/discount-rules/discount-rules.schema.js +9 -2
  59. package/build/schemas/index.js +4 -0
  60. package/build/schemas/money-account/money-account-with-balance.schema.js +2 -2
  61. package/build/schemas/money.schema.js +27 -0
  62. package/build/schemas/non-negative-money.schema.js +17 -0
  63. package/build/schemas/order/order.schema.js +10 -9
  64. package/build/schemas/order-product/order-product-multiplicity-optiom.schema.js +2 -1
  65. package/build/schemas/order-product/order-product.schema.js +5 -4
  66. package/build/schemas/order-product/price-correction-analyze-item.schema.js +10 -8
  67. package/build/schemas/order-product/price-correction-execute-result-item.schema.js +3 -2
  68. package/build/schemas/order-service-line/order-service-line.schema.js +12 -5
  69. package/build/schemas/payment-invoice/payment-invoice.schema.js +5 -4
  70. package/build/schemas/positive-money.schema.js +18 -0
  71. package/build/schemas/pre-order/pre-order.schema.js +2 -1
  72. package/build/schemas/pre-order-collection-item/pre-order-collection-item-multiplicity-option.schema.js +2 -1
  73. package/build/schemas/pre-order-collection-item/pre-order-collection-item.schema.js +4 -3
  74. package/build/schemas/pre-order-product/pre-order-product.schema.js +5 -4
  75. package/build/schemas/product/product-multiplicity-option.schema.js +2 -1
  76. package/build/schemas/product/product.schema.js +6 -5
  77. package/build/schemas/report/client-by-weeks.schema.js +2 -1
  78. package/build/schemas/report/client-statement.schema.js +2 -1
  79. package/build/schemas/report/inventory-turnover-category-item.schema.js +1 -1
  80. package/build/schemas/report/inventory-turnover-detailed-item.schema.js +1 -1
  81. package/build/schemas/report/report-order-filter.schema.js +28 -0
  82. package/build/schemas/report/sales-by-client-row.schema.js +9 -8
  83. package/build/schemas/report/sales-by-client-top-item.schema.js +2 -1
  84. package/build/schemas/service/service.schema.js +8 -3
  85. package/build/schemas/settings/settings.schema.js +6 -2
  86. package/build/schemas/transaction/transaction.schema.js +2 -1
  87. package/commands/client/get-client-calculate.query.ts +6 -4
  88. package/commands/consignment/execute-consignment-product-update.command.ts +5 -4
  89. package/commands/integration/moysklad/execute-moysklad-import.command.ts +3 -2
  90. package/commands/integration/moysklad/preview-moysklad-products.query.ts +3 -2
  91. package/commands/integration/moysklad/scan-moysklad-import.query.ts +3 -2
  92. package/commands/order/create-order.command.ts +2 -1
  93. package/commands/order/update-order.command.ts +3 -2
  94. package/commands/order/webshop/get-order-sales-by-month.query.ts +3 -1
  95. package/commands/order-product/create-order-product.command.ts +2 -1
  96. package/commands/order-product/group/price-valuation-execute.command.ts +4 -1
  97. package/commands/order-product/update-order-product.command.ts +2 -1
  98. package/commands/payment-invoice/create-payment-invoice.command.ts +4 -1
  99. package/commands/payment-invoice/pay-payment-invoice.command.ts +4 -1
  100. package/commands/pre-order-collection-item/execute-pre-order-collection-item-update.command.ts +3 -2
  101. package/commands/pre-order-collection-item/multiplicity-option/create-pre-order-collection-item-multiplicity-option.command.ts +3 -1
  102. package/commands/pre-order-collection-item/multiplicity-option/update-pre-order-collection-item-multiplicity-option.command.ts +3 -1
  103. package/commands/product/create-product.command.ts +4 -3
  104. package/commands/product/group/update-group-product-prices.command.ts +3 -2
  105. package/commands/product/group/update-group-product-update-batch.command.ts +4 -3
  106. package/commands/product/multiplicity-option/create-product-multiplicity-option.command.ts +3 -1
  107. package/commands/product/multiplicity-option/update-product-multiplicity-option.command.ts +3 -1
  108. package/commands/product/update-product.command.ts +4 -3
  109. package/commands/report/export-sales-by-client.query.ts +3 -0
  110. package/commands/report/export-sales-by-position.query.ts +3 -0
  111. package/commands/report/export-sales-revenue.query.ts +3 -0
  112. package/commands/report/get-cash-flow.query.ts +8 -5
  113. package/commands/report/get-daily-orders-summary.query.ts +2 -1
  114. package/commands/report/get-report-for-period.query.ts +10 -9
  115. package/commands/report/get-report-group-by-client.query.ts +15 -10
  116. package/commands/report/get-report-group-by-position.query.ts +15 -14
  117. package/commands/report/get-sales-by-client.query.ts +3 -0
  118. package/commands/report/get-sales-summary.query.ts +17 -11
  119. package/commands/transaction/generate-check-transaction.command.ts +2 -1
  120. package/commands/transaction/generate-pre-payment-check.command.ts +2 -1
  121. package/commands/transaction/get-sum-transaction-by-money-account.query.ts +3 -1
  122. package/commands/transaction/get-transaction-summary.query.ts +5 -3
  123. package/commands/write-off/get-write-off-sum-by-order.query.ts +4 -1
  124. package/commands/write-off/update-write-off-price.command.ts +2 -1
  125. package/constant/index.ts +1 -0
  126. package/constant/report.constant.ts +6 -0
  127. package/enum/index.ts +1 -0
  128. package/enum/report-order-date-basis.enum.ts +14 -0
  129. package/package.json +1 -1
  130. package/schemas/action-log/action-log-money.schema.ts +26 -0
  131. package/schemas/action-log/index.ts +1 -0
  132. package/schemas/action-log/order-info.schema.ts +3 -2
  133. package/schemas/action-log/order-product-info.schema.ts +2 -1
  134. package/schemas/action-log/order-product-update-action-log.schema.ts +2 -1
  135. package/schemas/action-log/pre-order-product-info.schema.ts +2 -1
  136. package/schemas/action-log/pre-order-product-update-action-log.schema.ts +2 -1
  137. package/schemas/action-log/transaction-info.schema.ts +2 -1
  138. package/schemas/bank-payment/bank-payment.schema.ts +2 -1
  139. package/schemas/client/client-debt.schema.ts +8 -5
  140. package/schemas/client/client.schema.ts +2 -1
  141. package/schemas/consignment/consignment.schema.ts +10 -9
  142. package/schemas/consignment-transfer/accept-consignment-transfer.schema.ts +4 -1
  143. package/schemas/consignment-transfer/consignment-transfer-request-item.schema.ts +2 -1
  144. package/schemas/delivery-route/delivery-route.schema.ts +2 -1
  145. package/schemas/discount-rules/discount-rules.schema.ts +9 -2
  146. package/schemas/index.ts +4 -0
  147. package/schemas/money-account/money-account-with-balance.schema.ts +2 -1
  148. package/schemas/money.schema.ts +25 -0
  149. package/schemas/non-negative-money.schema.ts +15 -0
  150. package/schemas/order/order.schema.ts +10 -9
  151. package/schemas/order-product/order-product-multiplicity-optiom.schema.ts +2 -1
  152. package/schemas/order-product/order-product.schema.ts +5 -4
  153. package/schemas/order-product/price-correction-analyze-item.schema.ts +10 -8
  154. package/schemas/order-product/price-correction-execute-result-item.schema.ts +3 -2
  155. package/schemas/order-service-line/order-service-line.schema.ts +13 -5
  156. package/schemas/payment-invoice/payment-invoice.schema.ts +5 -4
  157. package/schemas/positive-money.schema.ts +16 -0
  158. package/schemas/pre-order/pre-order.schema.ts +2 -1
  159. package/schemas/pre-order-collection-item/pre-order-collection-item-multiplicity-option.schema.ts +3 -1
  160. package/schemas/pre-order-collection-item/pre-order-collection-item.schema.ts +4 -3
  161. package/schemas/pre-order-product/pre-order-product.schema.ts +5 -4
  162. package/schemas/product/product-multiplicity-option.schema.ts +2 -1
  163. package/schemas/product/product.schema.ts +6 -5
  164. package/schemas/report/client-by-weeks.schema.ts +2 -1
  165. package/schemas/report/client-statement.schema.ts +2 -1
  166. package/schemas/report/inventory-turnover-category-item.schema.ts +1 -1
  167. package/schemas/report/inventory-turnover-detailed-item.schema.ts +1 -1
  168. package/schemas/report/report-order-filter.schema.ts +26 -0
  169. package/schemas/report/sales-by-client-row.schema.ts +9 -8
  170. package/schemas/report/sales-by-client-top-item.schema.ts +2 -1
  171. package/schemas/service/service.schema.ts +9 -3
  172. package/schemas/settings/settings.schema.ts +7 -2
  173. package/schemas/transaction/transaction.schema.ts +2 -1
@@ -4,6 +4,7 @@ exports.GetReportGroupByPositionContractQuery = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const enum_1 = require("../../enum");
6
6
  const date_helper_1 = require("../../helpers/date.helper");
7
+ const money_schema_1 = require("../../schemas/money.schema");
7
8
  const GetReportGroupByPositionRequestSchema = zod_1.z
8
9
  .object({
9
10
  type: zod_1.z.nativeEnum(enum_1.PositionReportTypeEnum).default(enum_1.PositionReportTypeEnum.PRODUCT),
@@ -45,15 +46,15 @@ const GetReportGroupByPositionResponseSchema = zod_1.z.object({
45
46
  name: zod_1.z.string(),
46
47
  }),
47
48
  totalOrders: zod_1.z.number(),
48
- totalSales: zod_1.z.number(),
49
+ totalSales: money_schema_1.MoneySchema,
49
50
  soldUnits: zod_1.z.number(),
50
- totalCost: zod_1.z.number(),
51
+ totalCost: money_schema_1.MoneySchema,
51
52
  totalUnits: zod_1.z.number(),
52
- totalWriteOff: zod_1.z.number(),
53
- totalWriteOffCost: zod_1.z.number(),
54
- totalVatAmount: zod_1.z.number(),
55
- middlePrice: zod_1.z.number(),
56
- grossProfit: zod_1.z.number(),
53
+ totalWriteOff: zod_1.z.number(), // количество списанных единиц (SUM по quantity), не деньги
54
+ totalWriteOffCost: money_schema_1.MoneySchema,
55
+ totalVatAmount: money_schema_1.MoneySchema,
56
+ middlePrice: money_schema_1.MoneySchema,
57
+ grossProfit: money_schema_1.MoneySchema,
57
58
  marginality: zod_1.z.number(),
58
59
  }))
59
60
  .optional(),
@@ -62,14 +63,14 @@ const GetReportGroupByPositionResponseSchema = zod_1.z.object({
62
63
  productKey: zod_1.z.string(),
63
64
  totalOrders: zod_1.z.number(),
64
65
  soldUnits: zod_1.z.number(),
65
- totalSales: zod_1.z.number(),
66
- totalCost: zod_1.z.number(),
66
+ totalSales: money_schema_1.MoneySchema,
67
+ totalCost: money_schema_1.MoneySchema,
67
68
  totalUnits: zod_1.z.number(),
68
- totalWriteOff: zod_1.z.number(),
69
- totalWriteOffCost: zod_1.z.number(),
70
- totalVatAmount: zod_1.z.number(),
71
- middlePrice: zod_1.z.number(),
72
- grossProfit: zod_1.z.number(),
69
+ totalWriteOff: zod_1.z.number(), // количество списанных единиц (SUM по quantity), не деньги
70
+ totalWriteOffCost: money_schema_1.MoneySchema,
71
+ totalVatAmount: money_schema_1.MoneySchema,
72
+ middlePrice: money_schema_1.MoneySchema,
73
+ grossProfit: money_schema_1.MoneySchema,
73
74
  marginality: zod_1.z.number(),
74
75
  }))
75
76
  .optional(),
@@ -6,6 +6,7 @@ const enum_1 = require("../../enum");
6
6
  const date_helper_1 = require("../../helpers/date.helper");
7
7
  const pagination_helper_1 = require("../../helpers/pagination.helper");
8
8
  const sales_by_client_row_schema_1 = require("../../schemas/report/sales-by-client-row.schema");
9
+ const report_order_filter_schema_1 = require("../../schemas/report/report-order-filter.schema");
9
10
  const GetSalesByClientRequestSchema = zod_1.z
10
11
  .object({
11
12
  startDate: zod_1.z.coerce.date(),
@@ -18,6 +19,8 @@ const GetSalesByClientRequestSchema = zod_1.z
18
19
  page: zod_1.z.coerce.number().int().positive().optional().describe('1-based page number, requires "count".'),
19
20
  count: zod_1.z.coerce.number().int().positive().optional().describe('Rows per page. Without it every client row is returned.'),
20
21
  })
22
+ // dateBasis / excludeClientUUID — те же, что у JSON-эндпоинтов отчётов по заказам.
23
+ .merge(report_order_filter_schema_1.ReportOrderFilterSchema)
21
24
  .refine(value => (0, date_helper_1.dateRangeCheck)(value.startDate, value.endDate), {
22
25
  message: 'validation.dateRange',
23
26
  path: ['endDate', 'startDate'],
@@ -4,12 +4,17 @@ exports.GetSalesSummaryContractQuery = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const date_helper_1 = require("../../helpers/date.helper");
6
6
  const report_period_type_enum_1 = require("../../enum/report-period-type.enum");
7
+ const money_schema_1 = require("../../schemas/money.schema");
8
+ const report_order_filter_schema_1 = require("../../schemas/report/report-order-filter.schema");
7
9
  const GetSalesSummaryRequestSchema = zod_1.z
8
10
  .object({
9
11
  startDate: zod_1.z.coerce.date().optional(),
10
12
  endDate: zod_1.z.coerce.date().optional(),
11
13
  periodType: zod_1.z.nativeEnum(report_period_type_enum_1.ReportPeriodTypeEnum).default(report_period_type_enum_1.ReportPeriodTypeEnum.DAY),
12
14
  })
15
+ // dateBasis / excludeClientUUID общие с group-client: обе цифры живут на одном экране и должны
16
+ // сужаться одинаково.
17
+ .merge(report_order_filter_schema_1.ReportOrderFilterSchema)
13
18
  .refine(value => {
14
19
  const { startDate, endDate } = value;
15
20
  if (startDate && endDate) {
@@ -21,26 +26,27 @@ const GetSalesSummaryRequestSchema = zod_1.z
21
26
  path: ['endDate', 'startDate'],
22
27
  });
23
28
  const SalesSummaryTotalsSchema = zod_1.z.object({
24
- totalRevenue: zod_1.z.number(),
25
- totalRevenueWithDelivery: zod_1.z.number(),
29
+ totalRevenue: money_schema_1.MoneySchema,
30
+ totalRevenueWithDelivery: money_schema_1.MoneySchema,
26
31
  totalOrders: zod_1.z.number(),
27
32
  uniqueClients: zod_1.z.number(),
28
33
  soldUnits: zod_1.z.number(),
29
- avgCheck: zod_1.z.number(),
30
- totalVatAmount: zod_1.z.number(),
31
- totalCost: zod_1.z.number(),
32
- totalDeliveryCost: zod_1.z.number(),
33
- totalServiceAmount: zod_1.z.number(),
34
- totalDiscountAmount: zod_1.z.number(),
35
- grossProfit: zod_1.z.number(),
34
+ avgCheck: money_schema_1.MoneySchema,
35
+ totalVatAmount: money_schema_1.MoneySchema,
36
+ totalCost: money_schema_1.MoneySchema,
37
+ totalDeliveryCost: money_schema_1.MoneySchema,
38
+ totalServiceAmount: money_schema_1.MoneySchema,
39
+ // Сумма скидки в деньгах (SUM(order.discount_amount)) — в отличие от процента `discountPercent`
40
+ totalDiscountAmount: money_schema_1.MoneySchema,
41
+ grossProfit: money_schema_1.MoneySchema,
36
42
  marginality: zod_1.z.number(),
37
43
  });
38
44
  const SalesSummarySeriesItemSchema = zod_1.z.object({
39
45
  period: zod_1.z.string(),
40
- revenue: zod_1.z.number(),
46
+ revenue: money_schema_1.MoneySchema,
41
47
  orders: zod_1.z.number(),
42
48
  units: zod_1.z.number(),
43
- avgCheck: zod_1.z.number(),
49
+ avgCheck: money_schema_1.MoneySchema,
44
50
  });
45
51
  const GetSalesSummaryResponseSchema = zod_1.z.object({
46
52
  data: zod_1.z.object({
@@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GenerateCheckTransactionContractCommand = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const schemas_1 = require("../../schemas");
6
+ const money_schema_1 = require("../../schemas/money.schema");
6
7
  const GenerateCheckTransactionRequestSchema = zod_1.z.object({
7
8
  orderUUID: zod_1.z.string(),
8
- amount: zod_1.z.coerce.number(),
9
+ amount: money_schema_1.MoneySchema,
9
10
  });
10
11
  const GenerateCheckTransactionResponseSchema = zod_1.z.object({
11
12
  message: zod_1.z.string().optional(),
@@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GeneratePrepaymentCheckContractCommand = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const schemas_1 = require("../../schemas");
6
+ const money_schema_1 = require("../../schemas/money.schema");
6
7
  const GeneratePrepaymentCheckRequestSchema = zod_1.z.object({
7
8
  clientUUID: zod_1.z.string(),
8
- amount: zod_1.z.coerce.number(),
9
+ amount: money_schema_1.MoneySchema,
9
10
  });
10
11
  const GeneratePrepaymentCheckResponseSchema = zod_1.z.object({
11
12
  message: zod_1.z.string().optional(),
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GetSumTransactionByMoneyAccountContractQuery = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const date_helper_1 = require("../../helpers/date.helper");
6
+ const money_schema_1 = require("../../schemas/money.schema");
6
7
  const GetSumTransactionByMoneyAccountRequestSchema = zod_1.z
7
8
  .object({
8
9
  startDate: zod_1.z.coerce.date().optional(),
@@ -22,7 +23,8 @@ const GetSumTransactionByMoneyAccountRequestSchema = zod_1.z
22
23
  const GetSumTransactionByMoneyAccountResponseSchema = zod_1.z.object({
23
24
  message: zod_1.z.string().optional(),
24
25
  data: zod_1.z.object({
25
- sum: zod_1.z.number(),
26
+ // Сальдо по кассе: расход может превысить приход, поэтому знаковых ограничений нет.
27
+ sum: money_schema_1.MoneySchema,
26
28
  }),
27
29
  });
28
30
  var GetSumTransactionByMoneyAccountContractQuery;
@@ -4,6 +4,7 @@ exports.GetTransactionSummaryContractQuery = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const date_helper_1 = require("../../helpers/date.helper");
6
6
  const enum_1 = require("../../enum");
7
+ const money_schema_1 = require("../../schemas/money.schema");
7
8
  const GetTransactionSummaryRequestSchema = zod_1.z
8
9
  .object({
9
10
  startDate: zod_1.z.coerce.date().optional(),
@@ -28,9 +29,10 @@ const GetTransactionSummaryRequestSchema = zod_1.z
28
29
  const GetTransactionSummaryResponseSchema = zod_1.z.object({
29
30
  message: zod_1.z.string().optional(),
30
31
  data: zod_1.z.object({
31
- income: zod_1.z.number(),
32
- expense: zod_1.z.number(),
33
- total: zod_1.z.number(),
32
+ income: money_schema_1.MoneySchema,
33
+ expense: money_schema_1.MoneySchema,
34
+ // Разница income − expense: минус здесь легитимен, поэтому знаковых ограничений нет.
35
+ total: money_schema_1.MoneySchema,
34
36
  }),
35
37
  });
36
38
  var GetTransactionSummaryContractQuery;
@@ -2,10 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GetWriteOffSumByOrderContractQuery = void 0;
4
4
  const zod_1 = require("zod");
5
+ const non_negative_money_schema_1 = require("../../schemas/non-negative-money.schema");
5
6
  const GetWriteOffSumByOrderRequestSchema = zod_1.z.object({});
6
7
  const GetWriteOffSumByOrderResponseSchema = zod_1.z.object({
7
8
  message: zod_1.z.string().optional(),
8
- data: zod_1.z.number(),
9
+ // Сумма списаний (количество × цена позиции) — деньги, отрицательной быть не может.
10
+ data: non_negative_money_schema_1.NonNegativeMoneySchema,
9
11
  });
10
12
  var GetWriteOffSumByOrderContractQuery;
11
13
  (function (GetWriteOffSumByOrderContractQuery) {
@@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UpdateWriteOffPriceContractCommand = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const schemas_1 = require("../../schemas");
6
+ const money_schema_1 = require("../../schemas/money.schema");
6
7
  const UpdateWriteOffPriceRequestSchema = zod_1.z.object({
7
8
  quantity: zod_1.z.coerce.number(),
8
- price: zod_1.z.coerce.number(),
9
+ price: money_schema_1.MoneySchema,
9
10
  });
10
11
  const UpdateWriteOffPriceResponseSchema = zod_1.z.object({
11
12
  message: zod_1.z.string().optional(),
@@ -20,3 +20,4 @@ __exportStar(require("./error-i18n-key"), exports);
20
20
  __exportStar(require("./import.constant"), exports);
21
21
  __exportStar(require("./validation-i18n-key"), exports);
22
22
  __exportStar(require("./validation-i18n-message"), exports);
23
+ __exportStar(require("./report.constant"), exports);
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REPORT_EXCLUDE_CLIENT_LIMIT = void 0;
4
+ /**
5
+ * Потолок списка исключаемых из отчёта клиентов. Список едет в query-строке и дальше в SQL
6
+ * как `= ANY($n::text[])`, поэтому ограничение защищает и от переполнения URL, и от запроса
7
+ * с массивом в тысячи элементов.
8
+ */
9
+ exports.REPORT_EXCLUDE_CLIENT_LIMIT = 500;
@@ -114,3 +114,4 @@ __exportStar(require("./cash-flow-item-status.enum"), exports);
114
114
  __exportStar(require("./payment-invoice-status.enum"), exports);
115
115
  __exportStar(require("./order-by.enum"), exports);
116
116
  __exportStar(require("./report-sort-by.enum"), exports);
117
+ __exportStar(require("./report-order-date-basis.enum"), exports);
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReportOrderDateBasisEnum = void 0;
4
+ /**
5
+ * Ось периода для отчётов по заказам — ровно одна дата на отчёт.
6
+ *
7
+ * CREATED_AT — по дате создания заказа (историческое поведение всех отчётов).
8
+ * COMPLETED_AT — по дате отгрузки (завершения); заказ, созданный в июне и отгруженный в июле,
9
+ * попадёт в июль.
10
+ *
11
+ * Дизъюнкции («любая из дат») здесь намеренно нет: заказ, созданный в июне и отгруженный в июле,
12
+ * попал бы в оба месяца, сумма отчётов по месяцам перестала бы сходиться с отчётом за квартал.
13
+ */
14
+ var ReportOrderDateBasisEnum;
15
+ (function (ReportOrderDateBasisEnum) {
16
+ ReportOrderDateBasisEnum["CREATED_AT"] = "CREATED_AT";
17
+ ReportOrderDateBasisEnum["COMPLETED_AT"] = "COMPLETED_AT";
18
+ })(ReportOrderDateBasisEnum || (exports.ReportOrderDateBasisEnum = ReportOrderDateBasisEnum = {}));
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActionLogMoneySchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const money_schema_1 = require("../money.schema");
6
+ /**
7
+ * Денежная величина внутри записи журнала аудита.
8
+ *
9
+ * Отличается от обычного `MoneySchema` тем, что принимает ОБА формата: и десятичную строку,
10
+ * которой деньги пишутся сейчас, и JSON-число, которым они писались раньше.
11
+ *
12
+ * Причина в природе самих данных. `action_log.payload` — это неизменяемый журнал: он фиксирует,
13
+ * что произошло, в том виде, в каком это выглядело на момент события. На проде в нём 265 402
14
+ * записи с деньгами-числами, разложенными по шести разным формам payload'а на разной глубине
15
+ * вложенности. Переписать их миграцией мешает и объём, и то, что `jsonb_set` требует конкретный
16
+ * путь: рекурсивно искать `jsonb_path_exists` умеет, а записывать — нет. Любая форма, не учтённая
17
+ * в такой миграции, осталась бы непочиненной и роняла бы чтение.
18
+ *
19
+ * Но главное — переписывать историю аудита под новую схему неправильно по существу, даже когда
20
+ * переписывание чисто техническое.
21
+ *
22
+ * Поэтому снисходительность живёт здесь и только здесь. Во всех остальных местах, включая JSON-поля
23
+ * `settings.delivery_pricing_tiers` и `discount_rules.data`, деньги мигрированы в строки, и там
24
+ * используется строгий `MoneySchema`.
25
+ *
26
+ * Новые записи журнала уже пишутся строками: `Decimal.toJSON()` возвращает строку.
27
+ */
28
+ exports.ActionLogMoneySchema = zod_1.z.union([money_schema_1.MoneySchema, zod_1.z.number().transform(value => value.toFixed(2))]);
@@ -37,3 +37,4 @@ __exportStar(require("./consignment-items-create-action-log.schema"), exports);
37
37
  __exportStar(require("./consignment-items-delete-action-log.schema"), exports);
38
38
  __exportStar(require("./group-update-consignment-items-action-log.schema"), exports);
39
39
  __exportStar(require("./transfer-consignment-items-action-log.schema"), exports);
40
+ __exportStar(require("./action-log-money.schema"), exports);
@@ -2,13 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OrderInfoSchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ const action_log_money_schema_1 = require("./action-log-money.schema");
5
6
  exports.OrderInfoSchema = zod_1.z.object({
6
7
  orderUUID: zod_1.z.string(),
7
8
  orderId: zod_1.z.coerce.number(),
8
9
  clientUUID: zod_1.z.string(),
9
10
  clientName: zod_1.z.string(),
10
11
  createdAt: zod_1.z.coerce.date(),
11
- totalCost: zod_1.z.coerce.number(),
12
+ totalCost: action_log_money_schema_1.ActionLogMoneySchema,
12
13
  deliveryAddress: zod_1.z.string().nullable().optional(),
13
- deliveryCost: zod_1.z.coerce.number().nullable().optional(),
14
+ deliveryCost: action_log_money_schema_1.ActionLogMoneySchema.nullable().optional(),
14
15
  });
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OrderProductInfoSchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ const action_log_money_schema_1 = require("./action-log-money.schema");
5
6
  exports.OrderProductInfoSchema = zod_1.z.object({
6
7
  orderUUID: zod_1.z.string(),
7
8
  orderProductUUID: zod_1.z.string(),
@@ -10,7 +11,7 @@ exports.OrderProductInfoSchema = zod_1.z.object({
10
11
  categoryUUID: zod_1.z.string().nullable(),
11
12
  categoryName: zod_1.z.string().nullable(),
12
13
  quantity: zod_1.z.coerce.number(),
13
- price: zod_1.z.coerce.number(),
14
+ price: action_log_money_schema_1.ActionLogMoneySchema,
14
15
  consignmentUUID: zod_1.z.string().nullable(),
15
16
  consignmentDeliveryDate: zod_1.z.coerce.date().nullable(),
16
17
  });
@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OrderProductUpdateActionLogSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const order_product_info_schema_1 = require("./order-product-info.schema");
6
+ const action_log_money_schema_1 = require("./action-log-money.schema");
6
7
  exports.OrderProductUpdateActionLogSchema = zod_1.z.object({
7
8
  orderProduct: order_product_info_schema_1.OrderProductInfoSchema,
8
9
  newQuantity: zod_1.z.coerce.number(),
9
- newPrice: zod_1.z.coerce.number(),
10
+ newPrice: action_log_money_schema_1.ActionLogMoneySchema,
10
11
  });
@@ -2,12 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PreOrderProductInfoSchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ const action_log_money_schema_1 = require("./action-log-money.schema");
5
6
  exports.PreOrderProductInfoSchema = zod_1.z.object({
6
7
  preOrderUUID: zod_1.z.string(),
7
8
  preOrderProductUUID: zod_1.z.string(),
8
9
  name: zod_1.z.string(),
9
10
  categoryName: zod_1.z.string().nullable(),
10
11
  quantity: zod_1.z.coerce.number(),
11
- price: zod_1.z.coerce.number(),
12
+ price: action_log_money_schema_1.ActionLogMoneySchema,
12
13
  comment: zod_1.z.string().nullable(),
13
14
  });
@@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PreOrderProductUpdateActionLogSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const pre_order_product_info_schema_1 = require("./pre-order-product-info.schema");
6
+ const action_log_money_schema_1 = require("./action-log-money.schema");
6
7
  exports.PreOrderProductUpdateActionLogSchema = zod_1.z.object({
7
8
  preOrderProduct: pre_order_product_info_schema_1.PreOrderProductInfoSchema,
8
9
  newQuantity: zod_1.z.coerce.number(),
9
- newPrice: zod_1.z.coerce.number(),
10
+ newPrice: action_log_money_schema_1.ActionLogMoneySchema,
10
11
  newComment: zod_1.z.string().nullable(),
11
12
  });
@@ -3,10 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TransactionInfoSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const enum_1 = require("../../enum");
6
+ const action_log_money_schema_1 = require("./action-log-money.schema");
6
7
  exports.TransactionInfoSchema = zod_1.z.object({
7
8
  transactionUUID: zod_1.z.string(),
8
9
  createdAt: zod_1.z.coerce.date(),
9
- amount: zod_1.z.coerce.number(),
10
+ amount: action_log_money_schema_1.ActionLogMoneySchema,
10
11
  moneyAccountName: zod_1.z.string(),
11
12
  type: zod_1.z.nativeEnum(enum_1.TransactionTypeEnum),
12
13
  clientName: zod_1.z.string().nullable(),
@@ -4,12 +4,13 @@ exports.BankPaymentSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const bank_provider_enum_1 = require("../../enum/bank-provider.enum");
6
6
  const bank_payment_event_status_enum_1 = require("../../enum/bank-payment-event-status.enum");
7
+ const money_schema_1 = require("../money.schema");
7
8
  exports.BankPaymentSchema = zod_1.z.object({
8
9
  uuid: zod_1.z.uuid(),
9
10
  provider: zod_1.z.nativeEnum(bank_provider_enum_1.BankProviderEnum),
10
11
  externalEventId: zod_1.z.string(),
11
12
  accountNumber: zod_1.z.string(),
12
- amount: zod_1.z.coerce.number(),
13
+ amount: money_schema_1.MoneySchema,
13
14
  currency: zod_1.z.string(),
14
15
  purpose: zod_1.z.string(),
15
16
  status: zod_1.z.nativeEnum(bank_payment_event_status_enum_1.BankPaymentEventStatusEnum),
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClientDebtListSchema = exports.ClientDebtItemSchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ const money_schema_1 = require("../money.schema");
5
6
  exports.ClientDebtItemSchema = zod_1.z.object({
6
7
  clientUUID: zod_1.z.uuid(),
7
8
  name: zod_1.z.string(),
@@ -9,11 +10,13 @@ exports.ClientDebtItemSchema = zod_1.z.object({
9
10
  group: zod_1.z.string().nullable(),
10
11
  city: zod_1.z.string().nullable(),
11
12
  responsibleUserName: zod_1.z.string().nullable(),
12
- currentBalance: zod_1.z.number(),
13
- transactionNet: zod_1.z.number(),
14
- completedOrdersBalance: zod_1.z.number(),
15
- completedOrdersBalanceWithDelay: zod_1.z.number(),
16
- nonCompletedBalance: zod_1.z.number(),
13
+ currentBalance: money_schema_1.MoneySchema,
14
+ // Знаковые величины: сальдо транзакций и остатки по заказам законно уходят в минус
15
+ // (переплата клиента, возврат), поэтому ограничения на знак здесь нет и быть не должно.
16
+ transactionNet: money_schema_1.MoneySchema,
17
+ completedOrdersBalance: money_schema_1.MoneySchema,
18
+ completedOrdersBalanceWithDelay: money_schema_1.MoneySchema,
19
+ nonCompletedBalance: money_schema_1.MoneySchema,
17
20
  hasOverdueDebt: zod_1.z.boolean().nullable(),
18
21
  });
19
22
  exports.ClientDebtListSchema = zod_1.z.object({
@@ -10,6 +10,7 @@ const client_individual_profile_schema_1 = require("./client-individual-profile.
10
10
  const client_legal_profile_schema_1 = require("./client-legal-profile.schema");
11
11
  const discount_rules_schema_1 = require("../discount-rules/discount-rules.schema");
12
12
  const client_marking_schema_1 = require("./client-marking.schema");
13
+ const money_schema_1 = require("../money.schema");
13
14
  exports.ClientSchema = zod_1.z.object({
14
15
  uuid: zod_1.z.uuid(),
15
16
  name: zod_1.z.string(),
@@ -30,7 +31,7 @@ exports.ClientSchema = zod_1.z.object({
30
31
  additionalPhone: zod_1.z.string().nullable(),
31
32
  comment: zod_1.z.string().nullable(),
32
33
  paymentGraceDaysAfterCompletion: zod_1.z.number().nullable(),
33
- balance: zod_1.z.number(),
34
+ balance: money_schema_1.MoneySchema,
34
35
  deletedAt: zod_1.z.date().nullable(),
35
36
  createdAt: zod_1.z.date(),
36
37
  updatedAt: zod_1.z.date(),
@@ -4,6 +4,7 @@ exports.ConsignmentWithClientsAccessSchema = exports.DataNotExistsSchema = expor
4
4
  const zod_1 = require("zod");
5
5
  const enum_1 = require("../../enum");
6
6
  const client_1 = require("../client");
7
+ const money_schema_1 = require("../money.schema");
7
8
  exports.ConsignmentSchema = zod_1.z.object({
8
9
  uuid: zod_1.z.uuid(),
9
10
  deliveryDate: zod_1.z.date(),
@@ -21,24 +22,24 @@ exports.ConsignmentSchema = zod_1.z.object({
21
22
  });
22
23
  exports.ConsignmentWithStatisticForListSchema = exports.ConsignmentSchema.extend({
23
24
  statistic: zod_1.z.object({
24
- totalCostPrice: zod_1.z.number(),
25
+ totalCostPrice: money_schema_1.MoneySchema,
25
26
  currentProductBalance: zod_1.z.number(),
26
- currentCostPrice: zod_1.z.number(),
27
+ currentCostPrice: money_schema_1.MoneySchema,
27
28
  totalProductQuantity: zod_1.z.number(),
28
- totalSellings: zod_1.z.number(),
29
- totalApprovedWriteOffSellings: zod_1.z.number(),
29
+ totalSellings: money_schema_1.MoneySchema,
30
+ totalApprovedWriteOffSellings: money_schema_1.MoneySchema,
30
31
  }),
31
32
  });
32
33
  exports.ConsignmentWithStatisticSchema = exports.ConsignmentSchema.extend({
33
34
  statistic: zod_1.z.object({
34
- totalCostPrice: zod_1.z.number(),
35
+ totalCostPrice: money_schema_1.MoneySchema,
35
36
  currentProductBalance: zod_1.z.number(),
36
- currentCostPrice: zod_1.z.number(),
37
+ currentCostPrice: money_schema_1.MoneySchema,
37
38
  totalProductQuantity: zod_1.z.number(),
38
- totalSellings: zod_1.z.number(),
39
+ totalSellings: money_schema_1.MoneySchema,
39
40
  writeOffQuantity: zod_1.z.number(),
40
- writeOffCostPrice: zod_1.z.number(),
41
- writeOffCostPriceByOrderProduct: zod_1.z.number(),
41
+ writeOffCostPrice: money_schema_1.MoneySchema,
42
+ writeOffCostPriceByOrderProduct: money_schema_1.MoneySchema,
42
43
  }),
43
44
  });
44
45
  exports.ProductErrorTypeSchema = zod_1.z.object({
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AcceptConsignmentTransferResponseSchema = exports.AcceptConsignmentTransferRequestSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const consignment_transfer_request_schema_1 = require("./consignment-transfer-request.schema");
6
+ const non_negative_money_schema_1 = require("../non-negative-money.schema");
6
7
  exports.AcceptConsignmentTransferRequestSchema = zod_1.z
7
8
  .object({
8
9
  // Accept into an existing consignment of the receiver OR create a new one — exactly one of the two.
@@ -18,7 +19,8 @@ exports.AcceptConsignmentTransferRequestSchema = zod_1.z
18
19
  .array(zod_1.z.object({
19
20
  itemUUID: zod_1.z.uuid(),
20
21
  categoryUUID: zod_1.z.uuid(),
21
- price: zod_1.z.number().min(0).optional(),
22
+ // Отрицательную цену отсекаем по знаку строки — минус и есть признак отрицательности.
23
+ price: non_negative_money_schema_1.NonNegativeMoneySchema.optional(),
22
24
  }))
23
25
  .min(1),
24
26
  })
@@ -2,13 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConsignmentTransferRequestItemSchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ const money_schema_1 = require("../money.schema");
5
6
  exports.ConsignmentTransferRequestItemSchema = zod_1.z.object({
6
7
  uuid: zod_1.z.uuid(),
7
8
  sourceProductUUID: zod_1.z.uuid(),
8
9
  targetProductUUID: zod_1.z.uuid().nullable(),
9
10
  name: zod_1.z.string(),
10
11
  quantity: zod_1.z.number().int(),
11
- transferPrice: zod_1.z.number(),
12
+ transferPrice: money_schema_1.MoneySchema,
12
13
  categoryName: zod_1.z.string().nullable(),
13
14
  multiplicity: zod_1.z.number().int(),
14
15
  grower: zod_1.z.string().nullable(),
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DeliveryRouteWithOrdersSchema = exports.UpdateDeliveryRouteSchema = exports.CreateDeliveryRouteSchema = exports.DeliveryRouteSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const enum_1 = require("../../enum");
6
+ const money_schema_1 = require("../money.schema");
6
7
  exports.DeliveryRouteSchema = zod_1.z.object({
7
8
  uuid: zod_1.z.uuid(),
8
9
  routeName: zod_1.z.string().nullable(),
@@ -32,7 +33,7 @@ exports.DeliveryRouteWithOrdersSchema = exports.DeliveryRouteSchema.extend({
32
33
  orderNumber: zod_1.z.number(),
33
34
  orderStatus: zod_1.z.nativeEnum(enum_1.OrderStatusEnum),
34
35
  orderCreatedAt: zod_1.z.coerce.date(),
35
- totalCost: zod_1.z.number(),
36
+ totalCost: money_schema_1.MoneySchema,
36
37
  clientName: zod_1.z.string(),
37
38
  clientCity: zod_1.z.string().nullable(),
38
39
  clientAddress: zod_1.z.string().nullable(),
@@ -5,9 +5,16 @@ const zod_1 = require("zod");
5
5
  const enum_1 = require("../../enum");
6
6
  const client_1 = require("../client");
7
7
  const product_schema_1 = require("../product/product.schema");
8
+ const money_schema_1 = require("../money.schema");
9
+ const positive_money_schema_1 = require("../positive-money.schema");
10
+ // PERCENT — это процент, а не деньги: остаётся числом 0..100. FIXED — денежная величина, едет строкой.
8
11
  exports.discountRulesModeSchema = zod_1.z.discriminatedUnion('typeDiscount', [
9
12
  zod_1.z.object({ typeDiscount: zod_1.z.literal(enum_1.DiscountRulesModeTypeEnum.PERCENT), discountValue: zod_1.z.number().min(0).max(100) }),
10
- zod_1.z.object({ typeDiscount: zod_1.z.literal(enum_1.DiscountRulesModeTypeEnum.FIXED), discountValue: zod_1.z.number().positive() }),
13
+ zod_1.z.object({
14
+ typeDiscount: zod_1.z.literal(enum_1.DiscountRulesModeTypeEnum.FIXED),
15
+ // Строго положительная сумма: минус отсекаем по знаку строки, нули вида "0" / "0.00" — сравнением.
16
+ discountValue: positive_money_schema_1.PositiveMoneySchema,
17
+ }),
11
18
  ]);
12
19
  // Rules schemas other data
13
20
  const DiscountRulesPersonalDiscountDataSchema = zod_1.z.object({
@@ -99,7 +106,7 @@ exports.DiscountRulesSplitQuantityResponseSchema = zod_1.z.object({
99
106
  productUUID: zod_1.z.string(),
100
107
  quantity: zod_1.z.number(),
101
108
  withDiscount: zod_1.z.boolean(),
102
- price: zod_1.z.number(),
109
+ price: money_schema_1.MoneySchema,
103
110
  })
104
111
  .array()
105
112
  .nullable(),
@@ -93,3 +93,7 @@ __exportStar(require("./account-deletion-request/account-deletion-request.schema
93
93
  __exportStar(require("./consignment-transfer"), exports);
94
94
  __exportStar(require("./api-error.schema"), exports);
95
95
  __exportStar(require("./access-policy"), exports);
96
+ __exportStar(require("./money.schema"), exports);
97
+ __exportStar(require("./non-negative-money.schema"), exports);
98
+ __exportStar(require("./positive-money.schema"), exports);
99
+ __exportStar(require("./report/report-order-filter.schema"), exports);
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MoneyAccountWithBalanceSchema = void 0;
4
- const zod_1 = require("zod");
5
4
  const money_account_schema_1 = require("./money-account.schema");
5
+ const money_schema_1 = require("../money.schema");
6
6
  /**
7
7
  * Денежный счёт в ответах списков. `balance` — текущий остаток счёта (приход минус расход),
8
8
  * приходит только при `?withBalance=true`: поле аддитивное, клиенты без этого параметра
9
9
  * получают ровно прежнюю форму ответа.
10
10
  */
11
11
  exports.MoneyAccountWithBalanceSchema = money_account_schema_1.MoneyAccountSchema.extend({
12
- balance: zod_1.z.number().optional(),
12
+ balance: money_schema_1.MoneySchema.optional(),
13
13
  });