@floristcloud/api-lib 1.2.176 → 1.2.177

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 (117) hide show
  1. package/build/commands/pre-order/get-pre-order-by-pre-order-collection-uuid.command.js +2 -6
  2. package/build/commands/pre-order/group/analyze-create-orders-from-pre-orders.command.js +4 -35
  3. package/build/commands/pre-order/group/group-create-orders-from-pre-orders.command.js +4 -51
  4. package/build/commands/pre-order/index.js +1 -0
  5. package/build/commands/pre-order/revert-pre-order-conversion.command.js +8 -0
  6. package/build/commands/pre-order/webshop/checkout-pre-order-webshop.command.js +4 -14
  7. package/build/commands/pre-order/webshop/create-pre-order-webshop.command.js +2 -6
  8. package/build/commands/pre-order/webshop/update-pre-order-webshop.command.js +2 -6
  9. package/build/constant/error.js +35 -0
  10. package/build/enum/index.js +6 -0
  11. package/build/enum/pre-order-conversion-difference-field.enum.js +11 -0
  12. package/build/enum/pre-order-conversion-match-kind.enum.js +8 -0
  13. package/build/enum/pre-order-conversion-remainder-reason.enum.js +10 -0
  14. package/build/enum/pre-order-conversion-skip-reason.enum.js +7 -0
  15. package/build/enum/pre-order-conversion-warning.enum.js +8 -0
  16. package/build/enum/pre-order-fulfillment-status.enum.js +10 -0
  17. package/build/schemas/pre-order/analyze-create-orders-from-pre-orders-data.schema.js +10 -0
  18. package/build/schemas/pre-order/analyze-create-orders-from-pre-orders-request.schema.js +13 -0
  19. package/build/schemas/pre-order/analyze-create-orders-from-pre-orders-response.schema.js +9 -0
  20. package/build/schemas/pre-order/checkout-pre-order-webshop-request.schema.js +7 -0
  21. package/build/schemas/pre-order/checkout-pre-order-webshop-response.schema.js +6 -0
  22. package/build/schemas/pre-order/create-pre-order-webshop-response.schema.js +6 -0
  23. package/build/schemas/pre-order/get-pre-order-by-collection-for-client-response.schema.js +6 -0
  24. package/build/schemas/pre-order/group-create-orders-from-pre-orders-data.schema.js +12 -0
  25. package/build/schemas/pre-order/group-create-orders-from-pre-orders-request.schema.js +17 -0
  26. package/build/schemas/pre-order/group-create-orders-from-pre-orders-response.schema.js +9 -0
  27. package/build/schemas/pre-order/index.js +39 -0
  28. package/build/schemas/pre-order/pre-order-conversion-allocation.schema.js +23 -0
  29. package/build/schemas/pre-order/pre-order-conversion-analysis.schema.js +12 -0
  30. package/build/schemas/pre-order/pre-order-conversion-attributes.schema.js +12 -0
  31. package/build/schemas/pre-order/pre-order-conversion-change.schema.js +9 -0
  32. package/build/schemas/pre-order/pre-order-conversion-created.schema.js +11 -0
  33. package/build/schemas/pre-order/pre-order-conversion-current-order.schema.js +11 -0
  34. package/build/schemas/pre-order/pre-order-conversion-difference.schema.js +12 -0
  35. package/build/schemas/pre-order/pre-order-conversion-error.schema.js +9 -0
  36. package/build/schemas/pre-order/pre-order-conversion-failed-error.schema.js +8 -0
  37. package/build/schemas/pre-order/pre-order-conversion-failed.schema.js +6 -0
  38. package/build/schemas/pre-order/pre-order-conversion-mapping.schema.js +14 -0
  39. package/build/schemas/pre-order/pre-order-conversion-match-description.schema.js +9 -0
  40. package/build/schemas/pre-order/pre-order-conversion-match.schema.js +13 -0
  41. package/build/schemas/pre-order/pre-order-conversion-order.schema.js +6 -0
  42. package/build/schemas/pre-order/pre-order-conversion-plan-allocation.schema.js +5 -0
  43. package/build/schemas/pre-order/pre-order-conversion-plan-entry.schema.js +10 -0
  44. package/build/schemas/pre-order/pre-order-conversion-plan-line.schema.js +9 -0
  45. package/build/schemas/pre-order/pre-order-conversion-preview-plan-entry.schema.js +5 -0
  46. package/build/schemas/pre-order/pre-order-conversion-remainder.schema.js +9 -0
  47. package/build/schemas/pre-order/pre-order-conversion-skipped.schema.js +6 -0
  48. package/build/schemas/pre-order/pre-order-conversion-summary-line.schema.js +20 -0
  49. package/build/schemas/pre-order/pre-order-conversion-summary.schema.js +14 -0
  50. package/build/schemas/pre-order/pre-order-for-client.schema.js +4 -0
  51. package/build/schemas/pre-order/pre-order-fulfillment-stop-price.schema.js +6 -0
  52. package/build/schemas/pre-order/pre-order-fulfillment-substitute.schema.js +5 -0
  53. package/build/schemas/pre-order/pre-order-fulfillment.schema.js +16 -0
  54. package/build/schemas/pre-order/pre-order.schema.js +14 -1
  55. package/build/schemas/pre-order/revert-pre-order-conversion-order.schema.js +8 -0
  56. package/build/schemas/pre-order/revert-pre-order-conversion-response.schema.js +8 -0
  57. package/build/schemas/pre-order/revert-pre-order-conversion-result.schema.js +10 -0
  58. package/build/schemas/pre-order/update-pre-order-webshop-response.schema.js +6 -0
  59. package/commands/pre-order/get-pre-order-by-pre-order-collection-uuid.command.ts +3 -7
  60. package/commands/pre-order/group/analyze-create-orders-from-pre-orders.command.ts +3 -49
  61. package/commands/pre-order/group/group-create-orders-from-pre-orders.command.ts +3 -51
  62. package/commands/pre-order/index.ts +1 -0
  63. package/commands/pre-order/revert-pre-order-conversion.command.ts +7 -0
  64. package/commands/pre-order/webshop/checkout-pre-order-webshop.command.ts +3 -14
  65. package/commands/pre-order/webshop/create-pre-order-webshop.command.ts +3 -7
  66. package/commands/pre-order/webshop/update-pre-order-webshop.command.ts +3 -7
  67. package/constant/error.ts +35 -0
  68. package/enum/index.ts +7 -0
  69. package/enum/pre-order-conversion-difference-field.enum.ts +7 -0
  70. package/enum/pre-order-conversion-match-kind.enum.ts +4 -0
  71. package/enum/pre-order-conversion-remainder-reason.enum.ts +6 -0
  72. package/enum/pre-order-conversion-skip-reason.enum.ts +3 -0
  73. package/enum/pre-order-conversion-warning.enum.ts +4 -0
  74. package/enum/pre-order-fulfillment-status.enum.ts +6 -0
  75. package/package.json +1 -1
  76. package/schemas/pre-order/analyze-create-orders-from-pre-orders-data.schema.ts +8 -0
  77. package/schemas/pre-order/analyze-create-orders-from-pre-orders-request.schema.ts +11 -0
  78. package/schemas/pre-order/analyze-create-orders-from-pre-orders-response.schema.ts +7 -0
  79. package/schemas/pre-order/checkout-pre-order-webshop-request.schema.ts +4 -0
  80. package/schemas/pre-order/checkout-pre-order-webshop-response.schema.ts +3 -0
  81. package/schemas/pre-order/create-pre-order-webshop-response.schema.ts +3 -0
  82. package/schemas/pre-order/get-pre-order-by-collection-for-client-response.schema.ts +3 -0
  83. package/schemas/pre-order/group-create-orders-from-pre-orders-data.schema.ts +10 -0
  84. package/schemas/pre-order/group-create-orders-from-pre-orders-request.schema.ts +15 -0
  85. package/schemas/pre-order/group-create-orders-from-pre-orders-response.schema.ts +7 -0
  86. package/schemas/pre-order/index.ts +43 -0
  87. package/schemas/pre-order/pre-order-conversion-allocation.schema.ts +21 -0
  88. package/schemas/pre-order/pre-order-conversion-analysis.schema.ts +10 -0
  89. package/schemas/pre-order/pre-order-conversion-attributes.schema.ts +10 -0
  90. package/schemas/pre-order/pre-order-conversion-change.schema.ts +7 -0
  91. package/schemas/pre-order/pre-order-conversion-created.schema.ts +9 -0
  92. package/schemas/pre-order/pre-order-conversion-current-order.schema.ts +8 -0
  93. package/schemas/pre-order/pre-order-conversion-difference.schema.ts +10 -0
  94. package/schemas/pre-order/pre-order-conversion-error.schema.ts +7 -0
  95. package/schemas/pre-order/pre-order-conversion-failed-error.schema.ts +6 -0
  96. package/schemas/pre-order/pre-order-conversion-failed.schema.ts +4 -0
  97. package/schemas/pre-order/pre-order-conversion-mapping.schema.ts +12 -0
  98. package/schemas/pre-order/pre-order-conversion-match-description.schema.ts +7 -0
  99. package/schemas/pre-order/pre-order-conversion-match.schema.ts +11 -0
  100. package/schemas/pre-order/pre-order-conversion-order.schema.ts +4 -0
  101. package/schemas/pre-order/pre-order-conversion-plan-allocation.schema.ts +3 -0
  102. package/schemas/pre-order/pre-order-conversion-plan-entry.schema.ts +8 -0
  103. package/schemas/pre-order/pre-order-conversion-plan-line.schema.ts +7 -0
  104. package/schemas/pre-order/pre-order-conversion-preview-plan-entry.schema.ts +3 -0
  105. package/schemas/pre-order/pre-order-conversion-remainder.schema.ts +7 -0
  106. package/schemas/pre-order/pre-order-conversion-skipped.schema.ts +4 -0
  107. package/schemas/pre-order/pre-order-conversion-summary-line.schema.ts +18 -0
  108. package/schemas/pre-order/pre-order-conversion-summary.schema.ts +12 -0
  109. package/schemas/pre-order/pre-order-for-client.schema.ts +4 -0
  110. package/schemas/pre-order/pre-order-fulfillment-stop-price.schema.ts +3 -0
  111. package/schemas/pre-order/pre-order-fulfillment-substitute.schema.ts +2 -0
  112. package/schemas/pre-order/pre-order-fulfillment.schema.ts +13 -0
  113. package/schemas/pre-order/pre-order.schema.ts +14 -1
  114. package/schemas/pre-order/revert-pre-order-conversion-order.schema.ts +6 -0
  115. package/schemas/pre-order/revert-pre-order-conversion-response.schema.ts +6 -0
  116. package/schemas/pre-order/revert-pre-order-conversion-result.schema.ts +8 -0
  117. package/schemas/pre-order/update-pre-order-webshop-response.schema.ts +3 -0
