@final-commerce/common 2.4.0 → 2.5.0-staging.1

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.
@@ -156,6 +156,27 @@ interface OrderLineItemModifier {
156
156
  total: number;
157
157
  totalTax?: number;
158
158
  taxes?: OrderTax[];
159
+ componentIndex?: number;
160
+ }
161
+ interface OrderLineItemComponent {
162
+ productId: string;
163
+ variantId: string;
164
+ name: string;
165
+ attributes?: string;
166
+ sku?: string;
167
+ productExternalId?: string;
168
+ variantExternalId?: string;
169
+ partName?: string;
170
+ quantity: number;
171
+ price: number;
172
+ unitId?: string;
173
+ unitAbbreviation?: string;
174
+ unitRatioToBase?: number;
175
+ stockQuantity?: number;
176
+ stockVariantId?: string;
177
+ taxTableId?: string;
178
+ totalTax?: number;
179
+ taxes?: OrderTax[];
159
180
  }
160
181
  interface OrderLineItem {
161
182
  id?: string;
@@ -180,6 +201,7 @@ interface OrderLineItem {
180
201
  discount?: OrderLineItemDiscount;
181
202
  fee?: OrderLineItemFee;
182
203
  modifiers?: OrderLineItemModifier[];
204
+ components?: OrderLineItemComponent[];
183
205
  lineNetWithFees?: number;
184
206
  metadata?: Metadata[];
185
207
  stock?: number;
@@ -459,7 +481,8 @@ declare enum NonRevenueItemType {
459
481
  declare enum ProductType {
460
482
  SIMPLE = "simple",
461
483
  VARIABLE = "variable",
462
- BOOKING = "booking"
484
+ BOOKING = "booking",
485
+ COMPOSITE = "composite"
463
486
  }
464
487
  declare enum ProductStatus {
465
488
  ACTIVE = "active",
@@ -506,6 +529,7 @@ interface RefundLineItem {
506
529
  discount?: RefundDiscount;
507
530
  fee?: OrderLineItemFee;
508
531
  modifiers?: OrderLineItemModifier[];
532
+ components?: OrderLineItemComponent[];
509
533
  lineNetWithFees?: number;
510
534
  quantity?: number;
511
535
  stockQuantity?: number;
@@ -629,6 +653,8 @@ interface OrderReservation {
629
653
  startAt: string;
630
654
  endAt: string;
631
655
  bufferEndAt: string;
656
+ lineItemInternalId?: string;
657
+ componentIndex?: number;
632
658
  override?: boolean;
633
659
  overriddenBy?: string | null;
634
660
  }
@@ -1428,6 +1454,7 @@ interface LineItem {
1428
1454
  discount: DiscountLineItem;
1429
1455
  fee: FeeLineItem;
1430
1456
  modifiers?: OrderLineItemModifier[];
1457
+ components?: OrderLineItemComponent[];
1431
1458
  totalTax: number;
1432
1459
  total: number;
1433
1460
  lineNetWithFees: number;
@@ -1540,6 +1567,7 @@ interface RefundedLineItem {
1540
1567
  images?: string[];
1541
1568
  fee: FeeLineItem;
1542
1569
  modifiers?: OrderLineItemModifier[];
1570
+ components?: OrderLineItemComponent[];
1543
1571
  }
1544
1572
  interface RefundItem {
1545
1573
  lineItems: RefundedLineItem[];
@@ -1634,6 +1662,145 @@ interface CartLineModifier {
1634
1662
  unitPrice: number;
1635
1663
  quantity: number;
1636
1664
  taxTableId?: string;
1665
+ componentIndex?: number;
1666
+ }
1667
+
1668
+ interface MeasurementUnit {
1669
+ unitId: string;
1670
+ companyId: string | null;
1671
+ familyId: string;
1672
+ name: string;
1673
+ abbreviation: string;
1674
+ ratioToBase: number;
1675
+ precision: number;
1676
+ systemKey?: string;
1677
+ sellable?: false;
1678
+ }
1679
+
1680
+ interface Inventory {
1681
+ warehouse: string;
1682
+ outletId: string;
1683
+ stock?: number | null;
1684
+ }
1685
+ interface ProductVariant {
1686
+ sku: string;
1687
+ price: number;
1688
+ salePrice: number;
1689
+ isOnSale: boolean;
1690
+ barcode?: string;
1691
+ costPrice?: number;
1692
+ manageStock: boolean;
1693
+ externalId: string;
1694
+ inventory?: Inventory[];
1695
+ allowBackorder?: boolean;
1696
+ images?: string[];
1697
+ attributes: {
1698
+ name: string;
1699
+ value?: string;
1700
+ }[];
1701
+ metadata?: {
1702
+ key: string;
1703
+ value: string;
1704
+ }[];
1705
+ _id: string;
1706
+ isDeleted?: boolean;
1707
+ currency?: CurrencyCode;
1708
+ minorUnits?: number;
1709
+ unitId?: string;
1710
+ unit?: MeasurementUnit;
1711
+ stockVariantId?: string;
1712
+ }
1713
+ interface FullProduct {
1714
+ _id: string;
1715
+ companyId?: string;
1716
+ externalId: string;
1717
+ taxTable: string;
1718
+ name: string;
1719
+ description?: string;
1720
+ shortDescription?: string;
1721
+ images?: string[];
1722
+ categories: {
1723
+ name: string;
1724
+ externalId: string;
1725
+ }[];
1726
+ attributes: {
1727
+ name: string;
1728
+ values: string[];
1729
+ }[];
1730
+ tags?: string[];
1731
+ supplier?: string;
1732
+ sku?: string;
1733
+ productType: ProductType;
1734
+ bookingRulesId?: string;
1735
+ composite?: Composite | null;
1736
+ variants: ProductVariant[];
1737
+ defaultVariantId?: string;
1738
+ modifiers?: ResolvedModifier[];
1739
+ minPrice?: number;
1740
+ maxPrice?: number;
1741
+ price?: number;
1742
+ status?: string;
1743
+ isDeleted?: boolean;
1744
+ currency?: CurrencyCode;
1745
+ minorUnits?: number;
1746
+ createdAt?: string;
1747
+ updatedAt?: string;
1748
+ }
1749
+ type ActiveFullProduct = FullProduct;
1750
+
1751
+ type CompositeItemUnavailable = 'deleted' | 'inactive' | 'hidden' | 'empty' | 'out_of_stock' | 'by_date' | 'fully_booked';
1752
+ interface CompositeChoice {
1753
+ productId: string;
1754
+ variantId: string;
1755
+ name: string;
1756
+ attributes: ProductVariant['attributes'];
1757
+ modifiers?: ResolvedModifier[];
1758
+ stockLeft?: number;
1759
+ unit?: MeasurementUnit;
1760
+ }
1761
+ interface CompositeItem {
1762
+ _id: string;
1763
+ variantId: string | null;
1764
+ categoryId: string | null;
1765
+ name: string;
1766
+ extraCharge: number;
1767
+ quantity: number;
1768
+ cost: number;
1769
+ unavailable: CompositeItemUnavailable | null;
1770
+ choices: CompositeChoice[];
1771
+ }
1772
+ interface CompositePart {
1773
+ _id: string;
1774
+ name: string | null;
1775
+ required: boolean;
1776
+ min: number;
1777
+ max: number;
1778
+ items: CompositeItem[];
1779
+ defaultPick: Pick<CompositePick, 'itemId' | 'variantId'> | null;
1780
+ }
1781
+ interface Composite {
1782
+ available: boolean;
1783
+ basePrice: number | null;
1784
+ fromPrice: number | null;
1785
+ parts: CompositePart[];
1786
+ }
1787
+ interface CompositePick {
1788
+ itemId: string;
1789
+ variantId: string;
1790
+ quantity?: number;
1791
+ modifiers?: ModifierSelection[];
1792
+ }
1793
+ interface CartLineComponent {
1794
+ partName?: string;
1795
+ productId: string;
1796
+ variantId: string;
1797
+ name: string;
1798
+ attributes?: ProductVariant['attributes'];
1799
+ quantity: number;
1800
+ unitPrice: number;
1801
+ taxTableId?: string;
1802
+ unit?: MeasurementUnit;
1803
+ stockVariantId?: string;
1637
1804
  }
1638
1805
 
1639
1806
  interface Discount {
@@ -1650,18 +1817,6 @@ interface CustomFee {
1650
1817
  taxRateId?: string;
1651
1818
  }
1652
1819
 
1653
- interface MeasurementUnit {
1654
- unitId: string;
1655
- companyId: string | null;
1656
- familyId: string;
1657
- name: string;
1658
- abbreviation: string;
1659
- ratioToBase: number;
1660
- precision: number;
1661
- systemKey?: string;
1662
- sellable?: false;
1663
- }
1664
-
1665
1820
  interface ActiveProduct {
1666
1821
  id: string;
1667
1822
  internalId: string;
@@ -1685,6 +1840,7 @@ interface ActiveProduct {
1685
1840
  fees?: CustomFee[];
1686
1841
  modifierSelections?: ModifierSelection[];
1687
1842
  modifiers?: CartLineModifier[];
1843
+ components?: CartLineComponent[];
1688
1844
  currency?: CurrencyCode;
1689
1845
  minorUnits?: number;
1690
1846
  isUnlimited?: boolean;
@@ -1761,76 +1917,6 @@ interface ActiveCompany {
1761
1917
  settings?: unknown;
1762
1918
  }
1763
1919
 
1764
- interface Inventory {
1765
- warehouse: string;
1766
- outletId: string;
1767
- stock?: number | null;
1768
- }
1769
- interface ProductVariant {
1770
- sku: string;
1771
- price: number;
1772
- salePrice: number;
1773
- isOnSale: boolean;
1774
- barcode?: string;
1775
- costPrice?: number;
1776
- manageStock: boolean;
1777
- externalId: string;
1778
- inventory?: Inventory[];
1779
- allowBackorder?: boolean;
1780
- images?: string[];
1781
- attributes: {
1782
- name: string;
1783
- value?: string;
1784
- }[];
1785
- metadata?: {
1786
- key: string;
1787
- value: string;
1788
- }[];
1789
- _id: string;
1790
- isDeleted?: boolean;
1791
- currency?: CurrencyCode;
1792
- minorUnits?: number;
1793
- unitId?: string;
1794
- unit?: MeasurementUnit;
1795
- stockVariantId?: string;
1796
- }
1797
- interface FullProduct {
1798
- _id: string;
1799
- companyId?: string;
1800
- externalId: string;
1801
- taxTable: string;
1802
- name: string;
1803
- description?: string;
1804
- shortDescription?: string;
1805
- images?: string[];
1806
- categories: {
1807
- name: string;
1808
- externalId: string;
1809
- }[];
1810
- attributes: {
1811
- name: string;
1812
- values: string[];
1813
- }[];
1814
- tags?: string[];
1815
- supplier?: string;
1816
- sku?: string;
1817
- productType: ProductType;
1818
- bookingRulesId?: string;
1819
- variants: ProductVariant[];
1820
- defaultVariantId?: string;
1821
- modifiers?: ResolvedModifier[];
1822
- minPrice?: number;
1823
- maxPrice?: number;
1824
- price?: number;
1825
- status?: string;
1826
- isDeleted?: boolean;
1827
- currency?: CurrencyCode;
1828
- minorUnits?: number;
1829
- createdAt?: string;
1830
- updatedAt?: string;
1831
- }
1832
- type ActiveFullProduct = FullProduct;
1833
-
1834
1920
  interface BookingSlotResource {
1835
1921
  resourceId: string;
1836
1922
  name: string;
@@ -2054,6 +2140,7 @@ interface ProdModifierBreakdown {
2054
2140
  tax: number;
2055
2141
  taxTableId?: string;
2056
2142
  taxes?: OrderTax[];
2143
+ componentIndex?: number;
2057
2144
  }
2058
2145
  interface ProductTaxDetails {
2059
2146
  tax: number;
@@ -2408,4 +2495,4 @@ interface PubsubEventMessage {
2408
2495
  }
2409
2496
  type ServiceChannelMessage = PosBrainReadyMessage | HostHelloMessage | ServiceInitMessage | BootstrapMessage | TokenRefreshMessage | SelectionMessage | HostShutdownMessage | ReaderCapabilitiesMessage | RuntimeReadyMessage | HostNavigateMessage | SyncProgressMessage | DeviceOpRequestMessage | DeviceOpResponseMessage | PubsubTopicsRequestMessage | PubsubTopicsListMessage | PubsubSubscribeMessage | PubsubEventMessage;
2410
2497
 
2411
- export { type ActiveCart, type ActiveCartProduct, type ActiveCompany, type ActiveCustomSales, type ActiveCustomer, type ActiveEntityChanges, ActiveEntityType, type ActiveFullProduct, type ActiveOrder, type ActiveOrderReservation, type ActiveOutlet, type ActivePark, type ActiveProduct, type ActiveRefundOrder, type ActiveSession, type ActiveSplitPayment, type ActiveStation, type ActiveTaxDetails, type ActiveTimer, type ActiveUpdatedOrder, type ActiveUser, type ActiveUserRole, type Address, type Attribute, type AttributeEmbedded, type AttributeOption, type BaseDocument, type BaseEntity, type BaseTile, type Booking, type BookingAvailability, type BookingResource, type BookingSlot, type BookingSlotResource, type BootstrapMessage, type CalculatedTaxDetails, type CartDiscountItem, type CartFeeItem, type CartFeeTaxEntry, type CartFeesDetails, type CartLineModifier, type CartReservation, type CashPaymentSettings, type CashRoundingIncrement, type Category, type CompanyExtension, type CompanySettingsEavValue, type CompanySettingsEavValueType, type CustomExtension, type CustomFee, type CustomSale, type CustomSaleDetails, type CustomTable, type CustomTableField, type CustomTableMetadata, type CustomTableRow, type CustomTableValue, type Customer, type CustomerNote, type DeviceEnvAttribute, type DeviceEnvCategory, type DeviceEnvValue, type DeviceOpName, type DeviceOpRequestMessage, type DeviceOpResponseMessage, type Discount, type DiscountDetail, type DiscountLineItem, type Enrich, EnvironmentDataKeys, EnvironmentDataSubKeys, type FeeDetail, type FeeLineItem, type Flow, type FlowSettings, type FlowSettingsKey, type FlowWebApp, type FlowWebAppVersion, type FullProduct, type HostHelloMessage, type HostNavigateMessage, type HostNavigateTarget, type HostShutdownMessage, type Inventory, type LineItem, type Metadata, type MetadataItem, type ModifierChoiceSelection, type ModifierSelection, type ModifierSelectionType, type NonRevenueItem, type Note, type Order, type OrderCartDiscount, type OrderCartFee, type OrderCustomSale, type OrderCustomSaleDiscount, type OrderCustomSaleFee, type OrderLineItem, type OrderLineItemDiscount, type OrderLineItemFee, type OrderLineItemModifier, type OrderNote, type OrderPaymentMethod, type OrderPosData, type OrderRefund, type OrderRefundSummary, type OrderReservation, type OrderStateActor, type OrderStateActorType, type OrderStateConfig, type OrderStateEvent, type OrderStateEventTrigger, type OrderStateHistoryEntry, type OrderStateOperation, type OrderStatePair, type OrderSummary, type OrderSummaryPayments, type OrderTax, type OrderTip, type Outlet, type PaymentMethod, type PaymentResponse, type PaymentSetting, PaymentStatus, type PosBrainReadyMessage, type PosDataItem, type PriceModifierDetail, type PrinterDetails, ProcessorType, type ProdDiscountBreakdown, type ProdFeeBreakdown, type ProdModifierBreakdown, type Product, type ProductTaxDetails, type ProductVariant, type PubsubEventMessage, type PubsubSubscribeMessage, type PubsubTopicsListMessage, type PubsubTopicsRequestMessage, type Reader, type ReaderAvailability, type ReaderCapabilities, type ReaderCapabilitiesMessage, type Refund, type RefundCartDiscount, type RefundDiscount, type RefundItem, type RefundItemDiscount, type RefundLineItem, type RefundPayment, type RefundProcessingStatus, type RefundSummary, type RefundTip, type RefundedCustomSale, type RefundedLineItem, type RefundedTipPayment, type ResolvedModifier, type ResolvedModifierChoice, type Role, type RolePermission, type RuntimeReadyMessage, type SelectionContext, type SelectionFlowContext, type SelectionMessage, type SelectionRoleContext, type ServiceChannelMessage, type ServiceChannelMessageType, type ServiceInitMessage, type Session, type SessionClosingAmounts, type SmartGridSetting, type SmartGridSettings, type SmartGridSettingsData, type Station, type StripeAccount, type Summary, type SummaryPayments, type SyncProgressMessage, type Tax, type TaxRate, type TaxRateValue, type TaxTable, type TaxTableActive, type TaxTableRate, type TileGrid, type TimeClockEntry, type TimeClockEntryStatus, type Tip, type TipData, type TipPayment, type TipsDetails, type TokenRefreshMessage, type TopicDefinitionWire, type TopicEventWire, type Transaction, type TransactionPaymentData, type User, type UserType, type Variant, type VariantInventory };
2498
+ export { type ActiveCart, type ActiveCartProduct, type ActiveCompany, type ActiveCustomSales, type ActiveCustomer, type ActiveEntityChanges, ActiveEntityType, type ActiveFullProduct, type ActiveOrder, type ActiveOrderReservation, type ActiveOutlet, type ActivePark, type ActiveProduct, type ActiveRefundOrder, type ActiveSession, type ActiveSplitPayment, type ActiveStation, type ActiveTaxDetails, type ActiveTimer, type ActiveUpdatedOrder, type ActiveUser, type ActiveUserRole, type Address, type Attribute, type AttributeEmbedded, type AttributeOption, type BaseDocument, type BaseEntity, type BaseTile, type Booking, type BookingAvailability, type BookingResource, type BookingSlot, type BookingSlotResource, type BootstrapMessage, type CalculatedTaxDetails, type CartDiscountItem, type CartFeeItem, type CartFeeTaxEntry, type CartFeesDetails, type CartLineComponent, type CartLineModifier, type CartReservation, type CashPaymentSettings, type CashRoundingIncrement, type Category, type CompanyExtension, type CompanySettingsEavValue, type CompanySettingsEavValueType, type Composite, type CompositeChoice, type CompositeItem, type CompositeItemUnavailable, type CompositePart, type CompositePick, type CustomExtension, type CustomFee, type CustomSale, type CustomSaleDetails, type CustomTable, type CustomTableField, type CustomTableMetadata, type CustomTableRow, type CustomTableValue, type Customer, type CustomerNote, type DeviceEnvAttribute, type DeviceEnvCategory, type DeviceEnvValue, type DeviceOpName, type DeviceOpRequestMessage, type DeviceOpResponseMessage, type Discount, type DiscountDetail, type DiscountLineItem, type Enrich, EnvironmentDataKeys, EnvironmentDataSubKeys, type FeeDetail, type FeeLineItem, type Flow, type FlowSettings, type FlowSettingsKey, type FlowWebApp, type FlowWebAppVersion, type FullProduct, type HostHelloMessage, type HostNavigateMessage, type HostNavigateTarget, type HostShutdownMessage, type Inventory, type LineItem, type Metadata, type MetadataItem, type ModifierChoiceSelection, type ModifierSelection, type ModifierSelectionType, type NonRevenueItem, type Note, type Order, type OrderCartDiscount, type OrderCartFee, type OrderCustomSale, type OrderCustomSaleDiscount, type OrderCustomSaleFee, type OrderLineItem, type OrderLineItemComponent, type OrderLineItemDiscount, type OrderLineItemFee, type OrderLineItemModifier, type OrderNote, type OrderPaymentMethod, type OrderPosData, type OrderRefund, type OrderRefundSummary, type OrderReservation, type OrderStateActor, type OrderStateActorType, type OrderStateConfig, type OrderStateEvent, type OrderStateEventTrigger, type OrderStateHistoryEntry, type OrderStateOperation, type OrderStatePair, type OrderSummary, type OrderSummaryPayments, type OrderTax, type OrderTip, type Outlet, type PaymentMethod, type PaymentResponse, type PaymentSetting, PaymentStatus, type PosBrainReadyMessage, type PosDataItem, type PriceModifierDetail, type PrinterDetails, ProcessorType, type ProdDiscountBreakdown, type ProdFeeBreakdown, type ProdModifierBreakdown, type Product, type ProductTaxDetails, type ProductVariant, type PubsubEventMessage, type PubsubSubscribeMessage, type PubsubTopicsListMessage, type PubsubTopicsRequestMessage, type Reader, type ReaderAvailability, type ReaderCapabilities, type ReaderCapabilitiesMessage, type Refund, type RefundCartDiscount, type RefundDiscount, type RefundItem, type RefundItemDiscount, type RefundLineItem, type RefundPayment, type RefundProcessingStatus, type RefundSummary, type RefundTip, type RefundedCustomSale, type RefundedLineItem, type RefundedTipPayment, type ResolvedModifier, type ResolvedModifierChoice, type Role, type RolePermission, type RuntimeReadyMessage, type SelectionContext, type SelectionFlowContext, type SelectionMessage, type SelectionRoleContext, type ServiceChannelMessage, type ServiceChannelMessageType, type ServiceInitMessage, type Session, type SessionClosingAmounts, type SmartGridSetting, type SmartGridSettings, type SmartGridSettingsData, type Station, type StripeAccount, type Summary, type SummaryPayments, type SyncProgressMessage, type Tax, type TaxRate, type TaxRateValue, type TaxTable, type TaxTableActive, type TaxTableRate, type TileGrid, type TimeClockEntry, type TimeClockEntryStatus, type Tip, type TipData, type TipPayment, type TipsDetails, type TokenRefreshMessage, type TopicDefinitionWire, type TopicEventWire, type Transaction, type TransactionPaymentData, type User, type UserType, type Variant, type VariantInventory };
@@ -156,6 +156,27 @@ interface OrderLineItemModifier {
156
156
  total: number;
157
157
  totalTax?: number;
158
158
  taxes?: OrderTax[];
159
+ componentIndex?: number;
160
+ }
161
+ interface OrderLineItemComponent {
162
+ productId: string;
163
+ variantId: string;
164
+ name: string;
165
+ attributes?: string;
166
+ sku?: string;
167
+ productExternalId?: string;
168
+ variantExternalId?: string;
169
+ partName?: string;
170
+ quantity: number;
171
+ price: number;
172
+ unitId?: string;
173
+ unitAbbreviation?: string;
174
+ unitRatioToBase?: number;
175
+ stockQuantity?: number;
176
+ stockVariantId?: string;
177
+ taxTableId?: string;
178
+ totalTax?: number;
179
+ taxes?: OrderTax[];
159
180
  }
160
181
  interface OrderLineItem {
161
182
  id?: string;
@@ -180,6 +201,7 @@ interface OrderLineItem {
180
201
  discount?: OrderLineItemDiscount;
181
202
  fee?: OrderLineItemFee;
182
203
  modifiers?: OrderLineItemModifier[];
204
+ components?: OrderLineItemComponent[];
183
205
  lineNetWithFees?: number;
184
206
  metadata?: Metadata[];
185
207
  stock?: number;
@@ -459,7 +481,8 @@ declare enum NonRevenueItemType {
459
481
  declare enum ProductType {
460
482
  SIMPLE = "simple",
461
483
  VARIABLE = "variable",
462
- BOOKING = "booking"
484
+ BOOKING = "booking",
485
+ COMPOSITE = "composite"
463
486
  }
464
487
  declare enum ProductStatus {
465
488
  ACTIVE = "active",
@@ -506,6 +529,7 @@ interface RefundLineItem {
506
529
  discount?: RefundDiscount;
507
530
  fee?: OrderLineItemFee;
508
531
  modifiers?: OrderLineItemModifier[];
532
+ components?: OrderLineItemComponent[];
509
533
  lineNetWithFees?: number;
510
534
  quantity?: number;
511
535
  stockQuantity?: number;
@@ -629,6 +653,8 @@ interface OrderReservation {
629
653
  startAt: string;
630
654
  endAt: string;
631
655
  bufferEndAt: string;
656
+ lineItemInternalId?: string;
657
+ componentIndex?: number;
632
658
  override?: boolean;
633
659
  overriddenBy?: string | null;
634
660
  }
@@ -1428,6 +1454,7 @@ interface LineItem {
1428
1454
  discount: DiscountLineItem;
1429
1455
  fee: FeeLineItem;
1430
1456
  modifiers?: OrderLineItemModifier[];
1457
+ components?: OrderLineItemComponent[];
1431
1458
  totalTax: number;
1432
1459
  total: number;
1433
1460
  lineNetWithFees: number;
@@ -1540,6 +1567,7 @@ interface RefundedLineItem {
1540
1567
  images?: string[];
1541
1568
  fee: FeeLineItem;
1542
1569
  modifiers?: OrderLineItemModifier[];
1570
+ components?: OrderLineItemComponent[];
1543
1571
  }
1544
1572
  interface RefundItem {
1545
1573
  lineItems: RefundedLineItem[];
@@ -1634,6 +1662,145 @@ interface CartLineModifier {
1634
1662
  unitPrice: number;
1635
1663
  quantity: number;
1636
1664
  taxTableId?: string;
1665
+ componentIndex?: number;
1666
+ }
1667
+
1668
+ interface MeasurementUnit {
1669
+ unitId: string;
1670
+ companyId: string | null;
1671
+ familyId: string;
1672
+ name: string;
1673
+ abbreviation: string;
1674
+ ratioToBase: number;
1675
+ precision: number;
1676
+ systemKey?: string;
1677
+ sellable?: false;
1678
+ }
1679
+
1680
+ interface Inventory {
1681
+ warehouse: string;
1682
+ outletId: string;
1683
+ stock?: number | null;
1684
+ }
1685
+ interface ProductVariant {
1686
+ sku: string;
1687
+ price: number;
1688
+ salePrice: number;
1689
+ isOnSale: boolean;
1690
+ barcode?: string;
1691
+ costPrice?: number;
1692
+ manageStock: boolean;
1693
+ externalId: string;
1694
+ inventory?: Inventory[];
1695
+ allowBackorder?: boolean;
1696
+ images?: string[];
1697
+ attributes: {
1698
+ name: string;
1699
+ value?: string;
1700
+ }[];
1701
+ metadata?: {
1702
+ key: string;
1703
+ value: string;
1704
+ }[];
1705
+ _id: string;
1706
+ isDeleted?: boolean;
1707
+ currency?: CurrencyCode;
1708
+ minorUnits?: number;
1709
+ unitId?: string;
1710
+ unit?: MeasurementUnit;
1711
+ stockVariantId?: string;
1712
+ }
1713
+ interface FullProduct {
1714
+ _id: string;
1715
+ companyId?: string;
1716
+ externalId: string;
1717
+ taxTable: string;
1718
+ name: string;
1719
+ description?: string;
1720
+ shortDescription?: string;
1721
+ images?: string[];
1722
+ categories: {
1723
+ name: string;
1724
+ externalId: string;
1725
+ }[];
1726
+ attributes: {
1727
+ name: string;
1728
+ values: string[];
1729
+ }[];
1730
+ tags?: string[];
1731
+ supplier?: string;
1732
+ sku?: string;
1733
+ productType: ProductType;
1734
+ bookingRulesId?: string;
1735
+ composite?: Composite | null;
1736
+ variants: ProductVariant[];
1737
+ defaultVariantId?: string;
1738
+ modifiers?: ResolvedModifier[];
1739
+ minPrice?: number;
1740
+ maxPrice?: number;
1741
+ price?: number;
1742
+ status?: string;
1743
+ isDeleted?: boolean;
1744
+ currency?: CurrencyCode;
1745
+ minorUnits?: number;
1746
+ createdAt?: string;
1747
+ updatedAt?: string;
1748
+ }
1749
+ type ActiveFullProduct = FullProduct;
1750
+
1751
+ type CompositeItemUnavailable = 'deleted' | 'inactive' | 'hidden' | 'empty' | 'out_of_stock' | 'by_date' | 'fully_booked';
1752
+ interface CompositeChoice {
1753
+ productId: string;
1754
+ variantId: string;
1755
+ name: string;
1756
+ attributes: ProductVariant['attributes'];
1757
+ modifiers?: ResolvedModifier[];
1758
+ stockLeft?: number;
1759
+ unit?: MeasurementUnit;
1760
+ }
1761
+ interface CompositeItem {
1762
+ _id: string;
1763
+ variantId: string | null;
1764
+ categoryId: string | null;
1765
+ name: string;
1766
+ extraCharge: number;
1767
+ quantity: number;
1768
+ cost: number;
1769
+ unavailable: CompositeItemUnavailable | null;
1770
+ choices: CompositeChoice[];
1771
+ }
1772
+ interface CompositePart {
1773
+ _id: string;
1774
+ name: string | null;
1775
+ required: boolean;
1776
+ min: number;
1777
+ max: number;
1778
+ items: CompositeItem[];
1779
+ defaultPick: Pick<CompositePick, 'itemId' | 'variantId'> | null;
1780
+ }
1781
+ interface Composite {
1782
+ available: boolean;
1783
+ basePrice: number | null;
1784
+ fromPrice: number | null;
1785
+ parts: CompositePart[];
1786
+ }
1787
+ interface CompositePick {
1788
+ itemId: string;
1789
+ variantId: string;
1790
+ quantity?: number;
1791
+ modifiers?: ModifierSelection[];
1792
+ }
1793
+ interface CartLineComponent {
1794
+ partName?: string;
1795
+ productId: string;
1796
+ variantId: string;
1797
+ name: string;
1798
+ attributes?: ProductVariant['attributes'];
1799
+ quantity: number;
1800
+ unitPrice: number;
1801
+ taxTableId?: string;
1802
+ unit?: MeasurementUnit;
1803
+ stockVariantId?: string;
1637
1804
  }
1638
1805
 
1639
1806
  interface Discount {
@@ -1650,18 +1817,6 @@ interface CustomFee {
1650
1817
  taxRateId?: string;
1651
1818
  }
1652
1819
 
1653
- interface MeasurementUnit {
1654
- unitId: string;
1655
- companyId: string | null;
1656
- familyId: string;
1657
- name: string;
1658
- abbreviation: string;
1659
- ratioToBase: number;
1660
- precision: number;
1661
- systemKey?: string;
1662
- sellable?: false;
1663
- }
1664
-
1665
1820
  interface ActiveProduct {
1666
1821
  id: string;
1667
1822
  internalId: string;
@@ -1685,6 +1840,7 @@ interface ActiveProduct {
1685
1840
  fees?: CustomFee[];
1686
1841
  modifierSelections?: ModifierSelection[];
1687
1842
  modifiers?: CartLineModifier[];
1843
+ components?: CartLineComponent[];
1688
1844
  currency?: CurrencyCode;
1689
1845
  minorUnits?: number;
1690
1846
  isUnlimited?: boolean;
@@ -1761,76 +1917,6 @@ interface ActiveCompany {
1761
1917
  settings?: unknown;
1762
1918
  }
1763
1919
 
1764
- interface Inventory {
1765
- warehouse: string;
1766
- outletId: string;
1767
- stock?: number | null;
1768
- }
1769
- interface ProductVariant {
1770
- sku: string;
1771
- price: number;
1772
- salePrice: number;
1773
- isOnSale: boolean;
1774
- barcode?: string;
1775
- costPrice?: number;
1776
- manageStock: boolean;
1777
- externalId: string;
1778
- inventory?: Inventory[];
1779
- allowBackorder?: boolean;
1780
- images?: string[];
1781
- attributes: {
1782
- name: string;
1783
- value?: string;
1784
- }[];
1785
- metadata?: {
1786
- key: string;
1787
- value: string;
1788
- }[];
1789
- _id: string;
1790
- isDeleted?: boolean;
1791
- currency?: CurrencyCode;
1792
- minorUnits?: number;
1793
- unitId?: string;
1794
- unit?: MeasurementUnit;
1795
- stockVariantId?: string;
1796
- }
1797
- interface FullProduct {
1798
- _id: string;
1799
- companyId?: string;
1800
- externalId: string;
1801
- taxTable: string;
1802
- name: string;
1803
- description?: string;
1804
- shortDescription?: string;
1805
- images?: string[];
1806
- categories: {
1807
- name: string;
1808
- externalId: string;
1809
- }[];
1810
- attributes: {
1811
- name: string;
1812
- values: string[];
1813
- }[];
1814
- tags?: string[];
1815
- supplier?: string;
1816
- sku?: string;
1817
- productType: ProductType;
1818
- bookingRulesId?: string;
1819
- variants: ProductVariant[];
1820
- defaultVariantId?: string;
1821
- modifiers?: ResolvedModifier[];
1822
- minPrice?: number;
1823
- maxPrice?: number;
1824
- price?: number;
1825
- status?: string;
1826
- isDeleted?: boolean;
1827
- currency?: CurrencyCode;
1828
- minorUnits?: number;
1829
- createdAt?: string;
1830
- updatedAt?: string;
1831
- }
1832
- type ActiveFullProduct = FullProduct;
1833
-
1834
1920
  interface BookingSlotResource {
1835
1921
  resourceId: string;
1836
1922
  name: string;
@@ -2054,6 +2140,7 @@ interface ProdModifierBreakdown {
2054
2140
  tax: number;
2055
2141
  taxTableId?: string;
2056
2142
  taxes?: OrderTax[];
2143
+ componentIndex?: number;
2057
2144
  }
2058
2145
  interface ProductTaxDetails {
2059
2146
  tax: number;
@@ -2408,4 +2495,4 @@ interface PubsubEventMessage {
2408
2495
  }
2409
2496
  type ServiceChannelMessage = PosBrainReadyMessage | HostHelloMessage | ServiceInitMessage | BootstrapMessage | TokenRefreshMessage | SelectionMessage | HostShutdownMessage | ReaderCapabilitiesMessage | RuntimeReadyMessage | HostNavigateMessage | SyncProgressMessage | DeviceOpRequestMessage | DeviceOpResponseMessage | PubsubTopicsRequestMessage | PubsubTopicsListMessage | PubsubSubscribeMessage | PubsubEventMessage;
2410
2497
 
2411
- export { type ActiveCart, type ActiveCartProduct, type ActiveCompany, type ActiveCustomSales, type ActiveCustomer, type ActiveEntityChanges, ActiveEntityType, type ActiveFullProduct, type ActiveOrder, type ActiveOrderReservation, type ActiveOutlet, type ActivePark, type ActiveProduct, type ActiveRefundOrder, type ActiveSession, type ActiveSplitPayment, type ActiveStation, type ActiveTaxDetails, type ActiveTimer, type ActiveUpdatedOrder, type ActiveUser, type ActiveUserRole, type Address, type Attribute, type AttributeEmbedded, type AttributeOption, type BaseDocument, type BaseEntity, type BaseTile, type Booking, type BookingAvailability, type BookingResource, type BookingSlot, type BookingSlotResource, type BootstrapMessage, type CalculatedTaxDetails, type CartDiscountItem, type CartFeeItem, type CartFeeTaxEntry, type CartFeesDetails, type CartLineModifier, type CartReservation, type CashPaymentSettings, type CashRoundingIncrement, type Category, type CompanyExtension, type CompanySettingsEavValue, type CompanySettingsEavValueType, type CustomExtension, type CustomFee, type CustomSale, type CustomSaleDetails, type CustomTable, type CustomTableField, type CustomTableMetadata, type CustomTableRow, type CustomTableValue, type Customer, type CustomerNote, type DeviceEnvAttribute, type DeviceEnvCategory, type DeviceEnvValue, type DeviceOpName, type DeviceOpRequestMessage, type DeviceOpResponseMessage, type Discount, type DiscountDetail, type DiscountLineItem, type Enrich, EnvironmentDataKeys, EnvironmentDataSubKeys, type FeeDetail, type FeeLineItem, type Flow, type FlowSettings, type FlowSettingsKey, type FlowWebApp, type FlowWebAppVersion, type FullProduct, type HostHelloMessage, type HostNavigateMessage, type HostNavigateTarget, type HostShutdownMessage, type Inventory, type LineItem, type Metadata, type MetadataItem, type ModifierChoiceSelection, type ModifierSelection, type ModifierSelectionType, type NonRevenueItem, type Note, type Order, type OrderCartDiscount, type OrderCartFee, type OrderCustomSale, type OrderCustomSaleDiscount, type OrderCustomSaleFee, type OrderLineItem, type OrderLineItemDiscount, type OrderLineItemFee, type OrderLineItemModifier, type OrderNote, type OrderPaymentMethod, type OrderPosData, type OrderRefund, type OrderRefundSummary, type OrderReservation, type OrderStateActor, type OrderStateActorType, type OrderStateConfig, type OrderStateEvent, type OrderStateEventTrigger, type OrderStateHistoryEntry, type OrderStateOperation, type OrderStatePair, type OrderSummary, type OrderSummaryPayments, type OrderTax, type OrderTip, type Outlet, type PaymentMethod, type PaymentResponse, type PaymentSetting, PaymentStatus, type PosBrainReadyMessage, type PosDataItem, type PriceModifierDetail, type PrinterDetails, ProcessorType, type ProdDiscountBreakdown, type ProdFeeBreakdown, type ProdModifierBreakdown, type Product, type ProductTaxDetails, type ProductVariant, type PubsubEventMessage, type PubsubSubscribeMessage, type PubsubTopicsListMessage, type PubsubTopicsRequestMessage, type Reader, type ReaderAvailability, type ReaderCapabilities, type ReaderCapabilitiesMessage, type Refund, type RefundCartDiscount, type RefundDiscount, type RefundItem, type RefundItemDiscount, type RefundLineItem, type RefundPayment, type RefundProcessingStatus, type RefundSummary, type RefundTip, type RefundedCustomSale, type RefundedLineItem, type RefundedTipPayment, type ResolvedModifier, type ResolvedModifierChoice, type Role, type RolePermission, type RuntimeReadyMessage, type SelectionContext, type SelectionFlowContext, type SelectionMessage, type SelectionRoleContext, type ServiceChannelMessage, type ServiceChannelMessageType, type ServiceInitMessage, type Session, type SessionClosingAmounts, type SmartGridSetting, type SmartGridSettings, type SmartGridSettingsData, type Station, type StripeAccount, type Summary, type SummaryPayments, type SyncProgressMessage, type Tax, type TaxRate, type TaxRateValue, type TaxTable, type TaxTableActive, type TaxTableRate, type TileGrid, type TimeClockEntry, type TimeClockEntryStatus, type Tip, type TipData, type TipPayment, type TipsDetails, type TokenRefreshMessage, type TopicDefinitionWire, type TopicEventWire, type Transaction, type TransactionPaymentData, type User, type UserType, type Variant, type VariantInventory };
2498
+ export { type ActiveCart, type ActiveCartProduct, type ActiveCompany, type ActiveCustomSales, type ActiveCustomer, type ActiveEntityChanges, ActiveEntityType, type ActiveFullProduct, type ActiveOrder, type ActiveOrderReservation, type ActiveOutlet, type ActivePark, type ActiveProduct, type ActiveRefundOrder, type ActiveSession, type ActiveSplitPayment, type ActiveStation, type ActiveTaxDetails, type ActiveTimer, type ActiveUpdatedOrder, type ActiveUser, type ActiveUserRole, type Address, type Attribute, type AttributeEmbedded, type AttributeOption, type BaseDocument, type BaseEntity, type BaseTile, type Booking, type BookingAvailability, type BookingResource, type BookingSlot, type BookingSlotResource, type BootstrapMessage, type CalculatedTaxDetails, type CartDiscountItem, type CartFeeItem, type CartFeeTaxEntry, type CartFeesDetails, type CartLineComponent, type CartLineModifier, type CartReservation, type CashPaymentSettings, type CashRoundingIncrement, type Category, type CompanyExtension, type CompanySettingsEavValue, type CompanySettingsEavValueType, type Composite, type CompositeChoice, type CompositeItem, type CompositeItemUnavailable, type CompositePart, type CompositePick, type CustomExtension, type CustomFee, type CustomSale, type CustomSaleDetails, type CustomTable, type CustomTableField, type CustomTableMetadata, type CustomTableRow, type CustomTableValue, type Customer, type CustomerNote, type DeviceEnvAttribute, type DeviceEnvCategory, type DeviceEnvValue, type DeviceOpName, type DeviceOpRequestMessage, type DeviceOpResponseMessage, type Discount, type DiscountDetail, type DiscountLineItem, type Enrich, EnvironmentDataKeys, EnvironmentDataSubKeys, type FeeDetail, type FeeLineItem, type Flow, type FlowSettings, type FlowSettingsKey, type FlowWebApp, type FlowWebAppVersion, type FullProduct, type HostHelloMessage, type HostNavigateMessage, type HostNavigateTarget, type HostShutdownMessage, type Inventory, type LineItem, type Metadata, type MetadataItem, type ModifierChoiceSelection, type ModifierSelection, type ModifierSelectionType, type NonRevenueItem, type Note, type Order, type OrderCartDiscount, type OrderCartFee, type OrderCustomSale, type OrderCustomSaleDiscount, type OrderCustomSaleFee, type OrderLineItem, type OrderLineItemComponent, type OrderLineItemDiscount, type OrderLineItemFee, type OrderLineItemModifier, type OrderNote, type OrderPaymentMethod, type OrderPosData, type OrderRefund, type OrderRefundSummary, type OrderReservation, type OrderStateActor, type OrderStateActorType, type OrderStateConfig, type OrderStateEvent, type OrderStateEventTrigger, type OrderStateHistoryEntry, type OrderStateOperation, type OrderStatePair, type OrderSummary, type OrderSummaryPayments, type OrderTax, type OrderTip, type Outlet, type PaymentMethod, type PaymentResponse, type PaymentSetting, PaymentStatus, type PosBrainReadyMessage, type PosDataItem, type PriceModifierDetail, type PrinterDetails, ProcessorType, type ProdDiscountBreakdown, type ProdFeeBreakdown, type ProdModifierBreakdown, type Product, type ProductTaxDetails, type ProductVariant, type PubsubEventMessage, type PubsubSubscribeMessage, type PubsubTopicsListMessage, type PubsubTopicsRequestMessage, type Reader, type ReaderAvailability, type ReaderCapabilities, type ReaderCapabilitiesMessage, type Refund, type RefundCartDiscount, type RefundDiscount, type RefundItem, type RefundItemDiscount, type RefundLineItem, type RefundPayment, type RefundProcessingStatus, type RefundSummary, type RefundTip, type RefundedCustomSale, type RefundedLineItem, type RefundedTipPayment, type ResolvedModifier, type ResolvedModifierChoice, type Role, type RolePermission, type RuntimeReadyMessage, type SelectionContext, type SelectionFlowContext, type SelectionMessage, type SelectionRoleContext, type ServiceChannelMessage, type ServiceChannelMessageType, type ServiceInitMessage, type Session, type SessionClosingAmounts, type SmartGridSetting, type SmartGridSettings, type SmartGridSettingsData, type Station, type StripeAccount, type Summary, type SummaryPayments, type SyncProgressMessage, type Tax, type TaxRate, type TaxRateValue, type TaxTable, type TaxTableActive, type TaxTableRate, type TileGrid, type TimeClockEntry, type TimeClockEntryStatus, type Tip, type TipData, type TipPayment, type TipsDetails, type TokenRefreshMessage, type TopicDefinitionWire, type TopicEventWire, type Transaction, type TransactionPaymentData, type User, type UserType, type Variant, type VariantInventory };