@01.software/sdk 0.29.0 → 0.31.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.
Files changed (78) hide show
  1. package/README.md +331 -77
  2. package/dist/analytics/react.cjs +4 -1
  3. package/dist/analytics/react.cjs.map +1 -1
  4. package/dist/analytics/react.js +4 -1
  5. package/dist/analytics/react.js.map +1 -1
  6. package/dist/analytics.cjs +4 -1
  7. package/dist/analytics.cjs.map +1 -1
  8. package/dist/analytics.js +4 -1
  9. package/dist/analytics.js.map +1 -1
  10. package/dist/client.cjs +1541 -0
  11. package/dist/client.cjs.map +1 -0
  12. package/dist/client.d.cts +28 -0
  13. package/dist/client.d.ts +28 -0
  14. package/dist/client.js +1518 -0
  15. package/dist/client.js.map +1 -0
  16. package/dist/collection-client-ByzY3hWK.d.ts +218 -0
  17. package/dist/collection-client-DFXXz0vk.d.cts +218 -0
  18. package/dist/{const-DAjQYNuM.d.ts → const-AytzliEu.d.cts} +5 -7
  19. package/dist/{const-Dsixdi6z.d.cts → const-BGCP-OJL.d.ts} +5 -7
  20. package/dist/index-BGEhoDUs.d.cts +106 -0
  21. package/dist/index-BGEhoDUs.d.ts +106 -0
  22. package/dist/index.cjs +1006 -1615
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.cts +11 -115
  25. package/dist/index.d.ts +11 -115
  26. package/dist/index.js +932 -1559
  27. package/dist/index.js.map +1 -1
  28. package/dist/metadata.cjs +91 -0
  29. package/dist/metadata.cjs.map +1 -0
  30. package/dist/metadata.d.cts +58 -0
  31. package/dist/metadata.d.ts +58 -0
  32. package/dist/metadata.js +68 -0
  33. package/dist/metadata.js.map +1 -0
  34. package/dist/{payload-types-Ci-ZA7aM.d.cts → payload-types-Wa4-eC6x.d.cts} +794 -532
  35. package/dist/{payload-types-Ci-ZA7aM.d.ts → payload-types-Wa4-eC6x.d.ts} +794 -532
  36. package/dist/query.cjs +1841 -0
  37. package/dist/query.cjs.map +1 -0
  38. package/dist/query.d.cts +244 -0
  39. package/dist/query.d.ts +244 -0
  40. package/dist/query.js +1836 -0
  41. package/dist/query.js.map +1 -0
  42. package/dist/realtime.cjs +4 -1
  43. package/dist/realtime.cjs.map +1 -1
  44. package/dist/realtime.d.cts +2 -2
  45. package/dist/realtime.d.ts +2 -2
  46. package/dist/realtime.js +4 -1
  47. package/dist/realtime.js.map +1 -1
  48. package/dist/{server-BINWywT8.d.cts → server-CrsPyqEc.d.cts} +14 -31
  49. package/dist/{server-BINWywT8.d.ts → server-CrsPyqEc.d.ts} +14 -31
  50. package/dist/server.cjs +430 -846
  51. package/dist/server.cjs.map +1 -1
  52. package/dist/server.d.cts +137 -7
  53. package/dist/server.d.ts +137 -7
  54. package/dist/server.js +430 -864
  55. package/dist/server.js.map +1 -1
  56. package/dist/{server-Cv0Q4dPQ.d.ts → types-BX2mqDf6.d.ts} +270 -743
  57. package/dist/{types-BWq_WlbB.d.ts → types-CVA10VC-.d.ts} +6 -2
  58. package/dist/{types-zKjATmDK.d.cts → types-CmLG-7RL.d.cts} +6 -2
  59. package/dist/{server-C0C8dtms.d.cts → types-DChFjQGz.d.cts} +270 -743
  60. package/dist/ui/canvas/server.cjs +7 -6
  61. package/dist/ui/canvas/server.cjs.map +1 -1
  62. package/dist/ui/canvas/server.d.cts +1 -3
  63. package/dist/ui/canvas/server.d.ts +1 -3
  64. package/dist/ui/canvas/server.js +7 -6
  65. package/dist/ui/canvas/server.js.map +1 -1
  66. package/dist/ui/canvas.cjs +11 -10
  67. package/dist/ui/canvas.cjs.map +1 -1
  68. package/dist/ui/canvas.d.cts +29 -6
  69. package/dist/ui/canvas.d.ts +29 -6
  70. package/dist/ui/canvas.js +11 -10
  71. package/dist/ui/canvas.js.map +1 -1
  72. package/dist/ui/form.d.cts +1 -1
  73. package/dist/ui/form.d.ts +1 -1
  74. package/dist/ui/video.d.cts +1 -1
  75. package/dist/ui/video.d.ts +1 -1
  76. package/dist/webhook.d.cts +3 -3
  77. package/dist/webhook.d.ts +3 -3
  78. package/package.json +84 -15