@@ -0,0 +1,10 @@
1
+ import { PreOrderConversionSkippedSchema } from './pre-order-conversion-skipped.schema';
2
+ import { z } from 'zod';
3
+ import { PreOrderConversionCreatedSchema } from './pre-order-conversion-created.schema';
4
+ import { PreOrderConversionFailedSchema } from './pre-order-conversion-failed.schema';
5
+
6
+ export const GroupCreateOrdersFromPreOrdersDataSchema = z.object({
7
+ created: PreOrderConversionCreatedSchema.array(),
8
+ skipped: PreOrderConversionSkippedSchema.array(),
9
+ failed: PreOrderConversionFailedSchema.array(),
10
+ });
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ import { MatchingConfigSchema } from '../pre-order-product/matching-config.schema';
3
+ import { PreOrderConversionPlanEntrySchema } from './pre-order-conversion-plan-entry.schema';
4
+
5
+ export const GroupCreateOrdersFromPreOrdersRequestSchema = z.object({
6
+ preOrderUUIDs: z.uuid().array(),
7
+ consignmentUUIDs: z.uuid().array(),
8
+ matchingConfig: MatchingConfigSchema.optional().nullable(),
9
+ isProportionalAllocation: z.coerce.boolean().optional(),
10
+ orderProductTag: z.string().nullable().optional(),
11
+ confirmCloseRemainder: z.boolean().optional(),
12
+ // Оформляется только подтверждённый сотрудником план: без него сервер подобрал бы товары заново, и в заказы
13
+ // ушли бы распределения и цены, которых сотрудник не видел.
14
+ plan: PreOrderConversionPlanEntrySchema.array(),
15
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { GroupCreateOrdersFromPreOrdersDataSchema } from './group-create-orders-from-pre-orders-data.schema';
3
+
4
+ export const GroupCreateOrdersFromPreOrdersResponseSchema = z.object({
5
+ message: z.string().optional(),
6
+ data: GroupCreateOrdersFromPreOrdersDataSchema,
7
+ });
@@ -37,3 +37,46 @@ export * from './standing-order-conversion-plan-line.schema';
37
37
  export * from './standing-order-conversion-result.schema';
38
38
  export * from './standing-order-conversion-target-pre-order.schema';
39
39
  export * from './standing-order-conversion-target.schema';
40
+ export * from './pre-order-conversion-plan-allocation.schema';
41
+ export * from './pre-order-conversion-failed-error.schema';
42
+ export * from './group-create-orders-from-pre-orders-data.schema';
43
+ export * from './group-create-orders-from-pre-orders-request.schema';
44
+ export * from './group-create-orders-from-pre-orders-response.schema';
45
+ export * from './pre-order-conversion-match.schema';
46
+ export * from './pre-order-conversion-mapping.schema';
47
+ export * from './pre-order-conversion-analysis.schema';
48
+ export * from './pre-order-conversion-error.schema';
49
+ export * from './analyze-create-orders-from-pre-orders-data.schema';
50
+ export * from './analyze-create-orders-from-pre-orders-request.schema';
51
+ export * from './analyze-create-orders-from-pre-orders-response.schema';
52
+ export * from './pre-order-conversion-plan-line.schema';
53
+ export * from './pre-order-conversion-plan-entry.schema';
54
+ export * from './pre-order-conversion-order.schema';
55
+ export * from './pre-order-conversion-created.schema';
56
+ export * from './pre-order-conversion-failed.schema';
57
+ export * from './pre-order-conversion-attributes.schema';
58
+ export * from './pre-order-conversion-difference.schema';
59
+ export * from './pre-order-conversion-remainder.schema';
60
+ export * from './pre-order-conversion-allocation.schema';
61
+ export * from './pre-order-conversion-summary-line.schema';
62
+ export * from './pre-order-conversion-summary.schema';
63
+ export * from './pre-order-conversion-match-description.schema';
64
+ export * from './pre-order-conversion-change.schema';
65
+ export * from './pre-order-conversion-skipped.schema';
66
+ export * from './pre-order-conversion-preview-plan-entry.schema';
67
+
68
+ export * from './pre-order-fulfillment-substitute.schema';
69
+
70
+ export * from './pre-order-fulfillment-stop-price.schema';
71
+
72
+ export * from './pre-order-fulfillment.schema';
73
+
74
+ export * from './pre-order-conversion-current-order.schema';
75
+ export * from './create-pre-order-webshop-response.schema';
76
+ export * from './update-pre-order-webshop-response.schema';
77
+ export * from './checkout-pre-order-webshop-request.schema';
78
+ export * from './checkout-pre-order-webshop-response.schema';
79
+ export * from './get-pre-order-by-collection-for-client-response.schema';
80
+ export * from './revert-pre-order-conversion-order.schema';
81
+ export * from './revert-pre-order-conversion-result.schema';
82
+ export * from './revert-pre-order-conversion-response.schema';
@@ -0,0 +1,21 @@
1
+ import { PreOrderConversionWarningEnum } from '../../enum/pre-order-conversion-warning.enum';
2
+ import { PreOrderConversionMatchKindEnum } from '../../enum/pre-order-conversion-match-kind.enum';
3
+ import { z } from 'zod';
4
+ import { MoneySchema } from '../money.schema';
5
+ import { PreOrderConversionDifferenceSchema } from './pre-order-conversion-difference.schema';
6
+ import { PreOrderConversionAttributesSchema } from './pre-order-conversion-attributes.schema';
7
+
8
+ export const PreOrderConversionAllocationSchema = z.object({
9
+ orderUUID: z.uuid(),
10
+ orderId: z.number().int(),
11
+ orderProductUUID: z.uuid(),
12
+ productUUID: z.uuid(),
13
+ quantity: z.number().int().positive(),
14
+ orderProductQuantity: z.number().int().positive(),
15
+ price: MoneySchema,
16
+ multiplicityOptionUUID: z.string().nullable(),
17
+ kind: z.enum(PreOrderConversionMatchKindEnum),
18
+ differences: PreOrderConversionDifferenceSchema.array(),
19
+ warnings: z.enum(PreOrderConversionWarningEnum).array(),
20
+ product: PreOrderConversionAttributesSchema,
21
+ });
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ import { PreOrderWithClientSchema } from './pre-order.schema';
3
+ import { PreOrderConversionMappingSchema } from './pre-order-conversion-mapping.schema';
4
+
5
+ export const PreOrderConversionAnalysisSchema = z.object({
6
+ version: z.string().optional(),
7
+ preOrder: PreOrderWithClientSchema,
8
+ mappings: z.record(z.string(), PreOrderConversionMappingSchema),
9
+ warnings: z.array(z.string()),
10
+ });
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+
3
+ export const PreOrderConversionAttributesSchema = z.object({
4
+ name: z.string().nullable(),
5
+ size: z.string().nullable(),
6
+ color: z.string().nullable(),
7
+ grower: z.string().nullable(),
8
+ categoryUUID: z.string().nullable(),
9
+ categoryName: z.string().nullable(),
10
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+
3
+ export const PreOrderConversionChangeSchema = z.object({
4
+ orderProductUUID: z.uuid(),
5
+ isChangedAfterConversion: z.boolean(),
6
+ isOrderAvailable: z.boolean(),
7
+ });
@@ -0,0 +1,9 @@
1
+ import { PreOrderConversionSummarySchema } from './pre-order-conversion-summary.schema';
2
+ import { z } from 'zod';
3
+ import { PreOrderConversionOrderSchema } from './pre-order-conversion-order.schema';
4
+
5
+ export const PreOrderConversionCreatedSchema = z.object({
6
+ preOrderUUID: z.uuid(),
7
+ conversionSummary: PreOrderConversionSummarySchema.nullable().optional(),
8
+ orders: PreOrderConversionOrderSchema.array(),
9
+ });
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { OrderStatusEnum } from '../../enum/order-status.enum';
3
+ export const PreOrderConversionCurrentOrderSchema = z.object({
4
+ uuid: z.uuid(),
5
+ number: z.number().int(),
6
+ status: z.enum(OrderStatusEnum).nullable(),
7
+ exists: z.boolean(),
8
+ });
@@ -0,0 +1,10 @@
1
+ import { PreOrderConversionDifferenceFieldEnum } from '../../enum/pre-order-conversion-difference-field.enum';
2
+ import { z } from 'zod';
3
+
4
+ export const PreOrderConversionDifferenceSchema = z.object({
5
+ field: z.enum(PreOrderConversionDifferenceFieldEnum),
6
+ requestedLabel: z.string().nullable().optional(),
7
+ selectedLabel: z.string().nullable().optional(),
8
+ requested: z.string(),
9
+ selected: z.string().nullable(),
10
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+
3
+ export const PreOrderConversionErrorSchema = z.object({
4
+ preOrderUUID: z.uuid(),
5
+ code: z.string(),
6
+ message: z.string(),
7
+ });
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+
3
+ export const PreOrderConversionFailedErrorSchema = z.object({
4
+ code: z.string(),
5
+ message: z.string(),
6
+ });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { PreOrderConversionFailedErrorSchema } from './pre-order-conversion-failed-error.schema';
3
+
4
+ export const PreOrderConversionFailedSchema = z.object({ preOrderUUID: z.uuid(), error: PreOrderConversionFailedErrorSchema });
@@ -0,0 +1,12 @@
1
+ import { PreOrderConversionRemainderSchema } from './pre-order-conversion-remainder.schema';
2
+ import { z } from 'zod';
3
+ import { PreOrderProductExtendedSchema } from '../pre-order-product/pre-order-product.schema';
4
+ import { PreOrderConversionMatchSchema } from './pre-order-conversion-match.schema';
5
+
6
+ export const PreOrderConversionMappingSchema = z.object({
7
+ item: PreOrderProductExtendedSchema,
8
+ matches: z.array(PreOrderConversionMatchSchema),
9
+ warnings: z.array(z.string()),
10
+ remainder: PreOrderConversionRemainderSchema.array().optional(),
11
+ remainingQuantity: z.number(),
12
+ });
@@ -0,0 +1,7 @@
1
+ import { PreOrderConversionAllocationSchema } from './pre-order-conversion-allocation.schema';
2
+
3
+ export const PreOrderConversionMatchDescriptionSchema = PreOrderConversionAllocationSchema.pick({
4
+ kind: true,
5
+ differences: true,
6
+ warnings: true,
7
+ });
@@ -0,0 +1,11 @@
1
+ import { PreOrderConversionMatchDescriptionSchema } from './pre-order-conversion-match-description.schema';
2
+ import { z } from 'zod';
3
+ import { ProductExtendedForAdminSchema } from '../product/product-extended-for-admin.schema';
4
+
5
+ export const PreOrderConversionMatchSchema = z.object({
6
+ product: ProductExtendedForAdminSchema,
7
+ quantity: z.number(),
8
+ description: PreOrderConversionMatchDescriptionSchema.optional(),
9
+ price: z.string().optional(),
10
+ remainingBalance: z.number(),
11
+ });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { OrderSchema } from '../order/order.schema';
3
+
4
+ export const PreOrderConversionOrderSchema = OrderSchema.extend({ warnings: z.string().array() });
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+
3
+ export const PreOrderConversionPlanAllocationSchema = z.object({ productUUID: z.uuid(), quantity: z.number().int().positive() });
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { PreOrderConversionPlanLineSchema } from './pre-order-conversion-plan-line.schema';
3
+
4
+ export const PreOrderConversionPlanEntrySchema = z.object({
5
+ preOrderUUID: z.uuid(),
6
+ version: z.string().min(1),
7
+ lines: PreOrderConversionPlanLineSchema.array(),
8
+ });
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { PreOrderConversionPlanAllocationSchema } from './pre-order-conversion-plan-allocation.schema';
3
+
4
+ export const PreOrderConversionPlanLineSchema = z.object({
5
+ preOrderProductUUID: z.uuid(),
6
+ allocations: PreOrderConversionPlanAllocationSchema.array(),
7
+ });
@@ -0,0 +1,3 @@
1
+ import { PreOrderConversionPlanEntrySchema } from './pre-order-conversion-plan-entry.schema';
2
+
3
+ export const PreOrderConversionPreviewPlanEntrySchema = PreOrderConversionPlanEntrySchema.omit({ version: true });
@@ -0,0 +1,7 @@
1
+ import { PreOrderConversionRemainderReasonEnum } from '../../enum/pre-order-conversion-remainder-reason.enum';
2
+ import { z } from 'zod';
3
+
4
+ export const PreOrderConversionRemainderSchema = z.object({
5
+ reason: z.enum(PreOrderConversionRemainderReasonEnum),
6
+ quantity: z.number().int().nonnegative(),
7
+ });
@@ -0,0 +1,4 @@
1
+ import { PreOrderConversionSkipReasonEnum } from '../../enum/pre-order-conversion-skip-reason.enum';
2
+ import { z } from 'zod';
3
+
4
+ export const PreOrderConversionSkippedSchema = z.object({ preOrderUUID: z.uuid(), reason: z.enum(PreOrderConversionSkipReasonEnum) });
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { MoneySchema } from '../money.schema';
3
+ import { PreOrderConversionAttributesSchema } from './pre-order-conversion-attributes.schema';
4
+ import { PreOrderConversionRemainderSchema } from './pre-order-conversion-remainder.schema';
5
+ import { PreOrderConversionAllocationSchema } from './pre-order-conversion-allocation.schema';
6
+
7
+ export const PreOrderConversionSummaryLineSchema = z.object({
8
+ preOrderProductUUID: z.uuid(),
9
+ requested: PreOrderConversionAttributesSchema,
10
+ comment: z.string().nullable(),
11
+ stopPrice: MoneySchema.nullable(),
12
+ isReplaceable: z.boolean(),
13
+ requestedQuantity: z.number().int().nonnegative(),
14
+ allocatedQuantity: z.number().int().nonnegative(),
15
+ closedQuantity: z.number().int().nonnegative(),
16
+ remainder: PreOrderConversionRemainderSchema.array(),
17
+ allocations: PreOrderConversionAllocationSchema.array(),
18
+ });
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import { PreOrderStatusEnum } from '../../enum/pre-order-status.enum';
3
+ import { PreOrderConversionSummaryLineSchema } from './pre-order-conversion-summary-line.schema';
4
+
5
+ export const PreOrderConversionSummarySchema = z.object({
6
+ version: z.literal(1),
7
+ convertedAt: z.iso.datetime(),
8
+ creatorUserUUID: z.uuid(),
9
+ // Статус до оформления — в него предзаказ вернётся при откате. В ранних снимках поля нет.
10
+ previousStatus: z.enum(PreOrderStatusEnum).optional(),
11
+ lines: PreOrderConversionSummaryLineSchema.array(),
12
+ });
@@ -1,7 +1,11 @@
1
+ import { PreOrderFulfillmentSchema } from './pre-order-fulfillment.schema';
1
2
  import { z } from 'zod';
2
3
  import { PreOrderStatusEnum } from '../../enum';
3
4
 
4
5
  export const PreOrderForClientSchema = z.object({
6
+ fulfillment: z.record(z.uuid(), PreOrderFulfillmentSchema).nullable().optional(),
7
+ orderNumbers: z.number().int().array().optional(),
8
+ hasUnavailableOrders: z.boolean().optional(),
5
9
  uuid: z.string(),
6
10
  clientUUID: z.string(),
7
11
  branchUUID: z.string().nullable(),
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+ import { MoneySchema } from '../money.schema';
3
+ export const PreOrderFulfillmentStopPriceSchema = z.object({ limit: MoneySchema, prices: MoneySchema.array(), currency: z.string() });
@@ -0,0 +1,2 @@
1
+ import { z } from 'zod';
2
+ export const PreOrderFulfillmentSubstituteSchema = z.object({ name: z.string(), quantity: z.number().int().positive() });
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ import { PreOrderFulfillmentStatusEnum } from '../../enum/pre-order-fulfillment-status.enum';
3
+ import { PreOrderConversionAttributesSchema } from './pre-order-conversion-attributes.schema';
4
+ import { PreOrderFulfillmentSubstituteSchema } from './pre-order-fulfillment-substitute.schema';
5
+ import { PreOrderFulfillmentStopPriceSchema } from './pre-order-fulfillment-stop-price.schema';
6
+ export const PreOrderFulfillmentSchema = z.object({
7
+ status: z.enum(PreOrderFulfillmentStatusEnum),
8
+ allocated: z.number().int().nonnegative(),
9
+ requested: z.number().int().nonnegative(),
10
+ requestedAttributes: PreOrderConversionAttributesSchema.nullable(),
11
+ substitutes: PreOrderFulfillmentSubstituteSchema.array(),
12
+ stopPrice: PreOrderFulfillmentStopPriceSchema.nullable(),
13
+ });
@@ -1,3 +1,6 @@
1
+ import { PreOrderConversionCurrentOrderSchema } from './pre-order-conversion-current-order.schema';
2
+ import { PreOrderConversionChangeSchema } from './pre-order-conversion-change.schema';
3
+ import { PreOrderConversionSummarySchema } from './pre-order-conversion-summary.schema';
1
4
  import { z } from 'zod';
2
5
  import { PreOrderStatusEnum } from '../../enum/pre-order-status.enum';
3
6
  import { ClientSchema } from '../client/client-base.schema';
@@ -6,6 +9,9 @@ import { PreOrderCollectionSchema } from '../pre-order-collection/pre-order-coll
6
9
  import { MoneySchema } from '../money.schema';
7
10
 
8
11
  export const PreOrderSchema = z.object({
12
+ conversionOrders: PreOrderConversionCurrentOrderSchema.array().optional(),
13
+ conversionChanges: PreOrderConversionChangeSchema.array().optional(),
14
+ conversionSummary: PreOrderConversionSummarySchema.nullable().optional(),
9
15
  uuid: z.string(),
10
16
  clientUUID: z.string(),
11
17
  branchUUID: z.string().nullable(),
@@ -57,7 +63,14 @@ export const UpdatablePreOrderStatusSchema = z.enum([
57
63
  PreOrderStatusEnum.COMPLETED,
58
64
  ]);
59
65
 
60
- export const UpdatePreOrderSchema = PreOrderSchema.omit({ uuid: true, preOrderNum: true, createdAt: true })
66
+ export const UpdatePreOrderSchema = PreOrderSchema.omit({
67
+ uuid: true,
68
+ preOrderNum: true,
69
+ createdAt: true,
70
+ conversionOrders: true,
71
+ conversionSummary: true,
72
+ conversionChanges: true,
73
+ })
61
74
  .partial()
62
75
  .extend({ status: UpdatablePreOrderStatusSchema.optional() });
63
76
 
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+
3
+ export const RevertPreOrderConversionOrderSchema = z.object({
4
+ uuid: z.uuid(),
5
+ number: z.number().int(),
6
+ });
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import { RevertPreOrderConversionResultSchema } from './revert-pre-order-conversion-result.schema';
3
+
4
+ export const RevertPreOrderConversionResponseSchema = z.object({
5
+ data: RevertPreOrderConversionResultSchema,
6
+ });
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { PreOrderStatusEnum } from '../../enum/pre-order-status.enum';
3
+ import { RevertPreOrderConversionOrderSchema } from './revert-pre-order-conversion-order.schema';
4
+
5
+ export const RevertPreOrderConversionResultSchema = z.object({
6
+ status: z.enum(PreOrderStatusEnum),
7
+ deletedOrders: RevertPreOrderConversionOrderSchema.array(),
8
+ });
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+ import { PreOrderForClientSchema } from './pre-order-for-client.schema';
3
+ export const UpdatePreOrderWebshopResponseSchema = z.object({ message: z.string().optional(), data: PreOrderForClientSchema });