@01.software/sdk 0.30.1 → 0.32.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 (56) hide show
  1. package/README.md +160 -48
  2. package/dist/analytics/react.cjs.map +1 -1
  3. package/dist/analytics/react.js.map +1 -1
  4. package/dist/analytics.cjs.map +1 -1
  5. package/dist/analytics.js.map +1 -1
  6. package/dist/client.cjs +91 -62
  7. package/dist/client.cjs.map +1 -1
  8. package/dist/client.d.cts +6 -6
  9. package/dist/client.d.ts +6 -6
  10. package/dist/client.js +91 -62
  11. package/dist/client.js.map +1 -1
  12. package/dist/{collection-client-QPbwimkU.d.cts → collection-client-CORhppPb.d.cts} +3 -3
  13. package/dist/{collection-client-B9d9kr1d.d.ts → collection-client-DPGXnhoF.d.ts} +3 -3
  14. package/dist/{const-VZuk2tWc.d.cts → const-Brk2Ff0q.d.cts} +4 -4
  15. package/dist/{const-B75IFDRi.d.ts → const-DcY2_z9O.d.ts} +4 -4
  16. package/dist/{index-B2WbhEgT.d.cts → index-BGEhoDUs.d.cts} +1 -1
  17. package/dist/{index-B2WbhEgT.d.ts → index-BGEhoDUs.d.ts} +1 -1
  18. package/dist/index.cjs +214 -66
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +9 -9
  21. package/dist/index.d.ts +9 -9
  22. package/dist/index.js +214 -66
  23. package/dist/index.js.map +1 -1
  24. package/dist/{payload-types-DPjO_IbQ.d.cts → payload-types-DVK1QCeU.d.cts} +793 -531
  25. package/dist/{payload-types-DPjO_IbQ.d.ts → payload-types-DVK1QCeU.d.ts} +793 -531
  26. package/dist/query.cjs +63 -13
  27. package/dist/query.cjs.map +1 -1
  28. package/dist/query.d.cts +17 -17
  29. package/dist/query.d.ts +17 -17
  30. package/dist/query.js +63 -13
  31. package/dist/query.js.map +1 -1
  32. package/dist/realtime.cjs.map +1 -1
  33. package/dist/realtime.d.cts +2 -2
  34. package/dist/realtime.d.ts +2 -2
  35. package/dist/realtime.js.map +1 -1
  36. package/dist/server.cjs +176 -18
  37. package/dist/server.cjs.map +1 -1
  38. package/dist/server.d.cts +124 -7
  39. package/dist/server.d.ts +124 -7
  40. package/dist/server.js +176 -18
  41. package/dist/server.js.map +1 -1
  42. package/dist/{types-BwT0eeaz.d.cts → types-ByMrR_Z_.d.cts} +6 -2
  43. package/dist/{types-DuSKPiY5.d.ts → types-CAkWqIr6.d.cts} +82 -9
  44. package/dist/{types-Dlb2mwpX.d.cts → types-CYMSBkJC.d.ts} +82 -9
  45. package/dist/{types-1fBLrYU7.d.ts → types-DUPC7Xn6.d.ts} +6 -2
  46. package/dist/ui/form.d.cts +1 -1
  47. package/dist/ui/form.d.ts +1 -1
  48. package/dist/ui/video.d.cts +1 -1
  49. package/dist/ui/video.d.ts +1 -1
  50. package/dist/webhook.cjs +48 -1
  51. package/dist/webhook.cjs.map +1 -1
  52. package/dist/webhook.d.cts +73 -4
  53. package/dist/webhook.d.ts +73 -4
  54. package/dist/webhook.js +48 -1
  55. package/dist/webhook.js.map +1 -1
  56. package/package.json +3 -3