@@ -23,10 +23,6 @@ interface Config {
23
23
  'webhook-deliveries': WebhookDelivery;
24
24
  tenants: Tenant;
25
25
  'tenant-metadata': TenantMetadatum;
26
- 'tenant-web-analytics-config': TenantWebAnalyticsConfig;
27
- 'api-usage': ApiUsage;
28
- 'tenant-analytics-daily': TenantAnalyticsDaily;
29
- 'analytics-event-schemas': AnalyticsEventSchema;
30
26
  'tenant-entitlements': TenantEntitlement;
31
27
  'tenant-purge-jobs': TenantPurgeJob;
32
28
  subscriptions: Subscription;
@@ -34,6 +30,10 @@ interface Config {
34
30
  plans: Plan;
35
31
  webhooks: Webhook;
36
32
  'tenant-logos': TenantLogo;
33
+ 'tenant-web-analytics-config': TenantWebAnalyticsConfig;
34
+ 'tenant-analytics-daily': TenantAnalyticsDaily;
35
+ 'analytics-event-schemas': AnalyticsEventSchema;
36
+ 'api-usage': ApiUsage;
37
37
  products: Product;
38
38
  'product-variants': ProductVariant;
39
39
  'product-options': ProductOption;
@@ -41,6 +41,7 @@ interface Config {
41
41
  'product-categories': ProductCategory;
42
42
  'product-tags': ProductTag;
43
43
  'product-collections': ProductCollection;
44
+ 'product-collection-items': ProductCollectionItem;
44
45
  brands: Brand;
45
46
  'brand-logos': BrandLogo;
46
47
  orders: Order;
@@ -124,11 +125,14 @@ interface Config {
124
125
  products: {
125
126
  variants: 'product-variants';
126
127
  options: 'product-options';
127
- collections: 'product-collections';
128
+ collectionItems: 'product-collection-items';
128
129
  };
129
130
  'product-options': {
130
131
  values: 'product-option-values';
131
132
  };
133
+ 'product-collections': {
134
+ items: 'product-collection-items';
135
+ };
132
136
  orders: {
133
137
  items: 'order-items';
134
138
  transactions: 'transactions';
@@ -186,10 +190,6 @@ interface Config {
186
190
  'webhook-deliveries': WebhookDeliveriesSelect<false> | WebhookDeliveriesSelect<true>;
187
191
  tenants: TenantsSelect<false> | TenantsSelect<true>;
188
192
  'tenant-metadata': TenantMetadataSelect<false> | TenantMetadataSelect<true>;
189
- 'tenant-web-analytics-config': TenantWebAnalyticsConfigSelect<false> | TenantWebAnalyticsConfigSelect<true>;
190
- 'api-usage': ApiUsageSelect<false> | ApiUsageSelect<true>;
191
- 'tenant-analytics-daily': TenantAnalyticsDailySelect<false> | TenantAnalyticsDailySelect<true>;
192
- 'analytics-event-schemas': AnalyticsEventSchemasSelect<false> | AnalyticsEventSchemasSelect<true>;
193
193
  'tenant-entitlements': TenantEntitlementsSelect<false> | TenantEntitlementsSelect<true>;
194
194
  'tenant-purge-jobs': TenantPurgeJobsSelect<false> | TenantPurgeJobsSelect<true>;
195
195
  subscriptions: SubscriptionsSelect<false> | SubscriptionsSelect<true>;
@@ -197,6 +197,10 @@ interface Config {
197
197
  plans: PlansSelect<false> | PlansSelect<true>;
198
198
  webhooks: WebhooksSelect<false> | WebhooksSelect<true>;
199
199
  'tenant-logos': TenantLogosSelect<false> | TenantLogosSelect<true>;
200
+ 'tenant-web-analytics-config': TenantWebAnalyticsConfigSelect<false> | TenantWebAnalyticsConfigSelect<true>;
201
+ 'tenant-analytics-daily': TenantAnalyticsDailySelect<false> | TenantAnalyticsDailySelect<true>;
202
+ 'analytics-event-schemas': AnalyticsEventSchemasSelect<false> | AnalyticsEventSchemasSelect<true>;
203
+ 'api-usage': ApiUsageSelect<false> | ApiUsageSelect<true>;
200
204
  products: ProductsSelect<false> | ProductsSelect<true>;
201
205
  'product-variants': ProductVariantsSelect<false> | ProductVariantsSelect<true>;
202
206
  'product-options': ProductOptionsSelect<false> | ProductOptionsSelect<true>;
@@ -204,6 +208,7 @@ interface Config {
204
208
  'product-categories': ProductCategoriesSelect<false> | ProductCategoriesSelect<true>;
205
209
  'product-tags': ProductTagsSelect<false> | ProductTagsSelect<true>;
206
210
  'product-collections': ProductCollectionsSelect<false> | ProductCollectionsSelect<true>;
211
+ 'product-collection-items': ProductCollectionItemsSelect<false> | ProductCollectionItemsSelect<true>;
207
212
  brands: BrandsSelect<false> | BrandsSelect<true>;
208
213
  'brand-logos': BrandLogosSelect<false> | BrandLogosSelect<true>;
209
214
  orders: OrdersSelect<false> | OrdersSelect<true>;
@@ -402,7 +407,7 @@ interface Image {
402
407
  id: string;
403
408
  tenant?: (string | null) | Tenant;
404
409
  /**
405
- * Alternative text for users who cannot see the image and for search/share context.
410
+ * Describe the image. Used for users who cannot see it, screen readers, and search/share previews.
406
411
  */
407
412
  alt?: string | null;
408
413
  /**
@@ -488,6 +493,21 @@ interface Tenant {
488
493
  * URL-safe identifier (auto-generated)
489
494
  */
490
495
  slug?: string | null;
496
+ /**
497
+ * Tenant-owned frontend origins that can open saved-record preview. Storefronts, docs sites, community sites, and other tenant frontends register here. Managed separately from API CORS origins.
498
+ */
499
+ previewDestinations?: {
500
+ origin: string;
501
+ /**
502
+ * Default destination used by the preview button. Select only one primary destination.
503
+ */
504
+ isPrimary?: boolean | null;
505
+ /**
506
+ * Draft Mode route path on the destination frontend. Enter a path, not an origin.
507
+ */
508
+ draftPath?: string | null;
509
+ id?: string | null;
510
+ }[] | null;
491
511
  /**
492
512
  * Tenant owner. Only the owner can delete the tenant or transfer ownership.
493
513
  */
@@ -513,7 +533,7 @@ interface Tenant {
513
533
  */
514
534
  publishableKey: string;
515
535
  /**
516
- * Domains allowed to call this tenant’s API from a browser. Leave empty to block browser calls.
536
+ * Origins allowed to call this tenant API with a Publishable Key from a browser. Separate from saved-record preview destinations. Leave empty to block browser API calls.
517
537
  */
518
538
  cors?: {
519
539
  origin: string;
@@ -1155,7 +1175,7 @@ interface TenantLogo {
1155
1175
  id: string;
1156
1176
  tenant?: (string | null) | Tenant;
1157
1177
  /**
1158
- * Alternative text for users who cannot see the image and for search/share context.
1178
+ * Describe the image. Used for users who cannot see it, screen readers, and search/share previews.
1159
1179
  */
1160
1180
  alt?: string | null;
1161
1181
  /**
@@ -1244,82 +1264,213 @@ interface TenantLogo {
1244
1264
  }
1245
1265
  /**
1246
1266
  * This interface was referenced by `Config`'s JSON-Schema
1247
- * via the `definition` "tenant-web-analytics-config".
1267
+ * via the `definition` "tenant-entitlements".
1248
1268
  */
1249
- interface TenantWebAnalyticsConfig {
1269
+ interface TenantEntitlement {
1250
1270
  id: string;
1251
- tenant?: (string | null) | Tenant;
1252
- enabled?: boolean | null;
1271
+ tenant: string | Tenant;
1272
+ plan: 'free' | 'starter' | 'basic' | 'pro' | 'enterprise';
1253
1273
  /**
1254
- * Domains allowed to send analytics events. If empty, browser analytics is blocked.
1274
+ * Lifecycle status for the entitlement. Only active rows participate in current plan resolution.
1255
1275
  */
1256
- allowedOrigins?: {
1257
- origin: string;
1258
- id?: string | null;
1259
- }[] | null;
1276
+ status: 'active' | 'scheduled' | 'expired' | 'revoked';
1277
+ sourceType: 'subscription' | 'manual' | 'support' | 'promo' | 'trial' | 'enterprise_contract';
1278
+ sourceSubscription?: (string | null) | Subscription;
1260
1279
  /**
1261
- * Timezone used to group daily analytics. Once data starts coming in, this is locked and cannot be changed.
1280
+ * Tie-breaker for overlapping entitlements. Higher values win within the same source precedence.
1262
1281
  */
1263
- timezone: string;
1282
+ priority: number;
1283
+ startsAt: string;
1264
1284
  /**
1265
- * Automatically locked once the first analytics record is saved. Contact support to unlock.
1285
+ * Entitlement end date. Required by hook validation for promo / trial sources and excluded from current plan resolution after expiry.
1266
1286
  */
1267
- tzLocked?: boolean | null;
1287
+ endsAt?: string | null;
1288
+ reason?: string | null;
1289
+ grantedBy?: (string | null) | User;
1290
+ revokedAt?: string | null;
1291
+ revokedBy?: (string | null) | User;
1268
1292
  updatedAt: string;
1269
1293
  createdAt: string;
1270
1294
  deletedAt?: string | null;
1271
1295
  }
1272
1296
  /**
1273
1297
  * This interface was referenced by `Config`'s JSON-Schema
1274
- * via the `definition` "api-usage".
1298
+ * via the `definition` "subscriptions".
1275
1299
  */
1276
- interface ApiUsage {
1300
+ interface Subscription {
1277
1301
  id: string;
1278
- tenant?: (string | null) | Tenant;
1302
+ tenant: string | Tenant;
1303
+ plan: 'starter' | 'basic' | 'pro';
1304
+ billingCycle: 'monthly' | 'yearly';
1279
1305
  /**
1280
- * YYYY-MM format
1306
+ * Payment amount (KRW)
1281
1307
  */
1282
- month: string;
1283
- apiCallCount: number;
1284
- plan: 'free' | 'starter' | 'basic' | 'pro' | 'enterprise';
1308
+ amount: number;
1309
+ status: 'active' | 'past_due' | 'canceled' | 'expired' | 'suspended';
1310
+ currency: 'KRW' | 'USD';
1311
+ provider: 'toss';
1312
+ currentPeriodStart?: string | null;
1313
+ currentPeriodEnd?: string | null;
1314
+ trialStartAt?: string | null;
1315
+ trialEndAt?: string | null;
1316
+ endedAt?: string | null;
1317
+ pastDueAt?: string | null;
1285
1318
  /**
1286
- * -1 means unlimited
1319
+ * Toss billing key (AES-256-GCM encrypted)
1287
1320
  */
1288
- apiCallLimit: number;
1321
+ billingKey?: string | null;
1289
1322
  /**
1290
- * Storage usage in bytes
1323
+ * Toss customer key (UUID)
1291
1324
  */
1292
- storageUsedBytes?: number | null;
1325
+ customerKey?: string | null;
1293
1326
  /**
1294
- * Storage limit in bytes (-1 means unlimited)
1327
+ * Registered card info
1295
1328
  */
1296
- storageLimitBytes?: number | null;
1329
+ cardInfo?: {
1330
+ issuerCode?: string | null;
1331
+ /**
1332
+ * Masked card number
1333
+ */
1334
+ number?: string | null;
1335
+ cardType?: string | null;
1336
+ };
1297
1337
  /**
1298
- * Total document count across all tenant-scoped collections
1338
+ * Provider-owned diagnostic and audit metadata returned by the billing provider. Not a general manual-edit field.
1299
1339
  */
1300
- documentCount?: number | null;
1340
+ providerMetadata?: {
1341
+ [k: string]: unknown;
1342
+ } | unknown[] | string | number | boolean | null;
1343
+ cancelAtPeriodEnd?: boolean | null;
1344
+ canceledAt?: string | null;
1345
+ cancelReason?: string | null;
1346
+ retryCount?: number | null;
1347
+ graceDeadline?: string | null;
1348
+ lastPaymentError?: string | null;
1349
+ pendingPlanChange?: {
1350
+ targetPlan?: ('starter' | 'basic' | 'pro') | null;
1351
+ targetAmount?: number | null;
1352
+ effectiveAt?: string | null;
1353
+ };
1354
+ updatedAt: string;
1355
+ createdAt: string;
1356
+ deletedAt?: string | null;
1357
+ }
1358
+ /**
1359
+ * This interface was referenced by `Config`'s JSON-Schema
1360
+ * via the `definition` "tenant-purge-jobs".
1361
+ */
1362
+ interface TenantPurgeJob {
1363
+ id: string;
1364
+ tenantId: string;
1365
+ status: 'pending' | 'running' | 'failed' | 'ready-to-delete';
1366
+ currentCollection?: string | null;
1367
+ deletedCount?: number | null;
1368
+ failure?: string | null;
1369
+ completedAt?: string | null;
1370
+ updatedAt: string;
1371
+ createdAt: string;
1372
+ }
1373
+ /**
1374
+ * This interface was referenced by `Config`'s JSON-Schema
1375
+ * via the `definition` "billing-history".
1376
+ */
1377
+ interface BillingHistory {
1378
+ id: string;
1379
+ tenant: string | Tenant;
1380
+ subscription?: (string | null) | Subscription;
1381
+ type: 'payment' | 'refund' | 'plan_change';
1382
+ status: 'success' | 'failed' | 'refunded' | 'partial_refund';
1301
1383
  /**
1302
- * Number of video documents
1384
+ * Amount (KRW)
1303
1385
  */
1304
- videoCount?: number | null;
1386
+ amount: number;
1305
1387
  /**
1306
- * Weighted video minutes used (duration × quality multiplier)
1388
+ * Plan at time of payment
1307
1389
  */
1308
- videoMinutesUsed?: number | null;
1390
+ plan: 'starter' | 'basic' | 'pro';
1391
+ provider: 'toss';
1392
+ currency: 'KRW' | 'USD';
1393
+ billingCycle?: ('monthly' | 'yearly') | null;
1394
+ periodStart?: string | null;
1395
+ periodEnd?: string | null;
1309
1396
  /**
1310
- * Monthly viewer watch time from Mux Data
1397
+ * Unique order number
1311
1398
  */
1312
- deliveryMinutesUsed?: number | null;
1399
+ invoiceNumber: string;
1400
+ orderName?: string | null;
1313
1401
  /**
1314
- * AI generation count
1402
+ * Toss payment key
1315
1403
  */
1316
- aiGenerationCount?: number | null;
1404
+ paymentKey?: string | null;
1317
1405
  /**
1318
- * Timestamp when the usage snapshot cron calculated this monthly aggregate.
1406
+ * Full Toss API response
1319
1407
  */
1320
- snapshottedAt?: string | null;
1408
+ tossResponse?: {
1409
+ [k: string]: unknown;
1410
+ } | unknown[] | string | number | boolean | null;
1411
+ errorMessage?: string | null;
1412
+ /**
1413
+ * Original billing record for retry
1414
+ */
1415
+ retryOf?: (string | null) | BillingHistory;
1321
1416
  updatedAt: string;
1322
1417
  createdAt: string;
1418
+ deletedAt?: string | null;
1419
+ }
1420
+ /**
1421
+ * This interface was referenced by `Config`'s JSON-Schema
1422
+ * via the `definition` "plans".
1423
+ */
1424
+ interface Plan {
1425
+ id: string;
1426
+ /**
1427
+ * Plan identifier (free, starter, basic, pro, enterprise)
1428
+ */
1429
+ key: string;
1430
+ /**
1431
+ * Plan display name
1432
+ */
1433
+ name: string;
1434
+ /**
1435
+ * Reference-only feature list; enforced elsewhere.
1436
+ */
1437
+ featuresAllowed?: ('ecommerce' | 'customers' | 'playlists' | 'galleries' | 'links' | 'forms' | 'articles' | 'documents' | 'canvas' | 'videos' | 'live-streaming' | 'community' | 'events')[] | null;
1438
+ /**
1439
+ * Reference-only quotas such as storageBytes; enforced by entitlement and usage policy elsewhere.
1440
+ */
1441
+ quotas?: {
1442
+ [k: string]: unknown;
1443
+ } | unknown[] | string | number | boolean | null;
1444
+ updatedAt: string;
1445
+ createdAt: string;
1446
+ deletedAt?: string | null;
1447
+ }
1448
+ /**
1449
+ * This interface was referenced by `Config`'s JSON-Schema
1450
+ * via the `definition` "tenant-web-analytics-config".
1451
+ */
1452
+ interface TenantWebAnalyticsConfig {
1453
+ id: string;
1454
+ tenant?: (string | null) | Tenant;
1455
+ enabled?: boolean | null;
1456
+ /**
1457
+ * Domains allowed to send analytics events. If empty, browser analytics is blocked.
1458
+ */
1459
+ allowedOrigins?: {
1460
+ origin: string;
1461
+ id?: string | null;
1462
+ }[] | null;
1463
+ /**
1464
+ * Timezone used to group daily analytics. Once data starts coming in, this is locked and cannot be changed.
1465
+ */
1466
+ timezone: string;
1467
+ /**
1468
+ * Automatically locked once the first analytics record is saved. Contact support to unlock.
1469
+ */
1470
+ tzLocked?: boolean | null;
1471
+ updatedAt: string;
1472
+ createdAt: string;
1473
+ deletedAt?: string | null;
1323
1474
  }
1324
1475
  /**
1325
1476
  * This interface was referenced by `Config`'s JSON-Schema
@@ -1430,222 +1581,91 @@ interface TenantAnalyticsDaily {
1430
1581
  label: string;
1431
1582
  count: number;
1432
1583
  id?: string | null;
1433
- }[] | null;
1434
- };
1435
- };
1436
- updatedAt: string;
1437
- createdAt: string;
1438
- }
1439
- /**
1440
- * This interface was referenced by `Config`'s JSON-Schema
1441
- * via the `definition` "analytics-event-schemas".
1442
- */
1443
- interface AnalyticsEventSchema {
1444
- id: string;
1445
- tenant?: (string | null) | Tenant;
1446
- /**
1447
- * Valid event name pattern.
1448
- */
1449
- eventName: string;
1450
- enabled: boolean;
1451
- dimensions?: {
1452
- key: string;
1453
- type: 'enum' | 'boolean';
1454
- /**
1455
- * Comma-separated values. Required when type=enum, optional otherwise. Boolean auto-derives {true,false}. Max 20 per key.
1456
- */
1457
- allowedValues?: string | null;
1458
- description?: string | null;
1459
- id?: string | null;
1460
- }[] | null;
1461
- createdBy?: (string | null) | User;
1462
- updatedBy?: (string | null) | User;
1463
- updatedAt: string;
1464
- createdAt: string;
1465
- deletedAt?: string | null;
1466
- }
1467
- /**
1468
- * This interface was referenced by `Config`'s JSON-Schema
1469
- * via the `definition` "tenant-entitlements".
1470
- */
1471
- interface TenantEntitlement {
1472
- id: string;
1473
- tenant: string | Tenant;
1474
- plan: 'free' | 'starter' | 'basic' | 'pro' | 'enterprise';
1475
- /**
1476
- * Lifecycle status for the entitlement. Only active rows participate in current plan resolution.
1477
- */
1478
- status: 'active' | 'scheduled' | 'expired' | 'revoked';
1479
- sourceType: 'subscription' | 'manual' | 'support' | 'promo' | 'trial' | 'enterprise_contract';
1480
- sourceSubscription?: (string | null) | Subscription;
1481
- /**
1482
- * Tie-breaker for overlapping entitlements. Higher values win within the same source precedence.
1483
- */
1484
- priority: number;
1485
- startsAt: string;
1486
- /**
1487
- * Entitlement end date. Required by hook validation for promo / trial sources and excluded from current plan resolution after expiry.
1488
- */
1489
- endsAt?: string | null;
1490
- reason?: string | null;
1491
- grantedBy?: (string | null) | User;
1492
- revokedAt?: string | null;
1493
- revokedBy?: (string | null) | User;
1494
- updatedAt: string;
1495
- createdAt: string;
1496
- deletedAt?: string | null;
1497
- }
1498
- /**
1499
- * This interface was referenced by `Config`'s JSON-Schema
1500
- * via the `definition` "subscriptions".
1501
- */
1502
- interface Subscription {
1503
- id: string;
1504
- tenant: string | Tenant;
1505
- plan: 'starter' | 'basic' | 'pro';
1506
- billingCycle: 'monthly' | 'yearly';
1507
- /**
1508
- * Payment amount (KRW)
1509
- */
1510
- amount: number;
1511
- status: 'active' | 'past_due' | 'canceled' | 'expired' | 'suspended';
1512
- currency: 'KRW' | 'USD';
1513
- provider: 'toss';
1514
- currentPeriodStart?: string | null;
1515
- currentPeriodEnd?: string | null;
1516
- trialStartAt?: string | null;
1517
- trialEndAt?: string | null;
1518
- endedAt?: string | null;
1519
- pastDueAt?: string | null;
1520
- /**
1521
- * Toss billing key (AES-256-GCM encrypted)
1522
- */
1523
- billingKey?: string | null;
1524
- /**
1525
- * Toss customer key (UUID)
1526
- */
1527
- customerKey?: string | null;
1528
- /**
1529
- * Registered card info
1530
- */
1531
- cardInfo?: {
1532
- issuerCode?: string | null;
1533
- /**
1534
- * Masked card number
1535
- */
1536
- number?: string | null;
1537
- cardType?: string | null;
1538
- };
1539
- /**
1540
- * Provider-owned diagnostic and audit metadata returned by the billing provider. Not a general manual-edit field.
1541
- */
1542
- providerMetadata?: {
1543
- [k: string]: unknown;
1544
- } | unknown[] | string | number | boolean | null;
1545
- cancelAtPeriodEnd?: boolean | null;
1546
- canceledAt?: string | null;
1547
- cancelReason?: string | null;
1548
- retryCount?: number | null;
1549
- graceDeadline?: string | null;
1550
- lastPaymentError?: string | null;
1551
- pendingPlanChange?: {
1552
- targetPlan?: ('starter' | 'basic' | 'pro') | null;
1553
- targetAmount?: number | null;
1554
- effectiveAt?: string | null;
1584
+ }[] | null;
1585
+ };
1555
1586
  };
1556
1587
  updatedAt: string;
1557
1588
  createdAt: string;
1558
- deletedAt?: string | null;
1559
1589
  }
1560
1590
  /**
1561
1591
  * This interface was referenced by `Config`'s JSON-Schema
1562
- * via the `definition` "tenant-purge-jobs".
1592
+ * via the `definition` "analytics-event-schemas".
1563
1593
  */
1564
- interface TenantPurgeJob {
1594
+ interface AnalyticsEventSchema {
1565
1595
  id: string;
1566
- tenantId: string;
1567
- status: 'pending' | 'running' | 'failed' | 'ready-to-delete';
1568
- currentCollection?: string | null;
1569
- deletedCount?: number | null;
1570
- failure?: string | null;
1571
- completedAt?: string | null;
1596
+ tenant?: (string | null) | Tenant;
1597
+ /**
1598
+ * Valid event name pattern.
1599
+ */
1600
+ eventName: string;
1601
+ enabled: boolean;
1602
+ dimensions?: {
1603
+ key: string;
1604
+ type: 'enum' | 'boolean';
1605
+ /**
1606
+ * Comma-separated values. Required when type=enum, optional otherwise. Boolean auto-derives {true,false}. Max 20 per key.
1607
+ */
1608
+ allowedValues?: string | null;
1609
+ description?: string | null;
1610
+ id?: string | null;
1611
+ }[] | null;
1612
+ createdBy?: (string | null) | User;
1613
+ updatedBy?: (string | null) | User;
1572
1614
  updatedAt: string;
1573
1615
  createdAt: string;
1616
+ deletedAt?: string | null;
1574
1617
  }
1575
1618
  /**
1576
1619
  * This interface was referenced by `Config`'s JSON-Schema
1577
- * via the `definition` "billing-history".
1620
+ * via the `definition` "api-usage".
1578
1621
  */
1579
- interface BillingHistory {
1622
+ interface ApiUsage {
1580
1623
  id: string;
1581
- tenant: string | Tenant;
1582
- subscription?: (string | null) | Subscription;
1583
- type: 'payment' | 'refund' | 'plan_change';
1584
- status: 'success' | 'failed' | 'refunded' | 'partial_refund';
1624
+ tenant?: (string | null) | Tenant;
1585
1625
  /**
1586
- * Amount (KRW)
1626
+ * YYYY-MM format
1587
1627
  */
1588
- amount: number;
1628
+ month: string;
1629
+ apiCallCount: number;
1630
+ plan: 'free' | 'starter' | 'basic' | 'pro' | 'enterprise';
1589
1631
  /**
1590
- * Plan at time of payment
1632
+ * -1 means unlimited
1591
1633
  */
1592
- plan: 'starter' | 'basic' | 'pro';
1593
- provider: 'toss';
1594
- currency: 'KRW' | 'USD';
1595
- billingCycle?: ('monthly' | 'yearly') | null;
1596
- periodStart?: string | null;
1597
- periodEnd?: string | null;
1634
+ apiCallLimit: number;
1598
1635
  /**
1599
- * Unique order number
1636
+ * Storage usage in bytes
1600
1637
  */
1601
- invoiceNumber: string;
1602
- orderName?: string | null;
1638
+ storageUsedBytes?: number | null;
1603
1639
  /**
1604
- * Toss payment key
1640
+ * Storage limit in bytes (-1 means unlimited)
1605
1641
  */
1606
- paymentKey?: string | null;
1642
+ storageLimitBytes?: number | null;
1607
1643
  /**
1608
- * Full Toss API response
1644
+ * Total document count across all tenant-scoped collections
1609
1645
  */
1610
- tossResponse?: {
1611
- [k: string]: unknown;
1612
- } | unknown[] | string | number | boolean | null;
1613
- errorMessage?: string | null;
1646
+ documentCount?: number | null;
1614
1647
  /**
1615
- * Original billing record for retry
1648
+ * Number of video documents
1616
1649
  */
1617
- retryOf?: (string | null) | BillingHistory;
1618
- updatedAt: string;
1619
- createdAt: string;
1620
- deletedAt?: string | null;
1621
- }
1622
- /**
1623
- * This interface was referenced by `Config`'s JSON-Schema
1624
- * via the `definition` "plans".
1625
- */
1626
- interface Plan {
1627
- id: string;
1650
+ videoCount?: number | null;
1628
1651
  /**
1629
- * Plan identifier (free, starter, basic, pro, enterprise)
1652
+ * Weighted video minutes used (duration × quality multiplier)
1630
1653
  */
1631
- key: string;
1654
+ videoMinutesUsed?: number | null;
1632
1655
  /**
1633
- * Plan display name
1656
+ * Monthly viewer watch time from Mux Data
1634
1657
  */
1635
- name: string;
1658
+ deliveryMinutesUsed?: number | null;
1636
1659
  /**
1637
- * Reference-only feature list; enforced elsewhere.
1660
+ * AI generation count
1638
1661
  */
1639
- featuresAllowed?: ('ecommerce' | 'customers' | 'playlists' | 'galleries' | 'links' | 'forms' | 'articles' | 'documents' | 'canvas' | 'videos' | 'live-streaming' | 'community' | 'events')[] | null;
1662
+ aiGenerationCount?: number | null;
1640
1663
  /**
1641
- * Reference-only quotas such as storageBytes; enforced by entitlement and usage policy elsewhere.
1664
+ * Timestamp when the usage snapshot cron calculated this monthly aggregate.
1642
1665
  */
1643
- quotas?: {
1644
- [k: string]: unknown;
1645
- } | unknown[] | string | number | boolean | null;
1666
+ snapshottedAt?: string | null;
1646
1667
  updatedAt: string;
1647
1668
  createdAt: string;
1648
- deletedAt?: string | null;
1649
1669
  }
1650
1670
  /**
1651
1671
  * This interface was referenced by `Config`'s JSON-Schema
@@ -1655,17 +1675,26 @@ interface Product {
1655
1675
  id: string;
1656
1676
  _order?: string | null;
1657
1677
  tenant?: (string | null) | Tenant;
1658
- title?: string | null;
1678
+ title: string;
1659
1679
  /**
1660
- * Secondary display line shown in cards, listings, and detail headers.
1680
+ * Short supporting line shown on product cards and detail headers.
1661
1681
  */
1662
1682
  subtitle?: string | null;
1663
1683
  /**
1664
- * Short summary for listing/cards
1684
+ * Summary description used for product detail and search previews.
1665
1685
  */
1666
1686
  description?: string | null;
1687
+ /**
1688
+ * Product detail gallery images. When thumbnail and listing.primaryImage are empty, the first gallery image can appear as the product list thumbnail. Add alt text when uploading new images and order images in storefront display order.
1689
+ */
1667
1690
  images?: (string | Image)[] | null;
1691
+ /**
1692
+ * Links this content to videos from the Mux-backed videos collection.
1693
+ */
1668
1694
  videos?: (string | Video)[] | null;
1695
+ /**
1696
+ * Product detail body content. Supports image uploads and Iframe/Player/Carousel embed blocks. The article editor Code block and AI assist are not shown in this product profile.
1697
+ */
1669
1698
  content?: {
1670
1699
  root: {
1671
1700
  type: string;
@@ -1693,17 +1722,23 @@ interface Product {
1693
1722
  };
1694
1723
  categories?: (string | ProductCategory)[] | null;
1695
1724
  tags?: (string | ProductTag)[] | null;
1725
+ /**
1726
+ * Canonical storefront brand used for brand filtering and brand pages. Preserve external supplier names in the sidebar Vendor field.
1727
+ */
1696
1728
  brand?: (string | null) | Brand;
1729
+ /**
1730
+ * Shipping fee, free-shipping threshold, and estimated delivery policy for this product. When empty on a new product, the tenant default shipping policy is applied automatically.
1731
+ */
1697
1732
  shippingPolicy?: (string | null) | ShippingPolicy;
1698
1733
  /**
1699
- * Product weight (g)
1734
+ * Integer weight in grams. For example, enter 2500 for 2.5 kg.
1700
1735
  */
1701
1736
  weight?: number | null;
1702
1737
  /**
1703
- * Product collections that include this product. Managed from the collection edit view.
1738
+ * Collection memberships for this product. Managed from the collection edit view.
1704
1739
  */
1705
- collections?: {
1706
- docs?: (string | ProductCollection)[];
1740
+ collectionItems?: {
1741
+ docs?: (string | ProductCollectionItem)[];
1707
1742
  hasNextPage?: boolean;
1708
1743
  totalDocs?: number;
1709
1744
  };
@@ -1716,49 +1751,46 @@ interface Product {
1716
1751
  */
1717
1752
  maxOrderQuantity?: number | null;
1718
1753
  /**
1719
- * Primary option used to expand this product into option-value listing cards (for example, Color)
1754
+ * Operator-selected primary option. Save the product, then add options to make this selectable. When selected, product cards/search expand this product by option value (for example, Color).
1720
1755
  */
1721
1756
  listingPrimaryOption?: (string | null) | ProductOption;
1722
1757
  /**
1723
- * Derived listing projection for product cards and search
1758
+ * Automatically derived listing projection for product cards and search. Operators do not edit these fields directly.
1724
1759
  */
1725
1760
  listing?: {
1726
1761
  /**
1727
- * Variant prioritized for product cards. Automatically derived from sellable variants, active variants, and sort order.
1762
+ * Variant prioritized for product cards. Automatically derived from sellable variants, active variants, and sort order. Storefront product cards use this as the option hint.
1728
1763
  */
1729
1764
  selectionHintVariant?: (string | null) | ProductVariant;
1730
1765
  /**
1731
- * Primary image for product cards/search. Product media is preferred, then variant media is used as fallback.
1766
+ * Primary image rendered by storefront product cards and search results. Product thumbnail/gallery media is preferred, then variant media is used as fallback.
1732
1767
  */
1733
1768
  primaryImage?: (string | null) | Image;
1734
1769
  /**
1735
- * Lowest active variant price. Automatically recalculated when variants change.
1770
+ * Lowest active variant price. Automatically recalculated when variants change. Storefront cards and filters use this price.
1736
1771
  */
1737
1772
  minPrice?: number | null;
1738
1773
  /**
1739
- * Highest active variant price. Automatically recalculated when variants change.
1774
+ * Highest active variant price. Automatically recalculated when variants change. Storefront cards and filters use this price.
1740
1775
  */
1741
1776
  maxPrice?: number | null;
1742
1777
  /**
1743
- * Lowest compare-at price across active variants. Automatically recalculated when variants change.
1778
+ * Lowest compare-at price across active variants. Automatically recalculated when variants change. Storefront discount displays use this value.
1744
1779
  */
1745
1780
  minCompareAtPrice?: number | null;
1746
1781
  /**
1747
- * Highest compare-at price across active variants. Automatically recalculated when variants change.
1782
+ * Highest compare-at price across active variants. Automatically recalculated when variants change. Storefront discount displays use this value.
1748
1783
  */
1749
1784
  maxCompareAtPrice?: number | null;
1750
1785
  /**
1751
- * Automatically enabled when the minimum and maximum active variant prices differ.
1786
+ * Automatically enabled when the minimum and maximum active variant prices differ. Storefront cards use this to decide whether to show a price range.
1752
1787
  */
1753
1788
  isPriceRange?: boolean | null;
1754
1789
  /**
1755
- * Automatically enabled when at least one active variant is sellable.
1790
+ * Automatically enabled when at least one active variant is sellable. Storefront grids and filters use this to render and filter in-stock products.
1756
1791
  */
1757
1792
  availableForSale?: boolean | null;
1758
1793
  };
1759
- metadata?: {
1760
- [k: string]: unknown;
1761
- } | unknown[] | string | number | boolean | null;
1762
1794
  seo?: {
1763
1795
  /**
1764
1796
  * Search result title (falls back to document title)
@@ -1786,27 +1818,47 @@ interface Product {
1786
1818
  */
1787
1819
  description?: string | null;
1788
1820
  /**
1789
- * OG / Twitter Card image (1200×630 recommended)
1821
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
1790
1822
  */
1791
1823
  image?: (string | null) | Image;
1792
1824
  };
1793
1825
  };
1826
+ /**
1827
+ * Preferred product list thumbnail. When empty, the list falls back to listing primary image, then the first gallery image. Add alt text when uploading new images.
1828
+ */
1794
1829
  thumbnail?: (string | null) | Image;
1795
1830
  /**
1796
1831
  * When enabled, the slug will auto-generate from the title field on save and autosave.
1797
1832
  */
1798
1833
  generateSlug?: boolean | null;
1834
+ /**
1835
+ * Canonical product URL slug. Generated from the title or editable directly.
1836
+ */
1799
1837
  slug?: string | null;
1838
+ /**
1839
+ * Draft products are hidden from the storefront. Only Published products are exposed through public APIs. Archived hides without deleting. Deleting a product also deletes variants and options. The last 50 saved versions can be restored from the Versions tab.
1840
+ */
1800
1841
  status?: ('draft' | 'published' | 'archived') | null;
1842
+ /**
1843
+ * Automatically enabled when no active variant is sellable. A variant is sellable when it is active and either unlimited or has stock minus reserved stock greater than 0.
1844
+ */
1801
1845
  isSoldOut?: boolean | null;
1802
1846
  isFeatured?: boolean | null;
1847
+ /**
1848
+ * Automatically stamped the first time a draft is published when empty. This is not used as a scheduled publish time.
1849
+ */
1803
1850
  publishedAt?: string | null;
1851
+ metadata?: {
1852
+ [k: string]: unknown;
1853
+ } | unknown[] | string | number | boolean | null;
1854
+ /**
1855
+ * Supplier name imported from external systems, separate from the brand relationship.
1856
+ */
1804
1857
  vendor?: string | null;
1805
- productType?: string | null;
1806
1858
  /**
1807
- * URL handle (alternative to slug)
1859
+ * External catalog product type, separate from categories.
1808
1860
  */
1809
- handle?: string | null;
1861
+ productType?: string | null;
1810
1862
  updatedAt: string;
1811
1863
  createdAt: string;
1812
1864
  deletedAt?: string | null;
@@ -1885,7 +1937,7 @@ interface Video {
1885
1937
  */
1886
1938
  description?: string | null;
1887
1939
  /**
1888
- * OG / Twitter Card image (1200×630 recommended)
1940
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
1889
1941
  */
1890
1942
  image?: (string | null) | Image;
1891
1943
  };
@@ -1981,7 +2033,7 @@ interface LiveStream {
1981
2033
  */
1982
2034
  description?: string | null;
1983
2035
  /**
1984
- * OG / Twitter Card image (1200×630 recommended)
2036
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
1985
2037
  */
1986
2038
  image?: (string | null) | Image;
1987
2039
  };
@@ -2028,8 +2080,17 @@ interface VideoCategory {
2028
2080
  * Short summary for listing/cards
2029
2081
  */
2030
2082
  description?: string | null;
2083
+ /**
2084
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
2085
+ */
2031
2086
  image?: (string | null) | Image;
2087
+ /**
2088
+ * Optional parent category used for hierarchy and breadcrumbs.
2089
+ */
2032
2090
  parent?: (string | null) | VideoCategory;
2091
+ /**
2092
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
2093
+ */
2033
2094
  color?: string | null;
2034
2095
  updatedAt: string;
2035
2096
  createdAt: string;
@@ -2053,8 +2114,13 @@ interface VideoTag {
2053
2114
  * Short summary for listing/cards
2054
2115
  */
2055
2116
  description?: string | null;
2117
+ /**
2118
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
2119
+ */
2056
2120
  image?: (string | null) | Image;
2057
- parent?: (string | null) | VideoTag;
2121
+ /**
2122
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
2123
+ */
2058
2124
  color?: string | null;
2059
2125
  updatedAt: string;
2060
2126
  createdAt: string;
@@ -2074,7 +2140,7 @@ interface ProductVariant {
2074
2140
  */
2075
2141
  product: string | Product;
2076
2142
  /**
2077
- * Optional variant display label. The option value combination remains the canonical variant identity.
2143
+ * Leave blank to auto-generate from option values. Manual display labels are preserved.
2078
2144
  */
2079
2145
  title?: string | null;
2080
2146
  thumbnail?: (string | null) | Image;
@@ -2108,7 +2174,7 @@ interface ProductVariant {
2108
2174
  */
2109
2175
  barcode?: string | null;
2110
2176
  /**
2111
- * Variant-specific weight (g)
2177
+ * Variant-specific integer weight in grams. For example, enter 2500 for 2.5 kg.
2112
2178
  */
2113
2179
  weight?: number | null;
2114
2180
  /**
@@ -2123,6 +2189,9 @@ interface ProductVariant {
2123
2189
  * Option value combination for this variant (e.g. Black + S)
2124
2190
  */
2125
2191
  optionValues?: (string | ProductOptionValue)[] | null;
2192
+ /**
2193
+ * Internal unique key for the variant option combination. Products without options use __default__; temporary invalid states use the __invalid__: prefix.
2194
+ */
2126
2195
  optionKey?: string | null;
2127
2196
  isActive?: boolean | null;
2128
2197
  metadata?: {
@@ -2145,20 +2214,30 @@ interface ProductOptionValue {
2145
2214
  * Parent option for this value. It cannot be moved to another option after creation.
2146
2215
  */
2147
2216
  option: string | ProductOption;
2217
+ displayLabel?: string | null;
2148
2218
  /**
2149
- * Display label (e.g. Black, S)
2219
+ * Editable option-value display label for Admin and storefront copy. Changing it after creation does not change the public slug. (e.g. Black, S)
2150
2220
  */
2151
2221
  value: string;
2152
2222
  /**
2153
- * Color swatch for this option value (for example #111111)
2223
+ * Hex color swatch for this option value (for example #111111)
2154
2224
  */
2155
2225
  swatchColor?: string | null;
2156
2226
  /**
2157
2227
  * When enabled, the slug will auto-generate from the title field on save and autosave.
2158
2228
  */
2159
2229
  generateSlug?: boolean | null;
2230
+ /**
2231
+ * Compatibility URL token generated from the option-value label on create. It is fixed after creation.
2232
+ */
2160
2233
  slug: string;
2234
+ /**
2235
+ * Representative image for this option value. Listing group media uses variant media first, then option-value media, and finally product media.
2236
+ */
2161
2237
  thumbnail?: (string | null) | Image;
2238
+ /**
2239
+ * Reusable supporting images for this option value; used after variant media is missing, then followed by product media.
2240
+ */
2162
2241
  images?: (string | Image)[] | null;
2163
2242
  metadata?: {
2164
2243
  [k: string]: unknown;
@@ -2181,13 +2260,16 @@ interface ProductOption {
2181
2260
  */
2182
2261
  product: string | Product;
2183
2262
  /**
2184
- * Option name (e.g. Color, Size)
2263
+ * Editable option display name for Admin and storefront copy. Changing it after creation does not change the public slug. (e.g. Color, Size)
2185
2264
  */
2186
2265
  title: string;
2187
2266
  /**
2188
2267
  * When enabled, the slug will auto-generate from the title field on save and autosave.
2189
2268
  */
2190
2269
  generateSlug?: boolean | null;
2270
+ /**
2271
+ * Compatibility URL token generated from the option name on create. It is fixed after creation.
2272
+ */
2191
2273
  slug: string;
2192
2274
  values?: {
2193
2275
  docs?: (string | ProductOptionValue)[];
@@ -2199,6 +2281,8 @@ interface ProductOption {
2199
2281
  deletedAt?: string | null;
2200
2282
  }
2201
2283
  /**
2284
+ * Product categories are a hierarchical taxonomy for navigation and grouping.
2285
+ *
2202
2286
  * This interface was referenced by `Config`'s JSON-Schema
2203
2287
  * via the `definition` "product-categories".
2204
2288
  */
@@ -2216,14 +2300,25 @@ interface ProductCategory {
2216
2300
  * Short summary for listing/cards
2217
2301
  */
2218
2302
  description?: string | null;
2303
+ /**
2304
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
2305
+ */
2219
2306
  image?: (string | null) | Image;
2307
+ /**
2308
+ * Optional parent category used for hierarchy and breadcrumbs.
2309
+ */
2220
2310
  parent?: (string | null) | ProductCategory;
2311
+ /**
2312
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
2313
+ */
2221
2314
  color?: string | null;
2222
2315
  updatedAt: string;
2223
2316
  createdAt: string;
2224
2317
  deletedAt?: string | null;
2225
2318
  }
2226
2319
  /**
2320
+ * Product tags are flat labels for search and loose grouping.
2321
+ *
2227
2322
  * This interface was referenced by `Config`'s JSON-Schema
2228
2323
  * via the `definition` "product-tags".
2229
2324
  */
@@ -2241,9 +2336,10 @@ interface ProductTag {
2241
2336
  * Short summary for listing/cards
2242
2337
  */
2243
2338
  description?: string | null;
2339
+ /**
2340
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
2341
+ */
2244
2342
  image?: (string | null) | Image;
2245
- parent?: (string | null) | ProductTag;
2246
- color?: string | null;
2247
2343
  updatedAt: string;
2248
2344
  createdAt: string;
2249
2345
  deletedAt?: string | null;
@@ -2319,7 +2415,7 @@ interface Brand {
2319
2415
  */
2320
2416
  description?: string | null;
2321
2417
  /**
2322
- * OG / Twitter Card image (1200×630 recommended)
2418
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
2323
2419
  */
2324
2420
  image?: (string | null) | BrandLogo;
2325
2421
  };
@@ -2347,7 +2443,7 @@ interface BrandLogo {
2347
2443
  id: string;
2348
2444
  tenant?: (string | null) | Tenant;
2349
2445
  /**
2350
- * Alternative text for users who cannot see the image and for search/share context.
2446
+ * Describe the image. Used for users who cannot see it, screen readers, and search/share previews.
2351
2447
  */
2352
2448
  alt?: string | null;
2353
2449
  /**
@@ -2442,6 +2538,7 @@ interface ShippingPolicy {
2442
2538
  id: string;
2443
2539
  _order?: string | null;
2444
2540
  tenant?: (string | null) | Tenant;
2541
+ displayLabel?: string | null;
2445
2542
  /**
2446
2543
  * e.g. Standard shipping, Large items
2447
2544
  */
@@ -2485,6 +2582,28 @@ interface ShippingPolicy {
2485
2582
  deletedAt?: string | null;
2486
2583
  }
2487
2584
  /**
2585
+ * This interface was referenced by `Config`'s JSON-Schema
2586
+ * via the `definition` "product-collection-items".
2587
+ */
2588
+ interface ProductCollectionItem {
2589
+ id: string;
2590
+ '_product-collection-items_items_order'?: string | null;
2591
+ _order?: string | null;
2592
+ tenant?: (string | null) | Tenant;
2593
+ /**
2594
+ * Product collection for this membership. It cannot be moved to another collection after creation.
2595
+ */
2596
+ collection: string | ProductCollection;
2597
+ /**
2598
+ * Product shown in this collection. Its display order inside the collection is managed by dragging this membership row.
2599
+ */
2600
+ product: string | Product;
2601
+ updatedAt: string;
2602
+ createdAt: string;
2603
+ }
2604
+ /**
2605
+ * Curated product grouping for campaigns, recommendations, and merchandising.
2606
+ *
2488
2607
  * This interface was referenced by `Config`'s JSON-Schema
2489
2608
  * via the `definition` "product-collections".
2490
2609
  */
@@ -2517,7 +2636,14 @@ interface ProductCollection {
2517
2636
  [k: string]: unknown;
2518
2637
  } | null;
2519
2638
  images?: (string | Image)[] | null;
2520
- products?: (string | Product)[] | null;
2639
+ /**
2640
+ * Collection item memberships. Public collections include only published products, and display order follows the dragged membership row order.
2641
+ */
2642
+ items?: {
2643
+ docs?: (string | ProductCollectionItem)[];
2644
+ hasNextPage?: boolean;
2645
+ totalDocs?: number;
2646
+ };
2521
2647
  seo?: {
2522
2648
  /**
2523
2649
  * Search result title (falls back to document title)
@@ -2545,7 +2671,7 @@ interface ProductCollection {
2545
2671
  */
2546
2672
  description?: string | null;
2547
2673
  /**
2548
- * OG / Twitter Card image (1200×630 recommended)
2674
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
2549
2675
  */
2550
2676
  image?: (string | null) | Image;
2551
2677
  };
@@ -2557,7 +2683,6 @@ interface ProductCollection {
2557
2683
  generateSlug?: boolean | null;
2558
2684
  slug?: string | null;
2559
2685
  status?: ('draft' | 'published' | 'archived') | null;
2560
- sortOrder?: ('manual' | 'alphabetical' | 'price-asc' | 'price-desc' | 'newest') | null;
2561
2686
  isFeatured?: boolean | null;
2562
2687
  publishedAt?: string | null;
2563
2688
  metadata?: {
@@ -2826,6 +2951,9 @@ interface CustomerGroup {
2826
2951
  * Short summary for listing/cards
2827
2952
  */
2828
2953
  description?: string | null;
2954
+ /**
2955
+ * Optional #RRGGBB display color for Admin surfaces.
2956
+ */
2829
2957
  color?: string | null;
2830
2958
  image?: (string | null) | Image;
2831
2959
  isActive?: boolean | null;
@@ -3539,6 +3667,9 @@ interface Article {
3539
3667
  authors?: (string | ArticleAuthor)[] | null;
3540
3668
  categories?: (string | ArticleCategory)[] | null;
3541
3669
  tags?: (string | ArticleTag)[] | null;
3670
+ /**
3671
+ * Links this content to videos from the Mux-backed videos collection.
3672
+ */
3542
3673
  videos?: (string | Video)[] | null;
3543
3674
  seo?: {
3544
3675
  /**
@@ -3567,7 +3698,7 @@ interface Article {
3567
3698
  */
3568
3699
  description?: string | null;
3569
3700
  /**
3570
- * OG / Twitter Card image (1200×630 recommended)
3701
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
3571
3702
  */
3572
3703
  image?: (string | null) | Image;
3573
3704
  };
@@ -3582,9 +3713,6 @@ interface Article {
3582
3713
  images?: (string | Image)[] | null;
3583
3714
  publishedAt?: string | null;
3584
3715
  isFeatured?: boolean | null;
3585
- /**
3586
- * Reading time (minutes)
3587
- */
3588
3716
  readingMinutes?: number | null;
3589
3717
  /**
3590
3718
  * OG/Twitter excerpt (280 chars)
@@ -3602,9 +3730,6 @@ interface Article {
3602
3730
  * Date when featured placement should end.
3603
3731
  */
3604
3732
  featuredUntil?: string | null;
3605
- /**
3606
- * Related articles
3607
- */
3608
3733
  relatedArticles?: (string | Article)[] | null;
3609
3734
  metadata?: {
3610
3735
  [k: string]: unknown;
@@ -3664,8 +3789,17 @@ interface ArticleCategory {
3664
3789
  * Short summary for listing/cards
3665
3790
  */
3666
3791
  description?: string | null;
3792
+ /**
3793
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
3794
+ */
3667
3795
  image?: (string | null) | Image;
3796
+ /**
3797
+ * Optional parent category used for hierarchy and breadcrumbs.
3798
+ */
3668
3799
  parent?: (string | null) | ArticleCategory;
3800
+ /**
3801
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
3802
+ */
3669
3803
  color?: string | null;
3670
3804
  updatedAt: string;
3671
3805
  createdAt: string;
@@ -3689,8 +3823,13 @@ interface ArticleTag {
3689
3823
  * Short summary for listing/cards
3690
3824
  */
3691
3825
  description?: string | null;
3826
+ /**
3827
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
3828
+ */
3692
3829
  image?: (string | null) | Image;
3693
- parent?: (string | null) | ArticleTag;
3830
+ /**
3831
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
3832
+ */
3694
3833
  color?: string | null;
3695
3834
  updatedAt: string;
3696
3835
  createdAt: string;
@@ -3728,6 +3867,9 @@ interface Document {
3728
3867
  };
3729
3868
  [k: string]: unknown;
3730
3869
  } | null;
3870
+ /**
3871
+ * Links this content to videos from the Mux-backed videos collection.
3872
+ */
3731
3873
  videos?: (string | Video)[] | null;
3732
3874
  /**
3733
3875
  * Document version (e.g. 1.0, 1.1, 2.0)
@@ -3784,7 +3926,7 @@ interface Document {
3784
3926
  */
3785
3927
  description?: string | null;
3786
3928
  /**
3787
- * OG / Twitter Card image (1200×630 recommended)
3929
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
3788
3930
  */
3789
3931
  image?: (string | null) | Image;
3790
3932
  };
@@ -3834,8 +3976,17 @@ interface DocumentCategory {
3834
3976
  * Short summary for listing/cards
3835
3977
  */
3836
3978
  description?: string | null;
3979
+ /**
3980
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
3981
+ */
3837
3982
  image?: (string | null) | Image;
3983
+ /**
3984
+ * Optional parent category used for hierarchy and breadcrumbs.
3985
+ */
3838
3986
  parent?: (string | null) | DocumentCategory;
3987
+ /**
3988
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
3989
+ */
3839
3990
  color?: string | null;
3840
3991
  updatedAt: string;
3841
3992
  createdAt: string;
@@ -3859,7 +4010,13 @@ interface DocumentType {
3859
4010
  * Short summary for listing/cards
3860
4011
  */
3861
4012
  description?: string | null;
4013
+ /**
4014
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4015
+ */
3862
4016
  image?: (string | null) | Image;
4017
+ /**
4018
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4019
+ */
3863
4020
  color?: string | null;
3864
4021
  updatedAt: string;
3865
4022
  createdAt: string;
@@ -3915,7 +4072,7 @@ interface Playlist {
3915
4072
  */
3916
4073
  description?: string | null;
3917
4074
  /**
3918
- * OG / Twitter Card image (1200×630 recommended)
4075
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
3919
4076
  */
3920
4077
  image?: (string | null) | Image;
3921
4078
  };
@@ -3954,8 +4111,17 @@ interface PlaylistCategory {
3954
4111
  * Short summary for listing/cards
3955
4112
  */
3956
4113
  description?: string | null;
4114
+ /**
4115
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4116
+ */
3957
4117
  image?: (string | null) | Image;
4118
+ /**
4119
+ * Optional parent category used for hierarchy and breadcrumbs.
4120
+ */
3958
4121
  parent?: (string | null) | PlaylistCategory;
4122
+ /**
4123
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4124
+ */
3959
4125
  color?: string | null;
3960
4126
  updatedAt: string;
3961
4127
  createdAt: string;
@@ -3979,8 +4145,13 @@ interface PlaylistTag {
3979
4145
  * Short summary for listing/cards
3980
4146
  */
3981
4147
  description?: string | null;
4148
+ /**
4149
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4150
+ */
3982
4151
  image?: (string | null) | Image;
3983
- parent?: (string | null) | PlaylistTag;
4152
+ /**
4153
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4154
+ */
3984
4155
  color?: string | null;
3985
4156
  updatedAt: string;
3986
4157
  createdAt: string;
@@ -4053,8 +4224,17 @@ interface TrackCategory {
4053
4224
  * Short summary for listing/cards
4054
4225
  */
4055
4226
  description?: string | null;
4227
+ /**
4228
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4229
+ */
4056
4230
  image?: (string | null) | Image;
4231
+ /**
4232
+ * Optional parent category used for hierarchy and breadcrumbs.
4233
+ */
4057
4234
  parent?: (string | null) | TrackCategory;
4235
+ /**
4236
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4237
+ */
4058
4238
  color?: string | null;
4059
4239
  updatedAt: string;
4060
4240
  createdAt: string;
@@ -4078,8 +4258,13 @@ interface TrackTag {
4078
4258
  * Short summary for listing/cards
4079
4259
  */
4080
4260
  description?: string | null;
4261
+ /**
4262
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4263
+ */
4081
4264
  image?: (string | null) | Image;
4082
- parent?: (string | null) | TrackTag;
4265
+ /**
4266
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4267
+ */
4083
4268
  color?: string | null;
4084
4269
  updatedAt: string;
4085
4270
  createdAt: string;
@@ -4127,12 +4312,12 @@ interface Gallery {
4127
4312
  * Short summary for listing/cards
4128
4313
  */
4129
4314
  description?: string | null;
4315
+ /**
4316
+ * Links this content to videos from the Mux-backed videos collection.
4317
+ */
4130
4318
  videos?: (string | Video)[] | null;
4131
4319
  categories?: (string | GalleryCategory)[] | null;
4132
4320
  tags?: (string | GalleryTag)[] | null;
4133
- /**
4134
- * Image items shown in this gallery. Their order controls gallery display order.
4135
- */
4136
4321
  items?: {
4137
4322
  docs?: (string | GalleryItem)[];
4138
4323
  hasNextPage?: boolean;
@@ -4165,7 +4350,7 @@ interface Gallery {
4165
4350
  */
4166
4351
  description?: string | null;
4167
4352
  /**
4168
- * OG / Twitter Card image (1200×630 recommended)
4353
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
4169
4354
  */
4170
4355
  image?: (string | null) | Image;
4171
4356
  };
@@ -4205,8 +4390,17 @@ interface GalleryCategory {
4205
4390
  * Short summary for listing/cards
4206
4391
  */
4207
4392
  description?: string | null;
4393
+ /**
4394
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4395
+ */
4208
4396
  image?: (string | null) | Image;
4397
+ /**
4398
+ * Optional parent category used for hierarchy and breadcrumbs.
4399
+ */
4209
4400
  parent?: (string | null) | GalleryCategory;
4401
+ /**
4402
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4403
+ */
4210
4404
  color?: string | null;
4211
4405
  updatedAt: string;
4212
4406
  createdAt: string;
@@ -4230,8 +4424,13 @@ interface GalleryTag {
4230
4424
  * Short summary for listing/cards
4231
4425
  */
4232
4426
  description?: string | null;
4427
+ /**
4428
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4429
+ */
4233
4430
  image?: (string | null) | Image;
4234
- parent?: (string | null) | GalleryTag;
4431
+ /**
4432
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4433
+ */
4235
4434
  color?: string | null;
4236
4435
  updatedAt: string;
4237
4436
  createdAt: string;
@@ -4289,9 +4488,6 @@ interface Link {
4289
4488
  * Secondary display line shown in cards, listings, and detail headers.
4290
4489
  */
4291
4490
  subtitle?: string | null;
4292
- /**
4293
- * Link URL (internal or external)
4294
- */
4295
4491
  url: string;
4296
4492
  /**
4297
4493
  * Short summary for listing/cards
@@ -4308,13 +4504,7 @@ interface Link {
4308
4504
  thumbnail?: (string | null) | Image;
4309
4505
  icon?: (string | null) | Image;
4310
4506
  publishedAt?: string | null;
4311
- /**
4312
- * Platform name for social or external links, such as Instagram or YouTube.
4313
- */
4314
4507
  platform?: string | null;
4315
- /**
4316
- * Whether clicks should open this link in a new tab.
4317
- */
4318
4508
  opensInNewTab?: boolean | null;
4319
4509
  /**
4320
4510
  * Controls whether rel=nofollow should be emitted for search engines.
@@ -4356,8 +4546,17 @@ interface LinkCategory {
4356
4546
  * Short summary for listing/cards
4357
4547
  */
4358
4548
  description?: string | null;
4549
+ /**
4550
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4551
+ */
4359
4552
  image?: (string | null) | Image;
4553
+ /**
4554
+ * Optional parent category used for hierarchy and breadcrumbs.
4555
+ */
4360
4556
  parent?: (string | null) | LinkCategory;
4557
+ /**
4558
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4559
+ */
4361
4560
  color?: string | null;
4362
4561
  updatedAt: string;
4363
4562
  createdAt: string;
@@ -4381,8 +4580,13 @@ interface LinkTag {
4381
4580
  * Short summary for listing/cards
4382
4581
  */
4383
4582
  description?: string | null;
4583
+ /**
4584
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4585
+ */
4384
4586
  image?: (string | null) | Image;
4385
- parent?: (string | null) | LinkTag;
4587
+ /**
4588
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4589
+ */
4386
4590
  color?: string | null;
4387
4591
  updatedAt: string;
4388
4592
  createdAt: string;
@@ -4404,6 +4608,9 @@ interface Canvase {
4404
4608
  * Short summary for listing/cards
4405
4609
  */
4406
4610
  description?: string | null;
4611
+ /**
4612
+ * Links this content to videos from the Mux-backed videos collection.
4613
+ */
4407
4614
  videos?: (string | Video)[] | null;
4408
4615
  canvas?: {
4409
4616
  [k: string]: unknown;
@@ -4437,7 +4644,7 @@ interface Canvase {
4437
4644
  */
4438
4645
  description?: string | null;
4439
4646
  /**
4440
- * OG / Twitter Card image (1200×630 recommended)
4647
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
4441
4648
  */
4442
4649
  image?: (string | null) | Image;
4443
4650
  };
@@ -4476,8 +4683,17 @@ interface CanvasCategory {
4476
4683
  * Short summary for listing/cards
4477
4684
  */
4478
4685
  description?: string | null;
4686
+ /**
4687
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4688
+ */
4479
4689
  image?: (string | null) | Image;
4690
+ /**
4691
+ * Optional parent category used for hierarchy and breadcrumbs.
4692
+ */
4480
4693
  parent?: (string | null) | CanvasCategory;
4694
+ /**
4695
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4696
+ */
4481
4697
  color?: string | null;
4482
4698
  updatedAt: string;
4483
4699
  createdAt: string;
@@ -4501,8 +4717,13 @@ interface CanvasTag {
4501
4717
  * Short summary for listing/cards
4502
4718
  */
4503
4719
  description?: string | null;
4720
+ /**
4721
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4722
+ */
4504
4723
  image?: (string | null) | Image;
4505
- parent?: (string | null) | CanvasTag;
4724
+ /**
4725
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4726
+ */
4506
4727
  color?: string | null;
4507
4728
  updatedAt: string;
4508
4729
  createdAt: string;
@@ -4526,6 +4747,9 @@ interface CanvasNodeType {
4526
4747
  * Short summary for listing/cards
4527
4748
  */
4528
4749
  description?: string | null;
4750
+ /**
4751
+ * Optional #RRGGBB display color for Admin surfaces.
4752
+ */
4529
4753
  color?: string | null;
4530
4754
  defaultSize?: {
4531
4755
  width?: number | null;
@@ -4591,6 +4815,9 @@ interface CanvasEdgeType {
4591
4815
  * Short summary for listing/cards
4592
4816
  */
4593
4817
  description?: string | null;
4818
+ /**
4819
+ * Optional #RRGGBB display color for Admin surfaces.
4820
+ */
4594
4821
  color?: string | null;
4595
4822
  strokeWidth?: number | null;
4596
4823
  isAnimated?: boolean | null;
@@ -4788,8 +5015,17 @@ interface PostCategory {
4788
5015
  * Short summary for listing/cards
4789
5016
  */
4790
5017
  description?: string | null;
5018
+ /**
5019
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
5020
+ */
4791
5021
  image?: (string | null) | Image;
5022
+ /**
5023
+ * Optional parent category used for hierarchy and breadcrumbs.
5024
+ */
4792
5025
  parent?: (string | null) | PostCategory;
5026
+ /**
5027
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
5028
+ */
4793
5029
  color?: string | null;
4794
5030
  updatedAt: string;
4795
5031
  createdAt: string;
@@ -5027,7 +5263,7 @@ interface EventCalendar {
5027
5263
  */
5028
5264
  description?: string | null;
5029
5265
  /**
5030
- * OG / Twitter Card image (1200×630 recommended)
5266
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
5031
5267
  */
5032
5268
  image?: (string | null) | Image;
5033
5269
  };
@@ -5042,6 +5278,9 @@ interface EventCalendar {
5042
5278
  * Default IANA time zone for this calendar.
5043
5279
  */
5044
5280
  timezone?: string | null;
5281
+ /**
5282
+ * Optional #RRGGBB display color for Admin surfaces.
5283
+ */
5045
5284
  color?: string | null;
5046
5285
  /**
5047
5286
  * Visibility for the tenant-global calendar.
@@ -5201,7 +5440,7 @@ interface Event {
5201
5440
  */
5202
5441
  description?: string | null;
5203
5442
  /**
5204
- * OG / Twitter Card image (1200×630 recommended)
5443
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
5205
5444
  */
5206
5445
  image?: (string | null) | Image;
5207
5446
  };
@@ -5255,8 +5494,17 @@ interface EventCategory {
5255
5494
  * Short summary for listing/cards
5256
5495
  */
5257
5496
  description?: string | null;
5497
+ /**
5498
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
5499
+ */
5258
5500
  image?: (string | null) | Image;
5501
+ /**
5502
+ * Optional parent category used for hierarchy and breadcrumbs.
5503
+ */
5259
5504
  parent?: (string | null) | EventCategory;
5505
+ /**
5506
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
5507
+ */
5260
5508
  color?: string | null;
5261
5509
  updatedAt: string;
5262
5510
  createdAt: string;
@@ -5280,8 +5528,13 @@ interface EventTag {
5280
5528
  * Short summary for listing/cards
5281
5529
  */
5282
5530
  description?: string | null;
5531
+ /**
5532
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
5533
+ */
5283
5534
  image?: (string | null) | Image;
5284
- parent?: (string | null) | EventTag;
5535
+ /**
5536
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
5537
+ */
5285
5538
  color?: string | null;
5286
5539
  updatedAt: string;
5287
5540
  createdAt: string;
@@ -6020,235 +6273,89 @@ interface WebhookDeliveriesSelect<T extends boolean = true> {
6020
6273
  interface TenantsSelect<T extends boolean = true> {
6021
6274
  name?: T;
6022
6275
  slug?: T;
6023
- owner?: T;
6024
- enabledFeatures?: T;
6025
- enabledRelationshipRecipes?: T;
6026
- featureVersion?: T;
6027
- provisioning?: T;
6028
- status?: T;
6029
- publishableKey?: T;
6030
- cors?: T | {
6031
- origin?: T;
6032
- id?: T;
6033
- };
6034
- members?: T;
6035
- updatedAt?: T;
6036
- createdAt?: T;
6037
- deletedAt?: T;
6038
- }
6039
- /**
6040
- * This interface was referenced by `Config`'s JSON-Schema
6041
- * via the `definition` "tenant-metadata_select".
6042
- */
6043
- interface TenantMetadataSelect<T extends boolean = true> {
6044
- tenant?: T;
6045
- siteInfo?: T | {
6046
- title?: T;
6047
- description?: T;
6048
- keywords?: T;
6049
- author?: T;
6050
- url?: T;
6051
- };
6052
- businessInfo?: T | {
6053
- businessRegistrationNumber?: T;
6054
- businessName?: T;
6055
- ceoName?: T;
6056
- businessAddress?: T;
6057
- businessEmail?: T;
6058
- onlineSalesRegistrationNumber?: T;
6059
- };
6060
- branding?: T | {
6061
- logo?: T;
6062
- logoDark?: T;
6063
- logomark?: T;
6064
- favicon?: T;
6065
- themeColor?: T;
6066
- };
6067
- seo?: T | {
6068
- robots?: T;
6069
- googleSiteVerification?: T;
6070
- bingSiteVerification?: T;
6071
- naverSiteVerification?: T;
6072
- canonicalUrl?: T;
6073
- };
6074
- analytics?: T | {
6075
- googleAnalyticsId?: T;
6076
- googleTagManagerId?: T;
6077
- facebookPixelId?: T;
6078
- linkedInPartnerId?: T;
6079
- };
6080
- openGraph?: T | {
6081
- ogTitle?: T;
6082
- ogDescription?: T;
6083
- ogImage?: T;
6084
- ogType?: T;
6085
- ogLocale?: T;
6086
- };
6087
- twitter?: T | {
6088
- twitterCard?: T;
6089
- twitterSite?: T;
6090
- twitterCreator?: T;
6091
- twitterTitle?: T;
6092
- twitterDescription?: T;
6093
- twitterImage?: T;
6094
- };
6095
- pwa?: T | {
6096
- shortName?: T;
6097
- backgroundColor?: T;
6098
- display?: T;
6099
- };
6100
- updatedAt?: T;
6101
- createdAt?: T;
6102
- deletedAt?: T;
6103
- }
6104
- /**
6105
- * This interface was referenced by `Config`'s JSON-Schema
6106
- * via the `definition` "tenant-web-analytics-config_select".
6107
- */
6108
- interface TenantWebAnalyticsConfigSelect<T extends boolean = true> {
6109
- tenant?: T;
6110
- enabled?: T;
6111
- allowedOrigins?: T | {
6112
- origin?: T;
6113
- id?: T;
6114
- };
6115
- timezone?: T;
6116
- tzLocked?: T;
6117
- updatedAt?: T;
6118
- createdAt?: T;
6119
- deletedAt?: T;
6120
- }
6121
- /**
6122
- * This interface was referenced by `Config`'s JSON-Schema
6123
- * via the `definition` "api-usage_select".
6124
- */
6125
- interface ApiUsageSelect<T extends boolean = true> {
6126
- tenant?: T;
6127
- month?: T;
6128
- apiCallCount?: T;
6129
- plan?: T;
6130
- apiCallLimit?: T;
6131
- storageUsedBytes?: T;
6132
- storageLimitBytes?: T;
6133
- documentCount?: T;
6134
- videoCount?: T;
6135
- videoMinutesUsed?: T;
6136
- deliveryMinutesUsed?: T;
6137
- aiGenerationCount?: T;
6138
- snapshottedAt?: T;
6139
- updatedAt?: T;
6140
- createdAt?: T;
6141
- }
6142
- /**
6143
- * This interface was referenced by `Config`'s JSON-Schema
6144
- * via the `definition` "tenant-analytics-daily_select".
6145
- */
6146
- interface TenantAnalyticsDailySelect<T extends boolean = true> {
6147
- tenant?: T;
6148
- date?: T;
6149
- pageviews?: T;
6150
- visitors?: T;
6151
- topPages?: T | {
6152
- pathname?: T;
6153
- views?: T;
6154
- id?: T;
6155
- };
6156
- topReferrers?: T | {
6157
- source?: T;
6158
- views?: T;
6159
- id?: T;
6160
- };
6161
- topEvents?: T | {
6162
- name?: T;
6163
- count?: T;
6164
- id?: T;
6165
- };
6166
- eventsDropped?: T | {
6167
- cardinality?: T;
6168
- schema?: T;
6169
- late?: T;
6276
+ previewDestinations?: T | {
6170
6277
  origin?: T;
6171
- key?: T;
6172
- rate?: T;
6173
- disabled?: T;
6174
- };
6175
- snapshottedAt?: T;
6176
- bucketTz?: T;
6177
- schemaShape?: T;
6178
- eventDetails?: T | {
6179
- eventName?: T;
6180
- count?: T;
6181
- schemaShape?: T;
6182
- dimensions?: T | {
6183
- dimension?: T;
6184
- values?: T | {
6185
- value?: T;
6186
- count?: T;
6187
- id?: T;
6188
- };
6189
- id?: T;
6190
- };
6191
- pages?: T | {
6192
- pathname?: T;
6193
- count?: T;
6194
- id?: T;
6195
- };
6196
- referrers?: T | {
6197
- source?: T;
6198
- count?: T;
6199
- id?: T;
6200
- };
6278
+ isPrimary?: T;
6279
+ draftPath?: T;
6201
6280
  id?: T;
6202
6281
  };
6203
- mcpUsage?: T | {
6204
- toolCalls?: T;
6205
- sessions?: T;
6206
- convertedSessions?: T;
6207
- conversionRate?: T;
6208
- successfulWrites?: T;
6209
- isPartial?: T;
6210
- topTools?: T | {
6211
- name?: T;
6212
- count?: T;
6213
- readOnly?: T;
6214
- id?: T;
6215
- };
6216
- transports?: T | {
6217
- name?: T;
6218
- count?: T;
6219
- id?: T;
6220
- };
6221
- httpDurationMs?: T | {
6222
- p50?: T;
6223
- p99?: T;
6224
- buckets?: T | {
6225
- bucket?: T;
6226
- label?: T;
6227
- count?: T;
6228
- id?: T;
6229
- };
6230
- };
6282
+ owner?: T;
6283
+ enabledFeatures?: T;
6284
+ enabledRelationshipRecipes?: T;
6285
+ featureVersion?: T;
6286
+ provisioning?: T;
6287
+ status?: T;
6288
+ publishableKey?: T;
6289
+ cors?: T | {
6290
+ origin?: T;
6291
+ id?: T;
6231
6292
  };
6293
+ members?: T;
6232
6294
  updatedAt?: T;
6233
6295
  createdAt?: T;
6296
+ deletedAt?: T;
6234
6297
  }
6235
6298
  /**
6236
6299
  * This interface was referenced by `Config`'s JSON-Schema
6237
- * via the `definition` "analytics-event-schemas_select".
6300
+ * via the `definition` "tenant-metadata_select".
6238
6301
  */
6239
- interface AnalyticsEventSchemasSelect<T extends boolean = true> {
6302
+ interface TenantMetadataSelect<T extends boolean = true> {
6240
6303
  tenant?: T;
6241
- eventName?: T;
6242
- enabled?: T;
6243
- dimensions?: T | {
6244
- key?: T;
6245
- type?: T;
6246
- allowedValues?: T;
6304
+ siteInfo?: T | {
6305
+ title?: T;
6247
6306
  description?: T;
6248
- id?: T;
6307
+ keywords?: T;
6308
+ author?: T;
6309
+ url?: T;
6310
+ };
6311
+ businessInfo?: T | {
6312
+ businessRegistrationNumber?: T;
6313
+ businessName?: T;
6314
+ ceoName?: T;
6315
+ businessAddress?: T;
6316
+ businessEmail?: T;
6317
+ onlineSalesRegistrationNumber?: T;
6318
+ };
6319
+ branding?: T | {
6320
+ logo?: T;
6321
+ logoDark?: T;
6322
+ logomark?: T;
6323
+ favicon?: T;
6324
+ themeColor?: T;
6325
+ };
6326
+ seo?: T | {
6327
+ robots?: T;
6328
+ googleSiteVerification?: T;
6329
+ bingSiteVerification?: T;
6330
+ naverSiteVerification?: T;
6331
+ canonicalUrl?: T;
6332
+ };
6333
+ analytics?: T | {
6334
+ googleAnalyticsId?: T;
6335
+ googleTagManagerId?: T;
6336
+ facebookPixelId?: T;
6337
+ linkedInPartnerId?: T;
6338
+ };
6339
+ openGraph?: T | {
6340
+ ogTitle?: T;
6341
+ ogDescription?: T;
6342
+ ogImage?: T;
6343
+ ogType?: T;
6344
+ ogLocale?: T;
6345
+ };
6346
+ twitter?: T | {
6347
+ twitterCard?: T;
6348
+ twitterSite?: T;
6349
+ twitterCreator?: T;
6350
+ twitterTitle?: T;
6351
+ twitterDescription?: T;
6352
+ twitterImage?: T;
6353
+ };
6354
+ pwa?: T | {
6355
+ shortName?: T;
6356
+ backgroundColor?: T;
6357
+ display?: T;
6249
6358
  };
6250
- createdBy?: T;
6251
- updatedBy?: T;
6252
6359
  updatedAt?: T;
6253
6360
  createdAt?: T;
6254
6361
  deletedAt?: T;
@@ -6475,6 +6582,158 @@ interface TenantLogosSelect<T extends boolean = true> {
6475
6582
  };
6476
6583
  };
6477
6584
  }
6585
+ /**
6586
+ * This interface was referenced by `Config`'s JSON-Schema
6587
+ * via the `definition` "tenant-web-analytics-config_select".
6588
+ */
6589
+ interface TenantWebAnalyticsConfigSelect<T extends boolean = true> {
6590
+ tenant?: T;
6591
+ enabled?: T;
6592
+ allowedOrigins?: T | {
6593
+ origin?: T;
6594
+ id?: T;
6595
+ };
6596
+ timezone?: T;
6597
+ tzLocked?: T;
6598
+ updatedAt?: T;
6599
+ createdAt?: T;
6600
+ deletedAt?: T;
6601
+ }
6602
+ /**
6603
+ * This interface was referenced by `Config`'s JSON-Schema
6604
+ * via the `definition` "tenant-analytics-daily_select".
6605
+ */
6606
+ interface TenantAnalyticsDailySelect<T extends boolean = true> {
6607
+ tenant?: T;
6608
+ date?: T;
6609
+ pageviews?: T;
6610
+ visitors?: T;
6611
+ topPages?: T | {
6612
+ pathname?: T;
6613
+ views?: T;
6614
+ id?: T;
6615
+ };
6616
+ topReferrers?: T | {
6617
+ source?: T;
6618
+ views?: T;
6619
+ id?: T;
6620
+ };
6621
+ topEvents?: T | {
6622
+ name?: T;
6623
+ count?: T;
6624
+ id?: T;
6625
+ };
6626
+ eventsDropped?: T | {
6627
+ cardinality?: T;
6628
+ schema?: T;
6629
+ late?: T;
6630
+ origin?: T;
6631
+ key?: T;
6632
+ rate?: T;
6633
+ disabled?: T;
6634
+ };
6635
+ snapshottedAt?: T;
6636
+ bucketTz?: T;
6637
+ schemaShape?: T;
6638
+ eventDetails?: T | {
6639
+ eventName?: T;
6640
+ count?: T;
6641
+ schemaShape?: T;
6642
+ dimensions?: T | {
6643
+ dimension?: T;
6644
+ values?: T | {
6645
+ value?: T;
6646
+ count?: T;
6647
+ id?: T;
6648
+ };
6649
+ id?: T;
6650
+ };
6651
+ pages?: T | {
6652
+ pathname?: T;
6653
+ count?: T;
6654
+ id?: T;
6655
+ };
6656
+ referrers?: T | {
6657
+ source?: T;
6658
+ count?: T;
6659
+ id?: T;
6660
+ };
6661
+ id?: T;
6662
+ };
6663
+ mcpUsage?: T | {
6664
+ toolCalls?: T;
6665
+ sessions?: T;
6666
+ convertedSessions?: T;
6667
+ conversionRate?: T;
6668
+ successfulWrites?: T;
6669
+ isPartial?: T;
6670
+ topTools?: T | {
6671
+ name?: T;
6672
+ count?: T;
6673
+ readOnly?: T;
6674
+ id?: T;
6675
+ };
6676
+ transports?: T | {
6677
+ name?: T;
6678
+ count?: T;
6679
+ id?: T;
6680
+ };
6681
+ httpDurationMs?: T | {
6682
+ p50?: T;
6683
+ p99?: T;
6684
+ buckets?: T | {
6685
+ bucket?: T;
6686
+ label?: T;
6687
+ count?: T;
6688
+ id?: T;
6689
+ };
6690
+ };
6691
+ };
6692
+ updatedAt?: T;
6693
+ createdAt?: T;
6694
+ }
6695
+ /**
6696
+ * This interface was referenced by `Config`'s JSON-Schema
6697
+ * via the `definition` "analytics-event-schemas_select".
6698
+ */
6699
+ interface AnalyticsEventSchemasSelect<T extends boolean = true> {
6700
+ tenant?: T;
6701
+ eventName?: T;
6702
+ enabled?: T;
6703
+ dimensions?: T | {
6704
+ key?: T;
6705
+ type?: T;
6706
+ allowedValues?: T;
6707
+ description?: T;
6708
+ id?: T;
6709
+ };
6710
+ createdBy?: T;
6711
+ updatedBy?: T;
6712
+ updatedAt?: T;
6713
+ createdAt?: T;
6714
+ deletedAt?: T;
6715
+ }
6716
+ /**
6717
+ * This interface was referenced by `Config`'s JSON-Schema
6718
+ * via the `definition` "api-usage_select".
6719
+ */
6720
+ interface ApiUsageSelect<T extends boolean = true> {
6721
+ tenant?: T;
6722
+ month?: T;
6723
+ apiCallCount?: T;
6724
+ plan?: T;
6725
+ apiCallLimit?: T;
6726
+ storageUsedBytes?: T;
6727
+ storageLimitBytes?: T;
6728
+ documentCount?: T;
6729
+ videoCount?: T;
6730
+ videoMinutesUsed?: T;
6731
+ deliveryMinutesUsed?: T;
6732
+ aiGenerationCount?: T;
6733
+ snapshottedAt?: T;
6734
+ updatedAt?: T;
6735
+ createdAt?: T;
6736
+ }
6478
6737
  /**
6479
6738
  * This interface was referenced by `Config`'s JSON-Schema
6480
6739
  * via the `definition` "products_select".
@@ -6495,7 +6754,7 @@ interface ProductsSelect<T extends boolean = true> {
6495
6754
  brand?: T;
6496
6755
  shippingPolicy?: T;
6497
6756
  weight?: T;
6498
- collections?: T;
6757
+ collectionItems?: T;
6499
6758
  minOrderQuantity?: T;
6500
6759
  maxOrderQuantity?: T;
6501
6760
  listingPrimaryOption?: T;
@@ -6509,7 +6768,6 @@ interface ProductsSelect<T extends boolean = true> {
6509
6768
  isPriceRange?: T;
6510
6769
  availableForSale?: T;
6511
6770
  };
6512
- metadata?: T;
6513
6771
  seo?: T | {
6514
6772
  title?: T;
6515
6773
  description?: T;
@@ -6528,9 +6786,9 @@ interface ProductsSelect<T extends boolean = true> {
6528
6786
  isSoldOut?: T;
6529
6787
  isFeatured?: T;
6530
6788
  publishedAt?: T;
6789
+ metadata?: T;
6531
6790
  vendor?: T;
6532
6791
  productType?: T;
6533
- handle?: T;
6534
6792
  updatedAt?: T;
6535
6793
  createdAt?: T;
6536
6794
  deletedAt?: T;
@@ -6591,6 +6849,7 @@ interface ProductOptionValuesSelect<T extends boolean = true> {
6591
6849
  _order?: T;
6592
6850
  tenant?: T;
6593
6851
  option?: T;
6852
+ displayLabel?: T;
6594
6853
  value?: T;
6595
6854
  swatchColor?: T;
6596
6855
  generateSlug?: T;
@@ -6632,8 +6891,6 @@ interface ProductTagsSelect<T extends boolean = true> {
6632
6891
  slug?: T;
6633
6892
  description?: T;
6634
6893
  image?: T;
6635
- parent?: T;
6636
- color?: T;
6637
6894
  updatedAt?: T;
6638
6895
  createdAt?: T;
6639
6896
  deletedAt?: T;
@@ -6650,7 +6907,7 @@ interface ProductCollectionsSelect<T extends boolean = true> {
6650
6907
  description?: T;
6651
6908
  content?: T;
6652
6909
  images?: T;
6653
- products?: T;
6910
+ items?: T;
6654
6911
  seo?: T | {
6655
6912
  title?: T;
6656
6913
  description?: T;
@@ -6666,7 +6923,6 @@ interface ProductCollectionsSelect<T extends boolean = true> {
6666
6923
  generateSlug?: T;
6667
6924
  slug?: T;
6668
6925
  status?: T;
6669
- sortOrder?: T;
6670
6926
  isFeatured?: T;
6671
6927
  publishedAt?: T;
6672
6928
  metadata?: T;
@@ -6674,6 +6930,19 @@ interface ProductCollectionsSelect<T extends boolean = true> {
6674
6930
  createdAt?: T;
6675
6931
  deletedAt?: T;
6676
6932
  }
6933
+ /**
6934
+ * This interface was referenced by `Config`'s JSON-Schema
6935
+ * via the `definition` "product-collection-items_select".
6936
+ */
6937
+ interface ProductCollectionItemsSelect<T extends boolean = true> {
6938
+ '_product-collection-items_items_order'?: T;
6939
+ _order?: T;
6940
+ tenant?: T;
6941
+ collection?: T;
6942
+ product?: T;
6943
+ updatedAt?: T;
6944
+ createdAt?: T;
6945
+ }
6677
6946
  /**
6678
6947
  * This interface was referenced by `Config`'s JSON-Schema
6679
6948
  * via the `definition` "brands_select".
@@ -7045,6 +7314,7 @@ interface ReturnItemsSelect<T extends boolean = true> {
7045
7314
  interface ShippingPoliciesSelect<T extends boolean = true> {
7046
7315
  _order?: T;
7047
7316
  tenant?: T;
7317
+ displayLabel?: T;
7048
7318
  title?: T;
7049
7319
  baseAmount?: T;
7050
7320
  freeShippingMinAmount?: T;
@@ -7453,7 +7723,6 @@ interface ArticleTagsSelect<T extends boolean = true> {
7453
7723
  slug?: T;
7454
7724
  description?: T;
7455
7725
  image?: T;
7456
- parent?: T;
7457
7726
  color?: T;
7458
7727
  updatedAt?: T;
7459
7728
  createdAt?: T;
@@ -7608,7 +7877,6 @@ interface PlaylistTagsSelect<T extends boolean = true> {
7608
7877
  slug?: T;
7609
7878
  description?: T;
7610
7879
  image?: T;
7611
- parent?: T;
7612
7880
  color?: T;
7613
7881
  updatedAt?: T;
7614
7882
  createdAt?: T;
@@ -7697,7 +7965,6 @@ interface TrackTagsSelect<T extends boolean = true> {
7697
7965
  slug?: T;
7698
7966
  description?: T;
7699
7967
  image?: T;
7700
- parent?: T;
7701
7968
  color?: T;
7702
7969
  updatedAt?: T;
7703
7970
  createdAt?: T;
@@ -7770,7 +8037,6 @@ interface GalleryTagsSelect<T extends boolean = true> {
7770
8037
  slug?: T;
7771
8038
  description?: T;
7772
8039
  image?: T;
7773
- parent?: T;
7774
8040
  color?: T;
7775
8041
  updatedAt?: T;
7776
8042
  createdAt?: T;
@@ -7857,7 +8123,6 @@ interface LinkTagsSelect<T extends boolean = true> {
7857
8123
  slug?: T;
7858
8124
  description?: T;
7859
8125
  image?: T;
7860
- parent?: T;
7861
8126
  color?: T;
7862
8127
  updatedAt?: T;
7863
8128
  createdAt?: T;
@@ -7999,7 +8264,6 @@ interface CanvasTagsSelect<T extends boolean = true> {
7999
8264
  slug?: T;
8000
8265
  description?: T;
8001
8266
  image?: T;
8002
- parent?: T;
8003
8267
  color?: T;
8004
8268
  updatedAt?: T;
8005
8269
  createdAt?: T;
@@ -8115,7 +8379,6 @@ interface VideoTagsSelect<T extends boolean = true> {
8115
8379
  slug?: T;
8116
8380
  description?: T;
8117
8381
  image?: T;
8118
- parent?: T;
8119
8382
  color?: T;
8120
8383
  updatedAt?: T;
8121
8384
  createdAt?: T;
@@ -8473,7 +8736,6 @@ interface EventTagsSelect<T extends boolean = true> {
8473
8736
  slug?: T;
8474
8737
  description?: T;
8475
8738
  image?: T;
8476
- parent?: T;
8477
8739
  color?: T;
8478
8740
  updatedAt?: T;
8479
8741
  createdAt?: T;
@@ -8787,4 +9049,4 @@ declare module 'payload' {
8787
9049
  }
8788
9050
  }
8789
9051
 
8790
- export type { Article as A, CustomerProfile as C, Document as D, Form as F, Image as I, Order as O, Post as P, Reaction as R, Tenant as T, Video as V, CustomerProfileList as a, Comment as b, Config as c, Cart as d, CartItem as e, Product as f, ArticleAuthor as g, ArticleCategory as h, ArticleTag as i, PostCategory as j, ProductVariant as k, OrderItem as l, Transaction as m, Fulfillment as n, Return as o };
9052
+ export type { Article as A, CustomerProfile as C, Document as D, Form as F, Image as I, Order as O, Product as P, Reaction as R, Tenant as T, Video as V, CustomerProfileList as a, ProductCollection as b, Post as c, Comment as d, Config as e, ArticleAuthor as f, ArticleCategory as g, ArticleTag as h, Cart as i, CartItem as j, PostCategory as k, ProductVariant as l, OrderItem as m, Transaction as n, Fulfillment as o, Return as p };