@endora-commerce/mod-quote-requests 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 +59 -0
- package/dist/admin/index.d.ts +26 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +56 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/pages/RfqCreatePage.d.ts +9 -0
- package/dist/admin/pages/RfqCreatePage.d.ts.map +1 -0
- package/dist/admin/pages/RfqCreatePage.js +163 -0
- package/dist/admin/pages/RfqCreatePage.js.map +1 -0
- package/dist/admin/pages/RfqDetail.d.ts +9 -0
- package/dist/admin/pages/RfqDetail.d.ts.map +1 -0
- package/dist/admin/pages/RfqDetail.js +399 -0
- package/dist/admin/pages/RfqDetail.js.map +1 -0
- package/dist/admin/pages/RfqList.d.ts +9 -0
- package/dist/admin/pages/RfqList.d.ts.map +1 -0
- package/dist/admin/pages/RfqList.js +214 -0
- package/dist/admin/pages/RfqList.js.map +1 -0
- package/dist/admin/validity.d.ts +52 -0
- package/dist/admin/validity.d.ts.map +1 -0
- package/dist/admin/validity.js +61 -0
- package/dist/admin/validity.js.map +1 -0
- package/dist/backend/entities/quote-request-event.entity.d.ts +24 -0
- package/dist/backend/entities/quote-request-event.entity.d.ts.map +1 -0
- package/dist/backend/entities/quote-request-event.entity.js +67 -0
- package/dist/backend/entities/quote-request-event.entity.js.map +1 -0
- package/dist/backend/entities/quote-request-item.entity.d.ts +34 -0
- package/dist/backend/entities/quote-request-item.entity.d.ts.map +1 -0
- package/dist/backend/entities/quote-request-item.entity.js +119 -0
- package/dist/backend/entities/quote-request-item.entity.js.map +1 -0
- package/dist/backend/entities/quote-request-notification-event.entity.d.ts +23 -0
- package/dist/backend/entities/quote-request-notification-event.entity.d.ts.map +1 -0
- package/dist/backend/entities/quote-request-notification-event.entity.js +72 -0
- package/dist/backend/entities/quote-request-notification-event.entity.js.map +1 -0
- package/dist/backend/entities/quote-request-revision.entity.d.ts +35 -0
- package/dist/backend/entities/quote-request-revision.entity.d.ts.map +1 -0
- package/dist/backend/entities/quote-request-revision.entity.js +67 -0
- package/dist/backend/entities/quote-request-revision.entity.js.map +1 -0
- package/dist/backend/entities/quote-request.entity.d.ts +90 -0
- package/dist/backend/entities/quote-request.entity.d.ts.map +1 -0
- package/dist/backend/entities/quote-request.entity.js +191 -0
- package/dist/backend/entities/quote-request.entity.js.map +1 -0
- package/dist/backend/index.d.ts +120 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +361 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/plugin.d.ts +95 -0
- package/dist/backend/plugin.d.ts.map +1 -0
- package/dist/backend/plugin.js +152 -0
- package/dist/backend/plugin.js.map +1 -0
- package/dist/backend/routes.admin.d.ts +13 -0
- package/dist/backend/routes.admin.d.ts.map +1 -0
- package/dist/backend/routes.admin.js +82 -0
- package/dist/backend/routes.admin.js.map +1 -0
- package/dist/backend/routes.customer.d.ts +18 -0
- package/dist/backend/routes.customer.d.ts.map +1 -0
- package/dist/backend/routes.customer.js +98 -0
- package/dist/backend/routes.customer.js.map +1 -0
- package/dist/backend/routes.sales-reps.d.ts +12 -0
- package/dist/backend/routes.sales-reps.d.ts.map +1 -0
- package/dist/backend/routes.sales-reps.js +57 -0
- package/dist/backend/routes.sales-reps.js.map +1 -0
- package/dist/backend/services/order-completion-reactor.d.ts +32 -0
- package/dist/backend/services/order-completion-reactor.d.ts.map +1 -0
- package/dist/backend/services/order-completion-reactor.js +57 -0
- package/dist/backend/services/order-completion-reactor.js.map +1 -0
- package/dist/backend/services/quote-request-business-id-generator.d.ts +46 -0
- package/dist/backend/services/quote-request-business-id-generator.d.ts.map +1 -0
- package/dist/backend/services/quote-request-business-id-generator.js +69 -0
- package/dist/backend/services/quote-request-business-id-generator.js.map +1 -0
- package/dist/backend/services/quote-request-read-port.d.ts +36 -0
- package/dist/backend/services/quote-request-read-port.d.ts.map +1 -0
- package/dist/backend/services/quote-request-read-port.js +96 -0
- package/dist/backend/services/quote-request-read-port.js.map +1 -0
- package/dist/backend/services/raised-on-channel.d.ts +23 -0
- package/dist/backend/services/raised-on-channel.d.ts.map +1 -0
- package/dist/backend/services/raised-on-channel.js +26 -0
- package/dist/backend/services/raised-on-channel.js.map +1 -0
- package/dist/backend/services/rfq-admin-service.d.ts +75 -0
- package/dist/backend/services/rfq-admin-service.d.ts.map +1 -0
- package/dist/backend/services/rfq-admin-service.js +487 -0
- package/dist/backend/services/rfq-admin-service.js.map +1 -0
- package/dist/backend/services/rfq-event-service.d.ts +32 -0
- package/dist/backend/services/rfq-event-service.d.ts.map +1 -0
- package/dist/backend/services/rfq-event-service.js +28 -0
- package/dist/backend/services/rfq-event-service.js.map +1 -0
- package/dist/backend/services/rfq-expiry-worker.d.ts +50 -0
- package/dist/backend/services/rfq-expiry-worker.d.ts.map +1 -0
- package/dist/backend/services/rfq-expiry-worker.js +70 -0
- package/dist/backend/services/rfq-expiry-worker.js.map +1 -0
- package/dist/backend/services/rfq-notification-service.d.ts +36 -0
- package/dist/backend/services/rfq-notification-service.d.ts.map +1 -0
- package/dist/backend/services/rfq-notification-service.js +52 -0
- package/dist/backend/services/rfq-notification-service.js.map +1 -0
- package/dist/backend/services/rfq-revision-service.d.ts +70 -0
- package/dist/backend/services/rfq-revision-service.d.ts.map +1 -0
- package/dist/backend/services/rfq-revision-service.js +120 -0
- package/dist/backend/services/rfq-revision-service.js.map +1 -0
- package/dist/backend/services/rfq-service.d.ts +140 -0
- package/dist/backend/services/rfq-service.d.ts.map +1 -0
- package/dist/backend/services/rfq-service.js +786 -0
- package/dist/backend/services/rfq-service.js.map +1 -0
- package/dist/backend/services/sales-channel-attributions.d.ts +38 -0
- package/dist/backend/services/sales-channel-attributions.d.ts.map +1 -0
- package/dist/backend/services/sales-channel-attributions.js +48 -0
- package/dist/backend/services/sales-channel-attributions.js.map +1 -0
- package/dist/manifest.d.ts +203 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +277 -0
- package/dist/manifest.js.map +1 -0
- package/dist/migrations/20260424T190112_quote_requests_init.d.ts +19 -0
- package/dist/migrations/20260424T190112_quote_requests_init.d.ts.map +1 -0
- package/dist/migrations/20260424T190112_quote_requests_init.js +65 -0
- package/dist/migrations/20260424T190112_quote_requests_init.js.map +1 -0
- package/dist/migrations/20260503T141344_quote_requests_workflow.d.ts +37 -0
- package/dist/migrations/20260503T141344_quote_requests_workflow.d.ts.map +1 -0
- package/dist/migrations/20260503T141344_quote_requests_workflow.js +251 -0
- package/dist/migrations/20260503T141344_quote_requests_workflow.js.map +1 -0
- package/dist/migrations/20260611T140415_quote_requests_qr_item_packaging.d.ts +10 -0
- package/dist/migrations/20260611T140415_quote_requests_qr_item_packaging.d.ts.map +1 -0
- package/dist/migrations/20260611T140415_quote_requests_qr_item_packaging.js +16 -0
- package/dist/migrations/20260611T140415_quote_requests_qr_item_packaging.js.map +1 -0
- package/dist/migrations/20260611T140417_quote_requests_business_id.d.ts +24 -0
- package/dist/migrations/20260611T140417_quote_requests_business_id.d.ts.map +1 -0
- package/dist/migrations/20260611T140417_quote_requests_business_id.js +34 -0
- package/dist/migrations/20260611T140417_quote_requests_business_id.js.map +1 -0
- package/dist/migrations/20260617T095510_quote_requests_backfill_admin_created_awaiting.d.ts +21 -0
- package/dist/migrations/20260617T095510_quote_requests_backfill_admin_created_awaiting.d.ts.map +1 -0
- package/dist/migrations/20260617T095510_quote_requests_backfill_admin_created_awaiting.js +29 -0
- package/dist/migrations/20260617T095510_quote_requests_backfill_admin_created_awaiting.js.map +1 -0
- package/dist/migrations/20260718T200342_quote_requests_quote_request_custom_field_values.d.ts +12 -0
- package/dist/migrations/20260718T200342_quote_requests_quote_request_custom_field_values.d.ts.map +1 -0
- package/dist/migrations/20260718T200342_quote_requests_quote_request_custom_field_values.js +16 -0
- package/dist/migrations/20260718T200342_quote_requests_quote_request_custom_field_values.js.map +1 -0
- package/dist/migrations/20260912T125614_quote_requests_quote_request_channel_attribution.d.ts +34 -0
- package/dist/migrations/20260912T125614_quote_requests_quote_request_channel_attribution.d.ts.map +1 -0
- package/dist/migrations/20260912T125614_quote_requests_quote_request_channel_attribution.js +57 -0
- package/dist/migrations/20260912T125614_quote_requests_quote_request_channel_attribution.js.map +1 -0
- package/dist/migrations/index.d.ts +53 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +61 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/status-mapping.d.ts +18 -0
- package/dist/migrations/status-mapping.d.ts.map +1 -0
- package/dist/migrations/status-mapping.js +28 -0
- package/dist/migrations/status-mapping.js.map +1 -0
- package/docs/quote_requests.md +168 -0
- package/i18n/en.json +14 -0
- package/i18n/pl.json +14 -0
- package/package.json +99 -0
- package/tailwind.css +14 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rfq-service.js","sourceRoot":"","sources":["../../../src/backend/services/rfq-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { SalesChannelAttributionRegistryPort } from '@endora-commerce/contracts';
|
|
2
|
+
import type { EntityManager } from '@mikro-orm/postgresql';
|
|
3
|
+
/**
|
|
4
|
+
* How many quote requests are attributed to a sales channel (feature 075, D-87
|
|
5
|
+
* drain).
|
|
6
|
+
*
|
|
7
|
+
* `SalesChannelsService.delete` used to count them itself, with
|
|
8
|
+
* `select count(*) from "quote_requests" where "sales_channel_id" = ?` — this
|
|
9
|
+
* module's table and this module's column name, spelled in another module's
|
|
10
|
+
* service and invisible to the import-level boundary check because raw SQL
|
|
11
|
+
* names no specifier. It is answered here now.
|
|
12
|
+
*
|
|
13
|
+
* **The column this counts is populated since issue #266.** Feature 005 /
|
|
14
|
+
* FR-012 added `quote_requests.sales_channel_id` nullable in
|
|
15
|
+
* `20260430T170044_core_sales_channels_promote`, with an `on delete restrict`
|
|
16
|
+
* foreign key, and neither half of what was supposed to follow ever landed: no
|
|
17
|
+
* property on `QuoteRequest`, so nothing on the request path wrote the column,
|
|
18
|
+
* and no migration flipping it `not null`. This counter therefore answered `0`
|
|
19
|
+
* for every request ever raised and the FR-006 delete guard had never seen an
|
|
20
|
+
* RFQ attribution. `QuoteRequest.salesChannelId` now carries the resolved
|
|
21
|
+
* request channel, so the guard reads real evidence.
|
|
22
|
+
*
|
|
23
|
+
* **The count stays a raw statement, and not because the property is missing.**
|
|
24
|
+
* `QuoteRequest` is `@OrgScoped`, so an `em.count` would take the always-on
|
|
25
|
+
* tenant filter and answer "how many of *this tenant's* requests point at the
|
|
26
|
+
* channel". The delete guard is platform-wide — a channel is deleted for
|
|
27
|
+
* everyone — so the question it asks has to be too, and a filtered count would
|
|
28
|
+
* silently under-report and let an operator delete a channel other tenants'
|
|
29
|
+
* requests still point at. The statement names this module's own table, so the
|
|
30
|
+
* boundary check has nothing to object to.
|
|
31
|
+
*
|
|
32
|
+
* **Rows raised before #266 stay `null` on the owner's ruling** and are counted
|
|
33
|
+
* by nobody; they are developer data, and projecting them onto the system
|
|
34
|
+
* default would have this guard refuse a delete on an attribution the platform
|
|
35
|
+
* invented rather than observed.
|
|
36
|
+
*/
|
|
37
|
+
export declare function registerQuoteRequestSalesChannelAttributions(registry: SalesChannelAttributionRegistryPort, emFactory: () => EntityManager): void;
|
|
38
|
+
//# sourceMappingURL=sales-channel-attributions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sales-channel-attributions.d.ts","sourceRoot":"","sources":["../../../src/backend/services/sales-channel-attributions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,4CAA4C,CAC1D,QAAQ,EAAE,mCAAmC,EAC7C,SAAS,EAAE,MAAM,aAAa,GAC7B,IAAI,CAiBN"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How many quote requests are attributed to a sales channel (feature 075, D-87
|
|
3
|
+
* drain).
|
|
4
|
+
*
|
|
5
|
+
* `SalesChannelsService.delete` used to count them itself, with
|
|
6
|
+
* `select count(*) from "quote_requests" where "sales_channel_id" = ?` — this
|
|
7
|
+
* module's table and this module's column name, spelled in another module's
|
|
8
|
+
* service and invisible to the import-level boundary check because raw SQL
|
|
9
|
+
* names no specifier. It is answered here now.
|
|
10
|
+
*
|
|
11
|
+
* **The column this counts is populated since issue #266.** Feature 005 /
|
|
12
|
+
* FR-012 added `quote_requests.sales_channel_id` nullable in
|
|
13
|
+
* `20260430T170044_core_sales_channels_promote`, with an `on delete restrict`
|
|
14
|
+
* foreign key, and neither half of what was supposed to follow ever landed: no
|
|
15
|
+
* property on `QuoteRequest`, so nothing on the request path wrote the column,
|
|
16
|
+
* and no migration flipping it `not null`. This counter therefore answered `0`
|
|
17
|
+
* for every request ever raised and the FR-006 delete guard had never seen an
|
|
18
|
+
* RFQ attribution. `QuoteRequest.salesChannelId` now carries the resolved
|
|
19
|
+
* request channel, so the guard reads real evidence.
|
|
20
|
+
*
|
|
21
|
+
* **The count stays a raw statement, and not because the property is missing.**
|
|
22
|
+
* `QuoteRequest` is `@OrgScoped`, so an `em.count` would take the always-on
|
|
23
|
+
* tenant filter and answer "how many of *this tenant's* requests point at the
|
|
24
|
+
* channel". The delete guard is platform-wide — a channel is deleted for
|
|
25
|
+
* everyone — so the question it asks has to be too, and a filtered count would
|
|
26
|
+
* silently under-report and let an operator delete a channel other tenants'
|
|
27
|
+
* requests still point at. The statement names this module's own table, so the
|
|
28
|
+
* boundary check has nothing to object to.
|
|
29
|
+
*
|
|
30
|
+
* **Rows raised before #266 stay `null` on the owner's ruling** and are counted
|
|
31
|
+
* by nobody; they are developer data, and projecting them onto the system
|
|
32
|
+
* default would have this guard refuse a delete on an attribution the platform
|
|
33
|
+
* invented rather than observed.
|
|
34
|
+
*/
|
|
35
|
+
export function registerQuoteRequestSalesChannelAttributions(registry, emFactory) {
|
|
36
|
+
registry.register({
|
|
37
|
+
ownerModuleId: 'quote_requests',
|
|
38
|
+
consumer: 'quote request(s)',
|
|
39
|
+
tableName: 'quote_requests',
|
|
40
|
+
columnName: 'sales_channel_id',
|
|
41
|
+
countForChannel: async (salesChannelId) => {
|
|
42
|
+
const em = emFactory();
|
|
43
|
+
const rows = await em.getConnection().execute('select count(*)::text as n from "quote_requests" where "sales_channel_id" = ?', [salesChannelId], 'all', em.getTransactionContext());
|
|
44
|
+
return Number(rows[0]?.n ?? '0');
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=sales-channel-attributions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sales-channel-attributions.js","sourceRoot":"","sources":["../../../src/backend/services/sales-channel-attributions.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,4CAA4C,CAC1D,QAA6C,EAC7C,SAA8B;IAE9B,QAAQ,CAAC,QAAQ,CAAC;QAChB,aAAa,EAAE,gBAAgB;QAC/B,QAAQ,EAAE,kBAAkB;QAC5B,SAAS,EAAE,gBAAgB;QAC3B,UAAU,EAAE,kBAAkB;QAC9B,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YACxC,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC,OAAO,CAC3C,+EAA+E,EAC/E,CAAC,cAAc,CAAC,EAChB,KAAK,EACL,EAAE,CAAC,qBAAqB,EAAE,CAC3B,CAAC;YACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;QACnC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings manifest for the Quote Requests module — feature 008.
|
|
3
|
+
*
|
|
4
|
+
* Settings keys:
|
|
5
|
+
* - quote_requests.expiryDays (integer, default 0 = never)
|
|
6
|
+
* - quote_requests.showAddToQuoteOnCard (boolean, default true)
|
|
7
|
+
* - quote_requests.showAddToQuoteOnPdp (boolean, default true)
|
|
8
|
+
* - quote_requests.business_id.prefix (string, default '')
|
|
9
|
+
* - quote_requests.business_id.suffix (string, default '')
|
|
10
|
+
*/
|
|
11
|
+
export declare const QUOTE_REQUESTS_SETTING_CODES: {
|
|
12
|
+
readonly EXPIRY_DAYS: "quote_requests.expiry_days";
|
|
13
|
+
readonly SHOW_ADD_TO_QUOTE_ON_CARD: "quote_requests.show_add_to_quote_on_card";
|
|
14
|
+
readonly SHOW_ADD_TO_QUOTE_ON_PDP: "quote_requests.show_add_to_quote_on_pdp";
|
|
15
|
+
readonly BUSINESS_ID_PREFIX: "quote_requests.business_id.prefix";
|
|
16
|
+
readonly BUSINESS_ID_SUFFIX: "quote_requests.business_id.suffix";
|
|
17
|
+
};
|
|
18
|
+
export declare const DEFAULT_QUOTE_REQUESTS_EXPIRY_DAYS = 0;
|
|
19
|
+
/** Module-lifecycle manifest (feature 018). */
|
|
20
|
+
export declare const manifest: {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
version: string;
|
|
24
|
+
dependencies: string[];
|
|
25
|
+
description?: string | undefined;
|
|
26
|
+
acknowledgedDependencies?: {
|
|
27
|
+
moduleId: string;
|
|
28
|
+
port: string;
|
|
29
|
+
reason: string;
|
|
30
|
+
}[] | undefined;
|
|
31
|
+
nonBindingDependencies?: {
|
|
32
|
+
moduleId: string;
|
|
33
|
+
name: string;
|
|
34
|
+
kind: "contributes-to" | "degrades-without" | "refuses-without";
|
|
35
|
+
reason: string;
|
|
36
|
+
whenAbsent?: string | undefined;
|
|
37
|
+
}[] | undefined;
|
|
38
|
+
activation?: {
|
|
39
|
+
settingCode: string;
|
|
40
|
+
default: boolean;
|
|
41
|
+
} | {
|
|
42
|
+
nonDeactivatable: true;
|
|
43
|
+
reason: string;
|
|
44
|
+
} | undefined;
|
|
45
|
+
settings?: {
|
|
46
|
+
moduleCode: string;
|
|
47
|
+
groups: {
|
|
48
|
+
code: string;
|
|
49
|
+
name: string;
|
|
50
|
+
salesChannelCodes?: string[] | undefined;
|
|
51
|
+
isSystemProtected?: boolean | undefined;
|
|
52
|
+
}[];
|
|
53
|
+
settings: {
|
|
54
|
+
code: string;
|
|
55
|
+
name: string;
|
|
56
|
+
valueType: "string" | "number" | "boolean" | "json" | "string_list" | "secret" | "credential_ref";
|
|
57
|
+
defaultValue: unknown;
|
|
58
|
+
description?: string | undefined;
|
|
59
|
+
groupCode?: string | undefined;
|
|
60
|
+
previousDefaultValues?: unknown[] | undefined;
|
|
61
|
+
salesChannelCodes?: string[] | undefined;
|
|
62
|
+
enumOptions?: string[] | undefined;
|
|
63
|
+
configurationType?: string | undefined;
|
|
64
|
+
hidden?: boolean | undefined;
|
|
65
|
+
}[];
|
|
66
|
+
} | undefined;
|
|
67
|
+
i18n?: {
|
|
68
|
+
bundlesDir: string;
|
|
69
|
+
} | undefined;
|
|
70
|
+
docs?: false | {
|
|
71
|
+
dir: string;
|
|
72
|
+
} | undefined;
|
|
73
|
+
demo?: false | {
|
|
74
|
+
summary: string;
|
|
75
|
+
seed: (context: import("@endora-commerce/contracts").ModuleDemoContext<never>) => Promise<import("@endora-commerce/contracts").DemoSeedResult>;
|
|
76
|
+
reset: (context: import("@endora-commerce/contracts").ModuleDemoContext<never>) => Promise<import("@endora-commerce/contracts").DemoResetResult>;
|
|
77
|
+
after?: readonly string[] | undefined;
|
|
78
|
+
package?: string | undefined;
|
|
79
|
+
} | undefined;
|
|
80
|
+
actions?: {
|
|
81
|
+
id: string;
|
|
82
|
+
labelKey: string;
|
|
83
|
+
icon: "Plus" | "Sparkles" | "Settings" | "Search" | "Boxes" | "Layers" | "Menu" | "PlusCircle" | "PlusSquare" | "FilePlus" | "FolderPlus" | "Upload" | "FileUp" | "CloudUpload" | "Download" | "FileDown" | "FileText" | "BookOpen" | "Rss" | "Package" | "Tag" | "ShoppingCart" | "Receipt" | "CreditCard" | "Users" | "UserPlus" | "Inbox" | "ListChecks" | "ClipboardList" | "Image" | "Video" | "LayoutDashboard" | "PanelLeft" | "KeyRound" | "ShieldCheck" | "Edit" | "Archive" | "Box" | "Truck" | "CircleDollarSign" | "Activity" | "LineChart" | "Smartphone" | "Webhook" | "Scale" | "PlugZap" | "PercentDiamond" | "Newspaper" | "Languages" | "Eraser" | "Warehouse" | "TrendingDown" | "Bell" | "PackageOpen" | "Building2" | "Store" | "ClipboardCheck";
|
|
84
|
+
targetRoute: string;
|
|
85
|
+
keywords: string[];
|
|
86
|
+
weight: number;
|
|
87
|
+
descriptionKey?: string | undefined;
|
|
88
|
+
requiredPermission?: string | undefined;
|
|
89
|
+
}[] | undefined;
|
|
90
|
+
permissions?: {
|
|
91
|
+
code: string;
|
|
92
|
+
label: string;
|
|
93
|
+
module?: string | undefined;
|
|
94
|
+
description?: string | undefined;
|
|
95
|
+
requires?: string[] | undefined;
|
|
96
|
+
}[] | undefined;
|
|
97
|
+
transactionalEmails?: {
|
|
98
|
+
code: string;
|
|
99
|
+
name: string;
|
|
100
|
+
variables: {
|
|
101
|
+
key: string;
|
|
102
|
+
label: string;
|
|
103
|
+
sampleValue?: string | undefined;
|
|
104
|
+
description?: string | undefined;
|
|
105
|
+
}[];
|
|
106
|
+
description?: string | undefined;
|
|
107
|
+
group?: string | undefined;
|
|
108
|
+
}[] | undefined;
|
|
109
|
+
capabilities?: string[] | undefined;
|
|
110
|
+
exclusiveCapabilities?: {
|
|
111
|
+
key: string;
|
|
112
|
+
errorCode: string;
|
|
113
|
+
}[] | undefined;
|
|
114
|
+
errorCodes?: {
|
|
115
|
+
code: string;
|
|
116
|
+
tokens?: string[] | undefined;
|
|
117
|
+
}[] | undefined;
|
|
118
|
+
blocks?: {
|
|
119
|
+
name: string;
|
|
120
|
+
labelKey: string;
|
|
121
|
+
category: string;
|
|
122
|
+
contexts: ("email" | "invoice" | "cms" | "newsletter")[];
|
|
123
|
+
fields: Record<string, {
|
|
124
|
+
type: "number" | "object" | "array" | "text" | "textarea" | "select" | "radio" | "external" | "uuid" | "richtext";
|
|
125
|
+
label?: string | undefined;
|
|
126
|
+
required?: boolean | undefined;
|
|
127
|
+
options?: {
|
|
128
|
+
label: string;
|
|
129
|
+
value: string | number;
|
|
130
|
+
}[] | undefined;
|
|
131
|
+
refKind?: string | undefined;
|
|
132
|
+
}>;
|
|
133
|
+
descriptionKey?: string | undefined;
|
|
134
|
+
defaultProps?: Record<string, unknown> | undefined;
|
|
135
|
+
responsiveFields?: string[] | undefined;
|
|
136
|
+
previewIcon?: string | undefined;
|
|
137
|
+
weight?: number | undefined;
|
|
138
|
+
}[] | undefined;
|
|
139
|
+
blockCategories?: {
|
|
140
|
+
key: string;
|
|
141
|
+
titleKey: string;
|
|
142
|
+
contexts: ("email" | "invoice" | "cms" | "newsletter")[];
|
|
143
|
+
weight?: number | undefined;
|
|
144
|
+
visible?: boolean | undefined;
|
|
145
|
+
}[] | undefined;
|
|
146
|
+
env?: {
|
|
147
|
+
name: string;
|
|
148
|
+
describes: {
|
|
149
|
+
en: string;
|
|
150
|
+
pl: string;
|
|
151
|
+
};
|
|
152
|
+
requirement: {
|
|
153
|
+
kind: "required";
|
|
154
|
+
} | {
|
|
155
|
+
kind: "requiredWhen";
|
|
156
|
+
input: string;
|
|
157
|
+
equals: string;
|
|
158
|
+
} | {
|
|
159
|
+
kind: "optional";
|
|
160
|
+
without: {
|
|
161
|
+
en: string;
|
|
162
|
+
pl: string;
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
secret: boolean;
|
|
166
|
+
generable: boolean;
|
|
167
|
+
owner: {
|
|
168
|
+
kind: "platform";
|
|
169
|
+
} | {
|
|
170
|
+
kind: "application";
|
|
171
|
+
application: "admin" | "backend" | "storefront";
|
|
172
|
+
} | {
|
|
173
|
+
kind: "module";
|
|
174
|
+
moduleId: string;
|
|
175
|
+
};
|
|
176
|
+
consumers: ("admin" | "backend" | "storefront")[];
|
|
177
|
+
addressOf: "admin" | "backend" | "storefront" | null;
|
|
178
|
+
}[] | undefined;
|
|
179
|
+
};
|
|
180
|
+
/** Legacy export retained for backward compatibility. */
|
|
181
|
+
export declare const quoteRequestsManifest: {
|
|
182
|
+
moduleCode: string;
|
|
183
|
+
groups: {
|
|
184
|
+
code: string;
|
|
185
|
+
name: string;
|
|
186
|
+
salesChannelCodes?: string[] | undefined;
|
|
187
|
+
isSystemProtected?: boolean | undefined;
|
|
188
|
+
}[];
|
|
189
|
+
settings: {
|
|
190
|
+
code: string;
|
|
191
|
+
name: string;
|
|
192
|
+
valueType: "string" | "number" | "boolean" | "json" | "string_list" | "secret" | "credential_ref";
|
|
193
|
+
defaultValue: unknown;
|
|
194
|
+
description?: string | undefined;
|
|
195
|
+
groupCode?: string | undefined;
|
|
196
|
+
previousDefaultValues?: unknown[] | undefined;
|
|
197
|
+
salesChannelCodes?: string[] | undefined;
|
|
198
|
+
enumOptions?: string[] | undefined;
|
|
199
|
+
configurationType?: string | undefined;
|
|
200
|
+
hidden?: boolean | undefined;
|
|
201
|
+
}[];
|
|
202
|
+
};
|
|
203
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AAEH,eAAO,MAAM,4BAA4B;;;;;;CAM/B,CAAC;AAEX,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAmEpD,+CAA+C;AAC/C,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoMnB,CAAC;AAEH,yDAAyD;AACzD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;CAAW,CAAC"}
|
package/dist/manifest.js
ADDED
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { defineModuleManifest, defineModuleSettingsManifest, } from '@endora-commerce/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* Settings manifest for the Quote Requests module — feature 008.
|
|
4
|
+
*
|
|
5
|
+
* Settings keys:
|
|
6
|
+
* - quote_requests.expiryDays (integer, default 0 = never)
|
|
7
|
+
* - quote_requests.showAddToQuoteOnCard (boolean, default true)
|
|
8
|
+
* - quote_requests.showAddToQuoteOnPdp (boolean, default true)
|
|
9
|
+
* - quote_requests.business_id.prefix (string, default '')
|
|
10
|
+
* - quote_requests.business_id.suffix (string, default '')
|
|
11
|
+
*/
|
|
12
|
+
export const QUOTE_REQUESTS_SETTING_CODES = {
|
|
13
|
+
EXPIRY_DAYS: 'quote_requests.expiry_days',
|
|
14
|
+
SHOW_ADD_TO_QUOTE_ON_CARD: 'quote_requests.show_add_to_quote_on_card',
|
|
15
|
+
SHOW_ADD_TO_QUOTE_ON_PDP: 'quote_requests.show_add_to_quote_on_pdp',
|
|
16
|
+
BUSINESS_ID_PREFIX: 'quote_requests.business_id.prefix',
|
|
17
|
+
BUSINESS_ID_SUFFIX: 'quote_requests.business_id.suffix',
|
|
18
|
+
};
|
|
19
|
+
export const DEFAULT_QUOTE_REQUESTS_EXPIRY_DAYS = 0;
|
|
20
|
+
const settings = defineModuleSettingsManifest({
|
|
21
|
+
moduleCode: 'quote_requests',
|
|
22
|
+
groups: [
|
|
23
|
+
{
|
|
24
|
+
code: 'quote_requests',
|
|
25
|
+
name: 'Quote Requests',
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
settings: [
|
|
29
|
+
{
|
|
30
|
+
// Feature 073 — the operator's activation control. Platform-wide.
|
|
31
|
+
code: 'quote_requests.enabled',
|
|
32
|
+
name: 'Quote requests enabled',
|
|
33
|
+
description: 'Switches the RFQ flow on or off: the customer request surfaces, the add-to-quote controls on the product card and PDP, the admin quote desk, and the worker that expires pending requests. Nothing is dropped — every request, its revisions and its messages stay in the database and resume where they were.',
|
|
34
|
+
groupCode: 'quote_requests',
|
|
35
|
+
valueType: 'boolean',
|
|
36
|
+
defaultValue: true,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
code: QUOTE_REQUESTS_SETTING_CODES.EXPIRY_DAYS,
|
|
40
|
+
name: 'Auto-expire pending after (days)',
|
|
41
|
+
description: 'Number of days a Pending or Created from admin Quote Request lives before the expiry worker flips it to Expired. 0 disables auto-expiry entirely.',
|
|
42
|
+
groupCode: 'quote_requests',
|
|
43
|
+
valueType: 'number',
|
|
44
|
+
defaultValue: DEFAULT_QUOTE_REQUESTS_EXPIRY_DAYS,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
code: QUOTE_REQUESTS_SETTING_CODES.SHOW_ADD_TO_QUOTE_ON_CARD,
|
|
48
|
+
name: 'Show "Add to quote" on product card',
|
|
49
|
+
description: 'Toggles the "Add to quote" button on storefront product card listings.',
|
|
50
|
+
groupCode: 'quote_requests',
|
|
51
|
+
valueType: 'boolean',
|
|
52
|
+
defaultValue: true,
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
code: QUOTE_REQUESTS_SETTING_CODES.SHOW_ADD_TO_QUOTE_ON_PDP,
|
|
56
|
+
name: 'Show "Add to quote" on product detail',
|
|
57
|
+
description: 'Toggles the "Add to quote" button on storefront product detail pages.',
|
|
58
|
+
groupCode: 'quote_requests',
|
|
59
|
+
valueType: 'boolean',
|
|
60
|
+
defaultValue: true,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
code: QUOTE_REQUESTS_SETTING_CODES.BUSINESS_ID_PREFIX,
|
|
64
|
+
name: 'Business Quote Request ID prefix',
|
|
65
|
+
description: 'Text prepended to the generated business Quote Request ID shown to the Customer (e.g. "QR-"). Empty = no prefix.',
|
|
66
|
+
groupCode: 'quote_requests',
|
|
67
|
+
valueType: 'string',
|
|
68
|
+
defaultValue: '',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
code: QUOTE_REQUESTS_SETTING_CODES.BUSINESS_ID_SUFFIX,
|
|
72
|
+
name: 'Business Quote Request ID suffix',
|
|
73
|
+
description: 'Text appended to the generated business Quote Request ID shown to the Customer (e.g. "-2026"). Empty = no suffix.',
|
|
74
|
+
groupCode: 'quote_requests',
|
|
75
|
+
valueType: 'string',
|
|
76
|
+
defaultValue: '',
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
});
|
|
80
|
+
/** Module-lifecycle manifest (feature 018). */
|
|
81
|
+
export const manifest = defineModuleManifest({
|
|
82
|
+
id: 'quote_requests',
|
|
83
|
+
name: 'Quote Requests',
|
|
84
|
+
description: 'Customer-initiated RFQ workflow with admin pricing, approvals, and expiry.',
|
|
85
|
+
version: '1.0.0',
|
|
86
|
+
// `admin_roles` since feature 072 (T138): the sales-rep roll-up scope reads
|
|
87
|
+
// `permissionService` directly now, rather than through a root-built bundle.
|
|
88
|
+
// It was already satisfied transitively via `auth`; the edge is declared
|
|
89
|
+
// because a manifest is what an operator reads.
|
|
90
|
+
// Feature 075, Phase C — `admin_users` and `customer_accounts` join the seven
|
|
91
|
+
// that were already here. Both are ordinary declarations: neither reaches
|
|
92
|
+
// back to this module, so the edges close no cycle. `carts` and `orders` do
|
|
93
|
+
// reach back and are acknowledged below.
|
|
94
|
+
//
|
|
95
|
+
// `sales_channels` owns `salesChannelAttributionRegistry`, the registry this
|
|
96
|
+
// module pushes its own "how many of my rows are attributed to this channel?"
|
|
97
|
+
// counter into (feature 075, D-87). The registry is ungated and its owner is
|
|
98
|
+
// non-deactivatable, so the declaration buys install and migration order
|
|
99
|
+
// rather than a flip-time refusal.
|
|
100
|
+
dependencies: [
|
|
101
|
+
'admin_roles',
|
|
102
|
+
'admin_users',
|
|
103
|
+
'auth',
|
|
104
|
+
'catalog',
|
|
105
|
+
'custom_fields',
|
|
106
|
+
'customer_accounts',
|
|
107
|
+
'organizations',
|
|
108
|
+
'sales_channels',
|
|
109
|
+
'settings',
|
|
110
|
+
'taxes',
|
|
111
|
+
],
|
|
112
|
+
/**
|
|
113
|
+
* Feature 075, Phase C — the two edges this module genuinely has and cannot
|
|
114
|
+
* declare above, because `carts/manifest.ts` declares **this** module and
|
|
115
|
+
* `orders` declares `carts`. An ordinary declaration would close a cycle,
|
|
116
|
+
* which `backend/test/unit/db/module-graph.test.ts` fails the build on.
|
|
117
|
+
*
|
|
118
|
+
* Neither is a schema edge, so nothing is lost by keeping them out of the
|
|
119
|
+
* install and migration order: `cartWritePort` is the quote-to-cart
|
|
120
|
+
* conversion (the write that used to be `em.create(Cart, …)` from inside this
|
|
121
|
+
* module), and `orderReadPort` is the `order.created.v1` reactor reading the
|
|
122
|
+
* order that names the quote request it completes. Both fail closed, and both
|
|
123
|
+
* owners are the ones that would have to be off for the path to be reachable
|
|
124
|
+
* at all — a conversion with no cart module has nowhere to convert to.
|
|
125
|
+
*/
|
|
126
|
+
acknowledgedDependencies: [
|
|
127
|
+
{
|
|
128
|
+
moduleId: 'carts',
|
|
129
|
+
port: 'cartWritePort',
|
|
130
|
+
reason: 'Converting an approved quote seeds the customer’s active cart at the agreed unit ' +
|
|
131
|
+
'prices, which is a write into carts’ own tables and belongs to carts. Declaring it ' +
|
|
132
|
+
'as a dependency closes a cycle, because carts declares this module for the ' +
|
|
133
|
+
'"add to quote" surface. The seam fails closed: a conversion that cannot reach the ' +
|
|
134
|
+
'cart must refuse rather than report a checkout URL for a cart nobody wrote.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
moduleId: 'orders',
|
|
138
|
+
port: 'orderReadPort',
|
|
139
|
+
reason: 'The order.created.v1 reactor reads the order that names the quote request it ' +
|
|
140
|
+
'completes. Declaring it closes a cycle through carts. The seam fails closed, and ' +
|
|
141
|
+
'the event that triggers it cannot be emitted by an absent orders module, so the ' +
|
|
142
|
+
'acknowledged edge adds no refusal that was reachable before.',
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
settings,
|
|
146
|
+
// Feature 073 (Constitution XVII) — the operator's activation control.
|
|
147
|
+
activation: { settingCode: 'quote_requests.enabled', default: true },
|
|
148
|
+
/**
|
|
149
|
+
* The nine error codes this module owns — feature 090 Phase 3
|
|
150
|
+
* (`specs/090-module-owned-error-codes/contracts/error-code-declaration.md`
|
|
151
|
+
* §1.1). This is where the sentence for each is looked up from: `errors.<CODE>`
|
|
152
|
+
* in this module's own `i18n/{en,pl}.json`, which holds all nine in both
|
|
153
|
+
* languages and no tenth. None of them is a `check-error-translations.ts`
|
|
154
|
+
* `UNTRANSLATED_ERROR_CODES` entry.
|
|
155
|
+
*
|
|
156
|
+
* The list is answer-preserving, not a judgement (§6.2 and §6.5), and it was
|
|
157
|
+
* not written by hand: it is the verbatim output of the runbook's step-1
|
|
158
|
+
* derivation over the frozen capture at
|
|
159
|
+
* `backend/test/fixtures/error-code-routing/chain-answers.ts`, which records
|
|
160
|
+
* what the prefix chain in `@endora-commerce/mod-i18n` answered at
|
|
161
|
+
* `49f3c6817`. Re-routing a code to a better owner is
|
|
162
|
+
* `specs/082-error-code-ownership/rulings.md` §9's remaining work and is
|
|
163
|
+
* deliberately not done here.
|
|
164
|
+
*
|
|
165
|
+
* **No code here is a shadow, and none of this module's is shadowed away.**
|
|
166
|
+
* Trap T1 exists because the chain is an ordered `if`: an earlier rule can
|
|
167
|
+
* claim a code a later one names, which cost `inventory` two codes and gave
|
|
168
|
+
* `catalog` four. This module has a single rule — `RFQ_` or `QUOTE_`, no misc
|
|
169
|
+
* set — and the three rules above it (`SETTING_`, the generic set, `catalog`'s
|
|
170
|
+
* prefixes and misc set) name no `RFQ_` or `QUOTE_` code, so the nine the
|
|
171
|
+
* chain answers with are exactly the nine `RFQ_`/`QUOTE_`-prefixed members of
|
|
172
|
+
* `ERROR_CODES`. The derivation was still run from the answer, because "no
|
|
173
|
+
* shadow reaches me" is a conclusion of reading the whole chain and not a
|
|
174
|
+
* premise a migrating author is entitled to.
|
|
175
|
+
*
|
|
176
|
+
* **Four of the nine are raised by nothing** — `QUOTE_INCOMPLETE`,
|
|
177
|
+
* `RFQ_ALREADY_CLAIMED`, `RFQ_NOT_ACCEPTED` and `RFQ_NOT_NEW`. Each is a
|
|
178
|
+
* member of `ERROR_CODES` with a sentence in both languages that no `throw`
|
|
179
|
+
* in `backend/src` or `packages` can produce. They are declared anyway,
|
|
180
|
+
* because ownership follows the capture and not the raise sites (trap T10):
|
|
181
|
+
* dropping one reds the progress test as `[undeclared]` and moves an answer
|
|
182
|
+
* the migrating merge request was not allowed to move. Whether a code nothing
|
|
183
|
+
* raises should exist is a separate question, filed in
|
|
184
|
+
* `specs/deferred-defects.md` § *Roughly 29 error codes have translated
|
|
185
|
+
* sentences no client can ever receive*, and measured for this module in that
|
|
186
|
+
* merge request's description.
|
|
187
|
+
*
|
|
188
|
+
* **It said six until 2026-08-29, and the two it lost are the reason that
|
|
189
|
+
* register entry is worth keeping.** `RFQ_EXPIRED` and
|
|
190
|
+
* `QUOTE_VALIDITY_ENDED` were unraised because a rule had been *removed*, not
|
|
191
|
+
* because nobody ever wrote one: the feature-008 workflow rewrite
|
|
192
|
+
* (`4f24dc948`) dropped `accept()`'s live `expiresAt` check and nothing
|
|
193
|
+
* replaced it, so the per-request validity deadline an operator sets with
|
|
194
|
+
* `expiresInDays` bound nothing while both parties were shown its date. Both
|
|
195
|
+
* are raised now — `RFQ_EXPIRED` on `accept-revision`,
|
|
196
|
+
* `QUOTE_VALIDITY_ENDED` on `convert-to-order`, in
|
|
197
|
+
* `services/rfq-service.ts` — which is the split
|
|
198
|
+
* `specs/001-b2b-platform-foundation/contracts/quote_requests.contract.md`
|
|
199
|
+
* assigned them. That is T11's distinction reaching its conclusion: for these
|
|
200
|
+
* two the sentences were the last surviving evidence of the rule, and the
|
|
201
|
+
* repair was to restore the rule rather than to retire the codes. The other
|
|
202
|
+
* four have no such history, and the count here is a fact about the tree that
|
|
203
|
+
* moves with it — re-derive it, never carry it forward.
|
|
204
|
+
*
|
|
205
|
+
* The inverse is also true and is T2's shape: this module raises five codes it
|
|
206
|
+
* does not own — `CUSTOM_FIELD_VALUE_INVALID`, `FORBIDDEN`, `NOT_FOUND` and
|
|
207
|
+
* `VERSION_CONFLICT`, which the chain routes to `core`, and
|
|
208
|
+
* `PRODUCT_NOT_FOUND`, which is `catalog`'s and is declared there. None is
|
|
209
|
+
* declared here and every one of those sentences stays where it is.
|
|
210
|
+
*
|
|
211
|
+
* **No `tokens`, and it is derived rather than assumed.** The envelope's
|
|
212
|
+
* `refusalToken` (`packages/platform/src/http/error-envelope.ts`) reads
|
|
213
|
+
* exactly one member of `details` — `code`, and only when `details` is an
|
|
214
|
+
* object — as the tail of `errors.<CODE>.<token>`. All ten raises of these
|
|
215
|
+
* codes were enumerated over `packages` and `backend/src` rather than over
|
|
216
|
+
* this package alone (runbook §5), and not one passes a fourth argument at
|
|
217
|
+
* all; the six codes nothing raises reach no token by construction. The
|
|
218
|
+
* bundle agrees from the other direction: nine `errors.<CODE>` keys in each
|
|
219
|
+
* language and not one `errors.<CODE>.<token>`.
|
|
220
|
+
*/
|
|
221
|
+
errorCodes: [
|
|
222
|
+
{ code: 'QUOTE_INCOMPLETE' },
|
|
223
|
+
{ code: 'QUOTE_VALIDITY_ENDED' },
|
|
224
|
+
{ code: 'RFQ_ALREADY_CLAIMED' },
|
|
225
|
+
{ code: 'RFQ_EMPTY' },
|
|
226
|
+
{ code: 'RFQ_EXPIRED' },
|
|
227
|
+
{ code: 'RFQ_NOT_ACCEPTED' },
|
|
228
|
+
{ code: 'RFQ_NOT_DRAFT' },
|
|
229
|
+
{ code: 'RFQ_NOT_NEW' },
|
|
230
|
+
{ code: 'RFQ_NOT_QUOTED' },
|
|
231
|
+
],
|
|
232
|
+
/**
|
|
233
|
+
* `rfqs:handle` is declared in the core `PERMISSION_CATALOGUE`, which carries
|
|
234
|
+
* its label and names this module as its owner. Re-declaring it here adds no
|
|
235
|
+
* owner and no label — it adds the one thing only this module can state
|
|
236
|
+
* (D-175, feature 080 T057).
|
|
237
|
+
*
|
|
238
|
+
* `RfqCreatePage` prefills an agreed price from
|
|
239
|
+
* `GET /api/v1/admin/products/:id/resolved-price`, which `price_lists` gates
|
|
240
|
+
* with `price_lists:read`. D-173 made that gate deliberately: the route used
|
|
241
|
+
* to enforce `rfqs:handle`, a code its own switchable owner could take off
|
|
242
|
+
* `/admin-roles` while `price_lists` — `nonDeactivatable` — went on demanding
|
|
243
|
+
* it, and !956's repair was for the consumer to gate on a code it owns. The
|
|
244
|
+
* ruling recorded the operator-visible consequence in the same breath: *"a
|
|
245
|
+
* role holding only `rfqs:handle` loses the RFQ create screen's price prefill
|
|
246
|
+
* until granted it; the screen degrades to manual entry rather than
|
|
247
|
+
* erroring"*, and the dev seed gives `sales_representative` both codes for
|
|
248
|
+
* that reason.
|
|
249
|
+
*
|
|
250
|
+
* That sentence was in a ruling, a route comment and a seed, and in nothing
|
|
251
|
+
* an operator could read. It is here now. It is advisory only: the screen's
|
|
252
|
+
* fallback stays, no upsert is refused, and this is **not** a `dependencies`
|
|
253
|
+
* entry — `price_lists` is not this module's lifecycle dependency and making
|
|
254
|
+
* it one would put a locked module's schema in the way of switching quote
|
|
255
|
+
* requests off.
|
|
256
|
+
*/
|
|
257
|
+
permissions: [
|
|
258
|
+
{ code: 'rfqs:handle', label: 'Handle quote requests', requires: ['price_lists:read'] },
|
|
259
|
+
],
|
|
260
|
+
i18n: { bundlesDir: 'i18n' },
|
|
261
|
+
docs: { dir: 'docs' },
|
|
262
|
+
actions: [
|
|
263
|
+
{
|
|
264
|
+
id: 'open-rfq-inbox',
|
|
265
|
+
labelKey: 'actions.openInbox.label',
|
|
266
|
+
descriptionKey: 'actions.openInbox.description',
|
|
267
|
+
icon: 'Inbox',
|
|
268
|
+
targetRoute: '/quote-requests',
|
|
269
|
+
requiredPermission: 'rfqs:handle',
|
|
270
|
+
keywords: ['rfq', 'quote', 'inbox', 'zapytanie', 'oferta'],
|
|
271
|
+
weight: 310,
|
|
272
|
+
},
|
|
273
|
+
],
|
|
274
|
+
});
|
|
275
|
+
/** Legacy export retained for backward compatibility. */
|
|
276
|
+
export const quoteRequestsManifest = settings;
|
|
277
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|