@floristcloud/api-lib 1.2.175 → 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.
- package/build/commands/pre-order/get-pre-order-by-pre-order-collection-uuid.command.js +2 -6
- package/build/commands/pre-order/group/analyze-create-orders-from-pre-orders.command.js +4 -35
- package/build/commands/pre-order/group/group-create-orders-from-pre-orders.command.js +4 -51
- package/build/commands/pre-order/index.js +1 -0
- package/build/commands/pre-order/revert-pre-order-conversion.command.js +8 -0
- package/build/commands/pre-order/webshop/checkout-pre-order-webshop.command.js +4 -14
- package/build/commands/pre-order/webshop/create-pre-order-webshop.command.js +2 -6
- package/build/commands/pre-order/webshop/update-pre-order-webshop.command.js +2 -6
- package/build/constant/error.js +49 -0
- package/build/enum/index.js +6 -0
- package/build/enum/pre-order-conversion-difference-field.enum.js +11 -0
- package/build/enum/pre-order-conversion-match-kind.enum.js +8 -0
- package/build/enum/pre-order-conversion-remainder-reason.enum.js +10 -0
- package/build/enum/pre-order-conversion-skip-reason.enum.js +7 -0
- package/build/enum/pre-order-conversion-warning.enum.js +8 -0
- package/build/enum/pre-order-fulfillment-status.enum.js +10 -0
- package/build/schemas/client/client-extended-list-item.schema.js +7 -0
- package/build/schemas/client/client-extended-list.schema.js +2 -2
- package/build/schemas/client/client-legal-profile-label.schema.js +6 -0
- package/build/schemas/client/client-legal-profile-requisites.schema.js +5 -0
- package/build/schemas/client/client-legal-profile.schema.js +1 -0
- package/build/schemas/client/create-client-legal-profile-request.schema.js +2 -2
- package/build/schemas/client/index.js +3 -0
- package/build/schemas/client/legal-identifier-value.schema.js +6 -0
- package/build/schemas/client/update-client-legal-profile-request.schema.js +2 -2
- package/build/schemas/pre-order/analyze-create-orders-from-pre-orders-data.schema.js +10 -0
- package/build/schemas/pre-order/analyze-create-orders-from-pre-orders-request.schema.js +13 -0
- package/build/schemas/pre-order/analyze-create-orders-from-pre-orders-response.schema.js +9 -0
- package/build/schemas/pre-order/checkout-pre-order-webshop-request.schema.js +7 -0
- package/build/schemas/pre-order/checkout-pre-order-webshop-response.schema.js +6 -0
- package/build/schemas/pre-order/create-pre-order-webshop-response.schema.js +6 -0
- package/build/schemas/pre-order/get-pre-order-by-collection-for-client-response.schema.js +6 -0
- package/build/schemas/pre-order/group-create-orders-from-pre-orders-data.schema.js +12 -0
- package/build/schemas/pre-order/group-create-orders-from-pre-orders-request.schema.js +17 -0
- package/build/schemas/pre-order/group-create-orders-from-pre-orders-response.schema.js +9 -0
- package/build/schemas/pre-order/index.js +39 -0
- package/build/schemas/pre-order/pre-order-conversion-allocation.schema.js +23 -0
- package/build/schemas/pre-order/pre-order-conversion-analysis.schema.js +12 -0
- package/build/schemas/pre-order/pre-order-conversion-attributes.schema.js +12 -0
- package/build/schemas/pre-order/pre-order-conversion-change.schema.js +9 -0
- package/build/schemas/pre-order/pre-order-conversion-created.schema.js +11 -0
- package/build/schemas/pre-order/pre-order-conversion-current-order.schema.js +11 -0
- package/build/schemas/pre-order/pre-order-conversion-difference.schema.js +12 -0
- package/build/schemas/pre-order/pre-order-conversion-error.schema.js +9 -0
- package/build/schemas/pre-order/pre-order-conversion-failed-error.schema.js +8 -0
- package/build/schemas/pre-order/pre-order-conversion-failed.schema.js +6 -0
- package/build/schemas/pre-order/pre-order-conversion-mapping.schema.js +14 -0
- package/build/schemas/pre-order/pre-order-conversion-match-description.schema.js +9 -0
- package/build/schemas/pre-order/pre-order-conversion-match.schema.js +13 -0
- package/build/schemas/pre-order/pre-order-conversion-order.schema.js +6 -0
- package/build/schemas/pre-order/pre-order-conversion-plan-allocation.schema.js +5 -0
- package/build/schemas/pre-order/pre-order-conversion-plan-entry.schema.js +10 -0
- package/build/schemas/pre-order/pre-order-conversion-plan-line.schema.js +9 -0
- package/build/schemas/pre-order/pre-order-conversion-preview-plan-entry.schema.js +5 -0
- package/build/schemas/pre-order/pre-order-conversion-remainder.schema.js +9 -0
- package/build/schemas/pre-order/pre-order-conversion-skipped.schema.js +6 -0
- package/build/schemas/pre-order/pre-order-conversion-summary-line.schema.js +20 -0
- package/build/schemas/pre-order/pre-order-conversion-summary.schema.js +14 -0
- package/build/schemas/pre-order/pre-order-for-client.schema.js +4 -0
- package/build/schemas/pre-order/pre-order-fulfillment-stop-price.schema.js +6 -0
- package/build/schemas/pre-order/pre-order-fulfillment-substitute.schema.js +5 -0
- package/build/schemas/pre-order/pre-order-fulfillment.schema.js +16 -0
- package/build/schemas/pre-order/pre-order.schema.js +14 -1
- package/build/schemas/pre-order/revert-pre-order-conversion-order.schema.js +8 -0
- package/build/schemas/pre-order/revert-pre-order-conversion-response.schema.js +8 -0
- package/build/schemas/pre-order/revert-pre-order-conversion-result.schema.js +10 -0
- package/build/schemas/pre-order/update-pre-order-webshop-response.schema.js +6 -0
- package/commands/pre-order/get-pre-order-by-pre-order-collection-uuid.command.ts +3 -7
- package/commands/pre-order/group/analyze-create-orders-from-pre-orders.command.ts +3 -49
- package/commands/pre-order/group/group-create-orders-from-pre-orders.command.ts +3 -51
- package/commands/pre-order/index.ts +1 -0
- package/commands/pre-order/revert-pre-order-conversion.command.ts +7 -0
- package/commands/pre-order/webshop/checkout-pre-order-webshop.command.ts +3 -14
- package/commands/pre-order/webshop/create-pre-order-webshop.command.ts +3 -7
- package/commands/pre-order/webshop/update-pre-order-webshop.command.ts +3 -7
- package/constant/error.ts +49 -0
- package/enum/index.ts +7 -0
- package/enum/pre-order-conversion-difference-field.enum.ts +7 -0
- package/enum/pre-order-conversion-match-kind.enum.ts +4 -0
- package/enum/pre-order-conversion-remainder-reason.enum.ts +6 -0
- package/enum/pre-order-conversion-skip-reason.enum.ts +3 -0
- package/enum/pre-order-conversion-warning.enum.ts +4 -0
- package/enum/pre-order-fulfillment-status.enum.ts +6 -0
- package/package.json +1 -1
- package/schemas/client/client-extended-list-item.schema.ts +5 -0
- package/schemas/client/client-extended-list.schema.ts +2 -2
- package/schemas/client/client-legal-profile-label.schema.ts +4 -0
- package/schemas/client/client-legal-profile-requisites.schema.ts +5 -0
- package/schemas/client/client-legal-profile.schema.ts +1 -0
- package/schemas/client/create-client-legal-profile-request.schema.ts +2 -2
- package/schemas/client/index.ts +3 -0
- package/schemas/client/legal-identifier-value.schema.ts +4 -0
- package/schemas/client/update-client-legal-profile-request.schema.ts +2 -2
- package/schemas/pre-order/analyze-create-orders-from-pre-orders-data.schema.ts +8 -0
- package/schemas/pre-order/analyze-create-orders-from-pre-orders-request.schema.ts +11 -0
- package/schemas/pre-order/analyze-create-orders-from-pre-orders-response.schema.ts +7 -0
- package/schemas/pre-order/checkout-pre-order-webshop-request.schema.ts +4 -0
- package/schemas/pre-order/checkout-pre-order-webshop-response.schema.ts +3 -0
- package/schemas/pre-order/create-pre-order-webshop-response.schema.ts +3 -0
- package/schemas/pre-order/get-pre-order-by-collection-for-client-response.schema.ts +3 -0
- package/schemas/pre-order/group-create-orders-from-pre-orders-data.schema.ts +10 -0
- package/schemas/pre-order/group-create-orders-from-pre-orders-request.schema.ts +15 -0
- package/schemas/pre-order/group-create-orders-from-pre-orders-response.schema.ts +7 -0
- package/schemas/pre-order/index.ts +43 -0
- package/schemas/pre-order/pre-order-conversion-allocation.schema.ts +21 -0
- package/schemas/pre-order/pre-order-conversion-analysis.schema.ts +10 -0
- package/schemas/pre-order/pre-order-conversion-attributes.schema.ts +10 -0
- package/schemas/pre-order/pre-order-conversion-change.schema.ts +7 -0
- package/schemas/pre-order/pre-order-conversion-created.schema.ts +9 -0
- package/schemas/pre-order/pre-order-conversion-current-order.schema.ts +8 -0
- package/schemas/pre-order/pre-order-conversion-difference.schema.ts +10 -0
- package/schemas/pre-order/pre-order-conversion-error.schema.ts +7 -0
- package/schemas/pre-order/pre-order-conversion-failed-error.schema.ts +6 -0
- package/schemas/pre-order/pre-order-conversion-failed.schema.ts +4 -0
- package/schemas/pre-order/pre-order-conversion-mapping.schema.ts +12 -0
- package/schemas/pre-order/pre-order-conversion-match-description.schema.ts +7 -0
- package/schemas/pre-order/pre-order-conversion-match.schema.ts +11 -0
- package/schemas/pre-order/pre-order-conversion-order.schema.ts +4 -0
- package/schemas/pre-order/pre-order-conversion-plan-allocation.schema.ts +3 -0
- package/schemas/pre-order/pre-order-conversion-plan-entry.schema.ts +8 -0
- package/schemas/pre-order/pre-order-conversion-plan-line.schema.ts +7 -0
- package/schemas/pre-order/pre-order-conversion-preview-plan-entry.schema.ts +3 -0
- package/schemas/pre-order/pre-order-conversion-remainder.schema.ts +7 -0
- package/schemas/pre-order/pre-order-conversion-skipped.schema.ts +4 -0
- package/schemas/pre-order/pre-order-conversion-summary-line.schema.ts +18 -0
- package/schemas/pre-order/pre-order-conversion-summary.schema.ts +12 -0
- package/schemas/pre-order/pre-order-for-client.schema.ts +4 -0
- package/schemas/pre-order/pre-order-fulfillment-stop-price.schema.ts +3 -0
- package/schemas/pre-order/pre-order-fulfillment-substitute.schema.ts +2 -0
- package/schemas/pre-order/pre-order-fulfillment.schema.ts +13 -0
- package/schemas/pre-order/pre-order.schema.ts +14 -1
- package/schemas/pre-order/revert-pre-order-conversion-order.schema.ts +6 -0
- package/schemas/pre-order/revert-pre-order-conversion-response.schema.ts +6 -0
- package/schemas/pre-order/revert-pre-order-conversion-result.schema.ts +8 -0
- package/schemas/pre-order/update-pre-order-webshop-response.schema.ts +3 -0
package/constant/error.ts
CHANGED
|
@@ -207,6 +207,20 @@ export const ERRORS = {
|
|
|
207
207
|
CLIENT_LEGAL_PROFILE_NOT_DELETED: { code: 'CL021', message: 'Legal profile not deleted', httpCode: 500 },
|
|
208
208
|
CLIENT_LEGAL_PROFILE_NOT_UPDATED: { code: 'CL022', message: 'Legal profile not updated', httpCode: 500 },
|
|
209
209
|
CLIENT_LEGAL_PROFILE_ARCHIVED: { code: 'CL046', message: 'Legal profile is archived', httpCode: 409 },
|
|
210
|
+
// Не дождались блокировки при записи карточки (lock_timeout): идентификаторы юрлиц компании или строку клиента
|
|
211
|
+
// держит другая запись — импорт, балансовая операция, параллельная правка карточек.
|
|
212
|
+
CLIENT_LEGAL_IDENTIFIERS_LOCK_BUSY: {
|
|
213
|
+
code: 'CL048',
|
|
214
|
+
message: 'Legal requisites of this company are being changed right now, try again',
|
|
215
|
+
httpCode: 409,
|
|
216
|
+
},
|
|
217
|
+
// Карточку реквизитов сейчас меняет другая операция (например, синхронизация): счёт на неё не дождался (lock_timeout)
|
|
218
|
+
// или дождался, но карточка уже не та, по которой он собрал реквизиты.
|
|
219
|
+
CLIENT_LEGAL_PROFILE_LOCK_BUSY: {
|
|
220
|
+
code: 'CL049',
|
|
221
|
+
message: 'Legal profile is being changed right now, try again',
|
|
222
|
+
httpCode: 409,
|
|
223
|
+
},
|
|
210
224
|
CLIENT_LEGAL_PROFILE_DEFAULT_REQUIRED: {
|
|
211
225
|
code: 'CL047',
|
|
212
226
|
message: 'Client must keep a default legal profile: assign another one instead',
|
|
@@ -1098,6 +1112,41 @@ export const ERRORS = {
|
|
|
1098
1112
|
message: 'Failed to create standing-order position from pre-order position',
|
|
1099
1113
|
httpCode: 400,
|
|
1100
1114
|
},
|
|
1115
|
+
PRE_ORDER_ALREADY_CONVERTED: {
|
|
1116
|
+
code: 'PO059',
|
|
1117
|
+
message: 'The pre-order has already been converted into orders.',
|
|
1118
|
+
httpCode: 409,
|
|
1119
|
+
},
|
|
1120
|
+
PRE_ORDER_NOTHING_MATCHED: {
|
|
1121
|
+
code: 'PO057',
|
|
1122
|
+
message: 'Nothing matched; the pre-order remains open.',
|
|
1123
|
+
httpCode: 400,
|
|
1124
|
+
},
|
|
1125
|
+
PRE_ORDER_CLOSE_REMAINDER_CONFIRMATION_REQUIRED: {
|
|
1126
|
+
code: 'PO058',
|
|
1127
|
+
message: 'Confirm closing the unallocated remainder before conversion.',
|
|
1128
|
+
httpCode: 400,
|
|
1129
|
+
},
|
|
1130
|
+
PRE_ORDER_NOT_CONVERTED: {
|
|
1131
|
+
code: 'PO060',
|
|
1132
|
+
message: 'The pre-order has not been converted into orders.',
|
|
1133
|
+
httpCode: 409,
|
|
1134
|
+
},
|
|
1135
|
+
PRE_ORDER_CONVERSION_REVERT_ORDERS_IN_WORK: {
|
|
1136
|
+
code: 'PO061',
|
|
1137
|
+
message: 'Orders from this conversion are already in work, so the conversion cannot be reverted.',
|
|
1138
|
+
httpCode: 409,
|
|
1139
|
+
},
|
|
1140
|
+
PRE_ORDER_CONVERSION_REVERT_ROWS_MOVED: {
|
|
1141
|
+
code: 'PO062',
|
|
1142
|
+
message: 'Goods from this conversion were moved to other orders, so the conversion cannot be reverted.',
|
|
1143
|
+
httpCode: 409,
|
|
1144
|
+
},
|
|
1145
|
+
PRE_ORDER_CONVERSION_SUMMARY_UNREADABLE: {
|
|
1146
|
+
code: 'PO063',
|
|
1147
|
+
message: 'The conversion snapshot cannot be read, so the orders to delete are unknown.',
|
|
1148
|
+
httpCode: 409,
|
|
1149
|
+
},
|
|
1101
1150
|
PRE_ORDER_CONVERSION_ANALYSIS_STALE: {
|
|
1102
1151
|
code: 'PO048',
|
|
1103
1152
|
message: 'The pre-order changed after the conversion analysis, analyze it again',
|
package/enum/index.ts
CHANGED
|
@@ -152,3 +152,10 @@ export * from './write-off-status.enum';
|
|
|
152
152
|
export * from './one-c-stock-conflict-status.enum';
|
|
153
153
|
export * from './one-c-stock-conflict-line-action.enum';
|
|
154
154
|
export * from './one-c-stock-conflict-line-restriction.enum';
|
|
155
|
+
export * from './pre-order-conversion-match-kind.enum';
|
|
156
|
+
export * from './pre-order-conversion-warning.enum';
|
|
157
|
+
export * from './pre-order-conversion-remainder-reason.enum';
|
|
158
|
+
export * from './pre-order-conversion-difference-field.enum';
|
|
159
|
+
export * from './pre-order-conversion-skip-reason.enum';
|
|
160
|
+
|
|
161
|
+
export * from './pre-order-fulfillment-status.enum';
|
package/package.json
CHANGED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ClientExtendedSchema } from './client-extended.schema';
|
|
2
|
+
|
|
3
|
+
// Клиент в списке: только основная карточка реквизитов. Все карточки — в карточке клиента
|
|
4
|
+
// (GET client/:uuid) и в списке карточек (GET client/:uuid/legal-profile): тянуть их на каждую строку списка дорого.
|
|
5
|
+
export const ClientExtendedListItemSchema = ClientExtendedSchema.omit({ clientLegalProfileList: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { ClientExtendedListItemSchema } from './client-extended-list-item.schema';
|
|
3
3
|
|
|
4
4
|
export const ClientExtendedListSchema = z.object({
|
|
5
|
-
clientList:
|
|
5
|
+
clientList: ClientExtendedListItemSchema.array(),
|
|
6
6
|
total: z.number(),
|
|
7
7
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ClientLegalProfileSchema } from './client-legal-profile.schema';
|
|
2
|
+
import { LegalIdentifierValueSchema } from './legal-identifier-value.schema';
|
|
2
3
|
|
|
3
4
|
// Реквизиты карточки, которые пользователь заполняет сам: без служебных полей и флагов карточки.
|
|
4
5
|
export const ClientLegalProfileRequisitesSchema = ClientLegalProfileSchema.omit({
|
|
@@ -10,4 +11,8 @@ export const ClientLegalProfileRequisitesSchema = ClientLegalProfileSchema.omit(
|
|
|
10
11
|
updatedAt: true,
|
|
11
12
|
}).extend({
|
|
12
13
|
correspondentAccount: ClientLegalProfileSchema.shape.correspondentAccount.optional(),
|
|
14
|
+
taxId: LegalIdentifierValueSchema,
|
|
15
|
+
ogrn: LegalIdentifierValueSchema,
|
|
16
|
+
ogrnip: LegalIdentifierValueSchema,
|
|
17
|
+
edoId: LegalIdentifierValueSchema,
|
|
13
18
|
});
|
|
@@ -3,6 +3,7 @@ import { ClientLegalTypeEnum } from '../../enum';
|
|
|
3
3
|
|
|
4
4
|
export const ClientLegalProfileSchema = z.object({
|
|
5
5
|
uuid: z.uuid(),
|
|
6
|
+
// Подпись карточки для селекта («ООО Ромашка, Сбер»); длина ограничена в запросах создания и правки.
|
|
6
7
|
label: z.string().nullable(),
|
|
7
8
|
isDefault: z.boolean(),
|
|
8
9
|
isArchived: z.boolean(),
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { ClientLegalProfileLabelSchema } from './client-legal-profile-label.schema';
|
|
3
3
|
import { ClientLegalProfileRequisitesSchema } from './client-legal-profile-requisites.schema';
|
|
4
4
|
|
|
5
5
|
export const CreateClientLegalProfileRequestSchema = ClientLegalProfileRequisitesSchema.extend({
|
|
6
|
-
label:
|
|
6
|
+
label: ClientLegalProfileLabelSchema,
|
|
7
7
|
isDefault: z.boolean().optional(),
|
|
8
8
|
});
|
package/schemas/client/index.ts
CHANGED
|
@@ -2,7 +2,9 @@ export * from './client.schema';
|
|
|
2
2
|
export * from './client-name.schema';
|
|
3
3
|
export * from './client-individual-profile.schema';
|
|
4
4
|
export * from './client-legal-profile.schema';
|
|
5
|
+
export * from './client-extended-list-item.schema';
|
|
5
6
|
export * from './client-legal-profile-requisites.schema';
|
|
7
|
+
export * from './client-legal-profile-label.schema';
|
|
6
8
|
export * from './create-client-legal-profile-request.schema';
|
|
7
9
|
export * from './create-client-legal-profile-response.schema';
|
|
8
10
|
export * from './update-client-legal-profile-request.schema';
|
|
@@ -27,3 +29,4 @@ export * from './update-client-for-client-request.schema';
|
|
|
27
29
|
export * from './update-client-for-client-response.schema';
|
|
28
30
|
export * from './client-extended-list.schema';
|
|
29
31
|
export * from './client-extended.schema';
|
|
32
|
+
export * from './legal-identifier-value.schema';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { ClientLegalProfileLabelSchema } from './client-legal-profile-label.schema';
|
|
3
3
|
import { ClientLegalProfileRequisitesSchema } from './client-legal-profile-requisites.schema';
|
|
4
4
|
|
|
5
5
|
// Правка частичная: поле, которого нет в запросе, не меняется, null — очищает. Так карточку можно сделать
|
|
6
6
|
// основной или убрать в архив, не пересылая реквизиты.
|
|
7
7
|
export const UpdateClientLegalProfileRequestSchema = ClientLegalProfileRequisitesSchema.partial().extend({
|
|
8
|
-
label:
|
|
8
|
+
label: ClientLegalProfileLabelSchema,
|
|
9
9
|
isDefault: z.boolean().optional(),
|
|
10
10
|
isArchived: z.boolean().optional(),
|
|
11
11
|
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { PreOrderConversionAnalysisSchema } from './pre-order-conversion-analysis.schema';
|
|
3
|
+
import { PreOrderConversionErrorSchema } from './pre-order-conversion-error.schema';
|
|
4
|
+
|
|
5
|
+
export const AnalyzeCreateOrdersFromPreOrdersDataSchema = z.object({
|
|
6
|
+
analyses: z.array(PreOrderConversionAnalysisSchema),
|
|
7
|
+
errorList: z.array(PreOrderConversionErrorSchema).optional(),
|
|
8
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PreOrderConversionPreviewPlanEntrySchema } from './pre-order-conversion-preview-plan-entry.schema';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { MatchingConfigSchema } from '../pre-order-product/matching-config.schema';
|
|
4
|
+
|
|
5
|
+
export const AnalyzeCreateOrdersFromPreOrdersRequestSchema = z.object({
|
|
6
|
+
plan: PreOrderConversionPreviewPlanEntrySchema.array().optional(),
|
|
7
|
+
preOrderUUIDs: z.uuid().array(),
|
|
8
|
+
consignmentUUIDs: z.uuid().array(),
|
|
9
|
+
matchingConfig: MatchingConfigSchema.optional().nullable(),
|
|
10
|
+
isProportionalAllocation: z.coerce.boolean().optional(),
|
|
11
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { AnalyzeCreateOrdersFromPreOrdersDataSchema } from './analyze-create-orders-from-pre-orders-data.schema';
|
|
3
|
+
|
|
4
|
+
export const AnalyzeCreateOrdersFromPreOrdersResponseSchema = z.object({
|
|
5
|
+
message: z.string().optional(),
|
|
6
|
+
data: AnalyzeCreateOrdersFromPreOrdersDataSchema,
|
|
7
|
+
});
|
|
@@ -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,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,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,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,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,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,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(),
|