@endora-commerce/contracts 0.100.0
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/LICENSE +21 -0
- package/README.md +34 -0
- package/dist/actor.d.ts +79 -0
- package/dist/actor.d.ts.map +1 -0
- package/dist/actor.js +41 -0
- package/dist/actor.js.map +1 -0
- package/dist/addresses.d.ts +134 -0
- package/dist/addresses.d.ts.map +1 -0
- package/dist/addresses.js +16 -0
- package/dist/addresses.js.map +1 -0
- package/dist/admin-actions.d.ts +367 -0
- package/dist/admin-actions.d.ts.map +1 -0
- package/dist/admin-actions.js +287 -0
- package/dist/admin-actions.js.map +1 -0
- package/dist/admin-contributions.d.ts +518 -0
- package/dist/admin-contributions.d.ts.map +1 -0
- package/dist/admin-contributions.js +495 -0
- package/dist/admin-contributions.js.map +1 -0
- package/dist/admin-i18n.d.ts +135 -0
- package/dist/admin-i18n.d.ts.map +1 -0
- package/dist/admin-i18n.js +72 -0
- package/dist/admin-i18n.js.map +1 -0
- package/dist/admin-notifications.d.ts +55 -0
- package/dist/admin-notifications.d.ts.map +1 -0
- package/dist/admin-notifications.js +16 -0
- package/dist/admin-notifications.js.map +1 -0
- package/dist/admin-roles.d.ts +125 -0
- package/dist/admin-roles.d.ts.map +1 -0
- package/dist/admin-roles.js +2 -0
- package/dist/admin-roles.js.map +1 -0
- package/dist/admin-users.d.ts +178 -0
- package/dist/admin-users.d.ts.map +1 -0
- package/dist/admin-users.js +14 -0
- package/dist/admin-users.js.map +1 -0
- package/dist/admin.d.ts +243 -0
- package/dist/admin.d.ts.map +1 -0
- package/dist/admin.js +246 -0
- package/dist/admin.js.map +1 -0
- package/dist/analytics.d.ts +123 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/analytics.js +68 -0
- package/dist/analytics.js.map +1 -0
- package/dist/api-keys.d.ts +97 -0
- package/dist/api-keys.d.ts.map +1 -0
- package/dist/api-keys.js +64 -0
- package/dist/api-keys.js.map +1 -0
- package/dist/assets-library.d.ts +684 -0
- package/dist/assets-library.d.ts.map +1 -0
- package/dist/assets-library.js +181 -0
- package/dist/assets-library.js.map +1 -0
- package/dist/audit-logs.d.ts +141 -0
- package/dist/audit-logs.d.ts.map +1 -0
- package/dist/audit-logs.js +31 -0
- package/dist/audit-logs.js.map +1 -0
- package/dist/auth.d.ts +174 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +27 -0
- package/dist/auth.js.map +1 -0
- package/dist/blog.d.ts +669 -0
- package/dist/blog.d.ts.map +1 -0
- package/dist/blog.js +360 -0
- package/dist/blog.js.map +1 -0
- package/dist/capabilities.d.ts +40 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +38 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/carts.d.ts +1367 -0
- package/dist/carts.d.ts.map +1 -0
- package/dist/carts.js +405 -0
- package/dist/carts.js.map +1 -0
- package/dist/catalog.d.ts +2855 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.js +1543 -0
- package/dist/catalog.js.map +1 -0
- package/dist/cms.d.ts +872 -0
- package/dist/cms.d.ts.map +1 -0
- package/dist/cms.js +468 -0
- package/dist/cms.js.map +1 -0
- package/dist/common.d.ts +82 -0
- package/dist/common.d.ts.map +1 -0
- package/dist/common.js +72 -0
- package/dist/common.js.map +1 -0
- package/dist/comparisons.d.ts +487 -0
- package/dist/comparisons.d.ts.map +1 -0
- package/dist/comparisons.js +221 -0
- package/dist/comparisons.js.map +1 -0
- package/dist/credentials.d.ts +292 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +142 -0
- package/dist/credentials.js.map +1 -0
- package/dist/credit-limits.d.ts +111 -0
- package/dist/credit-limits.d.ts.map +1 -0
- package/dist/credit-limits.js +35 -0
- package/dist/credit-limits.js.map +1 -0
- package/dist/currencies.d.ts +127 -0
- package/dist/currencies.d.ts.map +1 -0
- package/dist/currencies.js +20 -0
- package/dist/currencies.js.map +1 -0
- package/dist/custom-fields.d.ts +345 -0
- package/dist/custom-fields.d.ts.map +1 -0
- package/dist/custom-fields.js +185 -0
- package/dist/custom-fields.js.map +1 -0
- package/dist/customer-accounts.d.ts +690 -0
- package/dist/customer-accounts.d.ts.map +1 -0
- package/dist/customer-accounts.js +41 -0
- package/dist/customer-accounts.js.map +1 -0
- package/dist/customers.d.ts +305 -0
- package/dist/customers.d.ts.map +1 -0
- package/dist/customers.js +158 -0
- package/dist/customers.js.map +1 -0
- package/dist/dictionary.d.ts +580 -0
- package/dist/dictionary.d.ts.map +1 -0
- package/dist/dictionary.js +297 -0
- package/dist/dictionary.js.map +1 -0
- package/dist/email-address.d.ts +62 -0
- package/dist/email-address.d.ts.map +1 -0
- package/dist/email-address.js +64 -0
- package/dist/email-address.js.map +1 -0
- package/dist/email.d.ts +175 -0
- package/dist/email.d.ts.map +1 -0
- package/dist/email.js +45 -0
- package/dist/email.js.map +1 -0
- package/dist/envelopes.d.ts +15 -0
- package/dist/envelopes.d.ts.map +1 -0
- package/dist/envelopes.js +16 -0
- package/dist/envelopes.js.map +1 -0
- package/dist/environment-inputs.d.ts +306 -0
- package/dist/environment-inputs.d.ts.map +1 -0
- package/dist/environment-inputs.js +277 -0
- package/dist/environment-inputs.js.map +1 -0
- package/dist/erp-connector.d.ts +52 -0
- package/dist/erp-connector.d.ts.map +1 -0
- package/dist/erp-connector.js +34 -0
- package/dist/erp-connector.js.map +1 -0
- package/dist/errors.d.ts +455 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +532 -0
- package/dist/errors.js.map +1 -0
- package/dist/google-analytics.d.ts +181 -0
- package/dist/google-analytics.d.ts.map +1 -0
- package/dist/google-analytics.js +176 -0
- package/dist/google-analytics.js.map +1 -0
- package/dist/google-tag-manager.d.ts +111 -0
- package/dist/google-tag-manager.d.ts.map +1 -0
- package/dist/google-tag-manager.js +129 -0
- package/dist/google-tag-manager.js.map +1 -0
- package/dist/i18n.d.ts +69 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +59 -0
- package/dist/i18n.js.map +1 -0
- package/dist/import-export.d.ts +63 -0
- package/dist/import-export.d.ts.map +1 -0
- package/dist/import-export.js +37 -0
- package/dist/import-export.js.map +1 -0
- package/dist/index.d.ts +82 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +126 -0
- package/dist/index.js.map +1 -0
- package/dist/inventory.d.ts +673 -0
- package/dist/inventory.d.ts.map +1 -0
- package/dist/inventory.js +412 -0
- package/dist/inventory.js.map +1 -0
- package/dist/invoice-ledger.d.ts +366 -0
- package/dist/invoice-ledger.d.ts.map +1 -0
- package/dist/invoice-ledger.js +114 -0
- package/dist/invoice-ledger.js.map +1 -0
- package/dist/invoices.d.ts +845 -0
- package/dist/invoices.d.ts.map +1 -0
- package/dist/invoices.js +314 -0
- package/dist/invoices.js.map +1 -0
- package/dist/kernel.d.ts +49 -0
- package/dist/kernel.d.ts.map +1 -0
- package/dist/kernel.js +19 -0
- package/dist/kernel.js.map +1 -0
- package/dist/languages.d.ts +122 -0
- package/dist/languages.d.ts.map +1 -0
- package/dist/languages.js +24 -0
- package/dist/languages.js.map +1 -0
- package/dist/linkedin-ads.d.ts +167 -0
- package/dist/linkedin-ads.d.ts.map +1 -0
- package/dist/linkedin-ads.js +156 -0
- package/dist/linkedin-ads.js.map +1 -0
- package/dist/megamenu.d.ts +556 -0
- package/dist/megamenu.d.ts.map +1 -0
- package/dist/megamenu.js +186 -0
- package/dist/megamenu.js.map +1 -0
- package/dist/meta-ads.d.ts +126 -0
- package/dist/meta-ads.d.ts.map +1 -0
- package/dist/meta-ads.js +112 -0
- package/dist/meta-ads.js.map +1 -0
- package/dist/mfa.d.ts +274 -0
- package/dist/mfa.d.ts.map +1 -0
- package/dist/mfa.js +187 -0
- package/dist/mfa.js.map +1 -0
- package/dist/modules.d.ts +1706 -0
- package/dist/modules.d.ts.map +1 -0
- package/dist/modules.js +1390 -0
- package/dist/modules.js.map +1 -0
- package/dist/newsletter.d.ts +611 -0
- package/dist/newsletter.d.ts.map +1 -0
- package/dist/newsletter.js +345 -0
- package/dist/newsletter.js.map +1 -0
- package/dist/orders.d.ts +1175 -0
- package/dist/orders.d.ts.map +1 -0
- package/dist/orders.js +630 -0
- package/dist/orders.js.map +1 -0
- package/dist/organizations.d.ts +938 -0
- package/dist/organizations.d.ts.map +1 -0
- package/dist/organizations.js +418 -0
- package/dist/organizations.js.map +1 -0
- package/dist/pagination.d.ts +21 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +22 -0
- package/dist/pagination.js.map +1 -0
- package/dist/payment-methods.d.ts +472 -0
- package/dist/payment-methods.d.ts.map +1 -0
- package/dist/payment-methods.js +175 -0
- package/dist/payment-methods.js.map +1 -0
- package/dist/payment-return-url.d.ts +53 -0
- package/dist/payment-return-url.d.ts.map +1 -0
- package/dist/payment-return-url.js +35 -0
- package/dist/payment-return-url.js.map +1 -0
- package/dist/payments.d.ts +386 -0
- package/dist/payments.d.ts.map +1 -0
- package/dist/payments.js +84 -0
- package/dist/payments.js.map +1 -0
- package/dist/pim-connector.d.ts +60 -0
- package/dist/pim-connector.d.ts.map +1 -0
- package/dist/pim-connector.js +43 -0
- package/dist/pim-connector.js.map +1 -0
- package/dist/pim-field-path.d.ts +6 -0
- package/dist/pim-field-path.d.ts.map +1 -0
- package/dist/pim-field-path.js +101 -0
- package/dist/pim-field-path.js.map +1 -0
- package/dist/platform-language.d.ts +20 -0
- package/dist/platform-language.d.ts.map +1 -0
- package/dist/platform-language.js +22 -0
- package/dist/platform-language.js.map +1 -0
- package/dist/price-lists.d.ts +685 -0
- package/dist/price-lists.d.ts.map +1 -0
- package/dist/price-lists.js +330 -0
- package/dist/price-lists.js.map +1 -0
- package/dist/product-feeds.d.ts +2837 -0
- package/dist/product-feeds.d.ts.map +1 -0
- package/dist/product-feeds.js +1504 -0
- package/dist/product-feeds.js.map +1 -0
- package/dist/product-scope-overrides.d.ts +134 -0
- package/dist/product-scope-overrides.d.ts.map +1 -0
- package/dist/product-scope-overrides.js +82 -0
- package/dist/product-scope-overrides.js.map +1 -0
- package/dist/product-value-resolver.d.ts +88 -0
- package/dist/product-value-resolver.d.ts.map +1 -0
- package/dist/product-value-resolver.js +128 -0
- package/dist/product-value-resolver.js.map +1 -0
- package/dist/promotions.d.ts +678 -0
- package/dist/promotions.d.ts.map +1 -0
- package/dist/promotions.js +479 -0
- package/dist/promotions.js.map +1 -0
- package/dist/prompt-actions.d.ts +582 -0
- package/dist/prompt-actions.d.ts.map +1 -0
- package/dist/prompt-actions.js +221 -0
- package/dist/prompt-actions.js.map +1 -0
- package/dist/pwa.d.ts +293 -0
- package/dist/pwa.d.ts.map +1 -0
- package/dist/pwa.js +204 -0
- package/dist/pwa.js.map +1 -0
- package/dist/quick-order.d.ts +340 -0
- package/dist/quick-order.d.ts.map +1 -0
- package/dist/quick-order.js +177 -0
- package/dist/quick-order.js.map +1 -0
- package/dist/quote-requests.d.ts +538 -0
- package/dist/quote-requests.d.ts.map +1 -0
- package/dist/quote-requests.js +308 -0
- package/dist/quote-requests.js.map +1 -0
- package/dist/returns.d.ts +774 -0
- package/dist/returns.d.ts.map +1 -0
- package/dist/returns.js +389 -0
- package/dist/returns.js.map +1 -0
- package/dist/sales-channels.d.ts +392 -0
- package/dist/sales-channels.d.ts.map +1 -0
- package/dist/sales-channels.js +285 -0
- package/dist/sales-channels.js.map +1 -0
- package/dist/scope-notice.d.ts +60 -0
- package/dist/scope-notice.d.ts.map +1 -0
- package/dist/scope-notice.js +56 -0
- package/dist/scope-notice.js.map +1 -0
- package/dist/search.d.ts +321 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +160 -0
- package/dist/search.js.map +1 -0
- package/dist/seo.d.ts +113 -0
- package/dist/seo.d.ts.map +1 -0
- package/dist/seo.js +63 -0
- package/dist/seo.js.map +1 -0
- package/dist/settings.d.ts +453 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +337 -0
- package/dist/settings.js.map +1 -0
- package/dist/shipments.d.ts +140 -0
- package/dist/shipments.d.ts.map +1 -0
- package/dist/shipments.js +14 -0
- package/dist/shipments.js.map +1 -0
- package/dist/shipping-methods.d.ts +350 -0
- package/dist/shipping-methods.d.ts.map +1 -0
- package/dist/shipping-methods.js +99 -0
- package/dist/shipping-methods.js.map +1 -0
- package/dist/shopping-lists.d.ts +122 -0
- package/dist/shopping-lists.d.ts.map +1 -0
- package/dist/shopping-lists.js +92 -0
- package/dist/shopping-lists.js.map +1 -0
- package/dist/taxes.d.ts +106 -0
- package/dist/taxes.d.ts.map +1 -0
- package/dist/taxes.js +80 -0
- package/dist/taxes.js.map +1 -0
- package/dist/text-normalization.d.ts +199 -0
- package/dist/text-normalization.d.ts.map +1 -0
- package/dist/text-normalization.js +205 -0
- package/dist/text-normalization.js.map +1 -0
- package/dist/transactional-emails.d.ts +459 -0
- package/dist/transactional-emails.d.ts.map +1 -0
- package/dist/transactional-emails.js +212 -0
- package/dist/transactional-emails.js.map +1 -0
- package/dist/webhooks.d.ts +69 -0
- package/dist/webhooks.d.ts.map +1 -0
- package/dist/webhooks.js +53 -0
- package/dist/webhooks.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,538 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Quote Requests (RFQ) module contracts — feature 008 workflow rewrite.
|
|
4
|
+
* Source of truth per Principle V; the backend re-uses these schemas as
|
|
5
|
+
* route validators and the frontends consume the inferred TS types.
|
|
6
|
+
*
|
|
7
|
+
* Replaces the foundation 001 contract entirely. The legacy seven-state
|
|
8
|
+
* status set is gone; the feature-008 six-state set lives below.
|
|
9
|
+
*
|
|
10
|
+
* See specs/008-quote-requests/contracts/ for the HTTP contract docs.
|
|
11
|
+
*/
|
|
12
|
+
export declare const rfqStatusSchema: z.ZodEnum<{
|
|
13
|
+
"Created from admin": "Created from admin";
|
|
14
|
+
Pending: "Pending";
|
|
15
|
+
Canceled: "Canceled";
|
|
16
|
+
Approved: "Approved";
|
|
17
|
+
Completed: "Completed";
|
|
18
|
+
Expired: "Expired";
|
|
19
|
+
}>;
|
|
20
|
+
export type RfqStatus = z.infer<typeof rfqStatusSchema>;
|
|
21
|
+
export declare const quoteRequestItemSchema: z.ZodObject<{
|
|
22
|
+
id: z.ZodString;
|
|
23
|
+
productId: z.ZodString;
|
|
24
|
+
productName: z.ZodString;
|
|
25
|
+
productSlug: z.ZodNullable<z.ZodString>;
|
|
26
|
+
variantId: z.ZodNullable<z.ZodString>;
|
|
27
|
+
variantLabel: z.ZodNullable<z.ZodString>;
|
|
28
|
+
quantity: z.ZodNumber;
|
|
29
|
+
desiredUnitPrice: z.ZodNullable<z.ZodNumber>;
|
|
30
|
+
agreedUnitPrice: z.ZodNullable<z.ZodNumber>;
|
|
31
|
+
lineNote: z.ZodNullable<z.ZodString>;
|
|
32
|
+
lineCurrency: z.ZodString;
|
|
33
|
+
discountPercent: z.ZodNullable<z.ZodNumber>;
|
|
34
|
+
taxRate: z.ZodDefault<z.ZodNumber>;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
export type QuoteRequestItem = z.infer<typeof quoteRequestItemSchema>;
|
|
37
|
+
export declare const rfqEventTypeSchema: z.ZodEnum<{
|
|
38
|
+
completed: "completed";
|
|
39
|
+
created: "created";
|
|
40
|
+
approved: "approved";
|
|
41
|
+
expired: "expired";
|
|
42
|
+
submitted: "submitted";
|
|
43
|
+
modified: "modified";
|
|
44
|
+
canceled: "canceled";
|
|
45
|
+
"customer-accepted-revision": "customer-accepted-revision";
|
|
46
|
+
"customer-rejected-revision": "customer-rejected-revision";
|
|
47
|
+
"re-submitted": "re-submitted";
|
|
48
|
+
"note-added": "note-added";
|
|
49
|
+
}>;
|
|
50
|
+
export type RfqEventType = z.infer<typeof rfqEventTypeSchema>;
|
|
51
|
+
export declare const quoteRequestEventSchema: z.ZodObject<{
|
|
52
|
+
id: z.ZodString;
|
|
53
|
+
eventType: z.ZodEnum<{
|
|
54
|
+
completed: "completed";
|
|
55
|
+
created: "created";
|
|
56
|
+
approved: "approved";
|
|
57
|
+
expired: "expired";
|
|
58
|
+
submitted: "submitted";
|
|
59
|
+
modified: "modified";
|
|
60
|
+
canceled: "canceled";
|
|
61
|
+
"customer-accepted-revision": "customer-accepted-revision";
|
|
62
|
+
"customer-rejected-revision": "customer-rejected-revision";
|
|
63
|
+
"re-submitted": "re-submitted";
|
|
64
|
+
"note-added": "note-added";
|
|
65
|
+
}>;
|
|
66
|
+
actorAdminUserId: z.ZodNullable<z.ZodString>;
|
|
67
|
+
actorCustomerAccountId: z.ZodNullable<z.ZodString>;
|
|
68
|
+
actorRoleLabel: z.ZodNullable<z.ZodString>;
|
|
69
|
+
payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
70
|
+
revisionId: z.ZodNullable<z.ZodString>;
|
|
71
|
+
createdAt: z.ZodString;
|
|
72
|
+
}, z.core.$strip>;
|
|
73
|
+
export type QuoteRequestEvent = z.infer<typeof quoteRequestEventSchema>;
|
|
74
|
+
export declare const rfqDiffEntrySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
75
|
+
kind: z.ZodLiteral<"header_note">;
|
|
76
|
+
before: z.ZodNullable<z.ZodString>;
|
|
77
|
+
after: z.ZodNullable<z.ZodString>;
|
|
78
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
79
|
+
kind: z.ZodLiteral<"line_added">;
|
|
80
|
+
productId: z.ZodString;
|
|
81
|
+
productName: z.ZodString;
|
|
82
|
+
quantity: z.ZodNumber;
|
|
83
|
+
agreedUnitPrice: z.ZodNullable<z.ZodNumber>;
|
|
84
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
85
|
+
kind: z.ZodLiteral<"line_removed">;
|
|
86
|
+
productId: z.ZodString;
|
|
87
|
+
productName: z.ZodString;
|
|
88
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
89
|
+
kind: z.ZodLiteral<"line_quantity">;
|
|
90
|
+
productId: z.ZodString;
|
|
91
|
+
productName: z.ZodString;
|
|
92
|
+
before: z.ZodNumber;
|
|
93
|
+
after: z.ZodNumber;
|
|
94
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
95
|
+
kind: z.ZodLiteral<"line_agreed_unit_price">;
|
|
96
|
+
productId: z.ZodString;
|
|
97
|
+
productName: z.ZodString;
|
|
98
|
+
before: z.ZodNullable<z.ZodNumber>;
|
|
99
|
+
after: z.ZodNullable<z.ZodNumber>;
|
|
100
|
+
}, z.core.$strip>], "kind">;
|
|
101
|
+
export type RfqDiffEntry = z.infer<typeof rfqDiffEntrySchema>;
|
|
102
|
+
export declare const rfqComparisonAgainstLastSeenSchema: z.ZodObject<{
|
|
103
|
+
diff: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
104
|
+
kind: z.ZodLiteral<"header_note">;
|
|
105
|
+
before: z.ZodNullable<z.ZodString>;
|
|
106
|
+
after: z.ZodNullable<z.ZodString>;
|
|
107
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
108
|
+
kind: z.ZodLiteral<"line_added">;
|
|
109
|
+
productId: z.ZodString;
|
|
110
|
+
productName: z.ZodString;
|
|
111
|
+
quantity: z.ZodNumber;
|
|
112
|
+
agreedUnitPrice: z.ZodNullable<z.ZodNumber>;
|
|
113
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
114
|
+
kind: z.ZodLiteral<"line_removed">;
|
|
115
|
+
productId: z.ZodString;
|
|
116
|
+
productName: z.ZodString;
|
|
117
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
118
|
+
kind: z.ZodLiteral<"line_quantity">;
|
|
119
|
+
productId: z.ZodString;
|
|
120
|
+
productName: z.ZodString;
|
|
121
|
+
before: z.ZodNumber;
|
|
122
|
+
after: z.ZodNumber;
|
|
123
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
124
|
+
kind: z.ZodLiteral<"line_agreed_unit_price">;
|
|
125
|
+
productId: z.ZodString;
|
|
126
|
+
productName: z.ZodString;
|
|
127
|
+
before: z.ZodNullable<z.ZodNumber>;
|
|
128
|
+
after: z.ZodNullable<z.ZodNumber>;
|
|
129
|
+
}, z.core.$strip>], "kind">>;
|
|
130
|
+
lastSeenRevisionNumber: z.ZodNumber;
|
|
131
|
+
currentRevisionNumber: z.ZodNumber;
|
|
132
|
+
}, z.core.$strip>;
|
|
133
|
+
export type RfqComparisonAgainstLastSeen = z.infer<typeof rfqComparisonAgainstLastSeenSchema>;
|
|
134
|
+
export declare const quoteRequestSchema: z.ZodObject<{
|
|
135
|
+
id: z.ZodString;
|
|
136
|
+
businessId: z.ZodString;
|
|
137
|
+
organizationId: z.ZodString;
|
|
138
|
+
customerAccountId: z.ZodString;
|
|
139
|
+
createdByAdminUserId: z.ZodNullable<z.ZodString>;
|
|
140
|
+
assignedAdminUserId: z.ZodNullable<z.ZodString>;
|
|
141
|
+
status: z.ZodEnum<{
|
|
142
|
+
"Created from admin": "Created from admin";
|
|
143
|
+
Pending: "Pending";
|
|
144
|
+
Canceled: "Canceled";
|
|
145
|
+
Approved: "Approved";
|
|
146
|
+
Completed: "Completed";
|
|
147
|
+
Expired: "Expired";
|
|
148
|
+
}>;
|
|
149
|
+
awaitingCustomerRevisionAcceptance: z.ZodBoolean;
|
|
150
|
+
currentRevisionNumber: z.ZodNumber;
|
|
151
|
+
lastCustomerSeenRevisionNumber: z.ZodNumber;
|
|
152
|
+
headerNote: z.ZodNullable<z.ZodString>;
|
|
153
|
+
cancellationReason: z.ZodNullable<z.ZodString>;
|
|
154
|
+
customFieldValues: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
155
|
+
items: z.ZodArray<z.ZodObject<{
|
|
156
|
+
id: z.ZodString;
|
|
157
|
+
productId: z.ZodString;
|
|
158
|
+
productName: z.ZodString;
|
|
159
|
+
productSlug: z.ZodNullable<z.ZodString>;
|
|
160
|
+
variantId: z.ZodNullable<z.ZodString>;
|
|
161
|
+
variantLabel: z.ZodNullable<z.ZodString>;
|
|
162
|
+
quantity: z.ZodNumber;
|
|
163
|
+
desiredUnitPrice: z.ZodNullable<z.ZodNumber>;
|
|
164
|
+
agreedUnitPrice: z.ZodNullable<z.ZodNumber>;
|
|
165
|
+
lineNote: z.ZodNullable<z.ZodString>;
|
|
166
|
+
lineCurrency: z.ZodString;
|
|
167
|
+
discountPercent: z.ZodNullable<z.ZodNumber>;
|
|
168
|
+
taxRate: z.ZodDefault<z.ZodNumber>;
|
|
169
|
+
}, z.core.$strip>>;
|
|
170
|
+
events: z.ZodArray<z.ZodObject<{
|
|
171
|
+
id: z.ZodString;
|
|
172
|
+
eventType: z.ZodEnum<{
|
|
173
|
+
completed: "completed";
|
|
174
|
+
created: "created";
|
|
175
|
+
approved: "approved";
|
|
176
|
+
expired: "expired";
|
|
177
|
+
submitted: "submitted";
|
|
178
|
+
modified: "modified";
|
|
179
|
+
canceled: "canceled";
|
|
180
|
+
"customer-accepted-revision": "customer-accepted-revision";
|
|
181
|
+
"customer-rejected-revision": "customer-rejected-revision";
|
|
182
|
+
"re-submitted": "re-submitted";
|
|
183
|
+
"note-added": "note-added";
|
|
184
|
+
}>;
|
|
185
|
+
actorAdminUserId: z.ZodNullable<z.ZodString>;
|
|
186
|
+
actorCustomerAccountId: z.ZodNullable<z.ZodString>;
|
|
187
|
+
actorRoleLabel: z.ZodNullable<z.ZodString>;
|
|
188
|
+
payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
189
|
+
revisionId: z.ZodNullable<z.ZodString>;
|
|
190
|
+
createdAt: z.ZodString;
|
|
191
|
+
}, z.core.$strip>>;
|
|
192
|
+
comparisonAgainstLastSeen: z.ZodNullable<z.ZodObject<{
|
|
193
|
+
diff: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
194
|
+
kind: z.ZodLiteral<"header_note">;
|
|
195
|
+
before: z.ZodNullable<z.ZodString>;
|
|
196
|
+
after: z.ZodNullable<z.ZodString>;
|
|
197
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
198
|
+
kind: z.ZodLiteral<"line_added">;
|
|
199
|
+
productId: z.ZodString;
|
|
200
|
+
productName: z.ZodString;
|
|
201
|
+
quantity: z.ZodNumber;
|
|
202
|
+
agreedUnitPrice: z.ZodNullable<z.ZodNumber>;
|
|
203
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
204
|
+
kind: z.ZodLiteral<"line_removed">;
|
|
205
|
+
productId: z.ZodString;
|
|
206
|
+
productName: z.ZodString;
|
|
207
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
208
|
+
kind: z.ZodLiteral<"line_quantity">;
|
|
209
|
+
productId: z.ZodString;
|
|
210
|
+
productName: z.ZodString;
|
|
211
|
+
before: z.ZodNumber;
|
|
212
|
+
after: z.ZodNumber;
|
|
213
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
214
|
+
kind: z.ZodLiteral<"line_agreed_unit_price">;
|
|
215
|
+
productId: z.ZodString;
|
|
216
|
+
productName: z.ZodString;
|
|
217
|
+
before: z.ZodNullable<z.ZodNumber>;
|
|
218
|
+
after: z.ZodNullable<z.ZodNumber>;
|
|
219
|
+
}, z.core.$strip>], "kind">>;
|
|
220
|
+
lastSeenRevisionNumber: z.ZodNumber;
|
|
221
|
+
currentRevisionNumber: z.ZodNumber;
|
|
222
|
+
}, z.core.$strip>>;
|
|
223
|
+
submittedAt: z.ZodNullable<z.ZodString>;
|
|
224
|
+
approvedAt: z.ZodNullable<z.ZodString>;
|
|
225
|
+
canceledAt: z.ZodNullable<z.ZodString>;
|
|
226
|
+
completedAt: z.ZodNullable<z.ZodString>;
|
|
227
|
+
expiredAt: z.ZodNullable<z.ZodString>;
|
|
228
|
+
expiresAt: z.ZodNullable<z.ZodString>;
|
|
229
|
+
convertedOrderId: z.ZodNullable<z.ZodString>;
|
|
230
|
+
taxRate: z.ZodDefault<z.ZodNumber>;
|
|
231
|
+
organization: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
232
|
+
id: z.ZodString;
|
|
233
|
+
name: z.ZodString;
|
|
234
|
+
legalName: z.ZodNullable<z.ZodString>;
|
|
235
|
+
taxId: z.ZodString;
|
|
236
|
+
vatStatus: z.ZodString;
|
|
237
|
+
}, z.core.$strip>>>;
|
|
238
|
+
customer: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
239
|
+
id: z.ZodString;
|
|
240
|
+
firstName: z.ZodNullable<z.ZodString>;
|
|
241
|
+
lastName: z.ZodNullable<z.ZodString>;
|
|
242
|
+
email: z.ZodString;
|
|
243
|
+
}, z.core.$strip>>>;
|
|
244
|
+
createdAt: z.ZodString;
|
|
245
|
+
updatedAt: z.ZodString;
|
|
246
|
+
version: z.ZodNumber;
|
|
247
|
+
}, z.core.$strip>;
|
|
248
|
+
export type QuoteRequest = z.infer<typeof quoteRequestSchema>;
|
|
249
|
+
export declare const quoteRequestSummarySchema: z.ZodObject<{
|
|
250
|
+
id: z.ZodString;
|
|
251
|
+
businessId: z.ZodString;
|
|
252
|
+
organizationId: z.ZodString;
|
|
253
|
+
customerAccountId: z.ZodString;
|
|
254
|
+
status: z.ZodEnum<{
|
|
255
|
+
"Created from admin": "Created from admin";
|
|
256
|
+
Pending: "Pending";
|
|
257
|
+
Canceled: "Canceled";
|
|
258
|
+
Approved: "Approved";
|
|
259
|
+
Completed: "Completed";
|
|
260
|
+
Expired: "Expired";
|
|
261
|
+
}>;
|
|
262
|
+
awaitingCustomerRevisionAcceptance: z.ZodBoolean;
|
|
263
|
+
lineCount: z.ZodNumber;
|
|
264
|
+
totalAtCustomerPrice: z.ZodNullable<z.ZodNumber>;
|
|
265
|
+
totalAtAgreedPrice: z.ZodNullable<z.ZodNumber>;
|
|
266
|
+
taxRate: z.ZodDefault<z.ZodNumber>;
|
|
267
|
+
currency: z.ZodString;
|
|
268
|
+
submittedAt: z.ZodNullable<z.ZodString>;
|
|
269
|
+
expiresAt: z.ZodNullable<z.ZodString>;
|
|
270
|
+
createdAt: z.ZodString;
|
|
271
|
+
updatedAt: z.ZodString;
|
|
272
|
+
version: z.ZodNumber;
|
|
273
|
+
originalRequester: z.ZodOptional<z.ZodObject<{
|
|
274
|
+
customerAccountId: z.ZodString;
|
|
275
|
+
displayName: z.ZodNullable<z.ZodString>;
|
|
276
|
+
}, z.core.$strip>>;
|
|
277
|
+
organizationName: z.ZodOptional<z.ZodString>;
|
|
278
|
+
customerDisplayName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
279
|
+
}, z.core.$strip>;
|
|
280
|
+
export type QuoteRequestSummary = z.infer<typeof quoteRequestSummarySchema>;
|
|
281
|
+
export declare const createQuoteRequestLineSchema: z.ZodObject<{
|
|
282
|
+
productId: z.ZodString;
|
|
283
|
+
variantId: z.ZodOptional<z.ZodString>;
|
|
284
|
+
quantity: z.ZodNumber;
|
|
285
|
+
desiredUnitPrice: z.ZodOptional<z.ZodNumber>;
|
|
286
|
+
lineNote: z.ZodOptional<z.ZodString>;
|
|
287
|
+
packagingUnitName: z.ZodOptional<z.ZodString>;
|
|
288
|
+
packagingUnitBaseQuantity: z.ZodOptional<z.ZodNumber>;
|
|
289
|
+
}, z.core.$strip>;
|
|
290
|
+
export type CreateQuoteRequestLine = z.infer<typeof createQuoteRequestLineSchema>;
|
|
291
|
+
export declare const createQuoteRequestSchema: z.ZodObject<{
|
|
292
|
+
headerNote: z.ZodOptional<z.ZodString>;
|
|
293
|
+
items: z.ZodArray<z.ZodObject<{
|
|
294
|
+
productId: z.ZodString;
|
|
295
|
+
variantId: z.ZodOptional<z.ZodString>;
|
|
296
|
+
quantity: z.ZodNumber;
|
|
297
|
+
desiredUnitPrice: z.ZodOptional<z.ZodNumber>;
|
|
298
|
+
lineNote: z.ZodOptional<z.ZodString>;
|
|
299
|
+
packagingUnitName: z.ZodOptional<z.ZodString>;
|
|
300
|
+
packagingUnitBaseQuantity: z.ZodOptional<z.ZodNumber>;
|
|
301
|
+
}, z.core.$strip>>;
|
|
302
|
+
}, z.core.$strip>;
|
|
303
|
+
export type CreateQuoteRequest = z.infer<typeof createQuoteRequestSchema>;
|
|
304
|
+
export declare const patchQuoteRequestSchema: z.ZodObject<{
|
|
305
|
+
headerNote: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
306
|
+
items: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
307
|
+
productId: z.ZodString;
|
|
308
|
+
variantId: z.ZodOptional<z.ZodString>;
|
|
309
|
+
quantity: z.ZodNumber;
|
|
310
|
+
desiredUnitPrice: z.ZodOptional<z.ZodNumber>;
|
|
311
|
+
lineNote: z.ZodOptional<z.ZodString>;
|
|
312
|
+
packagingUnitName: z.ZodOptional<z.ZodString>;
|
|
313
|
+
packagingUnitBaseQuantity: z.ZodOptional<z.ZodNumber>;
|
|
314
|
+
}, z.core.$strip>>>;
|
|
315
|
+
}, z.core.$strict>;
|
|
316
|
+
export type PatchQuoteRequest = z.infer<typeof patchQuoteRequestSchema>;
|
|
317
|
+
export declare const acceptRevisionSchema: z.ZodObject<{
|
|
318
|
+
expectedRevisionNumber: z.ZodNumber;
|
|
319
|
+
}, z.core.$strip>;
|
|
320
|
+
export type AcceptRevisionRequest = z.infer<typeof acceptRevisionSchema>;
|
|
321
|
+
export declare const rejectRevisionSchema: z.ZodObject<{
|
|
322
|
+
expectedRevisionNumber: z.ZodNumber;
|
|
323
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
324
|
+
}, z.core.$strip>;
|
|
325
|
+
export type RejectRevisionRequest = z.infer<typeof rejectRevisionSchema>;
|
|
326
|
+
export declare const resubmitQuoteRequestSchema: z.ZodObject<{
|
|
327
|
+
headerNote: z.ZodOptional<z.ZodString>;
|
|
328
|
+
}, z.core.$strict>;
|
|
329
|
+
export type ResubmitQuoteRequest = z.infer<typeof resubmitQuoteRequestSchema>;
|
|
330
|
+
export declare const adminCreateQuoteRequestLineSchema: z.ZodObject<{
|
|
331
|
+
productId: z.ZodString;
|
|
332
|
+
variantId: z.ZodOptional<z.ZodString>;
|
|
333
|
+
quantity: z.ZodNumber;
|
|
334
|
+
agreedUnitPrice: z.ZodNumber;
|
|
335
|
+
lineNote: z.ZodOptional<z.ZodString>;
|
|
336
|
+
}, z.core.$strip>;
|
|
337
|
+
export type AdminCreateQuoteRequestLine = z.infer<typeof adminCreateQuoteRequestLineSchema>;
|
|
338
|
+
export declare const adminCreateQuoteRequestSchema: z.ZodObject<{
|
|
339
|
+
organizationId: z.ZodString;
|
|
340
|
+
customerAccountId: z.ZodString;
|
|
341
|
+
headerNote: z.ZodOptional<z.ZodString>;
|
|
342
|
+
items: z.ZodArray<z.ZodObject<{
|
|
343
|
+
productId: z.ZodString;
|
|
344
|
+
variantId: z.ZodOptional<z.ZodString>;
|
|
345
|
+
quantity: z.ZodNumber;
|
|
346
|
+
agreedUnitPrice: z.ZodNumber;
|
|
347
|
+
lineNote: z.ZodOptional<z.ZodString>;
|
|
348
|
+
}, z.core.$strip>>;
|
|
349
|
+
expiresInDays: z.ZodOptional<z.ZodNumber>;
|
|
350
|
+
}, z.core.$strip>;
|
|
351
|
+
export type AdminCreateQuoteRequest = z.infer<typeof adminCreateQuoteRequestSchema>;
|
|
352
|
+
export declare const adminPatchQuoteRequestLineSchema: z.ZodObject<{
|
|
353
|
+
id: z.ZodOptional<z.ZodString>;
|
|
354
|
+
productId: z.ZodString;
|
|
355
|
+
variantId: z.ZodOptional<z.ZodString>;
|
|
356
|
+
quantity: z.ZodNumber;
|
|
357
|
+
agreedUnitPrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
358
|
+
lineNote: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
359
|
+
}, z.core.$strip>;
|
|
360
|
+
export type AdminPatchQuoteRequestLine = z.infer<typeof adminPatchQuoteRequestLineSchema>;
|
|
361
|
+
export declare const adminPatchQuoteRequestSchema: z.ZodObject<{
|
|
362
|
+
headerNote: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
363
|
+
items: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
364
|
+
id: z.ZodOptional<z.ZodString>;
|
|
365
|
+
productId: z.ZodString;
|
|
366
|
+
variantId: z.ZodOptional<z.ZodString>;
|
|
367
|
+
quantity: z.ZodNumber;
|
|
368
|
+
agreedUnitPrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
369
|
+
lineNote: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
370
|
+
}, z.core.$strip>>>;
|
|
371
|
+
expiresInDays: z.ZodOptional<z.ZodNumber>;
|
|
372
|
+
customFieldValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
373
|
+
}, z.core.$strict>;
|
|
374
|
+
export type AdminPatchQuoteRequest = z.infer<typeof adminPatchQuoteRequestSchema>;
|
|
375
|
+
export declare const adminApproveQuoteRequestSchema: z.ZodObject<{
|
|
376
|
+
note: z.ZodOptional<z.ZodString>;
|
|
377
|
+
}, z.core.$strict>;
|
|
378
|
+
export type AdminApproveQuoteRequest = z.infer<typeof adminApproveQuoteRequestSchema>;
|
|
379
|
+
export declare const adminCancelQuoteRequestSchema: z.ZodObject<{
|
|
380
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
381
|
+
}, z.core.$strict>;
|
|
382
|
+
export type AdminCancelQuoteRequest = z.infer<typeof adminCancelQuoteRequestSchema>;
|
|
383
|
+
export declare const adminAssignQuoteRequestSchema: z.ZodObject<{
|
|
384
|
+
adminUserId: z.ZodString;
|
|
385
|
+
}, z.core.$strip>;
|
|
386
|
+
export type AdminAssignQuoteRequest = z.infer<typeof adminAssignQuoteRequestSchema>;
|
|
387
|
+
export declare const convertQuoteRequestResponseSchema: z.ZodObject<{
|
|
388
|
+
cartId: z.ZodString;
|
|
389
|
+
checkoutUrl: z.ZodString;
|
|
390
|
+
}, z.core.$strip>;
|
|
391
|
+
export type ConvertQuoteRequestResponse = z.infer<typeof convertQuoteRequestResponseSchema>;
|
|
392
|
+
export declare const storefrontQuoteRequestSettingsSchema: z.ZodObject<{
|
|
393
|
+
showAddToQuoteOnCard: z.ZodBoolean;
|
|
394
|
+
showAddToQuoteOnPdp: z.ZodBoolean;
|
|
395
|
+
}, z.core.$strip>;
|
|
396
|
+
export type StorefrontQuoteRequestSettings = z.infer<typeof storefrontQuoteRequestSettingsSchema>;
|
|
397
|
+
/**
|
|
398
|
+
* The lifecycle statuses of a quote request.
|
|
399
|
+
*
|
|
400
|
+
* Published as a **union, not a port** (FR-013): `organizations`' sales-rep
|
|
401
|
+
* screen counts the three open ones by name, and switching a module off does
|
|
402
|
+
* not change what `'Pending'` is spelled. Unlike the order lifecycle these are
|
|
403
|
+
* fixed at compile time — a quote's status set is not admin-configurable.
|
|
404
|
+
*
|
|
405
|
+
* The capitalised, space-separated spellings are the persisted column values
|
|
406
|
+
* (research §R3); do not tidy them.
|
|
407
|
+
*/
|
|
408
|
+
export type QuoteRequestStatus = 'Created from admin' | 'Pending' | 'Canceled' | 'Approved' | 'Completed' | 'Expired';
|
|
409
|
+
/** The statuses that mean "this quote is still live". */
|
|
410
|
+
export declare const OPEN_QUOTE_REQUEST_STATUSES: readonly QuoteRequestStatus[];
|
|
411
|
+
/**
|
|
412
|
+
* A quote request as it crosses a module boundary — a plain shape, never the
|
|
413
|
+
* ORM entity (FR-011). The full customer-facing projection is `RfqDto`
|
|
414
|
+
* (`QuoteRequest` above), which carries the items, the events and the revision
|
|
415
|
+
* comparison; this is the row, for the two modules that only need to count or
|
|
416
|
+
* cross-reference one.
|
|
417
|
+
*/
|
|
418
|
+
export interface QuoteRequestRecord {
|
|
419
|
+
id: string;
|
|
420
|
+
businessId: string;
|
|
421
|
+
organizationId: string;
|
|
422
|
+
customerAccountId: string;
|
|
423
|
+
createdByAdminUserId: string | null;
|
|
424
|
+
assignedAdminUserId: string | null;
|
|
425
|
+
status: QuoteRequestStatus;
|
|
426
|
+
headerNote: string | null;
|
|
427
|
+
cancellationReason: string | null;
|
|
428
|
+
awaitingCustomerRevisionAcceptance: boolean;
|
|
429
|
+
lastCustomerSeenRevisionNumber: number;
|
|
430
|
+
currentRevisionNumber: number;
|
|
431
|
+
submittedAt: Date | null;
|
|
432
|
+
approvedAt: Date | null;
|
|
433
|
+
canceledAt: Date | null;
|
|
434
|
+
completedAt: Date | null;
|
|
435
|
+
expiredAt: Date | null;
|
|
436
|
+
expiresAt: Date | null;
|
|
437
|
+
convertedOrderId: string | null;
|
|
438
|
+
customFieldValues: Record<string, unknown>;
|
|
439
|
+
version: number;
|
|
440
|
+
createdAt: Date;
|
|
441
|
+
updatedAt: Date;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* One quote-request line, as the module that converts one back into a cart
|
|
445
|
+
* reads it (feature 075, `carts`' cut).
|
|
446
|
+
*
|
|
447
|
+
* Narrower than the row on purpose: the conversion re-resolves every price
|
|
448
|
+
* against the buyer's current price list (FR-017), so the money columns are
|
|
449
|
+
* deliberately absent — a caller that cannot see `desiredUnitPrice` cannot
|
|
450
|
+
* accidentally carry it over, which is the rule the conversion exists to obey.
|
|
451
|
+
* `productName` travels because a dropped line is reported by name.
|
|
452
|
+
*/
|
|
453
|
+
export interface QuoteRequestLineRecord {
|
|
454
|
+
id: string;
|
|
455
|
+
quoteRequestId: string;
|
|
456
|
+
productId: string;
|
|
457
|
+
productName: string;
|
|
458
|
+
variantId: string | null;
|
|
459
|
+
quantity: number;
|
|
460
|
+
packagingUnitName: string | null;
|
|
461
|
+
packagingUnitBaseQuantity: number | null;
|
|
462
|
+
/** Present for ERP export callers; cart conversion ignores these (FR-017). */
|
|
463
|
+
lineCurrency: string;
|
|
464
|
+
agreedUnitPrice: string | null;
|
|
465
|
+
desiredUnitPrice: string | null;
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Container name: `quoteRequestReadPort`. Owner: `quote_requests`.
|
|
469
|
+
*
|
|
470
|
+
* Two consumers, two questions. `carts` resolves the quote a cart was
|
|
471
|
+
* converted from, to show the buyer where the prices came from;
|
|
472
|
+
* `organizations` counts the open quotes per organisation on the sales-rep
|
|
473
|
+
* screen, which is where `OPEN_QUOTE_REQUEST_STATUSES` had been written out by
|
|
474
|
+
* hand.
|
|
475
|
+
*
|
|
476
|
+
* **Owner off:** the seam fails closed — resolving this port throws
|
|
477
|
+
* `ModuleDisabledError` and the call answers 503 `MODULE_DISABLED`, so nothing
|
|
478
|
+
* half-executes. Whether `quote_requests` has an off state at all is its manifest's
|
|
479
|
+
* `activation` to say, not this line's: a module declaring
|
|
480
|
+
* `nonDeactivatable` never enters one.
|
|
481
|
+
*/
|
|
482
|
+
export interface QuoteRequestReadPort {
|
|
483
|
+
findById(id: string): Promise<QuoteRequestRecord | null>;
|
|
484
|
+
/**
|
|
485
|
+
* Open quotes for the given organisations. Empty `organizationIds` answers
|
|
486
|
+
* the empty array rather than every quote — a rep assigned nothing sees
|
|
487
|
+
* nothing, which is not the same question as "no filter".
|
|
488
|
+
*/
|
|
489
|
+
listOpenForOrganizations(organizationIds: readonly string[]): Promise<QuoteRequestRecord[]>;
|
|
490
|
+
/**
|
|
491
|
+
* The quote's lines, in insertion order. Added in `carts`' cut: the
|
|
492
|
+
* quote-to-cart conversion read `QuoteRequestItem` directly, so it kept
|
|
493
|
+
* re-stocking a cart from quotes belonging to a module an operator had
|
|
494
|
+
* switched off.
|
|
495
|
+
*/
|
|
496
|
+
listItems(quoteRequestId: string): Promise<QuoteRequestLineRecord[]>;
|
|
497
|
+
/**
|
|
498
|
+
* The quote carrying this human-facing business id, or `null`.
|
|
499
|
+
*
|
|
500
|
+
* Added in `comarch_xl`'s cut: an ERP offer names the quote it answers by
|
|
501
|
+
* the reference a person read off the document, never by the uuid, and the
|
|
502
|
+
* connector had been reading `quote_requests` with a raw statement to
|
|
503
|
+
* resolve it.
|
|
504
|
+
*/
|
|
505
|
+
findByBusinessId(businessId: string): Promise<QuoteRequestRecord | null>;
|
|
506
|
+
}
|
|
507
|
+
/** Who is asking, on a customer-facing quote path. */
|
|
508
|
+
export interface RfqCustomerContext {
|
|
509
|
+
customerAccountId: string;
|
|
510
|
+
organizationId: string;
|
|
511
|
+
/**
|
|
512
|
+
* True when the account holds the org-admin role on the current
|
|
513
|
+
* organisation (FR-011 — broader visibility).
|
|
514
|
+
*/
|
|
515
|
+
isOrgAdmin: boolean;
|
|
516
|
+
}
|
|
517
|
+
/**
|
|
518
|
+
* Container name: `rfqService`. Owner: `quote_requests`.
|
|
519
|
+
*
|
|
520
|
+
* The customer-facing quote surface five modules reach: `carts` converting a
|
|
521
|
+
* cart, `orders` cloning an order to a quote, `shopping_lists` and
|
|
522
|
+
* `quick_order` quoting a built list, `customers` listing a buyer's quotes.
|
|
523
|
+
*
|
|
524
|
+
* Both methods already answer with contract DTOs, so this port needed no
|
|
525
|
+
* adapter — only a published name for the shape the five were importing the
|
|
526
|
+
* class to get.
|
|
527
|
+
*
|
|
528
|
+
* **Owner off:** the seam fails closed — resolving this port throws
|
|
529
|
+
* `ModuleDisabledError` and the call answers 503 `MODULE_DISABLED`, so nothing
|
|
530
|
+
* half-executes. Whether `quote_requests` has an off state at all is its manifest's
|
|
531
|
+
* `activation` to say, not this line's: a module declaring
|
|
532
|
+
* `nonDeactivatable` never enters one.
|
|
533
|
+
*/
|
|
534
|
+
export interface RfqCustomerPort {
|
|
535
|
+
createForCustomer(ctx: RfqCustomerContext, input: CreateQuoteRequest): Promise<QuoteRequest>;
|
|
536
|
+
listForCustomer(ctx: RfqCustomerContext): Promise<QuoteRequestSummary[]>;
|
|
537
|
+
}
|
|
538
|
+
//# sourceMappingURL=quote-requests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quote-requests.d.ts","sourceRoot":"","sources":["../src/quote-requests.ts"],"names":[],"mappings":"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"}
|