@@ -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;
@@ -2100,7 +2166,7 @@ interface ProductVariant {
2100
2166
  */
2101
2167
  stock?: number | null;
2102
2168
  /**
2103
- * Paid orders in transit (available quantity is stock - reservedStock)
2169
+ * Server-owned reserved stock derived from held inventory-reservations. Only payment, cancellation, delivery, and inventory reservation reconcile paths update it.
2104
2170
  */
2105
2171
  reservedStock?: number | null;
2106
2172
  /**
@@ -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,12 +2214,13 @@ 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
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
  /**
@@ -2161,7 +2231,13 @@ interface ProductOptionValue {
2161
2231
  * Compatibility URL token generated from the option-value label on create. It is fixed after creation.
2162
2232
  */
2163
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
+ */
2164
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
+ */
2165
2241
  images?: (string | Image)[] | null;
2166
2242
  metadata?: {
2167
2243
  [k: string]: unknown;
@@ -2205,6 +2281,8 @@ interface ProductOption {
2205
2281
  deletedAt?: string | null;
2206
2282
  }
2207
2283
  /**
2284
+ * Product categories are a hierarchical taxonomy for navigation and grouping.
2285
+ *
2208
2286
  * This interface was referenced by `Config`'s JSON-Schema
2209
2287
  * via the `definition` "product-categories".
2210
2288
  */
@@ -2222,14 +2300,25 @@ interface ProductCategory {
2222
2300
  * Short summary for listing/cards
2223
2301
  */
2224
2302
  description?: string | null;
2303
+ /**
2304
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
2305
+ */
2225
2306
  image?: (string | null) | Image;
2307
+ /**
2308
+ * Optional parent category used for hierarchy and breadcrumbs.
2309
+ */
2226
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
+ */
2227
2314
  color?: string | null;
2228
2315
  updatedAt: string;
2229
2316
  createdAt: string;
2230
2317
  deletedAt?: string | null;
2231
2318
  }
2232
2319
  /**
2320
+ * Product tags are flat labels for search and loose grouping.
2321
+ *
2233
2322
  * This interface was referenced by `Config`'s JSON-Schema
2234
2323
  * via the `definition` "product-tags".
2235
2324
  */
@@ -2247,9 +2336,10 @@ interface ProductTag {
2247
2336
  * Short summary for listing/cards
2248
2337
  */
2249
2338
  description?: string | null;
2339
+ /**
2340
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
2341
+ */
2250
2342
  image?: (string | null) | Image;
2251
- parent?: (string | null) | ProductTag;
2252
- color?: string | null;
2253
2343
  updatedAt: string;
2254
2344
  createdAt: string;
2255
2345
  deletedAt?: string | null;
@@ -2325,7 +2415,7 @@ interface Brand {
2325
2415
  */
2326
2416
  description?: string | null;
2327
2417
  /**
2328
- * 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.
2329
2419
  */
2330
2420
  image?: (string | null) | BrandLogo;
2331
2421
  };
@@ -2353,7 +2443,7 @@ interface BrandLogo {
2353
2443
  id: string;
2354
2444
  tenant?: (string | null) | Tenant;
2355
2445
  /**
2356
- * 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.
2357
2447
  */
2358
2448
  alt?: string | null;
2359
2449
  /**
@@ -2448,6 +2538,7 @@ interface ShippingPolicy {
2448
2538
  id: string;
2449
2539
  _order?: string | null;
2450
2540
  tenant?: (string | null) | Tenant;
2541
+ displayLabel?: string | null;
2451
2542
  /**
2452
2543
  * e.g. Standard shipping, Large items
2453
2544
  */
@@ -2491,6 +2582,28 @@ interface ShippingPolicy {
2491
2582
  deletedAt?: string | null;
2492
2583
  }
2493
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
+ *
2494
2607
  * This interface was referenced by `Config`'s JSON-Schema
2495
2608
  * via the `definition` "product-collections".
2496
2609
  */
@@ -2523,7 +2636,14 @@ interface ProductCollection {
2523
2636
  [k: string]: unknown;
2524
2637
  } | null;
2525
2638
  images?: (string | Image)[] | null;
2526
- 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
+ };
2527
2647
  seo?: {
2528
2648
  /**
2529
2649
  * Search result title (falls back to document title)
@@ -2551,7 +2671,7 @@ interface ProductCollection {
2551
2671
  */
2552
2672
  description?: string | null;
2553
2673
  /**
2554
- * 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.
2555
2675
  */
2556
2676
  image?: (string | null) | Image;
2557
2677
  };
@@ -2563,7 +2683,6 @@ interface ProductCollection {
2563
2683
  generateSlug?: boolean | null;
2564
2684
  slug?: string | null;
2565
2685
  status?: ('draft' | 'published' | 'archived') | null;
2566
- sortOrder?: ('manual' | 'alphabetical' | 'price-asc' | 'price-desc' | 'newest') | null;
2567
2686
  isFeatured?: boolean | null;
2568
2687
  publishedAt?: string | null;
2569
2688
  metadata?: {
@@ -2832,6 +2951,9 @@ interface CustomerGroup {
2832
2951
  * Short summary for listing/cards
2833
2952
  */
2834
2953
  description?: string | null;
2954
+ /**
2955
+ * Optional #RRGGBB display color for Admin surfaces.
2956
+ */
2835
2957
  color?: string | null;
2836
2958
  image?: (string | null) | Image;
2837
2959
  isActive?: boolean | null;
@@ -3246,7 +3368,13 @@ interface InventoryReservation {
3246
3368
  orderItem: string | OrderItem;
3247
3369
  variant: string | ProductVariant;
3248
3370
  quantity: number;
3371
+ /**
3372
+ * Reservation lifecycle status. Payment, cancellation, and delivery server paths transition it through held, released, and consumed.
3373
+ */
3249
3374
  status: 'held' | 'released' | 'consumed';
3375
+ /**
3376
+ * Timestamp of the latest reservation status change made by a server path.
3377
+ */
3250
3378
  statusChangedAt?: string | null;
3251
3379
  updatedAt: string;
3252
3380
  createdAt: string;
@@ -3545,6 +3673,9 @@ interface Article {
3545
3673
  authors?: (string | ArticleAuthor)[] | null;
3546
3674
  categories?: (string | ArticleCategory)[] | null;
3547
3675
  tags?: (string | ArticleTag)[] | null;
3676
+ /**
3677
+ * Links this content to videos from the Mux-backed videos collection.
3678
+ */
3548
3679
  videos?: (string | Video)[] | null;
3549
3680
  seo?: {
3550
3681
  /**
@@ -3573,7 +3704,7 @@ interface Article {
3573
3704
  */
3574
3705
  description?: string | null;
3575
3706
  /**
3576
- * OG / Twitter Card image (1200×630 recommended)
3707
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
3577
3708
  */
3578
3709
  image?: (string | null) | Image;
3579
3710
  };
@@ -3588,9 +3719,6 @@ interface Article {
3588
3719
  images?: (string | Image)[] | null;
3589
3720
  publishedAt?: string | null;
3590
3721
  isFeatured?: boolean | null;
3591
- /**
3592
- * Reading time (minutes)
3593
- */
3594
3722
  readingMinutes?: number | null;
3595
3723
  /**
3596
3724
  * OG/Twitter excerpt (280 chars)
@@ -3608,9 +3736,6 @@ interface Article {
3608
3736
  * Date when featured placement should end.
3609
3737
  */
3610
3738
  featuredUntil?: string | null;
3611
- /**
3612
- * Related articles
3613
- */
3614
3739
  relatedArticles?: (string | Article)[] | null;
3615
3740
  metadata?: {
3616
3741
  [k: string]: unknown;
@@ -3670,8 +3795,17 @@ interface ArticleCategory {
3670
3795
  * Short summary for listing/cards
3671
3796
  */
3672
3797
  description?: string | null;
3798
+ /**
3799
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
3800
+ */
3673
3801
  image?: (string | null) | Image;
3802
+ /**
3803
+ * Optional parent category used for hierarchy and breadcrumbs.
3804
+ */
3674
3805
  parent?: (string | null) | ArticleCategory;
3806
+ /**
3807
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
3808
+ */
3675
3809
  color?: string | null;
3676
3810
  updatedAt: string;
3677
3811
  createdAt: string;
@@ -3695,8 +3829,13 @@ interface ArticleTag {
3695
3829
  * Short summary for listing/cards
3696
3830
  */
3697
3831
  description?: string | null;
3832
+ /**
3833
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
3834
+ */
3698
3835
  image?: (string | null) | Image;
3699
- parent?: (string | null) | ArticleTag;
3836
+ /**
3837
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
3838
+ */
3700
3839
  color?: string | null;
3701
3840
  updatedAt: string;
3702
3841
  createdAt: string;
@@ -3734,6 +3873,9 @@ interface Document {
3734
3873
  };
3735
3874
  [k: string]: unknown;
3736
3875
  } | null;
3876
+ /**
3877
+ * Links this content to videos from the Mux-backed videos collection.
3878
+ */
3737
3879
  videos?: (string | Video)[] | null;
3738
3880
  /**
3739
3881
  * Document version (e.g. 1.0, 1.1, 2.0)
@@ -3790,7 +3932,7 @@ interface Document {
3790
3932
  */
3791
3933
  description?: string | null;
3792
3934
  /**
3793
- * OG / Twitter Card image (1200×630 recommended)
3935
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
3794
3936
  */
3795
3937
  image?: (string | null) | Image;
3796
3938
  };
@@ -3840,8 +3982,17 @@ interface DocumentCategory {
3840
3982
  * Short summary for listing/cards
3841
3983
  */
3842
3984
  description?: string | null;
3985
+ /**
3986
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
3987
+ */
3843
3988
  image?: (string | null) | Image;
3989
+ /**
3990
+ * Optional parent category used for hierarchy and breadcrumbs.
3991
+ */
3844
3992
  parent?: (string | null) | DocumentCategory;
3993
+ /**
3994
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
3995
+ */
3845
3996
  color?: string | null;
3846
3997
  updatedAt: string;
3847
3998
  createdAt: string;
@@ -3865,7 +4016,13 @@ interface DocumentType {
3865
4016
  * Short summary for listing/cards
3866
4017
  */
3867
4018
  description?: string | null;
4019
+ /**
4020
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4021
+ */
3868
4022
  image?: (string | null) | Image;
4023
+ /**
4024
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4025
+ */
3869
4026
  color?: string | null;
3870
4027
  updatedAt: string;
3871
4028
  createdAt: string;
@@ -3921,7 +4078,7 @@ interface Playlist {
3921
4078
  */
3922
4079
  description?: string | null;
3923
4080
  /**
3924
- * OG / Twitter Card image (1200×630 recommended)
4081
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
3925
4082
  */
3926
4083
  image?: (string | null) | Image;
3927
4084
  };
@@ -3960,8 +4117,17 @@ interface PlaylistCategory {
3960
4117
  * Short summary for listing/cards
3961
4118
  */
3962
4119
  description?: string | null;
4120
+ /**
4121
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4122
+ */
3963
4123
  image?: (string | null) | Image;
4124
+ /**
4125
+ * Optional parent category used for hierarchy and breadcrumbs.
4126
+ */
3964
4127
  parent?: (string | null) | PlaylistCategory;
4128
+ /**
4129
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4130
+ */
3965
4131
  color?: string | null;
3966
4132
  updatedAt: string;
3967
4133
  createdAt: string;
@@ -3985,8 +4151,13 @@ interface PlaylistTag {
3985
4151
  * Short summary for listing/cards
3986
4152
  */
3987
4153
  description?: string | null;
4154
+ /**
4155
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4156
+ */
3988
4157
  image?: (string | null) | Image;
3989
- parent?: (string | null) | PlaylistTag;
4158
+ /**
4159
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4160
+ */
3990
4161
  color?: string | null;
3991
4162
  updatedAt: string;
3992
4163
  createdAt: string;
@@ -4059,8 +4230,17 @@ interface TrackCategory {
4059
4230
  * Short summary for listing/cards
4060
4231
  */
4061
4232
  description?: string | null;
4233
+ /**
4234
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4235
+ */
4062
4236
  image?: (string | null) | Image;
4237
+ /**
4238
+ * Optional parent category used for hierarchy and breadcrumbs.
4239
+ */
4063
4240
  parent?: (string | null) | TrackCategory;
4241
+ /**
4242
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4243
+ */
4064
4244
  color?: string | null;
4065
4245
  updatedAt: string;
4066
4246
  createdAt: string;
@@ -4084,8 +4264,13 @@ interface TrackTag {
4084
4264
  * Short summary for listing/cards
4085
4265
  */
4086
4266
  description?: string | null;
4267
+ /**
4268
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4269
+ */
4087
4270
  image?: (string | null) | Image;
4088
- parent?: (string | null) | TrackTag;
4271
+ /**
4272
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4273
+ */
4089
4274
  color?: string | null;
4090
4275
  updatedAt: string;
4091
4276
  createdAt: string;
@@ -4133,12 +4318,12 @@ interface Gallery {
4133
4318
  * Short summary for listing/cards
4134
4319
  */
4135
4320
  description?: string | null;
4321
+ /**
4322
+ * Links this content to videos from the Mux-backed videos collection.
4323
+ */
4136
4324
  videos?: (string | Video)[] | null;
4137
4325
  categories?: (string | GalleryCategory)[] | null;
4138
4326
  tags?: (string | GalleryTag)[] | null;
4139
- /**
4140
- * Image items shown in this gallery. Their order controls gallery display order.
4141
- */
4142
4327
  items?: {
4143
4328
  docs?: (string | GalleryItem)[];
4144
4329
  hasNextPage?: boolean;
@@ -4171,7 +4356,7 @@ interface Gallery {
4171
4356
  */
4172
4357
  description?: string | null;
4173
4358
  /**
4174
- * OG / Twitter Card image (1200×630 recommended)
4359
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
4175
4360
  */
4176
4361
  image?: (string | null) | Image;
4177
4362
  };
@@ -4211,8 +4396,17 @@ interface GalleryCategory {
4211
4396
  * Short summary for listing/cards
4212
4397
  */
4213
4398
  description?: string | null;
4399
+ /**
4400
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4401
+ */
4214
4402
  image?: (string | null) | Image;
4403
+ /**
4404
+ * Optional parent category used for hierarchy and breadcrumbs.
4405
+ */
4215
4406
  parent?: (string | null) | GalleryCategory;
4407
+ /**
4408
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4409
+ */
4216
4410
  color?: string | null;
4217
4411
  updatedAt: string;
4218
4412
  createdAt: string;
@@ -4236,8 +4430,13 @@ interface GalleryTag {
4236
4430
  * Short summary for listing/cards
4237
4431
  */
4238
4432
  description?: string | null;
4433
+ /**
4434
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4435
+ */
4239
4436
  image?: (string | null) | Image;
4240
- parent?: (string | null) | GalleryTag;
4437
+ /**
4438
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4439
+ */
4241
4440
  color?: string | null;
4242
4441
  updatedAt: string;
4243
4442
  createdAt: string;
@@ -4295,9 +4494,6 @@ interface Link {
4295
4494
  * Secondary display line shown in cards, listings, and detail headers.
4296
4495
  */
4297
4496
  subtitle?: string | null;
4298
- /**
4299
- * Link URL (internal or external)
4300
- */
4301
4497
  url: string;
4302
4498
  /**
4303
4499
  * Short summary for listing/cards
@@ -4314,13 +4510,7 @@ interface Link {
4314
4510
  thumbnail?: (string | null) | Image;
4315
4511
  icon?: (string | null) | Image;
4316
4512
  publishedAt?: string | null;
4317
- /**
4318
- * Platform name for social or external links, such as Instagram or YouTube.
4319
- */
4320
4513
  platform?: string | null;
4321
- /**
4322
- * Whether clicks should open this link in a new tab.
4323
- */
4324
4514
  opensInNewTab?: boolean | null;
4325
4515
  /**
4326
4516
  * Controls whether rel=nofollow should be emitted for search engines.
@@ -4362,8 +4552,17 @@ interface LinkCategory {
4362
4552
  * Short summary for listing/cards
4363
4553
  */
4364
4554
  description?: string | null;
4555
+ /**
4556
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4557
+ */
4365
4558
  image?: (string | null) | Image;
4559
+ /**
4560
+ * Optional parent category used for hierarchy and breadcrumbs.
4561
+ */
4366
4562
  parent?: (string | null) | LinkCategory;
4563
+ /**
4564
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4565
+ */
4367
4566
  color?: string | null;
4368
4567
  updatedAt: string;
4369
4568
  createdAt: string;
@@ -4387,8 +4586,13 @@ interface LinkTag {
4387
4586
  * Short summary for listing/cards
4388
4587
  */
4389
4588
  description?: string | null;
4589
+ /**
4590
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4591
+ */
4390
4592
  image?: (string | null) | Image;
4391
- parent?: (string | null) | LinkTag;
4593
+ /**
4594
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4595
+ */
4392
4596
  color?: string | null;
4393
4597
  updatedAt: string;
4394
4598
  createdAt: string;
@@ -4410,6 +4614,9 @@ interface Canvase {
4410
4614
  * Short summary for listing/cards
4411
4615
  */
4412
4616
  description?: string | null;
4617
+ /**
4618
+ * Links this content to videos from the Mux-backed videos collection.
4619
+ */
4413
4620
  videos?: (string | Video)[] | null;
4414
4621
  canvas?: {
4415
4622
  [k: string]: unknown;
@@ -4443,7 +4650,7 @@ interface Canvase {
4443
4650
  */
4444
4651
  description?: string | null;
4445
4652
  /**
4446
- * OG / Twitter Card image (1200×630 recommended)
4653
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
4447
4654
  */
4448
4655
  image?: (string | null) | Image;
4449
4656
  };
@@ -4482,8 +4689,17 @@ interface CanvasCategory {
4482
4689
  * Short summary for listing/cards
4483
4690
  */
4484
4691
  description?: string | null;
4692
+ /**
4693
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4694
+ */
4485
4695
  image?: (string | null) | Image;
4696
+ /**
4697
+ * Optional parent category used for hierarchy and breadcrumbs.
4698
+ */
4486
4699
  parent?: (string | null) | CanvasCategory;
4700
+ /**
4701
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4702
+ */
4487
4703
  color?: string | null;
4488
4704
  updatedAt: string;
4489
4705
  createdAt: string;
@@ -4507,8 +4723,13 @@ interface CanvasTag {
4507
4723
  * Short summary for listing/cards
4508
4724
  */
4509
4725
  description?: string | null;
4726
+ /**
4727
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
4728
+ */
4510
4729
  image?: (string | null) | Image;
4511
- parent?: (string | null) | CanvasTag;
4730
+ /**
4731
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
4732
+ */
4512
4733
  color?: string | null;
4513
4734
  updatedAt: string;
4514
4735
  createdAt: string;
@@ -4532,6 +4753,9 @@ interface CanvasNodeType {
4532
4753
  * Short summary for listing/cards
4533
4754
  */
4534
4755
  description?: string | null;
4756
+ /**
4757
+ * Optional #RRGGBB display color for Admin surfaces.
4758
+ */
4535
4759
  color?: string | null;
4536
4760
  defaultSize?: {
4537
4761
  width?: number | null;
@@ -4597,6 +4821,9 @@ interface CanvasEdgeType {
4597
4821
  * Short summary for listing/cards
4598
4822
  */
4599
4823
  description?: string | null;
4824
+ /**
4825
+ * Optional #RRGGBB display color for Admin surfaces.
4826
+ */
4600
4827
  color?: string | null;
4601
4828
  strokeWidth?: number | null;
4602
4829
  isAnimated?: boolean | null;
@@ -4794,8 +5021,17 @@ interface PostCategory {
4794
5021
  * Short summary for listing/cards
4795
5022
  */
4796
5023
  description?: string | null;
5024
+ /**
5025
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
5026
+ */
4797
5027
  image?: (string | null) | Image;
5028
+ /**
5029
+ * Optional parent category used for hierarchy and breadcrumbs.
5030
+ */
4798
5031
  parent?: (string | null) | PostCategory;
5032
+ /**
5033
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
5034
+ */
4799
5035
  color?: string | null;
4800
5036
  updatedAt: string;
4801
5037
  createdAt: string;
@@ -5033,7 +5269,7 @@ interface EventCalendar {
5033
5269
  */
5034
5270
  description?: string | null;
5035
5271
  /**
5036
- * OG / Twitter Card image (1200×630 recommended)
5272
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
5037
5273
  */
5038
5274
  image?: (string | null) | Image;
5039
5275
  };
@@ -5048,6 +5284,9 @@ interface EventCalendar {
5048
5284
  * Default IANA time zone for this calendar.
5049
5285
  */
5050
5286
  timezone?: string | null;
5287
+ /**
5288
+ * Optional #RRGGBB display color for Admin surfaces.
5289
+ */
5051
5290
  color?: string | null;
5052
5291
  /**
5053
5292
  * Visibility for the tenant-global calendar.
@@ -5207,7 +5446,7 @@ interface Event {
5207
5446
  */
5208
5447
  description?: string | null;
5209
5448
  /**
5210
- * OG / Twitter Card image (1200×630 recommended)
5449
+ * OG / Twitter Card image (1200×630 recommended). Leaving this empty does not set it automatically from collection media.
5211
5450
  */
5212
5451
  image?: (string | null) | Image;
5213
5452
  };
@@ -5261,8 +5500,17 @@ interface EventCategory {
5261
5500
  * Short summary for listing/cards
5262
5501
  */
5263
5502
  description?: string | null;
5503
+ /**
5504
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
5505
+ */
5264
5506
  image?: (string | null) | Image;
5507
+ /**
5508
+ * Optional parent category used for hierarchy and breadcrumbs.
5509
+ */
5265
5510
  parent?: (string | null) | EventCategory;
5511
+ /**
5512
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
5513
+ */
5266
5514
  color?: string | null;
5267
5515
  updatedAt: string;
5268
5516
  createdAt: string;
@@ -5286,8 +5534,13 @@ interface EventTag {
5286
5534
  * Short summary for listing/cards
5287
5535
  */
5288
5536
  description?: string | null;
5537
+ /**
5538
+ * Single representative taxonomy image. Add domain-specific fields for multiple images such as thumbnail and hero variants.
5539
+ */
5289
5540
  image?: (string | null) | Image;
5290
- parent?: (string | null) | EventTag;
5541
+ /**
5542
+ * Optional #RRGGBB hex color for taxonomy badges or filter UI. This does not replace the representative image.
5543
+ */
5291
5544
  color?: string | null;
5292
5545
  updatedAt: string;
5293
5546
  createdAt: string;
@@ -6026,235 +6279,89 @@ interface WebhookDeliveriesSelect<T extends boolean = true> {
6026
6279
  interface TenantsSelect<T extends boolean = true> {
6027
6280
  name?: T;
6028
6281
  slug?: T;
6029
- owner?: T;
6030
- enabledFeatures?: T;
6031
- enabledRelationshipRecipes?: T;
6032
- featureVersion?: T;
6033
- provisioning?: T;
6034
- status?: T;
6035
- publishableKey?: T;
6036
- cors?: T | {
6037
- origin?: T;
6038
- id?: T;
6039
- };
6040
- members?: T;
6041
- updatedAt?: T;
6042
- createdAt?: T;
6043
- deletedAt?: T;
6044
- }
6045
- /**
6046
- * This interface was referenced by `Config`'s JSON-Schema
6047
- * via the `definition` "tenant-metadata_select".
6048
- */
6049
- interface TenantMetadataSelect<T extends boolean = true> {
6050
- tenant?: T;
6051
- siteInfo?: T | {
6052
- title?: T;
6053
- description?: T;
6054
- keywords?: T;
6055
- author?: T;
6056
- url?: T;
6057
- };
6058
- businessInfo?: T | {
6059
- businessRegistrationNumber?: T;
6060
- businessName?: T;
6061
- ceoName?: T;
6062
- businessAddress?: T;
6063
- businessEmail?: T;
6064
- onlineSalesRegistrationNumber?: T;
6065
- };
6066
- branding?: T | {
6067
- logo?: T;
6068
- logoDark?: T;
6069
- logomark?: T;
6070
- favicon?: T;
6071
- themeColor?: T;
6072
- };
6073
- seo?: T | {
6074
- robots?: T;
6075
- googleSiteVerification?: T;
6076
- bingSiteVerification?: T;
6077
- naverSiteVerification?: T;
6078
- canonicalUrl?: T;
6079
- };
6080
- analytics?: T | {
6081
- googleAnalyticsId?: T;
6082
- googleTagManagerId?: T;
6083
- facebookPixelId?: T;
6084
- linkedInPartnerId?: T;
6085
- };
6086
- openGraph?: T | {
6087
- ogTitle?: T;
6088
- ogDescription?: T;
6089
- ogImage?: T;
6090
- ogType?: T;
6091
- ogLocale?: T;
6092
- };
6093
- twitter?: T | {
6094
- twitterCard?: T;
6095
- twitterSite?: T;
6096
- twitterCreator?: T;
6097
- twitterTitle?: T;
6098
- twitterDescription?: T;
6099
- twitterImage?: T;
6100
- };
6101
- pwa?: T | {
6102
- shortName?: T;
6103
- backgroundColor?: T;
6104
- display?: T;
6105
- };
6106
- updatedAt?: T;
6107
- createdAt?: T;
6108
- deletedAt?: T;
6109
- }
6110
- /**
6111
- * This interface was referenced by `Config`'s JSON-Schema
6112
- * via the `definition` "tenant-web-analytics-config_select".
6113
- */
6114
- interface TenantWebAnalyticsConfigSelect<T extends boolean = true> {
6115
- tenant?: T;
6116
- enabled?: T;
6117
- allowedOrigins?: T | {
6118
- origin?: T;
6119
- id?: T;
6120
- };
6121
- timezone?: T;
6122
- tzLocked?: T;
6123
- updatedAt?: T;
6124
- createdAt?: T;
6125
- deletedAt?: T;
6126
- }
6127
- /**
6128
- * This interface was referenced by `Config`'s JSON-Schema
6129
- * via the `definition` "api-usage_select".
6130
- */
6131
- interface ApiUsageSelect<T extends boolean = true> {
6132
- tenant?: T;
6133
- month?: T;
6134
- apiCallCount?: T;
6135
- plan?: T;
6136
- apiCallLimit?: T;
6137
- storageUsedBytes?: T;
6138
- storageLimitBytes?: T;
6139
- documentCount?: T;
6140
- videoCount?: T;
6141
- videoMinutesUsed?: T;
6142
- deliveryMinutesUsed?: T;
6143
- aiGenerationCount?: T;
6144
- snapshottedAt?: T;
6145
- updatedAt?: T;
6146
- createdAt?: T;
6147
- }
6148
- /**
6149
- * This interface was referenced by `Config`'s JSON-Schema
6150
- * via the `definition` "tenant-analytics-daily_select".
6151
- */
6152
- interface TenantAnalyticsDailySelect<T extends boolean = true> {
6153
- tenant?: T;
6154
- date?: T;
6155
- pageviews?: T;
6156
- visitors?: T;
6157
- topPages?: T | {
6158
- pathname?: T;
6159
- views?: T;
6160
- id?: T;
6161
- };
6162
- topReferrers?: T | {
6163
- source?: T;
6164
- views?: T;
6165
- id?: T;
6166
- };
6167
- topEvents?: T | {
6168
- name?: T;
6169
- count?: T;
6170
- id?: T;
6171
- };
6172
- eventsDropped?: T | {
6173
- cardinality?: T;
6174
- schema?: T;
6175
- late?: T;
6282
+ previewDestinations?: T | {
6176
6283
  origin?: T;
6177
- key?: T;
6178
- rate?: T;
6179
- disabled?: T;
6180
- };
6181
- snapshottedAt?: T;
6182
- bucketTz?: T;
6183
- schemaShape?: T;
6184
- eventDetails?: T | {
6185
- eventName?: T;
6186
- count?: T;
6187
- schemaShape?: T;
6188
- dimensions?: T | {
6189
- dimension?: T;
6190
- values?: T | {
6191
- value?: T;
6192
- count?: T;
6193
- id?: T;
6194
- };
6195
- id?: T;
6196
- };
6197
- pages?: T | {
6198
- pathname?: T;
6199
- count?: T;
6200
- id?: T;
6201
- };
6202
- referrers?: T | {
6203
- source?: T;
6204
- count?: T;
6205
- id?: T;
6206
- };
6284
+ isPrimary?: T;
6285
+ draftPath?: T;
6207
6286
  id?: T;
6208
6287
  };
6209
- mcpUsage?: T | {
6210
- toolCalls?: T;
6211
- sessions?: T;
6212
- convertedSessions?: T;
6213
- conversionRate?: T;
6214
- successfulWrites?: T;
6215
- isPartial?: T;
6216
- topTools?: T | {
6217
- name?: T;
6218
- count?: T;
6219
- readOnly?: T;
6220
- id?: T;
6221
- };
6222
- transports?: T | {
6223
- name?: T;
6224
- count?: T;
6225
- id?: T;
6226
- };
6227
- httpDurationMs?: T | {
6228
- p50?: T;
6229
- p99?: T;
6230
- buckets?: T | {
6231
- bucket?: T;
6232
- label?: T;
6233
- count?: T;
6234
- id?: T;
6235
- };
6236
- };
6288
+ owner?: T;
6289
+ enabledFeatures?: T;
6290
+ enabledRelationshipRecipes?: T;
6291
+ featureVersion?: T;
6292
+ provisioning?: T;
6293
+ status?: T;
6294
+ publishableKey?: T;
6295
+ cors?: T | {
6296
+ origin?: T;
6297
+ id?: T;
6237
6298
  };
6299
+ members?: T;
6238
6300
  updatedAt?: T;
6239
6301
  createdAt?: T;
6302
+ deletedAt?: T;
6240
6303
  }
6241
6304
  /**
6242
6305
  * This interface was referenced by `Config`'s JSON-Schema
6243
- * via the `definition` "analytics-event-schemas_select".
6306
+ * via the `definition` "tenant-metadata_select".
6244
6307
  */
6245
- interface AnalyticsEventSchemasSelect<T extends boolean = true> {
6308
+ interface TenantMetadataSelect<T extends boolean = true> {
6246
6309
  tenant?: T;
6247
- eventName?: T;
6248
- enabled?: T;
6249
- dimensions?: T | {
6250
- key?: T;
6251
- type?: T;
6252
- allowedValues?: T;
6310
+ siteInfo?: T | {
6311
+ title?: T;
6253
6312
  description?: T;
6254
- id?: T;
6313
+ keywords?: T;
6314
+ author?: T;
6315
+ url?: T;
6316
+ };
6317
+ businessInfo?: T | {
6318
+ businessRegistrationNumber?: T;
6319
+ businessName?: T;
6320
+ ceoName?: T;
6321
+ businessAddress?: T;
6322
+ businessEmail?: T;
6323
+ onlineSalesRegistrationNumber?: T;
6324
+ };
6325
+ branding?: T | {
6326
+ logo?: T;
6327
+ logoDark?: T;
6328
+ logomark?: T;
6329
+ favicon?: T;
6330
+ themeColor?: T;
6331
+ };
6332
+ seo?: T | {
6333
+ robots?: T;
6334
+ googleSiteVerification?: T;
6335
+ bingSiteVerification?: T;
6336
+ naverSiteVerification?: T;
6337
+ canonicalUrl?: T;
6338
+ };
6339
+ analytics?: T | {
6340
+ googleAnalyticsId?: T;
6341
+ googleTagManagerId?: T;
6342
+ facebookPixelId?: T;
6343
+ linkedInPartnerId?: T;
6344
+ };
6345
+ openGraph?: T | {
6346
+ ogTitle?: T;
6347
+ ogDescription?: T;
6348
+ ogImage?: T;
6349
+ ogType?: T;
6350
+ ogLocale?: T;
6351
+ };
6352
+ twitter?: T | {
6353
+ twitterCard?: T;
6354
+ twitterSite?: T;
6355
+ twitterCreator?: T;
6356
+ twitterTitle?: T;
6357
+ twitterDescription?: T;
6358
+ twitterImage?: T;
6359
+ };
6360
+ pwa?: T | {
6361
+ shortName?: T;
6362
+ backgroundColor?: T;
6363
+ display?: T;
6255
6364
  };
6256
- createdBy?: T;
6257
- updatedBy?: T;
6258
6365
  updatedAt?: T;
6259
6366
  createdAt?: T;
6260
6367
  deletedAt?: T;
@@ -6481,6 +6588,158 @@ interface TenantLogosSelect<T extends boolean = true> {
6481
6588
  };
6482
6589
  };
6483
6590
  }
6591
+ /**
6592
+ * This interface was referenced by `Config`'s JSON-Schema
6593
+ * via the `definition` "tenant-web-analytics-config_select".
6594
+ */
6595
+ interface TenantWebAnalyticsConfigSelect<T extends boolean = true> {
6596
+ tenant?: T;
6597
+ enabled?: T;
6598
+ allowedOrigins?: T | {
6599
+ origin?: T;
6600
+ id?: T;
6601
+ };
6602
+ timezone?: T;
6603
+ tzLocked?: T;
6604
+ updatedAt?: T;
6605
+ createdAt?: T;
6606
+ deletedAt?: T;
6607
+ }
6608
+ /**
6609
+ * This interface was referenced by `Config`'s JSON-Schema
6610
+ * via the `definition` "tenant-analytics-daily_select".
6611
+ */
6612
+ interface TenantAnalyticsDailySelect<T extends boolean = true> {
6613
+ tenant?: T;
6614
+ date?: T;
6615
+ pageviews?: T;
6616
+ visitors?: T;
6617
+ topPages?: T | {
6618
+ pathname?: T;
6619
+ views?: T;
6620
+ id?: T;
6621
+ };
6622
+ topReferrers?: T | {
6623
+ source?: T;
6624
+ views?: T;
6625
+ id?: T;
6626
+ };
6627
+ topEvents?: T | {
6628
+ name?: T;
6629
+ count?: T;
6630
+ id?: T;
6631
+ };
6632
+ eventsDropped?: T | {
6633
+ cardinality?: T;
6634
+ schema?: T;
6635
+ late?: T;
6636
+ origin?: T;
6637
+ key?: T;
6638
+ rate?: T;
6639
+ disabled?: T;
6640
+ };
6641
+ snapshottedAt?: T;
6642
+ bucketTz?: T;
6643
+ schemaShape?: T;
6644
+ eventDetails?: T | {
6645
+ eventName?: T;
6646
+ count?: T;
6647
+ schemaShape?: T;
6648
+ dimensions?: T | {
6649
+ dimension?: T;
6650
+ values?: T | {
6651
+ value?: T;
6652
+ count?: T;
6653
+ id?: T;
6654
+ };
6655
+ id?: T;
6656
+ };
6657
+ pages?: T | {
6658
+ pathname?: T;
6659
+ count?: T;
6660
+ id?: T;
6661
+ };
6662
+ referrers?: T | {
6663
+ source?: T;
6664
+ count?: T;
6665
+ id?: T;
6666
+ };
6667
+ id?: T;
6668
+ };
6669
+ mcpUsage?: T | {
6670
+ toolCalls?: T;
6671
+ sessions?: T;
6672
+ convertedSessions?: T;
6673
+ conversionRate?: T;
6674
+ successfulWrites?: T;
6675
+ isPartial?: T;
6676
+ topTools?: T | {
6677
+ name?: T;
6678
+ count?: T;
6679
+ readOnly?: T;
6680
+ id?: T;
6681
+ };
6682
+ transports?: T | {
6683
+ name?: T;
6684
+ count?: T;
6685
+ id?: T;
6686
+ };
6687
+ httpDurationMs?: T | {
6688
+ p50?: T;
6689
+ p99?: T;
6690
+ buckets?: T | {
6691
+ bucket?: T;
6692
+ label?: T;
6693
+ count?: T;
6694
+ id?: T;
6695
+ };
6696
+ };
6697
+ };
6698
+ updatedAt?: T;
6699
+ createdAt?: T;
6700
+ }
6701
+ /**
6702
+ * This interface was referenced by `Config`'s JSON-Schema
6703
+ * via the `definition` "analytics-event-schemas_select".
6704
+ */
6705
+ interface AnalyticsEventSchemasSelect<T extends boolean = true> {
6706
+ tenant?: T;
6707
+ eventName?: T;
6708
+ enabled?: T;
6709
+ dimensions?: T | {
6710
+ key?: T;
6711
+ type?: T;
6712
+ allowedValues?: T;
6713
+ description?: T;
6714
+ id?: T;
6715
+ };
6716
+ createdBy?: T;
6717
+ updatedBy?: T;
6718
+ updatedAt?: T;
6719
+ createdAt?: T;
6720
+ deletedAt?: T;
6721
+ }
6722
+ /**
6723
+ * This interface was referenced by `Config`'s JSON-Schema
6724
+ * via the `definition` "api-usage_select".
6725
+ */
6726
+ interface ApiUsageSelect<T extends boolean = true> {
6727
+ tenant?: T;
6728
+ month?: T;
6729
+ apiCallCount?: T;
6730
+ plan?: T;
6731
+ apiCallLimit?: T;
6732
+ storageUsedBytes?: T;
6733
+ storageLimitBytes?: T;
6734
+ documentCount?: T;
6735
+ videoCount?: T;
6736
+ videoMinutesUsed?: T;
6737
+ deliveryMinutesUsed?: T;
6738
+ aiGenerationCount?: T;
6739
+ snapshottedAt?: T;
6740
+ updatedAt?: T;
6741
+ createdAt?: T;
6742
+ }
6484
6743
  /**
6485
6744
  * This interface was referenced by `Config`'s JSON-Schema
6486
6745
  * via the `definition` "products_select".
@@ -6501,7 +6760,7 @@ interface ProductsSelect<T extends boolean = true> {
6501
6760
  brand?: T;
6502
6761
  shippingPolicy?: T;
6503
6762
  weight?: T;
6504
- collections?: T;
6763
+ collectionItems?: T;
6505
6764
  minOrderQuantity?: T;
6506
6765
  maxOrderQuantity?: T;
6507
6766
  listingPrimaryOption?: T;
@@ -6515,7 +6774,6 @@ interface ProductsSelect<T extends boolean = true> {
6515
6774
  isPriceRange?: T;
6516
6775
  availableForSale?: T;
6517
6776
  };
6518
- metadata?: T;
6519
6777
  seo?: T | {
6520
6778
  title?: T;
6521
6779
  description?: T;
@@ -6534,9 +6792,9 @@ interface ProductsSelect<T extends boolean = true> {
6534
6792
  isSoldOut?: T;
6535
6793
  isFeatured?: T;
6536
6794
  publishedAt?: T;
6795
+ metadata?: T;
6537
6796
  vendor?: T;
6538
6797
  productType?: T;
6539
- handle?: T;
6540
6798
  updatedAt?: T;
6541
6799
  createdAt?: T;
6542
6800
  deletedAt?: T;
@@ -6597,6 +6855,7 @@ interface ProductOptionValuesSelect<T extends boolean = true> {
6597
6855
  _order?: T;
6598
6856
  tenant?: T;
6599
6857
  option?: T;
6858
+ displayLabel?: T;
6600
6859
  value?: T;
6601
6860
  swatchColor?: T;
6602
6861
  generateSlug?: T;
@@ -6638,8 +6897,6 @@ interface ProductTagsSelect<T extends boolean = true> {
6638
6897
  slug?: T;
6639
6898
  description?: T;
6640
6899
  image?: T;
6641
- parent?: T;
6642
- color?: T;
6643
6900
  updatedAt?: T;
6644
6901
  createdAt?: T;
6645
6902
  deletedAt?: T;
@@ -6656,7 +6913,7 @@ interface ProductCollectionsSelect<T extends boolean = true> {
6656
6913
  description?: T;
6657
6914
  content?: T;
6658
6915
  images?: T;
6659
- products?: T;
6916
+ items?: T;
6660
6917
  seo?: T | {
6661
6918
  title?: T;
6662
6919
  description?: T;
@@ -6672,7 +6929,6 @@ interface ProductCollectionsSelect<T extends boolean = true> {
6672
6929
  generateSlug?: T;
6673
6930
  slug?: T;
6674
6931
  status?: T;
6675
- sortOrder?: T;
6676
6932
  isFeatured?: T;
6677
6933
  publishedAt?: T;
6678
6934
  metadata?: T;
@@ -6680,6 +6936,19 @@ interface ProductCollectionsSelect<T extends boolean = true> {
6680
6936
  createdAt?: T;
6681
6937
  deletedAt?: T;
6682
6938
  }
6939
+ /**
6940
+ * This interface was referenced by `Config`'s JSON-Schema
6941
+ * via the `definition` "product-collection-items_select".
6942
+ */
6943
+ interface ProductCollectionItemsSelect<T extends boolean = true> {
6944
+ '_product-collection-items_items_order'?: T;
6945
+ _order?: T;
6946
+ tenant?: T;
6947
+ collection?: T;
6948
+ product?: T;
6949
+ updatedAt?: T;
6950
+ createdAt?: T;
6951
+ }
6683
6952
  /**
6684
6953
  * This interface was referenced by `Config`'s JSON-Schema
6685
6954
  * via the `definition` "brands_select".
@@ -7051,6 +7320,7 @@ interface ReturnItemsSelect<T extends boolean = true> {
7051
7320
  interface ShippingPoliciesSelect<T extends boolean = true> {
7052
7321
  _order?: T;
7053
7322
  tenant?: T;
7323
+ displayLabel?: T;
7054
7324
  title?: T;
7055
7325
  baseAmount?: T;
7056
7326
  freeShippingMinAmount?: T;
@@ -7459,7 +7729,6 @@ interface ArticleTagsSelect<T extends boolean = true> {
7459
7729
  slug?: T;
7460
7730
  description?: T;
7461
7731
  image?: T;
7462
- parent?: T;
7463
7732
  color?: T;
7464
7733
  updatedAt?: T;
7465
7734
  createdAt?: T;
@@ -7614,7 +7883,6 @@ interface PlaylistTagsSelect<T extends boolean = true> {
7614
7883
  slug?: T;
7615
7884
  description?: T;
7616
7885
  image?: T;
7617
- parent?: T;
7618
7886
  color?: T;
7619
7887
  updatedAt?: T;
7620
7888
  createdAt?: T;
@@ -7703,7 +7971,6 @@ interface TrackTagsSelect<T extends boolean = true> {
7703
7971
  slug?: T;
7704
7972
  description?: T;
7705
7973
  image?: T;
7706
- parent?: T;
7707
7974
  color?: T;
7708
7975
  updatedAt?: T;
7709
7976
  createdAt?: T;
@@ -7776,7 +8043,6 @@ interface GalleryTagsSelect<T extends boolean = true> {
7776
8043
  slug?: T;
7777
8044
  description?: T;
7778
8045
  image?: T;
7779
- parent?: T;
7780
8046
  color?: T;
7781
8047
  updatedAt?: T;
7782
8048
  createdAt?: T;
@@ -7863,7 +8129,6 @@ interface LinkTagsSelect<T extends boolean = true> {
7863
8129
  slug?: T;
7864
8130
  description?: T;
7865
8131
  image?: T;
7866
- parent?: T;
7867
8132
  color?: T;
7868
8133
  updatedAt?: T;
7869
8134
  createdAt?: T;
@@ -8005,7 +8270,6 @@ interface CanvasTagsSelect<T extends boolean = true> {
8005
8270
  slug?: T;
8006
8271
  description?: T;
8007
8272
  image?: T;
8008
- parent?: T;
8009
8273
  color?: T;
8010
8274
  updatedAt?: T;
8011
8275
  createdAt?: T;
@@ -8121,7 +8385,6 @@ interface VideoTagsSelect<T extends boolean = true> {
8121
8385
  slug?: T;
8122
8386
  description?: T;
8123
8387
  image?: T;
8124
- parent?: T;
8125
8388
  color?: T;
8126
8389
  updatedAt?: T;
8127
8390
  createdAt?: T;
@@ -8479,7 +8742,6 @@ interface EventTagsSelect<T extends boolean = true> {
8479
8742
  slug?: T;
8480
8743
  description?: T;
8481
8744
  image?: T;
8482
- parent?: T;
8483
8745
  color?: T;
8484
8746
  updatedAt?: T;
8485
8747
  createdAt?: T;
@@ -8793,4 +9055,4 @@ declare module 'payload' {
8793
9055
  }
8794
9056
  }
8795
9057
 
8796
- 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, Product as d, ArticleAuthor as e, ArticleCategory as f, ArticleTag as g, Cart as h, CartItem as i, PostCategory as j, ProductVariant as k, OrderItem as l, Transaction as m, Fulfillment as n, Return as o };
9058
+ 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, Transaction as m, Fulfillment as n, Return as o };