@campfire-interactive/master-data-client 5.28.0 → 5.30.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/dist/client.d.ts +4 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -0
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/quoteAsks.d.ts +18 -2
- package/dist/quoteAsks.d.ts.map +1 -1
- package/dist/quoteAsks.js +23 -2
- package/dist/quoteAsks.js.map +1 -1
- package/dist/rfqs.d.ts +103 -0
- package/dist/rfqs.d.ts.map +1 -0
- package/dist/rfqs.js +148 -0
- package/dist/rfqs.js.map +1 -0
- package/dist/standardAttributes.d.ts +0 -5
- package/dist/standardAttributes.d.ts.map +1 -1
- package/dist/standardAttributes.js +0 -5
- package/dist/standardAttributes.js.map +1 -1
- package/dist/types.d.ts +187 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +31 -31
- package/dist/scopeGate.d.ts +0 -103
- package/dist/scopeGate.d.ts.map +0 -1
- package/dist/scopeGate.js +0 -155
- package/dist/scopeGate.js.map +0 -1
|
@@ -5,12 +5,10 @@ export declare class StandardAttributeResource {
|
|
|
5
5
|
constructor(http: HttpTransport);
|
|
6
6
|
/** Add an attribute to THIS TENANT. Filled by a person — the enrichment
|
|
7
7
|
* pass only knows the platform catalog. */
|
|
8
|
-
/** @deprecated Since 5.13.0 the server answers 410 Gone: standard attributes are default definitions, authored in `client.defaultAttributes` and switched per tenant with `attributeDefinitions.setEnabled`. */
|
|
9
8
|
create(input: CreateStandardAttributeInput, idempotencyKey?: string): Promise<SingleResponse<StandardAttribute>>;
|
|
10
9
|
/** ARCHIVE one. It stops being offered and every value already recorded
|
|
11
10
|
* against it stays readable — so this never conflicts with what is stored,
|
|
12
11
|
* and it is reversible. */
|
|
13
|
-
/** @deprecated Since 5.13.0 the server answers 410 Gone: standard attributes are default definitions, authored in `client.defaultAttributes` and switched per tenant with `attributeDefinitions.setEnabled`. */
|
|
14
12
|
archive(id: string): Promise<SingleResponse<StandardAttribute>>;
|
|
15
13
|
/** This tenant's attribute catalog, in display order. */
|
|
16
14
|
list(options?: {
|
|
@@ -53,11 +51,9 @@ export declare class StandardAttributeResource {
|
|
|
53
51
|
listHistory(quoteId: string, key?: string): Promise<ListResponse<StandardAttributeHistoryEntry>>;
|
|
54
52
|
/** Add an attribute to the PLATFORM catalog. Seeds NEW tenants only —
|
|
55
53
|
* tenants already provisioned keep the copy they have. */
|
|
56
|
-
/** @deprecated Since 5.13.0 the server answers 410 Gone: standard attributes are default definitions, authored in `client.defaultAttributes` and switched per tenant with `attributeDefinitions.setEnabled`. */
|
|
57
54
|
createDefault(input: CreateStandardAttributeDefaultInput, idempotencyKey?: string): Promise<SingleResponse<StandardAttributeDefault>>;
|
|
58
55
|
/** Stop seeding one into new tenants. Existing tenant copies and every value
|
|
59
56
|
* ever recorded against the key are untouched. */
|
|
60
|
-
/** @deprecated Since 5.13.0 the server answers 410 Gone: standard attributes are default definitions, authored in `client.defaultAttributes` and switched per tenant with `attributeDefinitions.setEnabled`. */
|
|
61
57
|
removeDefault(id: string): Promise<SingleResponse<{
|
|
62
58
|
id: string;
|
|
63
59
|
}>>;
|
|
@@ -74,7 +70,6 @@ export declare class StandardAttributeResource {
|
|
|
74
70
|
*
|
|
75
71
|
* `key` is immutable — it is what every stored value references.
|
|
76
72
|
*/
|
|
77
|
-
/** @deprecated Since 5.13.0 the server answers 410 Gone: standard attributes are default definitions, authored in `client.defaultAttributes` and switched per tenant with `attributeDefinitions.setEnabled`. */
|
|
78
73
|
updateDefault(id: string, input: UpdateStandardAttributeDefaultInput, idempotencyKey?: string): Promise<SingleResponse<StandardAttributeDefault>>;
|
|
79
74
|
}
|
|
80
75
|
//# sourceMappingURL=standardAttributes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standardAttributes.d.ts","sourceRoot":"","sources":["../src/standardAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,iBAAiB,EACjB,4BAA4B,EAC5B,mCAAmC,EACnC,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,wBAAwB,EACxB,mCAAmC,EACnC,cAAc,EACd,YAAY,EACb,MAAM,SAAS,CAAC;AAUjB,qBAAa,yBAAyB;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD;gDAC4C;
|
|
1
|
+
{"version":3,"file":"standardAttributes.d.ts","sourceRoot":"","sources":["../src/standardAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,iBAAiB,EACjB,4BAA4B,EAC5B,mCAAmC,EACnC,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,wBAAwB,EACxB,mCAAmC,EACnC,cAAc,EACd,YAAY,EACb,MAAM,SAAS,CAAC;AAUjB,qBAAa,yBAAyB;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD;gDAC4C;IACtC,MAAM,CACV,KAAK,EAAE,4BAA4B,EACnC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAS7C;;gCAE4B;IACtB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAOrE,yDAAyD;IACnD,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAQzF,4EAA4E;IACtE,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,4BAA4B,EACnC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAS7C;;;;;;;;;;;OAWG;IACG,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;QAAE,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAO3E,yDAAyD;IACnD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;IAOhF;;;;;;OAMG;IACG,SAAS,CACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,8BAA8B,EAAE,EACxC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;IAqBzD,+DAA+D;IACzD,qBAAqB,CACzB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;IAOhD,sEAAsE;IAChE,oBAAoB,CACxB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,8BAA8B,EAAE,EACxC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;IASzD,kFAAkF;IAC5E,sBAAsB,CAC1B,aAAa,EAAE,MAAM,EACrB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAQvD,6EAA6E;IACvE,WAAW,CACf,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAUvD;+DAC2D;IACrD,aAAa,CACjB,KAAK,EAAE,mCAAmC,EAC1C,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;IASpD;uDACmD;IAC7C,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAOxE;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IAOrE;;;;;;;OAOG;IACG,aAAa,CACjB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,mCAAmC,EAC1C,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;CAQrD"}
|
|
@@ -16,7 +16,6 @@ class StandardAttributeResource {
|
|
|
16
16
|
}
|
|
17
17
|
/** Add an attribute to THIS TENANT. Filled by a person — the enrichment
|
|
18
18
|
* pass only knows the platform catalog. */
|
|
19
|
-
/** @deprecated Since 5.13.0 the server answers 410 Gone: standard attributes are default definitions, authored in `client.defaultAttributes` and switched per tenant with `attributeDefinitions.setEnabled`. */
|
|
20
19
|
async create(input, idempotencyKey) {
|
|
21
20
|
return this.http.request({
|
|
22
21
|
method: 'POST',
|
|
@@ -28,7 +27,6 @@ class StandardAttributeResource {
|
|
|
28
27
|
/** ARCHIVE one. It stops being offered and every value already recorded
|
|
29
28
|
* against it stays readable — so this never conflicts with what is stored,
|
|
30
29
|
* and it is reversible. */
|
|
31
|
-
/** @deprecated Since 5.13.0 the server answers 410 Gone: standard attributes are default definitions, authored in `client.defaultAttributes` and switched per tenant with `attributeDefinitions.setEnabled`. */
|
|
32
30
|
async archive(id) {
|
|
33
31
|
return this.http.request({
|
|
34
32
|
method: 'DELETE',
|
|
@@ -138,7 +136,6 @@ class StandardAttributeResource {
|
|
|
138
136
|
// ── The landlord catalog ───────────────────────────────────────────────────
|
|
139
137
|
/** Add an attribute to the PLATFORM catalog. Seeds NEW tenants only —
|
|
140
138
|
* tenants already provisioned keep the copy they have. */
|
|
141
|
-
/** @deprecated Since 5.13.0 the server answers 410 Gone: standard attributes are default definitions, authored in `client.defaultAttributes` and switched per tenant with `attributeDefinitions.setEnabled`. */
|
|
142
139
|
async createDefault(input, idempotencyKey) {
|
|
143
140
|
return this.http.request({
|
|
144
141
|
method: 'POST',
|
|
@@ -149,7 +146,6 @@ class StandardAttributeResource {
|
|
|
149
146
|
}
|
|
150
147
|
/** Stop seeding one into new tenants. Existing tenant copies and every value
|
|
151
148
|
* ever recorded against the key are untouched. */
|
|
152
|
-
/** @deprecated Since 5.13.0 the server answers 410 Gone: standard attributes are default definitions, authored in `client.defaultAttributes` and switched per tenant with `attributeDefinitions.setEnabled`. */
|
|
153
149
|
async removeDefault(id) {
|
|
154
150
|
return this.http.request({
|
|
155
151
|
method: 'DELETE',
|
|
@@ -174,7 +170,6 @@ class StandardAttributeResource {
|
|
|
174
170
|
*
|
|
175
171
|
* `key` is immutable — it is what every stored value references.
|
|
176
172
|
*/
|
|
177
|
-
/** @deprecated Since 5.13.0 the server answers 410 Gone: standard attributes are default definitions, authored in `client.defaultAttributes` and switched per tenant with `attributeDefinitions.setEnabled`. */
|
|
178
173
|
async updateDefault(id, input, idempotencyKey) {
|
|
179
174
|
return this.http.request({
|
|
180
175
|
method: 'PATCH',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standardAttributes.js","sourceRoot":"","sources":["../src/standardAttributes.ts"],"names":[],"mappings":";;;AAgBA,6EAA6E;AAC7E,8EAA8E;AAC9E,gEAAgE;AAChE,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,gFAAgF;AAChF,iDAAiD;AACjD,MAAa,yBAAyB;IACP;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD;gDAC4C;IAC5C,
|
|
1
|
+
{"version":3,"file":"standardAttributes.js","sourceRoot":"","sources":["../src/standardAttributes.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -239,10 +239,15 @@ export interface Quote {
|
|
|
239
239
|
customerCompanyId: string;
|
|
240
240
|
programId: string | null;
|
|
241
241
|
/**
|
|
242
|
-
* The
|
|
242
|
+
* The RFQ this quote is one competing answer to — see {@link Rfq}.
|
|
243
243
|
* Null means it competes with nothing and is awardable on its own, which is a
|
|
244
244
|
* legitimate state, not missing data.
|
|
245
245
|
*/
|
|
246
|
+
rfqId: string | null;
|
|
247
|
+
/**
|
|
248
|
+
* @deprecated The old spelling of {@link Quote.rfqId}, carrying the SAME
|
|
249
|
+
* value. Both are returned during the deprecation window; read `rfqId`.
|
|
250
|
+
*/
|
|
246
251
|
askId: string | null;
|
|
247
252
|
/**
|
|
248
253
|
* @deprecated A DERIVED MIRROR of the quote's lines — read `quoteLines.list()`
|
|
@@ -530,7 +535,156 @@ export interface SetEffectivePriceInput {
|
|
|
530
535
|
/** Which app is writing — gated to 'omsf' | 'cpq' | 'admin' server-side. */
|
|
531
536
|
callerRole: 'omsf' | 'cpq' | 'admin';
|
|
532
537
|
}
|
|
538
|
+
/**
|
|
539
|
+
* Five states, where the old `QuoteAskStatus` had three.
|
|
540
|
+
*
|
|
541
|
+
* `won` and `lost` split the old `resolved`, which could not say whether
|
|
542
|
+
* anybody had actually won — a resolved ask with no `resolvedByQuoteId` was a
|
|
543
|
+
* legal row and both consumer UIs papered over it. On this table the split is
|
|
544
|
+
* enforced by a CHECK: `won` implies a winner and nothing else may carry one.
|
|
545
|
+
*
|
|
546
|
+
* `merged` is new. It names the absorbed half of a duplicate and implies
|
|
547
|
+
* `mergedIntoRfqId`, also by CHECK.
|
|
548
|
+
*/
|
|
549
|
+
export type RfqStatus = 'open' | 'won' | 'lost' | 'cancelled' | 'merged';
|
|
550
|
+
/**
|
|
551
|
+
* What made this RFQ. Never null and with no `unknown` member, deliberately:
|
|
552
|
+
* "did a machine mint this?" has to stay answerable, and a nullable column
|
|
553
|
+
* would answer it with a shrug.
|
|
554
|
+
*/
|
|
555
|
+
export type RfqSource = 'email' | 'manual' | 'cpq_fallback' | 'import';
|
|
556
|
+
export interface Rfq {
|
|
557
|
+
id: string;
|
|
558
|
+
tenantId: string;
|
|
559
|
+
/** `RFQ-YYYY-NNN`, minted server-side from an atomic per-(tenant, year)
|
|
560
|
+
* counter. Three digits is a MINIMUM width, not a maximum. */
|
|
561
|
+
rfqNumber: string;
|
|
562
|
+
customerCompanyId: string;
|
|
563
|
+
name: string | null;
|
|
564
|
+
/** The OEM's OWN number for this request — `GM-2026-4471`. Theirs, not ours,
|
|
565
|
+
* so it is free text and not unique. */
|
|
566
|
+
customerReference: string | null;
|
|
567
|
+
/** When the REQUEST arrived — not when it was recorded. A separate fact from
|
|
568
|
+
* `createdAt`, which is a job's timestamp once RFQs are minted
|
|
569
|
+
* automatically. This is the denominator of every response-time question. */
|
|
570
|
+
receivedAt: string | null;
|
|
571
|
+
dueDate: string | null;
|
|
572
|
+
/**
|
|
573
|
+
* WHAT THE CUSTOMER ASKED FOR — not what we offered.
|
|
574
|
+
*
|
|
575
|
+
* {@link Quote.sopDate} is our answer and may legitimately differ, because we
|
|
576
|
+
* cannot always hit their date. This holds what the request said, unchanged.
|
|
577
|
+
* Two answers to two different questions, which is why both exist; the
|
|
578
|
+
* `requested` prefix says whose claim this one is.
|
|
579
|
+
*
|
|
580
|
+
* `YYYY-MM-DD`, or null when the request never stated it.
|
|
581
|
+
*/
|
|
582
|
+
requestedSopDate: string | null;
|
|
583
|
+
/**
|
|
584
|
+
* How much of {@link Rfq.requestedSopDate} to believe. An extraction that
|
|
585
|
+
* read "SOP mid-2027" says `year`; one that read `2027-04` says `month`.
|
|
586
|
+
* Rendering the bare date without consulting this invents a precision the
|
|
587
|
+
* customer never gave.
|
|
588
|
+
*/
|
|
589
|
+
requestedSopPrecision: SopEopPrecision | null;
|
|
590
|
+
requestedEopDate: string | null;
|
|
591
|
+
/** See {@link Rfq.requestedSopPrecision}. */
|
|
592
|
+
requestedEopPrecision: SopEopPrecision | null;
|
|
593
|
+
source: RfqSource;
|
|
594
|
+
/** Opaque provenance for whatever minted this — an OMSF inbound-RFQ id, an
|
|
595
|
+
* import batch. Untyped and unvalidated on purpose: it crosses a service
|
|
596
|
+
* boundary. */
|
|
597
|
+
sourceRef: string | null;
|
|
598
|
+
status: RfqStatus;
|
|
599
|
+
/** Which quote won. Present exactly when `status` is `won`. A recorded fact
|
|
600
|
+
* — closing the siblings is a later phase. */
|
|
601
|
+
wonByQuoteId: string | null;
|
|
602
|
+
/** What absorbed this RFQ. Present exactly when `status` is `merged`. */
|
|
603
|
+
mergedIntoRfqId: string | null;
|
|
604
|
+
/** When the RFQ stopped being open. Set for every non-open status,
|
|
605
|
+
* `cancelled` and `merged` included; null while open. */
|
|
606
|
+
closedAt: string | null;
|
|
607
|
+
/** Reporting only — NEVER used to decide competition. An opportunity spans
|
|
608
|
+
* rounds; an RFQ is one round. */
|
|
609
|
+
opportunityId: string | null;
|
|
610
|
+
createdBy: string;
|
|
611
|
+
updatedBy: string;
|
|
612
|
+
createdAt: string;
|
|
613
|
+
updatedAt: string;
|
|
614
|
+
}
|
|
615
|
+
export interface RfqSummary extends Rfq {
|
|
616
|
+
/** How many quotes compete in this RFQ. Deliberately not a value aggregate. */
|
|
617
|
+
quoteCount: number;
|
|
618
|
+
}
|
|
619
|
+
/**
|
|
620
|
+
* A RANGE across the RFQ's quotes — deliberately not a total.
|
|
621
|
+
*
|
|
622
|
+
* The quotes are ALTERNATIVES: three of four lose on every multi-scenario RFQ
|
|
623
|
+
* by construction, so adding them multiply-counts the same business.
|
|
624
|
+
*/
|
|
625
|
+
export interface RfqRange {
|
|
626
|
+
quoteCount: number;
|
|
627
|
+
minValue: number | null;
|
|
628
|
+
maxValue: number | null;
|
|
629
|
+
minBlendedMarginPct: number | null;
|
|
630
|
+
maxBlendedMarginPct: number | null;
|
|
631
|
+
}
|
|
632
|
+
export interface RfqCompetingQuote {
|
|
633
|
+
id: string;
|
|
634
|
+
quoteNumber: string;
|
|
635
|
+
name: string | null;
|
|
636
|
+
status: QuoteStatus;
|
|
637
|
+
lines: QuoteLine[];
|
|
638
|
+
rollUp: QuoteLineRollUp;
|
|
639
|
+
}
|
|
640
|
+
export interface RfqDetail extends Rfq {
|
|
641
|
+
quotes: RfqCompetingQuote[];
|
|
642
|
+
range: RfqRange;
|
|
643
|
+
}
|
|
644
|
+
export interface CreateRfqInput {
|
|
645
|
+
customerCompanyId: string;
|
|
646
|
+
name?: string | null;
|
|
647
|
+
customerReference?: string | null;
|
|
648
|
+
/** When the request arrived. Send it when you know it — see {@link Rfq}. */
|
|
649
|
+
receivedAt?: string | null;
|
|
650
|
+
dueDate?: string | null;
|
|
651
|
+
/** What the customer asked for, not what you will offer — see {@link Rfq}. */
|
|
652
|
+
requestedSopDate?: string | null;
|
|
653
|
+
/** Send this whenever the source was coarser than a day. */
|
|
654
|
+
requestedSopPrecision?: SopEopPrecision | null;
|
|
655
|
+
requestedEopDate?: string | null;
|
|
656
|
+
requestedEopPrecision?: SopEopPrecision | null;
|
|
657
|
+
/** Defaults to `manual`. */
|
|
658
|
+
source?: RfqSource;
|
|
659
|
+
sourceRef?: string | null;
|
|
660
|
+
opportunityId?: string | null;
|
|
661
|
+
}
|
|
662
|
+
export interface UpdateRfqInput {
|
|
663
|
+
name?: string | null;
|
|
664
|
+
customerReference?: string | null;
|
|
665
|
+
receivedAt?: string | null;
|
|
666
|
+
dueDate?: string | null;
|
|
667
|
+
requestedSopDate?: string | null;
|
|
668
|
+
requestedSopPrecision?: SopEopPrecision | null;
|
|
669
|
+
requestedEopDate?: string | null;
|
|
670
|
+
requestedEopPrecision?: SopEopPrecision | null;
|
|
671
|
+
sourceRef?: string | null;
|
|
672
|
+
opportunityId?: string | null;
|
|
673
|
+
status?: RfqStatus;
|
|
674
|
+
/** Required when `status` is `won`; must be one of this RFQ's own quotes. */
|
|
675
|
+
wonByQuoteId?: string | null;
|
|
676
|
+
/** Required when `status` is `merged`. Prefer `rfqs.merge(id, target)`. */
|
|
677
|
+
mergedIntoRfqId?: string | null;
|
|
678
|
+
}
|
|
679
|
+
export interface ListRfqsOptions {
|
|
680
|
+
status?: RfqStatus;
|
|
681
|
+
source?: RfqSource;
|
|
682
|
+
customerCompanyId?: string;
|
|
683
|
+
opportunityId?: string;
|
|
684
|
+
}
|
|
685
|
+
/** @deprecated Use {@link RfqStatus}. `resolved` splits into `won` / `lost`. */
|
|
533
686
|
export type QuoteAskStatus = 'open' | 'resolved' | 'cancelled';
|
|
687
|
+
/** @deprecated Use {@link Rfq}. Same row, same id. */
|
|
534
688
|
export interface QuoteAsk {
|
|
535
689
|
id: string;
|
|
536
690
|
tenantId: string;
|
|
@@ -551,6 +705,7 @@ export interface QuoteAsk {
|
|
|
551
705
|
createdAt: string;
|
|
552
706
|
updatedAt: string;
|
|
553
707
|
}
|
|
708
|
+
/** @deprecated Use {@link RfqSummary}. */
|
|
554
709
|
export interface QuoteAskSummary extends QuoteAsk {
|
|
555
710
|
/** How many quotes compete in this ask. Deliberately not a value aggregate. */
|
|
556
711
|
quoteCount: number;
|
|
@@ -561,6 +716,7 @@ export interface QuoteAskSummary extends QuoteAsk {
|
|
|
561
716
|
* The quotes are ALTERNATIVES: three of four lose on every multi-scenario RFQ by
|
|
562
717
|
* construction, so adding them multiply-counts the same business.
|
|
563
718
|
*/
|
|
719
|
+
/** @deprecated Use {@link RfqRange}. Identical shape. */
|
|
564
720
|
export interface QuoteAskRange {
|
|
565
721
|
quoteCount: number;
|
|
566
722
|
minValue: number | null;
|
|
@@ -568,6 +724,7 @@ export interface QuoteAskRange {
|
|
|
568
724
|
minBlendedMarginPct: number | null;
|
|
569
725
|
maxBlendedMarginPct: number | null;
|
|
570
726
|
}
|
|
727
|
+
/** @deprecated Use {@link RfqCompetingQuote}. */
|
|
571
728
|
export interface QuoteAskCompetingQuote {
|
|
572
729
|
id: string;
|
|
573
730
|
quoteNumber: string;
|
|
@@ -576,16 +733,19 @@ export interface QuoteAskCompetingQuote {
|
|
|
576
733
|
lines: QuoteLine[];
|
|
577
734
|
rollUp: QuoteLineRollUp;
|
|
578
735
|
}
|
|
736
|
+
/** @deprecated Use {@link RfqDetail}. */
|
|
579
737
|
export interface QuoteAskDetail extends QuoteAsk {
|
|
580
738
|
quotes: QuoteAskCompetingQuote[];
|
|
581
739
|
range: QuoteAskRange;
|
|
582
740
|
}
|
|
741
|
+
/** @deprecated Use {@link CreateRfqInput}. Creates with `source: 'manual'`. */
|
|
583
742
|
export interface CreateQuoteAskInput {
|
|
584
743
|
customerCompanyId: string;
|
|
585
744
|
name?: string | null;
|
|
586
745
|
opportunityId?: string | null;
|
|
587
746
|
dueDate?: string | null;
|
|
588
747
|
}
|
|
748
|
+
/** @deprecated Use {@link UpdateRfqInput}. */
|
|
589
749
|
export interface UpdateQuoteAskInput {
|
|
590
750
|
name?: string | null;
|
|
591
751
|
dueDate?: string | null;
|
|
@@ -594,6 +754,7 @@ export interface UpdateQuoteAskInput {
|
|
|
594
754
|
/** Required when resolving; must be one of this ask's own quotes. */
|
|
595
755
|
resolvedByQuoteId?: string | null;
|
|
596
756
|
}
|
|
757
|
+
/** @deprecated Use {@link ListRfqsOptions}. */
|
|
597
758
|
export interface ListQuoteAsksOptions {
|
|
598
759
|
status?: QuoteAskStatus;
|
|
599
760
|
customerCompanyId?: string;
|
|
@@ -865,9 +1026,12 @@ export interface CreateQuoteInput {
|
|
|
865
1026
|
name?: string;
|
|
866
1027
|
customerCompanyId: string;
|
|
867
1028
|
programId?: string;
|
|
868
|
-
/** Join the quote to an
|
|
869
|
-
*
|
|
1029
|
+
/** Join the quote to an RFQ ({@link Rfq}). Optional — a quote with no RFQ
|
|
1030
|
+
* competes with nothing and is awardable on its own. Validated to exist
|
|
870
1031
|
* in-tenant AND to belong to the same customer as the quote. */
|
|
1032
|
+
rfqId?: string | null;
|
|
1033
|
+
/** @deprecated The old spelling of `rfqId`. Still accepted; when both are
|
|
1034
|
+
* sent, `rfqId` wins. */
|
|
871
1035
|
askId?: string | null;
|
|
872
1036
|
partId?: string;
|
|
873
1037
|
/** Historical/parent quote this one was copied from. Validated to exist
|
|
@@ -933,8 +1097,11 @@ export interface UpdateQuoteInput {
|
|
|
933
1097
|
quoteNumber?: string;
|
|
934
1098
|
name?: string | null;
|
|
935
1099
|
programId?: string | null;
|
|
936
|
-
/** Join the quote to an
|
|
937
|
-
*
|
|
1100
|
+
/** Join the quote to an RFQ ({@link Rfq}), or `null` to detach it (it then
|
|
1101
|
+
* competes with nothing). Validated to match the quote's customer. */
|
|
1102
|
+
rfqId?: string | null;
|
|
1103
|
+
/** @deprecated The old spelling of `rfqId`. Still accepted; when both are
|
|
1104
|
+
* sent, `rfqId` wins. Detaching through either clears both. */
|
|
938
1105
|
askId?: string | null;
|
|
939
1106
|
partId?: string | null;
|
|
940
1107
|
/** Set to a quote id to record provenance, or `null` to clear it. */
|
|
@@ -3156,10 +3323,20 @@ export interface AttributeDefinitionImportRow {
|
|
|
3156
3323
|
group: string | null;
|
|
3157
3324
|
valueCount: number;
|
|
3158
3325
|
/** ready / error / skipped before a commit; created / failed (or still skipped) after one.
|
|
3159
|
-
* `skipped`: the key already exists in the registry, so the row is left alone (since 5.21.0)
|
|
3326
|
+
* `skipped`: the key already exists in the registry, so the row is left alone (since 5.21.0)
|
|
3327
|
+
* except for its group — see `regroup`. */
|
|
3160
3328
|
status: 'ready' | 'error' | 'skipped' | 'created' | 'failed';
|
|
3161
3329
|
errors: string[];
|
|
3162
3330
|
warnings: string[];
|
|
3331
|
+
/** An existing attribute the upload moves (or, after a commit, moved) to the group its row
|
|
3332
|
+
* names; `from` is null when it had none. Since 5.29.0. */
|
|
3333
|
+
regroup: {
|
|
3334
|
+
from: string | null;
|
|
3335
|
+
to: string;
|
|
3336
|
+
} | null;
|
|
3337
|
+
/** The key exists but no record has ever had a value for it, so the row replaces it: the old
|
|
3338
|
+
* definition is deleted and this one created (status ready / created). Since 5.29.0. */
|
|
3339
|
+
redefine: boolean;
|
|
3163
3340
|
}
|
|
3164
3341
|
/** What a definition upload found, and with `commit`, what it created. */
|
|
3165
3342
|
export interface AttributeDefinitionImportReport {
|
|
@@ -3172,6 +3349,8 @@ export interface AttributeDefinitionImportReport {
|
|
|
3172
3349
|
entityType: string;
|
|
3173
3350
|
name: string;
|
|
3174
3351
|
}[];
|
|
3352
|
+
/** Since 5.29.0: `regrouped`, skipped attributes moved to the group their row names;
|
|
3353
|
+
* `redefined`, unused attributes the upload replaces (counted in `ready` / `created` too). */
|
|
3175
3354
|
summary: {
|
|
3176
3355
|
total: number;
|
|
3177
3356
|
ready: number;
|
|
@@ -3179,6 +3358,8 @@ export interface AttributeDefinitionImportReport {
|
|
|
3179
3358
|
skipped: number;
|
|
3180
3359
|
created: number;
|
|
3181
3360
|
failed: number;
|
|
3361
|
+
regrouped: number;
|
|
3362
|
+
redefined: number;
|
|
3182
3363
|
};
|
|
3183
3364
|
}
|
|
3184
3365
|
/** An uploaded values sheet, parsed but NOT committed — see `attributeOptions.parseValuesFile`. */
|