@nautical-commerce/graphql-schema 3.22.0 → 3.23.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.
@@ -1483,6 +1483,23 @@ type Attribute implements Node & ObjectWithMetadata {
1483
1483
  """Position in storefront search"""
1484
1484
  storefrontSearchPosition: Int!
1485
1485
 
1486
+ """
1487
+ Database-level audit trail for this attribute (requires MANAGE_PRODUCTS).
1488
+ """
1489
+ auditEvents(
1490
+ """Returns the items in the list that come before the specified cursor."""
1491
+ before: String = null
1492
+
1493
+ """Returns the items in the list that come after the specified cursor."""
1494
+ after: String = null
1495
+
1496
+ """Returns the first n items from the list."""
1497
+ first: Int = null
1498
+
1499
+ """Returns the items in the list that come after the specified cursor."""
1500
+ last: Int = null
1501
+ ): AttributeAuditEventCountableConnection!
1502
+
1486
1503
  """Filterable in dashboard"""
1487
1504
  filterableInDashboard: Boolean!
1488
1505
 
@@ -1556,6 +1573,64 @@ input AttributeAssignInput {
1556
1573
  type: AttributeTypeEnum!
1557
1574
  }
1558
1575
 
1576
+ type AttributeAuditEvent implements Node {
1577
+ """The Globally Unique ID of this object"""
1578
+ id: ID!
1579
+ pghCreatedAt: DateTime!
1580
+
1581
+ """
1582
+ Event label: 'attribute_created', 'attribute_updated', or 'attribute_deleted'.
1583
+ """
1584
+ pghLabel: String!
1585
+ pghContextId: NauticalUUID
1586
+ pghContext: JSONString
1587
+ name: String!
1588
+ slug: String!
1589
+ inputType: String!
1590
+
1591
+ """Email of the user who made the change."""
1592
+ userEmail: String
1593
+
1594
+ """Global ID of the user who made the change."""
1595
+ userId: String
1596
+
1597
+ """Tenant ID where the change occurred."""
1598
+ tenantId: Int
1599
+
1600
+ """Tenant slug where the change occurred."""
1601
+ tenantSlug: String
1602
+
1603
+ """App name if the change was via an API token."""
1604
+ appName: String
1605
+
1606
+ """Global ID of the app if via an API token."""
1607
+ appId: String
1608
+
1609
+ """Celery task name if the change was async."""
1610
+ taskName: String
1611
+ }
1612
+
1613
+ """A connection to a list of items."""
1614
+ type AttributeAuditEventCountableConnection {
1615
+ """Pagination data for this connection"""
1616
+ pageInfo: PageInfo!
1617
+
1618
+ """Contains the nodes in this connection"""
1619
+ edges: [AttributeAuditEventCountableEdge!]!
1620
+
1621
+ """Total quantity of existing nodes."""
1622
+ totalCount: Int!
1623
+ }
1624
+
1625
+ """An edge in a connection."""
1626
+ type AttributeAuditEventCountableEdge {
1627
+ """A cursor for use in pagination"""
1628
+ cursor: String!
1629
+
1630
+ """The item at the end of the edge"""
1631
+ node: AttributeAuditEvent!
1632
+ }
1633
+
1559
1634
  """Result of attribute bulk delete mutation."""
1560
1635
  type AttributeBulkDelete {
1561
1636
  """Number of attributes deleted."""
@@ -2751,6 +2826,23 @@ type Category implements Node & ObjectWithMetadata {
2751
2826
  allowProductAssignment: Boolean!
2752
2827
  level: Int!
2753
2828
 
2829
+ """
2830
+ Database-level audit trail for this category (requires MANAGE_PRODUCTS).
2831
+ """
2832
+ auditEvents(
2833
+ """Returns the items in the list that come before the specified cursor."""
2834
+ before: String = null
2835
+
2836
+ """Returns the items in the list that come after the specified cursor."""
2837
+ after: String = null
2838
+
2839
+ """Returns the first n items from the list."""
2840
+ first: Int = null
2841
+
2842
+ """Returns the items in the list that come after the specified cursor."""
2843
+ last: Int = null
2844
+ ): CategoryAuditEventCountableConnection!
2845
+
2754
2846
  """Background image for the category"""
2755
2847
  backgroundImage(size: Int = null): Image
2756
2848
 
@@ -2814,6 +2906,63 @@ type Category implements Node & ObjectWithMetadata {
2814
2906
  ): ProductCountableConnection!
2815
2907
  }
2816
2908
 
2909
+ type CategoryAuditEvent implements Node {
2910
+ """The Globally Unique ID of this object"""
2911
+ id: ID!
2912
+ pghCreatedAt: DateTime!
2913
+
2914
+ """
2915
+ Event label: 'category_created', 'category_updated', or 'category_deleted'.
2916
+ """
2917
+ pghLabel: String!
2918
+ pghContextId: NauticalUUID
2919
+ pghContext: JSONString
2920
+ name: String!
2921
+ slug: String!
2922
+
2923
+ """Email of the user who made the change."""
2924
+ userEmail: String
2925
+
2926
+ """Global ID of the user who made the change."""
2927
+ userId: String
2928
+
2929
+ """Tenant ID where the change occurred."""
2930
+ tenantId: Int
2931
+
2932
+ """Tenant slug where the change occurred."""
2933
+ tenantSlug: String
2934
+
2935
+ """App name if the change was via an API token."""
2936
+ appName: String
2937
+
2938
+ """Global ID of the app if via an API token."""
2939
+ appId: String
2940
+
2941
+ """Celery task name if the change was async."""
2942
+ taskName: String
2943
+ }
2944
+
2945
+ """A connection to a list of items."""
2946
+ type CategoryAuditEventCountableConnection {
2947
+ """Pagination data for this connection"""
2948
+ pageInfo: PageInfo!
2949
+
2950
+ """Contains the nodes in this connection"""
2951
+ edges: [CategoryAuditEventCountableEdge!]!
2952
+
2953
+ """Total quantity of existing nodes."""
2954
+ totalCount: Int!
2955
+ }
2956
+
2957
+ """An edge in a connection."""
2958
+ type CategoryAuditEventCountableEdge {
2959
+ """A cursor for use in pagination"""
2960
+ cursor: String!
2961
+
2962
+ """The item at the end of the edge"""
2963
+ node: CategoryAuditEvent!
2964
+ }
2965
+
2817
2966
  """Result of category bulk delete mutation."""
2818
2967
  type CategoryBulkDelete {
2819
2968
  """Number of categories deleted."""
@@ -3630,6 +3779,23 @@ type Collection implements Node & ObjectWithMetadata {
3630
3779
  """Whether the collection is visible"""
3631
3780
  isVisible: Boolean!
3632
3781
 
3782
+ """
3783
+ Database-level audit trail for this collection (requires MANAGE_PRODUCTS).
3784
+ """
3785
+ auditEvents(
3786
+ """Returns the items in the list that come before the specified cursor."""
3787
+ before: String = null
3788
+
3789
+ """Returns the items in the list that come after the specified cursor."""
3790
+ after: String = null
3791
+
3792
+ """Returns the first n items from the list."""
3793
+ first: Int = null
3794
+
3795
+ """Returns the items in the list that come after the specified cursor."""
3796
+ last: Int = null
3797
+ ): CollectionAuditEventCountableConnection!
3798
+
3633
3799
  """Whether the collection is published"""
3634
3800
  isPublished: Boolean!
3635
3801
 
@@ -3706,6 +3872,62 @@ type CollectionAddVariants {
3706
3872
  productErrors: [ProductError!]!
3707
3873
  }
3708
3874
 
3875
+ type CollectionAuditEvent implements Node {
3876
+ """The Globally Unique ID of this object"""
3877
+ id: ID!
3878
+ pghCreatedAt: DateTime!
3879
+
3880
+ """Event label: 'collection_created', '..._updated', or '..._deleted'."""
3881
+ pghLabel: String!
3882
+ pghContextId: NauticalUUID
3883
+ pghContext: JSONString
3884
+ name: String!
3885
+ slug: String!
3886
+ isVisible: Boolean!
3887
+
3888
+ """Email of the user who made the change."""
3889
+ userEmail: String
3890
+
3891
+ """Global ID of the user who made the change."""
3892
+ userId: String
3893
+
3894
+ """Tenant ID where the change occurred."""
3895
+ tenantId: Int
3896
+
3897
+ """Tenant slug where the change occurred."""
3898
+ tenantSlug: String
3899
+
3900
+ """App name if the change was via an API token."""
3901
+ appName: String
3902
+
3903
+ """Global ID of the app if via an API token."""
3904
+ appId: String
3905
+
3906
+ """Celery task name if the change was async."""
3907
+ taskName: String
3908
+ }
3909
+
3910
+ """A connection to a list of items."""
3911
+ type CollectionAuditEventCountableConnection {
3912
+ """Pagination data for this connection"""
3913
+ pageInfo: PageInfo!
3914
+
3915
+ """Contains the nodes in this connection"""
3916
+ edges: [CollectionAuditEventCountableEdge!]!
3917
+
3918
+ """Total quantity of existing nodes."""
3919
+ totalCount: Int!
3920
+ }
3921
+
3922
+ """An edge in a connection."""
3923
+ type CollectionAuditEventCountableEdge {
3924
+ """A cursor for use in pagination"""
3925
+ cursor: String!
3926
+
3927
+ """The item at the end of the edge"""
3928
+ node: CollectionAuditEvent!
3929
+ }
3930
+
3709
3931
  """Result of collection bulk delete mutation."""
3710
3932
  type CollectionBulkDelete {
3711
3933
  """Number of collections deleted."""
@@ -5184,6 +5406,23 @@ type DigitalContent implements Node & ObjectWithMetadata {
5184
5406
  """Number of days the download URL is valid"""
5185
5407
  urlValidDays: Int
5186
5408
 
5409
+ """
5410
+ Database-level audit trail for this digital content (requires MANAGE_PRODUCTS).
5411
+ """
5412
+ auditEvents(
5413
+ """Returns the items in the list that come before the specified cursor."""
5414
+ before: String = null
5415
+
5416
+ """Returns the items in the list that come after the specified cursor."""
5417
+ after: String = null
5418
+
5419
+ """Returns the first n items from the list."""
5420
+ first: Int = null
5421
+
5422
+ """Returns the items in the list that come after the specified cursor."""
5423
+ last: Int = null
5424
+ ): DigitalContentAuditEventCountableConnection!
5425
+
5187
5426
  """The product variant associated with this digital content."""
5188
5427
  productVariant: ProductVariant!
5189
5428
 
@@ -5197,6 +5436,61 @@ type DigitalContent implements Node & ObjectWithMetadata {
5197
5436
  urls: [DigitalContentUrl!]!
5198
5437
  }
5199
5438
 
5439
+ type DigitalContentAuditEvent implements Node {
5440
+ """The Globally Unique ID of this object"""
5441
+ id: ID!
5442
+ pghCreatedAt: DateTime!
5443
+
5444
+ """
5445
+ Event label: 'digital_content_created', '..._updated', or '..._deleted'.
5446
+ """
5447
+ pghLabel: String!
5448
+ pghContextId: NauticalUUID
5449
+ pghContext: JSONString
5450
+
5451
+ """Email of the user who made the change."""
5452
+ userEmail: String
5453
+
5454
+ """Global ID of the user who made the change."""
5455
+ userId: String
5456
+
5457
+ """Tenant ID where the change occurred."""
5458
+ tenantId: Int
5459
+
5460
+ """Tenant slug where the change occurred."""
5461
+ tenantSlug: String
5462
+
5463
+ """App name if the change was via an API token."""
5464
+ appName: String
5465
+
5466
+ """Global ID of the app if via an API token."""
5467
+ appId: String
5468
+
5469
+ """Celery task name if the change was async."""
5470
+ taskName: String
5471
+ }
5472
+
5473
+ """A connection to a list of items."""
5474
+ type DigitalContentAuditEventCountableConnection {
5475
+ """Pagination data for this connection"""
5476
+ pageInfo: PageInfo!
5477
+
5478
+ """Contains the nodes in this connection"""
5479
+ edges: [DigitalContentAuditEventCountableEdge!]!
5480
+
5481
+ """Total quantity of existing nodes."""
5482
+ totalCount: Int!
5483
+ }
5484
+
5485
+ """An edge in a connection."""
5486
+ type DigitalContentAuditEventCountableEdge {
5487
+ """A cursor for use in pagination"""
5488
+ cursor: String!
5489
+
5490
+ """The item at the end of the edge"""
5491
+ node: DigitalContentAuditEvent!
5492
+ }
5493
+
5200
5494
  """A connection to a list of items."""
5201
5495
  type DigitalContentCountableConnection {
5202
5496
  """Pagination data for this connection"""
@@ -5288,6 +5582,23 @@ type DigitalContentUrl implements Node {
5288
5582
  """When the URL was created"""
5289
5583
  created: DateTime!
5290
5584
 
5585
+ """
5586
+ Database-level audit trail for this download URL. Tracks creation and deletion only (download-counter bumps are not audited). Requires MANAGE_PRODUCTS.
5587
+ """
5588
+ auditEvents(
5589
+ """Returns the items in the list that come before the specified cursor."""
5590
+ before: String = null
5591
+
5592
+ """Returns the items in the list that come after the specified cursor."""
5593
+ after: String = null
5594
+
5595
+ """Returns the first n items from the list."""
5596
+ first: Int = null
5597
+
5598
+ """Returns the items in the list that come after the specified cursor."""
5599
+ last: Int = null
5600
+ ): DigitalContentUrlAuditEventCountableConnection!
5601
+
5291
5602
  """Number of times this URL has been used for downloads."""
5292
5603
  downloadNum: Int!
5293
5604
 
@@ -5298,6 +5609,62 @@ type DigitalContentUrl implements Node {
5298
5609
  content: DigitalContent
5299
5610
  }
5300
5611
 
5612
+ type DigitalContentUrlAuditEvent implements Node {
5613
+ """The Globally Unique ID of this object"""
5614
+ id: ID!
5615
+ pghCreatedAt: DateTime!
5616
+
5617
+ """
5618
+ Event label: 'digital_content_url_created' or 'digital_content_url_deleted'.
5619
+ """
5620
+ pghLabel: String!
5621
+ pghContextId: NauticalUUID
5622
+ pghContext: JSONString
5623
+ downloadNum: Int!
5624
+
5625
+ """Email of the user who made the change."""
5626
+ userEmail: String
5627
+
5628
+ """Global ID of the user who made the change."""
5629
+ userId: String
5630
+
5631
+ """Tenant ID where the change occurred."""
5632
+ tenantId: Int
5633
+
5634
+ """Tenant slug where the change occurred."""
5635
+ tenantSlug: String
5636
+
5637
+ """App name if the change was via an API token."""
5638
+ appName: String
5639
+
5640
+ """Global ID of the app if via an API token."""
5641
+ appId: String
5642
+
5643
+ """Celery task name if the change was async."""
5644
+ taskName: String
5645
+ }
5646
+
5647
+ """A connection to a list of items."""
5648
+ type DigitalContentUrlAuditEventCountableConnection {
5649
+ """Pagination data for this connection"""
5650
+ pageInfo: PageInfo!
5651
+
5652
+ """Contains the nodes in this connection"""
5653
+ edges: [DigitalContentUrlAuditEventCountableEdge!]!
5654
+
5655
+ """Total quantity of existing nodes."""
5656
+ totalCount: Int!
5657
+ }
5658
+
5659
+ """An edge in a connection."""
5660
+ type DigitalContentUrlAuditEventCountableEdge {
5661
+ """A cursor for use in pagination"""
5662
+ cursor: String!
5663
+
5664
+ """The item at the end of the edge"""
5665
+ node: DigitalContentUrlAuditEvent!
5666
+ }
5667
+
5301
5668
  """Result of digital content URL create mutation."""
5302
5669
  type DigitalContentUrlCreate {
5303
5670
  """The created digital content URL."""
@@ -6943,6 +7310,7 @@ input ImportProductsInput {
6943
7310
  fieldMappings: JSONString!
6944
7311
  defaultProductTypeId: ID = null
6945
7312
  defaultCategoryId: ID = null
7313
+ defaultWarehouseId: ID = null
6946
7314
  batchSize: Int = 100
6947
7315
  }
6948
7316
 
@@ -7568,6 +7936,63 @@ enum LengthUnitsStrEnum {
7568
7936
  M
7569
7937
  }
7570
7938
 
7939
+ """Per-tenant configuration for the hosted MCP surface."""
7940
+ type MCPConfiguration {
7941
+ """The ID of the object."""
7942
+ id: ID!
7943
+
7944
+ """
7945
+ When true, the tenant opts IN to the public shopping-agent surface (OAuth-scoped, read-only buyer view) on mcp.thetraide.com/{tenant_slug}/mcp.
7946
+ """
7947
+ shoppingEnabled: Boolean!
7948
+
7949
+ """
7950
+ When true, the authenticated operator MCP surface is exposed for this tenant.
7951
+ """
7952
+ operatorEnabled: Boolean!
7953
+
7954
+ """When true, seller identity is included in agent-visible product data."""
7955
+ sellerIdentityExposed: Boolean!
7956
+
7957
+ """
7958
+ Per-agent request budget per minute. Overrides the mcp-server ADR-0009 default.
7959
+ """
7960
+ rateLimitPerAgent: Int!
7961
+
7962
+ """
7963
+ Optional MCP protocol version pin. Null means the server default is used.
7964
+ """
7965
+ protocolVersionPin: String
7966
+
7967
+ """
7968
+ Allowlist of pre-registered OAuth client ids (empty = open dynamic registration).
7969
+ """
7970
+ shoppingOauthClients: [String!]!
7971
+
7972
+ """Allowlist of product attribute slugs exposed to shopping agents."""
7973
+ exposedAttributes: [String!]!
7974
+ }
7975
+
7976
+ """Input for updating the hosted MCP configuration for a tenant."""
7977
+ input MCPConfigurationInput {
7978
+ shoppingEnabled: Boolean
7979
+ shoppingOauthClients: [String!]
7980
+ operatorEnabled: Boolean
7981
+ exposedAttributes: [String!]
7982
+ sellerIdentityExposed: Boolean
7983
+ rateLimitPerAgent: Int
7984
+ protocolVersionPin: String
7985
+ }
7986
+
7987
+ """Result of mcpConfigurationUpdate mutation."""
7988
+ type MCPConfigurationUpdate {
7989
+ """The updated MCP configuration."""
7990
+ mcpConfiguration: MCPConfiguration
7991
+
7992
+ """List of errors that occurred executing the mutation."""
7993
+ mcpConfigurationErrors: [TenantError!]!
7994
+ }
7995
+
7571
7996
  """Product or variant margin range"""
7572
7997
  type Margin {
7573
7998
  """Minimum margin percentage."""
@@ -9880,6 +10305,11 @@ type Mutation {
9880
10305
  """Update tenant onboarding steps."""
9881
10306
  tenantOnboardingUpdate(input: TenantOnboardingUpdateInput!): TenantOnboardingUpdate!
9882
10307
 
10308
+ """
10309
+ Update the hosted MCP configuration for the current tenant. Requires MANAGE_MARKETPLACE_CONFIGURATION permission.
10310
+ """
10311
+ mcpConfigurationUpdate(input: MCPConfigurationInput!): MCPConfigurationUpdate!
10312
+
9883
10313
  """Upload and attach a document to an entity."""
9884
10314
  documentAdd(file: Upload!, relatedObjectId: ID!, description: String = null): DocumentAdd!
9885
10315
 
@@ -10330,6 +10760,11 @@ type NauticalOrder implements Node & ObjectWithMetadata {
10330
10760
  last: Int = null
10331
10761
  ): NauticalOrderAuditEventCountableConnection!
10332
10762
 
10763
+ """
10764
+ Unified change-history feed for this marketplace order. Combines pghistory events from NauticalOrder (status, totals, customer) and NauticalOrderLine (line additions/updates/removals) into a single TimelineEntry list ordered most-recent-first. Powers the dashboard Events page and mirrors the Agreement and seller-Order timeline pattern. Optional `kinds` filters server-side.
10765
+ """
10766
+ timeline(kinds: [TimelineEntryKind!] = null): [TimelineEntry!]!
10767
+
10333
10768
  """List of seller orders in this marketplace order"""
10334
10769
  subOrders: [Order!]
10335
10770
 
@@ -13833,6 +14268,28 @@ type Product implements Node & ObjectWithMetadata {
13833
14268
  """Date when the product becomes available for purchase"""
13834
14269
  availableForPurchase: Date
13835
14270
 
14271
+ """
14272
+ Database-level audit trail for this product (requires MANAGE_PRODUCTS).
14273
+ """
14274
+ auditEvents(
14275
+ """Returns the items in the list that come before the specified cursor."""
14276
+ before: String = null
14277
+
14278
+ """Returns the items in the list that come after the specified cursor."""
14279
+ after: String = null
14280
+
14281
+ """Returns the first n items from the list."""
14282
+ first: Int = null
14283
+
14284
+ """Returns the items in the list that come after the specified cursor."""
14285
+ last: Int = null
14286
+ ): ProductAuditEventCountableConnection!
14287
+
14288
+ """
14289
+ Unified change-history feed for this product. Projects pghistory ProductEvent (the product) + ProductVariantEvent (its variants) rows into a TimelineEntry list ordered most-recent-first. Powers the dashboard Events page and mirrors the Seller and Order timeline pattern. Requires MANAGE_PRODUCTS. Optional `kinds` argument filters server-side.
14290
+ """
14291
+ timeline(kinds: [TimelineEntryKind!] = null): [TimelineEntry!]!
14292
+
13836
14293
  """Sort order of the product"""
13837
14294
  sortOrder: Int
13838
14295
 
@@ -13995,10 +14452,67 @@ type Product implements Node & ObjectWithMetadata {
13995
14452
  recommendedProducts(limit: Int! = 6): [Product!]!
13996
14453
  }
13997
14454
 
13998
- """Available actions for a product"""
13999
- enum ProductAction {
14000
- DECLINED
14001
- APPROVED
14455
+ """Available actions for a product"""
14456
+ enum ProductAction {
14457
+ DECLINED
14458
+ APPROVED
14459
+ }
14460
+
14461
+ type ProductAuditEvent implements Node {
14462
+ """The Globally Unique ID of this object"""
14463
+ id: ID!
14464
+ pghCreatedAt: DateTime!
14465
+
14466
+ """
14467
+ Event label: 'product_created', 'product_updated', or 'product_deleted'.
14468
+ """
14469
+ pghLabel: String!
14470
+ pghContextId: NauticalUUID
14471
+ pghContext: JSONString
14472
+ name: String!
14473
+ status: String!
14474
+
14475
+ """Email of the user who made the change."""
14476
+ userEmail: String
14477
+
14478
+ """Global ID of the user who made the change."""
14479
+ userId: String
14480
+
14481
+ """Tenant ID where the change occurred."""
14482
+ tenantId: Int
14483
+
14484
+ """Tenant slug where the change occurred."""
14485
+ tenantSlug: String
14486
+
14487
+ """App name if the change was via an API token."""
14488
+ appName: String
14489
+
14490
+ """Global ID of the app if via an API token."""
14491
+ appId: String
14492
+
14493
+ """Celery task name if the change was async."""
14494
+ taskName: String
14495
+ }
14496
+
14497
+ """A connection to a list of items."""
14498
+ type ProductAuditEventCountableConnection {
14499
+ """Pagination data for this connection"""
14500
+ pageInfo: PageInfo!
14501
+
14502
+ """Contains the nodes in this connection"""
14503
+ edges: [ProductAuditEventCountableEdge!]!
14504
+
14505
+ """Total quantity of existing nodes."""
14506
+ totalCount: Int!
14507
+ }
14508
+
14509
+ """An edge in a connection."""
14510
+ type ProductAuditEventCountableEdge {
14511
+ """A cursor for use in pagination"""
14512
+ cursor: String!
14513
+
14514
+ """The item at the end of the edge"""
14515
+ node: ProductAuditEvent!
14002
14516
  }
14003
14517
 
14004
14518
  """Result of product bulk category update mutation."""
@@ -14481,10 +14995,80 @@ type ProductImage implements Node {
14481
14995
  """External system source"""
14482
14996
  externalSource: String
14483
14997
 
14998
+ """
14999
+ Database-level audit trail for this product image (requires MANAGE_PRODUCTS).
15000
+ """
15001
+ auditEvents(
15002
+ """Returns the items in the list that come before the specified cursor."""
15003
+ before: String = null
15004
+
15005
+ """Returns the items in the list that come after the specified cursor."""
15006
+ after: String = null
15007
+
15008
+ """Returns the first n items from the list."""
15009
+ first: Int = null
15010
+
15011
+ """Returns the items in the list that come after the specified cursor."""
15012
+ last: Int = null
15013
+ ): ProductImageAuditEventCountableConnection!
15014
+
14484
15015
  """The URL of the image"""
14485
15016
  url(size: Int = null): String!
14486
15017
  }
14487
15018
 
15019
+ type ProductImageAuditEvent implements Node {
15020
+ """The Globally Unique ID of this object"""
15021
+ id: ID!
15022
+ pghCreatedAt: DateTime!
15023
+
15024
+ """Event label: 'product_image_added', '..._updated', or '..._removed'."""
15025
+ pghLabel: String!
15026
+ pghContextId: NauticalUUID
15027
+ pghContext: JSONString
15028
+
15029
+ """Email of the user who made the change."""
15030
+ userEmail: String
15031
+
15032
+ """Global ID of the user who made the change."""
15033
+ userId: String
15034
+
15035
+ """Tenant ID where the change occurred."""
15036
+ tenantId: Int
15037
+
15038
+ """Tenant slug where the change occurred."""
15039
+ tenantSlug: String
15040
+
15041
+ """App name if the change was via an API token."""
15042
+ appName: String
15043
+
15044
+ """Global ID of the app if via an API token."""
15045
+ appId: String
15046
+
15047
+ """Celery task name if the change was async."""
15048
+ taskName: String
15049
+ }
15050
+
15051
+ """A connection to a list of items."""
15052
+ type ProductImageAuditEventCountableConnection {
15053
+ """Pagination data for this connection"""
15054
+ pageInfo: PageInfo!
15055
+
15056
+ """Contains the nodes in this connection"""
15057
+ edges: [ProductImageAuditEventCountableEdge!]!
15058
+
15059
+ """Total quantity of existing nodes."""
15060
+ totalCount: Int!
15061
+ }
15062
+
15063
+ """An edge in a connection."""
15064
+ type ProductImageAuditEventCountableEdge {
15065
+ """A cursor for use in pagination"""
15066
+ cursor: String!
15067
+
15068
+ """The item at the end of the edge"""
15069
+ node: ProductImageAuditEvent!
15070
+ }
15071
+
14488
15072
  """Result of product image bulk create mutation."""
14489
15073
  type ProductImageBulkCreate {
14490
15074
  """The product with the new images."""
@@ -14926,6 +15510,23 @@ type ProductType implements Node & ObjectWithMetadata {
14926
15510
  """
14927
15511
  externallyManaged: Boolean!
14928
15512
 
15513
+ """
15514
+ Database-level audit trail for this product type (requires MANAGE_PRODUCTS).
15515
+ """
15516
+ auditEvents(
15517
+ """Returns the items in the list that come before the specified cursor."""
15518
+ before: String = null
15519
+
15520
+ """Returns the items in the list that come after the specified cursor."""
15521
+ after: String = null
15522
+
15523
+ """Returns the first n items from the list."""
15524
+ first: Int = null
15525
+
15526
+ """Returns the items in the list that come after the specified cursor."""
15527
+ last: Int = null
15528
+ ): ProductTypeAuditEventCountableConnection!
15529
+
14929
15530
  """Legacy indicator, always true"""
14930
15531
  hasVariants: Boolean!
14931
15532
 
@@ -14986,6 +15587,61 @@ type ProductType implements Node & ObjectWithMetadata {
14986
15587
  ): AttributeCountableConnection!
14987
15588
  }
14988
15589
 
15590
+ type ProductTypeAuditEvent implements Node {
15591
+ """The Globally Unique ID of this object"""
15592
+ id: ID!
15593
+ pghCreatedAt: DateTime!
15594
+
15595
+ """Event label: 'product_type_created', '..._updated', or '..._deleted'."""
15596
+ pghLabel: String!
15597
+ pghContextId: NauticalUUID
15598
+ pghContext: JSONString
15599
+ name: String!
15600
+ slug: String!
15601
+
15602
+ """Email of the user who made the change."""
15603
+ userEmail: String
15604
+
15605
+ """Global ID of the user who made the change."""
15606
+ userId: String
15607
+
15608
+ """Tenant ID where the change occurred."""
15609
+ tenantId: Int
15610
+
15611
+ """Tenant slug where the change occurred."""
15612
+ tenantSlug: String
15613
+
15614
+ """App name if the change was via an API token."""
15615
+ appName: String
15616
+
15617
+ """Global ID of the app if via an API token."""
15618
+ appId: String
15619
+
15620
+ """Celery task name if the change was async."""
15621
+ taskName: String
15622
+ }
15623
+
15624
+ """A connection to a list of items."""
15625
+ type ProductTypeAuditEventCountableConnection {
15626
+ """Pagination data for this connection"""
15627
+ pageInfo: PageInfo!
15628
+
15629
+ """Contains the nodes in this connection"""
15630
+ edges: [ProductTypeAuditEventCountableEdge!]!
15631
+
15632
+ """Total quantity of existing nodes."""
15633
+ totalCount: Int!
15634
+ }
15635
+
15636
+ """An edge in a connection."""
15637
+ type ProductTypeAuditEventCountableEdge {
15638
+ """A cursor for use in pagination"""
15639
+ cursor: String!
15640
+
15641
+ """The item at the end of the edge"""
15642
+ node: ProductTypeAuditEvent!
15643
+ }
15644
+
14989
15645
  """Result of product type bulk delete mutation."""
14990
15646
  type ProductTypeBulkDelete {
14991
15647
  """Number of product types deleted."""
@@ -15204,6 +15860,28 @@ type ProductVariant implements Node & ObjectWithMetadata {
15204
15860
  """Whether backorders are allowed"""
15205
15861
  allowBackorders: Boolean
15206
15862
 
15863
+ """
15864
+ Database-level audit trail for this variant (requires MANAGE_PRODUCTS).
15865
+ """
15866
+ auditEvents(
15867
+ """Returns the items in the list that come before the specified cursor."""
15868
+ before: String = null
15869
+
15870
+ """Returns the items in the list that come after the specified cursor."""
15871
+ after: String = null
15872
+
15873
+ """Returns the first n items from the list."""
15874
+ first: Int = null
15875
+
15876
+ """Returns the items in the list that come after the specified cursor."""
15877
+ last: Int = null
15878
+ ): ProductVariantAuditEventCountableConnection!
15879
+
15880
+ """
15881
+ Unified change-history feed for this variant. Projects pghistory ProductVariantEvent rows (SKU, price, status, inventory changes) into a TimelineEntry list ordered most-recent-first. Powers the dashboard Events page and mirrors the Seller and Order timeline pattern. Requires MANAGE_PRODUCTS. Optional `kinds` argument filters server-side.
15882
+ """
15883
+ timeline(kinds: [TimelineEntryKind!] = null): [TimelineEntry!]!
15884
+
15207
15885
  """Status of the variant"""
15208
15886
  status: ProductVariantStatus!
15209
15887
 
@@ -15313,6 +15991,62 @@ type ProductVariant implements Node & ObjectWithMetadata {
15313
15991
  ): ShopifyWebhookTransactionCountableConnection!
15314
15992
  }
15315
15993
 
15994
+ type ProductVariantAuditEvent implements Node {
15995
+ """The Globally Unique ID of this object"""
15996
+ id: ID!
15997
+ pghCreatedAt: DateTime!
15998
+
15999
+ """
16000
+ Event label: 'variant_created', 'variant_updated', or 'variant_deleted'.
16001
+ """
16002
+ pghLabel: String!
16003
+ pghContextId: NauticalUUID
16004
+ pghContext: JSONString
16005
+ sku: String
16006
+
16007
+ """Email of the user who made the change."""
16008
+ userEmail: String
16009
+
16010
+ """Global ID of the user who made the change."""
16011
+ userId: String
16012
+
16013
+ """Tenant ID where the change occurred."""
16014
+ tenantId: Int
16015
+
16016
+ """Tenant slug where the change occurred."""
16017
+ tenantSlug: String
16018
+
16019
+ """App name if the change was via an API token."""
16020
+ appName: String
16021
+
16022
+ """Global ID of the app if via an API token."""
16023
+ appId: String
16024
+
16025
+ """Celery task name if the change was async."""
16026
+ taskName: String
16027
+ }
16028
+
16029
+ """A connection to a list of items."""
16030
+ type ProductVariantAuditEventCountableConnection {
16031
+ """Pagination data for this connection"""
16032
+ pageInfo: PageInfo!
16033
+
16034
+ """Contains the nodes in this connection"""
16035
+ edges: [ProductVariantAuditEventCountableEdge!]!
16036
+
16037
+ """Total quantity of existing nodes."""
16038
+ totalCount: Int!
16039
+ }
16040
+
16041
+ """An edge in a connection."""
16042
+ type ProductVariantAuditEventCountableEdge {
16043
+ """A cursor for use in pagination"""
16044
+ cursor: String!
16045
+
16046
+ """The item at the end of the edge"""
16047
+ node: ProductVariantAuditEvent!
16048
+ }
16049
+
15316
16050
  """Result of product variant bulk create mutation."""
15317
16051
  type ProductVariantBulkCreate {
15318
16052
  """Number of variants created."""
@@ -15835,10 +16569,80 @@ type ProductVideo implements Node {
15835
16569
  """External system source"""
15836
16570
  externalSource: String
15837
16571
 
16572
+ """
16573
+ Database-level audit trail for this product video (requires MANAGE_PRODUCTS).
16574
+ """
16575
+ auditEvents(
16576
+ """Returns the items in the list that come before the specified cursor."""
16577
+ before: String = null
16578
+
16579
+ """Returns the items in the list that come after the specified cursor."""
16580
+ after: String = null
16581
+
16582
+ """Returns the first n items from the list."""
16583
+ first: Int = null
16584
+
16585
+ """Returns the items in the list that come after the specified cursor."""
16586
+ last: Int = null
16587
+ ): ProductVideoAuditEventCountableConnection!
16588
+
15838
16589
  """The URL of the video"""
15839
16590
  url: String!
15840
16591
  }
15841
16592
 
16593
+ type ProductVideoAuditEvent implements Node {
16594
+ """The Globally Unique ID of this object"""
16595
+ id: ID!
16596
+ pghCreatedAt: DateTime!
16597
+
16598
+ """Event label: 'product_video_added', '..._updated', or '..._removed'."""
16599
+ pghLabel: String!
16600
+ pghContextId: NauticalUUID
16601
+ pghContext: JSONString
16602
+
16603
+ """Email of the user who made the change."""
16604
+ userEmail: String
16605
+
16606
+ """Global ID of the user who made the change."""
16607
+ userId: String
16608
+
16609
+ """Tenant ID where the change occurred."""
16610
+ tenantId: Int
16611
+
16612
+ """Tenant slug where the change occurred."""
16613
+ tenantSlug: String
16614
+
16615
+ """App name if the change was via an API token."""
16616
+ appName: String
16617
+
16618
+ """Global ID of the app if via an API token."""
16619
+ appId: String
16620
+
16621
+ """Celery task name if the change was async."""
16622
+ taskName: String
16623
+ }
16624
+
16625
+ """A connection to a list of items."""
16626
+ type ProductVideoAuditEventCountableConnection {
16627
+ """Pagination data for this connection"""
16628
+ pageInfo: PageInfo!
16629
+
16630
+ """Contains the nodes in this connection"""
16631
+ edges: [ProductVideoAuditEventCountableEdge!]!
16632
+
16633
+ """Total quantity of existing nodes."""
16634
+ totalCount: Int!
16635
+ }
16636
+
16637
+ """An edge in a connection."""
16638
+ type ProductVideoAuditEventCountableEdge {
16639
+ """A cursor for use in pagination"""
16640
+ cursor: String!
16641
+
16642
+ """The item at the end of the edge"""
16643
+ node: ProductVideoAuditEvent!
16644
+ }
16645
+
15842
16646
  """Result of product video bulk create mutation."""
15843
16647
  type ProductVideoBulkCreate {
15844
16648
  """The product with the new videos."""
@@ -16937,6 +17741,11 @@ type Query {
16937
17741
  """List of available tax types."""
16938
17742
  taxTypes: [TaxType!]!
16939
17743
 
17744
+ """
17745
+ Return the hosted MCP configuration for the current tenant, or null if the tenant has not been configured. A null result means everything is off (fail-closed defaults).
17746
+ """
17747
+ mcpConfiguration: MCPConfiguration
17748
+
16940
17749
  """Look up a plugin by ID. Requires MANAGE_PLUGINS permission."""
16941
17750
  plugin(id: ID!, seller: ID = null): Plugin
16942
17751
 
@@ -18517,6 +19326,11 @@ type Seller implements Node & ObjectWithMetadata {
18517
19326
  last: Int = null
18518
19327
  ): SellerAuditEventCountableConnection!
18519
19328
 
19329
+ """
19330
+ Unified change-history feed for this seller. Projects pghistory SellerAuditEvent rows (status transitions, profile edits, payout-config changes) into a TimelineEntry list ordered most-recent-first. Powers the dashboard Events tab and mirrors the Agreement and Order timeline pattern. Optional `kinds` argument filters server-side.
19331
+ """
19332
+ timeline(kinds: [TimelineEntryKind!] = null): [TimelineEntry!]!
19333
+
18520
19334
  """Orders for this seller"""
18521
19335
  orders(
18522
19336
  """Returns the items in the list that come before the specified cursor."""
@@ -20850,6 +21664,9 @@ type Tenant implements Node {
20850
21664
 
20851
21665
  """Marketplace configuration for the tenant"""
20852
21666
  marketplaceConfiguration: MarketplaceConfiguration
21667
+
21668
+ """Hosted MCP configuration for the tenant"""
21669
+ mcpConfiguration: MCPConfiguration
20853
21670
  }
20854
21671
 
20855
21672
  """A connection to a list of items."""
@@ -21055,6 +21872,11 @@ enum TimelineEntryKind {
21055
21872
  ORDER
21056
21873
  ORDER_LINE
21057
21874
  FULFILLMENT
21875
+ SELLER
21876
+ NAUTICAL_ORDER
21877
+ NAUTICAL_ORDER_LINE
21878
+ PRODUCT
21879
+ PRODUCT_VARIANT
21058
21880
  }
21059
21881
 
21060
21882
  type TimelineTarget {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nautical-commerce/graphql-schema",
3
- "version": "3.22.0",
3
+ "version": "3.23.0",
4
4
  "description": "Traide API GraphQL Schema",
5
5
  "main": "./nautical/schema.graphql",
6
6
  "scripts": {