@campfire-interactive/master-data-client 3.0.2 → 3.1.2
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 +10 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +15 -0
- package/dist/client.js.map +1 -1
- package/dist/equipment.d.ts +17 -0
- package/dist/equipment.d.ts.map +1 -0
- package/dist/{suppliers.js → equipment.js} +21 -22
- package/dist/equipment.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/partTypeDefaults.d.ts +12 -0
- package/dist/partTypeDefaults.d.ts.map +1 -0
- package/dist/{partFamilies.js → partTypeDefaults.js} +12 -9
- package/dist/partTypeDefaults.js.map +1 -0
- package/dist/partTypes.d.ts +13 -0
- package/dist/partTypes.d.ts.map +1 -0
- package/dist/partTypes.js +57 -0
- package/dist/partTypes.js.map +1 -0
- package/dist/processFamilies.d.ts +18 -0
- package/dist/processFamilies.d.ts.map +1 -0
- package/dist/processFamilies.js +52 -0
- package/dist/processFamilies.js.map +1 -0
- package/dist/rateCatalog.d.ts +44 -0
- package/dist/rateCatalog.d.ts.map +1 -0
- package/dist/rateCatalog.js +126 -0
- package/dist/rateCatalog.js.map +1 -0
- package/dist/rateLibraries.d.ts +3 -1
- package/dist/rateLibraries.d.ts.map +1 -1
- package/dist/rateLibraries.js +8 -0
- package/dist/rateLibraries.js.map +1 -1
- package/dist/rates.d.ts.map +1 -1
- package/dist/rates.js +10 -0
- package/dist/rates.js.map +1 -1
- package/dist/types.d.ts +327 -7
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/partFamilies.d.ts +0 -12
- package/dist/partFamilies.d.ts.map +0 -1
- package/dist/partFamilies.js.map +0 -1
- package/dist/suppliers.d.ts +0 -14
- package/dist/suppliers.d.ts.map +0 -1
- package/dist/suppliers.js.map +0 -1
package/dist/types.d.ts
CHANGED
|
@@ -111,7 +111,7 @@ export type QuoteStatus = 'draft' | 'costing_requested' | 'costing_in_progress'
|
|
|
111
111
|
*/
|
|
112
112
|
export type QuoteCallerRole = 'omsf' | 'cpq' | 'admin';
|
|
113
113
|
/**
|
|
114
|
-
* Quote type discriminator (added 3.
|
|
114
|
+
* Quote type discriminator (added 3.0.2). `rfq` = new-business quote (the
|
|
115
115
|
* default and the only kind before 2026-07). `eco` = Engineering Change
|
|
116
116
|
* Order quote — a change against an already-awarded quote's assembly,
|
|
117
117
|
* priced and approved as its own quote. Immutable post-create. When 'eco',
|
|
@@ -204,13 +204,13 @@ export interface Quote {
|
|
|
204
204
|
*/
|
|
205
205
|
effectiveVolumesByYear: EffectiveVolumeByYear[] | null;
|
|
206
206
|
status: QuoteStatus;
|
|
207
|
-
/** rfq | eco — see {@link QuoteType}. Immutable post-create. (3.
|
|
207
|
+
/** rfq | eco — see {@link QuoteType}. Immutable post-create. (3.0.2) */
|
|
208
208
|
quoteType: QuoteType;
|
|
209
209
|
/**
|
|
210
210
|
* ECO-only: the source quote's as-awarded unit price/cost, frozen at ECO
|
|
211
211
|
* creation. The stored operands for delta reporting — readers compute
|
|
212
212
|
* delta = effective − baseline; the delta itself is never stored. Always
|
|
213
|
-
* null on rfq-type quotes. Decimal-as-string like targetPrice. (3.
|
|
213
|
+
* null on rfq-type quotes. Decimal-as-string like targetPrice. (3.0.2)
|
|
214
214
|
*/
|
|
215
215
|
baselineUnitPrice: string | null;
|
|
216
216
|
baselineUnitCost: string | null;
|
|
@@ -288,13 +288,13 @@ export interface CreateQuoteInput {
|
|
|
288
288
|
/**
|
|
289
289
|
* Quote type — defaults to 'rfq'. Immutable post-create. When 'eco',
|
|
290
290
|
* `referenceQuoteId` becomes REQUIRED and must point to an in-tenant,
|
|
291
|
-
* AWARDED, non-eco quote (server-validated). (3.
|
|
291
|
+
* AWARDED, non-eco quote (server-validated). (3.0.2)
|
|
292
292
|
*/
|
|
293
293
|
quoteType?: QuoteType;
|
|
294
294
|
/** ECO-only (422 otherwise): frozen as-awarded unit price of the source
|
|
295
|
-
* quote. Decimal as number or string; string preferred. (3.
|
|
295
|
+
* quote. Decimal as number or string; string preferred. (3.0.2) */
|
|
296
296
|
baselineUnitPrice?: number | string;
|
|
297
|
-
/** ECO-only (422 otherwise): frozen as-awarded unit cost. (3.
|
|
297
|
+
/** ECO-only (422 otherwise): frozen as-awarded unit cost. (3.0.2) */
|
|
298
298
|
baselineUnitCost?: number | string;
|
|
299
299
|
}
|
|
300
300
|
/**
|
|
@@ -356,7 +356,7 @@ export interface ListQuotesOptions {
|
|
|
356
356
|
quality?: 'draft' | 'verified';
|
|
357
357
|
customerCompanyId?: string;
|
|
358
358
|
programId?: string;
|
|
359
|
-
/** Filter by quote type. Omitting returns both kinds. (3.
|
|
359
|
+
/** Filter by quote type. Omitting returns both kinds. (3.0.2) */
|
|
360
360
|
quoteType?: QuoteType;
|
|
361
361
|
include?: ('customerCompany' | 'program')[];
|
|
362
362
|
}
|
|
@@ -422,9 +422,14 @@ export interface Plant {
|
|
|
422
422
|
region: string | null;
|
|
423
423
|
headcount: number | null;
|
|
424
424
|
annualCapacityHours: number | null;
|
|
425
|
+
/** Annual throughput capacity in units (distinct from annualCapacityHours). */
|
|
426
|
+
annualCapacityUnits: number | null;
|
|
425
427
|
/** 0..1. */
|
|
426
428
|
currentUtilization: number | null;
|
|
427
429
|
riskLevel: string | null;
|
|
430
|
+
/** Plant operating currency (ISO 4217). Ergonomic default for rate entry;
|
|
431
|
+
* rate values carry their own authoritative currency. Defaults to "USD". */
|
|
432
|
+
currency: string;
|
|
428
433
|
numShifts: number;
|
|
429
434
|
hoursPerShift: number;
|
|
430
435
|
workingDaysPerYear: number;
|
|
@@ -449,8 +454,10 @@ export interface CreatePlantInput {
|
|
|
449
454
|
region?: string;
|
|
450
455
|
headcount?: number;
|
|
451
456
|
annualCapacityHours?: number;
|
|
457
|
+
annualCapacityUnits?: number;
|
|
452
458
|
currentUtilization?: number;
|
|
453
459
|
riskLevel?: string;
|
|
460
|
+
currency?: string;
|
|
454
461
|
numShifts?: number;
|
|
455
462
|
hoursPerShift?: number;
|
|
456
463
|
workingDaysPerYear?: number;
|
|
@@ -467,8 +474,10 @@ export interface UpdatePlantInput {
|
|
|
467
474
|
region?: string | null;
|
|
468
475
|
headcount?: number | null;
|
|
469
476
|
annualCapacityHours?: number | null;
|
|
477
|
+
annualCapacityUnits?: number | null;
|
|
470
478
|
currentUtilization?: number | null;
|
|
471
479
|
riskLevel?: string | null;
|
|
480
|
+
currency?: string;
|
|
472
481
|
numShifts?: number;
|
|
473
482
|
hoursPerShift?: number;
|
|
474
483
|
workingDaysPerYear?: number;
|
|
@@ -536,6 +545,8 @@ export interface MergePlantsRequest {
|
|
|
536
545
|
export type RateLibraryStatus = 'draft' | 'active' | 'archived';
|
|
537
546
|
export type RateEntryKind = 'labor' | 'machine' | 'overhead' | 'material' | 'freight';
|
|
538
547
|
export type RateSourcingMode = 'fixed' | 'indexed';
|
|
548
|
+
export type RateRollForwardMode = 'carry_forward_flagged' | 'blank_force_entry';
|
|
549
|
+
export type RateValueOrigin = 'entered' | 'escalated' | 'overridden' | 'carried_forward';
|
|
539
550
|
export interface RateLibrary {
|
|
540
551
|
id: string;
|
|
541
552
|
tenantId: string;
|
|
@@ -545,6 +556,13 @@ export interface RateLibrary {
|
|
|
545
556
|
currency: string;
|
|
546
557
|
effectiveDate: string;
|
|
547
558
|
effectiveTo: string | null;
|
|
559
|
+
/** Multi-year projection horizon (calendar years) + book-level escalation
|
|
560
|
+
* and roll-forward policy. Carried over from CPQ's RateBook. Null horizon
|
|
561
|
+
* = single-window library. Added in the 2026-07-02 rate superset. */
|
|
562
|
+
horizonStart: number | null;
|
|
563
|
+
horizonEnd: number | null;
|
|
564
|
+
escalationPct: number;
|
|
565
|
+
rollForwardMode: RateRollForwardMode;
|
|
548
566
|
status: RateLibraryStatus;
|
|
549
567
|
quality: 'draft' | 'verified';
|
|
550
568
|
version: number;
|
|
@@ -568,17 +586,35 @@ export interface RateEntry {
|
|
|
568
586
|
rateLibraryId: string;
|
|
569
587
|
kind: RateEntryKind;
|
|
570
588
|
plantId: string | null;
|
|
589
|
+
/** Equipment scope for machine-burden rates (superset). */
|
|
590
|
+
equipmentId: string | null;
|
|
591
|
+
equipmentCode: string | null;
|
|
571
592
|
skillTier: string | null;
|
|
572
593
|
materialId: string | null;
|
|
594
|
+
/** Material grade code — resolves to a RateGrade for density. */
|
|
595
|
+
gradeCode: string | null;
|
|
573
596
|
regionId: string | null;
|
|
574
597
|
lane: string | null;
|
|
598
|
+
/** Freight mode + packaging container qualifiers. */
|
|
599
|
+
mode: string | null;
|
|
600
|
+
container: string | null;
|
|
575
601
|
/** Decimal serialized as string to preserve precision across the wire. */
|
|
576
602
|
rate: string;
|
|
603
|
+
/** Canonical mass-basis cost (Decimal string), derived for material rates. */
|
|
604
|
+
ratePerKg: string | null;
|
|
577
605
|
unit: string;
|
|
578
606
|
currency: string;
|
|
607
|
+
/** Per-year projection window (null = inherits the library window). */
|
|
608
|
+
effectiveFrom: string | null;
|
|
609
|
+
effectiveTo: string | null;
|
|
610
|
+
/** Per-row escalation override (null = inherit the library default). */
|
|
611
|
+
escalationPct: number | null;
|
|
612
|
+
origin: RateValueOrigin;
|
|
579
613
|
sourcingMode: RateSourcingMode;
|
|
580
614
|
indexRef: string | null;
|
|
581
615
|
lastSyncedAt: string | null;
|
|
616
|
+
sourceSystem: string | null;
|
|
617
|
+
externalRef: string | null;
|
|
582
618
|
notes: string | null;
|
|
583
619
|
createdBy: string;
|
|
584
620
|
updatedBy: string;
|
|
@@ -592,6 +628,10 @@ export interface CreateRateLibraryInput {
|
|
|
592
628
|
currency?: string;
|
|
593
629
|
effectiveDate: string;
|
|
594
630
|
effectiveTo?: string | null;
|
|
631
|
+
horizonStart?: number | null;
|
|
632
|
+
horizonEnd?: number | null;
|
|
633
|
+
escalationPct?: number;
|
|
634
|
+
rollForwardMode?: RateRollForwardMode;
|
|
595
635
|
}
|
|
596
636
|
export interface UpdateRateLibraryInput {
|
|
597
637
|
name?: string;
|
|
@@ -600,6 +640,19 @@ export interface UpdateRateLibraryInput {
|
|
|
600
640
|
effectiveDate?: string;
|
|
601
641
|
effectiveTo?: string | null;
|
|
602
642
|
quality?: 'draft' | 'verified';
|
|
643
|
+
horizonStart?: number | null;
|
|
644
|
+
horizonEnd?: number | null;
|
|
645
|
+
escalationPct?: number;
|
|
646
|
+
rollForwardMode?: RateRollForwardMode;
|
|
647
|
+
}
|
|
648
|
+
export interface RollForwardResult {
|
|
649
|
+
libraryId: string;
|
|
650
|
+
horizonStart: number;
|
|
651
|
+
horizonEnd: number;
|
|
652
|
+
mode: RateRollForwardMode;
|
|
653
|
+
seedsProjected: number;
|
|
654
|
+
rowsCreated: number;
|
|
655
|
+
rowsReplaced: number;
|
|
603
656
|
}
|
|
604
657
|
export interface ListRateLibrariesOptions {
|
|
605
658
|
limit?: number;
|
|
@@ -618,29 +671,53 @@ export interface GetRateLibraryOptions {
|
|
|
618
671
|
export interface CreateRateEntryInput {
|
|
619
672
|
kind: RateEntryKind;
|
|
620
673
|
plantId?: string | null;
|
|
674
|
+
equipmentId?: string | null;
|
|
675
|
+
equipmentCode?: string | null;
|
|
621
676
|
skillTier?: string | null;
|
|
622
677
|
materialId?: string | null;
|
|
678
|
+
gradeCode?: string | null;
|
|
623
679
|
regionId?: string | null;
|
|
624
680
|
lane?: string | null;
|
|
681
|
+
mode?: string | null;
|
|
682
|
+
container?: string | null;
|
|
625
683
|
/** Number accepted; string preferred for precision. */
|
|
626
684
|
rate: number | string;
|
|
685
|
+
ratePerKg?: number | string | null;
|
|
627
686
|
unit: string;
|
|
628
687
|
currency?: string;
|
|
688
|
+
effectiveFrom?: string | null;
|
|
689
|
+
effectiveTo?: string | null;
|
|
690
|
+
escalationPct?: number | null;
|
|
691
|
+
origin?: RateValueOrigin;
|
|
629
692
|
sourcingMode?: RateSourcingMode;
|
|
630
693
|
indexRef?: string | null;
|
|
694
|
+
sourceSystem?: string | null;
|
|
695
|
+
externalRef?: string | null;
|
|
631
696
|
notes?: string | null;
|
|
632
697
|
}
|
|
633
698
|
export interface UpdateRateEntryInput {
|
|
634
699
|
plantId?: string | null;
|
|
700
|
+
equipmentId?: string | null;
|
|
701
|
+
equipmentCode?: string | null;
|
|
635
702
|
skillTier?: string | null;
|
|
636
703
|
materialId?: string | null;
|
|
704
|
+
gradeCode?: string | null;
|
|
637
705
|
regionId?: string | null;
|
|
638
706
|
lane?: string | null;
|
|
707
|
+
mode?: string | null;
|
|
708
|
+
container?: string | null;
|
|
639
709
|
rate?: number | string;
|
|
710
|
+
ratePerKg?: number | string | null;
|
|
640
711
|
unit?: string;
|
|
641
712
|
currency?: string;
|
|
713
|
+
effectiveFrom?: string | null;
|
|
714
|
+
effectiveTo?: string | null;
|
|
715
|
+
escalationPct?: number | null;
|
|
716
|
+
origin?: RateValueOrigin;
|
|
642
717
|
sourcingMode?: RateSourcingMode;
|
|
643
718
|
indexRef?: string | null;
|
|
719
|
+
sourceSystem?: string | null;
|
|
720
|
+
externalRef?: string | null;
|
|
644
721
|
notes?: string | null;
|
|
645
722
|
}
|
|
646
723
|
export interface ListRateEntriesOptions {
|
|
@@ -649,10 +726,15 @@ export interface ListRateEntriesOptions {
|
|
|
649
726
|
export interface RateLookupInput {
|
|
650
727
|
kind: RateEntryKind;
|
|
651
728
|
plantId?: string | null;
|
|
729
|
+
equipmentId?: string | null;
|
|
730
|
+
equipmentCode?: string | null;
|
|
652
731
|
skillTier?: string | null;
|
|
653
732
|
materialId?: string | null;
|
|
733
|
+
gradeCode?: string | null;
|
|
654
734
|
regionId?: string | null;
|
|
655
735
|
lane?: string | null;
|
|
736
|
+
mode?: string | null;
|
|
737
|
+
container?: string | null;
|
|
656
738
|
/** ISO date (YYYY-MM-DD). Defaults to today. */
|
|
657
739
|
asOf?: string;
|
|
658
740
|
}
|
|
@@ -664,6 +746,8 @@ export interface RateLookupResult {
|
|
|
664
746
|
kind: RateEntryKind;
|
|
665
747
|
/** Decimal serialized as string. */
|
|
666
748
|
rate: string;
|
|
749
|
+
/** Decimal serialized as string; null when not a mass-basis material rate. */
|
|
750
|
+
ratePerKg: string | null;
|
|
667
751
|
unit: string;
|
|
668
752
|
currency: string;
|
|
669
753
|
sourcingMode: RateSourcingMode;
|
|
@@ -673,12 +757,187 @@ export interface RateLookupResult {
|
|
|
673
757
|
/** Echoes the dimensions on the matched entry — handy for consumer audit logging. */
|
|
674
758
|
resolvedFrom: {
|
|
675
759
|
plantId: string | null;
|
|
760
|
+
equipmentId: string | null;
|
|
761
|
+
equipmentCode: string | null;
|
|
676
762
|
skillTier: string | null;
|
|
677
763
|
materialId: string | null;
|
|
764
|
+
gradeCode: string | null;
|
|
678
765
|
regionId: string | null;
|
|
679
766
|
lane: string | null;
|
|
767
|
+
mode: string | null;
|
|
768
|
+
container: string | null;
|
|
680
769
|
};
|
|
681
770
|
}
|
|
771
|
+
export interface PlantEquipment {
|
|
772
|
+
id: string;
|
|
773
|
+
tenantId: string;
|
|
774
|
+
plantId: string;
|
|
775
|
+
code: string;
|
|
776
|
+
name: string;
|
|
777
|
+
processFamily: string;
|
|
778
|
+
capacityHoursPerYear: number;
|
|
779
|
+
cavities: number;
|
|
780
|
+
/** OEE availability factor (0..1). */
|
|
781
|
+
availabilityPct: number;
|
|
782
|
+
/** OEE performance factor (0..1). */
|
|
783
|
+
performancePct: number;
|
|
784
|
+
/** CPQ-authored operational defaults — advisory metadata for non-CPQ apps. */
|
|
785
|
+
defaultHeadcount: number;
|
|
786
|
+
defaultAutomationPct: number;
|
|
787
|
+
defaultMachinesPerOperator: number;
|
|
788
|
+
defaultSetupCrew: number;
|
|
789
|
+
status: PlantStatus;
|
|
790
|
+
quality: 'draft' | 'verified';
|
|
791
|
+
createdBy: string;
|
|
792
|
+
updatedBy: string;
|
|
793
|
+
createdAt: string;
|
|
794
|
+
updatedAt: string;
|
|
795
|
+
plant?: Plant;
|
|
796
|
+
}
|
|
797
|
+
export interface CreateEquipmentInput {
|
|
798
|
+
plantId: string;
|
|
799
|
+
code: string;
|
|
800
|
+
name: string;
|
|
801
|
+
processFamily: string;
|
|
802
|
+
capacityHoursPerYear?: number;
|
|
803
|
+
cavities?: number;
|
|
804
|
+
availabilityPct?: number;
|
|
805
|
+
performancePct?: number;
|
|
806
|
+
defaultHeadcount?: number;
|
|
807
|
+
defaultAutomationPct?: number;
|
|
808
|
+
defaultMachinesPerOperator?: number;
|
|
809
|
+
defaultSetupCrew?: number;
|
|
810
|
+
quality?: 'draft' | 'verified';
|
|
811
|
+
}
|
|
812
|
+
export interface UpdateEquipmentInput {
|
|
813
|
+
code?: string;
|
|
814
|
+
name?: string;
|
|
815
|
+
processFamily?: string;
|
|
816
|
+
capacityHoursPerYear?: number;
|
|
817
|
+
cavities?: number;
|
|
818
|
+
availabilityPct?: number;
|
|
819
|
+
performancePct?: number;
|
|
820
|
+
defaultHeadcount?: number;
|
|
821
|
+
defaultAutomationPct?: number;
|
|
822
|
+
defaultMachinesPerOperator?: number;
|
|
823
|
+
defaultSetupCrew?: number;
|
|
824
|
+
quality?: 'draft' | 'verified';
|
|
825
|
+
}
|
|
826
|
+
export interface ListEquipmentOptions {
|
|
827
|
+
limit?: number;
|
|
828
|
+
cursor?: string;
|
|
829
|
+
sort?: string;
|
|
830
|
+
q?: string;
|
|
831
|
+
status?: PlantStatus | 'all';
|
|
832
|
+
quality?: 'draft' | 'verified';
|
|
833
|
+
plantId?: string;
|
|
834
|
+
processFamily?: string;
|
|
835
|
+
include?: 'plant'[];
|
|
836
|
+
}
|
|
837
|
+
export interface GetEquipmentOptions {
|
|
838
|
+
include?: 'plant'[];
|
|
839
|
+
}
|
|
840
|
+
export interface ProcessFamily {
|
|
841
|
+
id: string;
|
|
842
|
+
tenantId: string;
|
|
843
|
+
code: string;
|
|
844
|
+
name: string;
|
|
845
|
+
description: string | null;
|
|
846
|
+
sortOrder: number;
|
|
847
|
+
status: PlantStatus;
|
|
848
|
+
createdBy: string;
|
|
849
|
+
updatedBy: string;
|
|
850
|
+
createdAt: string;
|
|
851
|
+
updatedAt: string;
|
|
852
|
+
}
|
|
853
|
+
export interface CreateProcessFamilyInput {
|
|
854
|
+
code: string;
|
|
855
|
+
name: string;
|
|
856
|
+
description?: string;
|
|
857
|
+
sortOrder?: number;
|
|
858
|
+
}
|
|
859
|
+
export interface UpdateProcessFamilyInput {
|
|
860
|
+
name?: string;
|
|
861
|
+
description?: string | null;
|
|
862
|
+
sortOrder?: number;
|
|
863
|
+
status?: 'active' | 'archived';
|
|
864
|
+
}
|
|
865
|
+
export interface Uom {
|
|
866
|
+
id: string;
|
|
867
|
+
tenantId: string;
|
|
868
|
+
code: string;
|
|
869
|
+
name: string;
|
|
870
|
+
dimension: string | null;
|
|
871
|
+
createdBy: string;
|
|
872
|
+
updatedBy: string;
|
|
873
|
+
createdAt: string;
|
|
874
|
+
updatedAt: string;
|
|
875
|
+
}
|
|
876
|
+
export interface CreateUomInput {
|
|
877
|
+
code: string;
|
|
878
|
+
name: string;
|
|
879
|
+
dimension?: string;
|
|
880
|
+
}
|
|
881
|
+
export interface UpdateUomInput {
|
|
882
|
+
name?: string;
|
|
883
|
+
dimension?: string | null;
|
|
884
|
+
}
|
|
885
|
+
export interface RateLine {
|
|
886
|
+
id: string;
|
|
887
|
+
tenantId: string;
|
|
888
|
+
code: string;
|
|
889
|
+
name: string;
|
|
890
|
+
kind: RateEntryKind;
|
|
891
|
+
allowedUoms: string[];
|
|
892
|
+
description: string | null;
|
|
893
|
+
sortOrder: number;
|
|
894
|
+
status: PlantStatus;
|
|
895
|
+
createdBy: string;
|
|
896
|
+
updatedBy: string;
|
|
897
|
+
createdAt: string;
|
|
898
|
+
updatedAt: string;
|
|
899
|
+
}
|
|
900
|
+
export interface CreateRateLineInput {
|
|
901
|
+
code: string;
|
|
902
|
+
name: string;
|
|
903
|
+
kind: RateEntryKind;
|
|
904
|
+
allowedUoms?: string[];
|
|
905
|
+
description?: string;
|
|
906
|
+
sortOrder?: number;
|
|
907
|
+
}
|
|
908
|
+
export interface UpdateRateLineInput {
|
|
909
|
+
name?: string;
|
|
910
|
+
kind?: RateEntryKind;
|
|
911
|
+
allowedUoms?: string[];
|
|
912
|
+
description?: string | null;
|
|
913
|
+
sortOrder?: number;
|
|
914
|
+
status?: 'active' | 'archived';
|
|
915
|
+
}
|
|
916
|
+
export interface RateGrade {
|
|
917
|
+
id: string;
|
|
918
|
+
tenantId: string;
|
|
919
|
+
code: string;
|
|
920
|
+
name: string;
|
|
921
|
+
materialId: string | null;
|
|
922
|
+
density: number | null;
|
|
923
|
+
status: PlantStatus;
|
|
924
|
+
createdBy: string;
|
|
925
|
+
updatedBy: string;
|
|
926
|
+
createdAt: string;
|
|
927
|
+
updatedAt: string;
|
|
928
|
+
}
|
|
929
|
+
export interface CreateRateGradeInput {
|
|
930
|
+
code: string;
|
|
931
|
+
name: string;
|
|
932
|
+
materialId?: string | null;
|
|
933
|
+
density?: number | null;
|
|
934
|
+
}
|
|
935
|
+
export interface UpdateRateGradeInput {
|
|
936
|
+
name?: string;
|
|
937
|
+
materialId?: string | null;
|
|
938
|
+
density?: number | null;
|
|
939
|
+
status?: 'active' | 'archived';
|
|
940
|
+
}
|
|
682
941
|
export type ExchangeRateStatus = 'draft' | 'active' | 'archived';
|
|
683
942
|
export type ExchangeRateScope = 'tenant' | 'global';
|
|
684
943
|
export interface ExchangeRate {
|
|
@@ -782,7 +1041,10 @@ export interface Part {
|
|
|
782
1041
|
manufacturingPartNumber: string | null;
|
|
783
1042
|
name: string;
|
|
784
1043
|
description: string | null;
|
|
1044
|
+
/** @deprecated free-text; use partTypeId (governed PartType catalog). */
|
|
785
1045
|
partType: string | null;
|
|
1046
|
+
/** The per-tenant PartType this part is classified as. */
|
|
1047
|
+
partTypeId: string | null;
|
|
786
1048
|
/** The per-tenant PartCategory this part belongs to. */
|
|
787
1049
|
partCategoryId: string | null;
|
|
788
1050
|
manufacturer: string | null;
|
|
@@ -795,6 +1057,9 @@ export interface Part {
|
|
|
795
1057
|
createdAt: string;
|
|
796
1058
|
updatedAt: string;
|
|
797
1059
|
partCategory?: PartCategory;
|
|
1060
|
+
/** Resolved PartType (?include=partType). Named partTypeRef server-side during
|
|
1061
|
+
* the additive window; exposed here as the resolved catalog row. */
|
|
1062
|
+
partTypeRef?: PartType;
|
|
798
1063
|
currentRevision?: PartRevision;
|
|
799
1064
|
revisions?: PartRevision[];
|
|
800
1065
|
/** Which app most-recently wrote any field on this row (provenance). */
|
|
@@ -826,7 +1091,9 @@ export interface CreatePartInput {
|
|
|
826
1091
|
manufacturingPartNumber?: string | null;
|
|
827
1092
|
name: string;
|
|
828
1093
|
description?: string | null;
|
|
1094
|
+
/** @deprecated free-text; use partTypeId. */
|
|
829
1095
|
partType?: string | null;
|
|
1096
|
+
partTypeId?: string | null;
|
|
830
1097
|
partCategoryId?: string | null;
|
|
831
1098
|
manufacturer?: string | null;
|
|
832
1099
|
quality?: 'draft' | 'verified';
|
|
@@ -836,7 +1103,9 @@ export interface UpdatePartInput {
|
|
|
836
1103
|
manufacturingPartNumber?: string | null;
|
|
837
1104
|
name?: string;
|
|
838
1105
|
description?: string | null;
|
|
1106
|
+
/** @deprecated free-text; use partTypeId. */
|
|
839
1107
|
partType?: string | null;
|
|
1108
|
+
partTypeId?: string | null;
|
|
840
1109
|
partCategoryId?: string | null;
|
|
841
1110
|
manufacturer?: string | null;
|
|
842
1111
|
quality?: 'draft' | 'verified';
|
|
@@ -862,6 +1131,7 @@ export interface ListPartsOptions {
|
|
|
862
1131
|
status?: PartStatus | 'all';
|
|
863
1132
|
quality?: 'draft' | 'verified';
|
|
864
1133
|
partCategoryId?: string;
|
|
1134
|
+
partTypeId?: string;
|
|
865
1135
|
partType?: string;
|
|
866
1136
|
manufacturer?: string;
|
|
867
1137
|
include?: string[];
|
|
@@ -974,6 +1244,56 @@ export interface ListPartCategoriesOptions {
|
|
|
974
1244
|
/** When true, request only active categories (drops archived). */
|
|
975
1245
|
activeOnly?: boolean;
|
|
976
1246
|
}
|
|
1247
|
+
export interface PartTypeDefault {
|
|
1248
|
+
id: string;
|
|
1249
|
+
code: string;
|
|
1250
|
+
name: string;
|
|
1251
|
+
displayOrder: number;
|
|
1252
|
+
createdBy: string;
|
|
1253
|
+
updatedBy: string;
|
|
1254
|
+
createdAt: string;
|
|
1255
|
+
updatedAt: string;
|
|
1256
|
+
}
|
|
1257
|
+
export interface CreatePartTypeDefaultInput {
|
|
1258
|
+
code: string;
|
|
1259
|
+
name: string;
|
|
1260
|
+
displayOrder?: number;
|
|
1261
|
+
}
|
|
1262
|
+
export interface UpdatePartTypeDefaultInput {
|
|
1263
|
+
code?: string;
|
|
1264
|
+
name?: string;
|
|
1265
|
+
displayOrder?: number;
|
|
1266
|
+
}
|
|
1267
|
+
export type PartTypeStatus = 'active' | 'archived';
|
|
1268
|
+
export interface PartType {
|
|
1269
|
+
id: string;
|
|
1270
|
+
tenantId: string;
|
|
1271
|
+
code: string;
|
|
1272
|
+
name: string;
|
|
1273
|
+
displayOrder: number;
|
|
1274
|
+
status: PartTypeStatus;
|
|
1275
|
+
/** True for tool-seeded defaults: protected (no delete/archive/code-change). */
|
|
1276
|
+
isDefault: boolean;
|
|
1277
|
+
createdBy: string;
|
|
1278
|
+
updatedBy: string;
|
|
1279
|
+
createdAt: string;
|
|
1280
|
+
updatedAt: string;
|
|
1281
|
+
}
|
|
1282
|
+
export interface CreatePartTypeInput {
|
|
1283
|
+
code: string;
|
|
1284
|
+
name: string;
|
|
1285
|
+
displayOrder?: number;
|
|
1286
|
+
}
|
|
1287
|
+
export interface UpdatePartTypeInput {
|
|
1288
|
+
code?: string;
|
|
1289
|
+
name?: string;
|
|
1290
|
+
displayOrder?: number;
|
|
1291
|
+
status?: PartTypeStatus;
|
|
1292
|
+
}
|
|
1293
|
+
export interface ListPartTypesOptions {
|
|
1294
|
+
/** When true, request only active types (drops archived). */
|
|
1295
|
+
activeOnly?: boolean;
|
|
1296
|
+
}
|
|
977
1297
|
export interface AuditLogEntry {
|
|
978
1298
|
id: string;
|
|
979
1299
|
tenantId: string | null;
|