@headless-lms/adapter-db 0.4.0 → 0.5.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 (90) hide show
  1. package/dist/client.d.ts +8 -2
  2. package/dist/client.js +10 -2
  3. package/dist/client.js.map +1 -1
  4. package/dist/index.d.ts +5 -4
  5. package/dist/index.js +4 -3
  6. package/dist/repositories/admin.d.ts +12 -4
  7. package/dist/repositories/admin.js +164 -22
  8. package/dist/repositories/admin.js.map +1 -1
  9. package/dist/repositories/assets.d.ts +2 -1
  10. package/dist/repositories/assets.js +11 -1
  11. package/dist/repositories/assets.js.map +1 -1
  12. package/dist/repositories/automations.js +1 -1
  13. package/dist/repositories/chats.d.ts +13 -4
  14. package/dist/repositories/chats.js +164 -70
  15. package/dist/repositories/chats.js.map +1 -1
  16. package/dist/repositories/content.d.ts +22 -5
  17. package/dist/repositories/content.js +198 -40
  18. package/dist/repositories/content.js.map +1 -1
  19. package/dist/repositories/credentials.js +1 -1
  20. package/dist/repositories/devices.js +1 -1
  21. package/dist/repositories/digest-runs.js +1 -1
  22. package/dist/repositories/discussion.d.ts +1 -1
  23. package/dist/repositories/discussion.js +9 -3
  24. package/dist/repositories/discussion.js.map +1 -1
  25. package/dist/repositories/entitlements.d.ts +10 -10
  26. package/dist/repositories/entitlements.js +47 -56
  27. package/dist/repositories/entitlements.js.map +1 -1
  28. package/dist/repositories/event-reports.d.ts +16 -0
  29. package/dist/repositories/event-reports.js +199 -0
  30. package/dist/repositories/event-reports.js.map +1 -0
  31. package/dist/repositories/grant-covers.d.ts +4 -3
  32. package/dist/repositories/grant-covers.js +7 -4
  33. package/dist/repositories/grant-covers.js.map +1 -1
  34. package/dist/repositories/identity.js +1 -1
  35. package/dist/repositories/integrations.js +1 -1
  36. package/dist/repositories/member.d.ts +12 -4
  37. package/dist/repositories/member.js +19 -7
  38. package/dist/repositories/member.js.map +1 -1
  39. package/dist/repositories/members.d.ts +2 -5
  40. package/dist/repositories/members.js +39 -94
  41. package/dist/repositories/members.js.map +1 -1
  42. package/dist/repositories/mentions.js +1 -1
  43. package/dist/repositories/notification-settings.js +1 -1
  44. package/dist/repositories/notifications.js +2 -2
  45. package/dist/repositories/notifications.js.map +1 -1
  46. package/dist/repositories/org-user-profile.d.ts +0 -17
  47. package/dist/repositories/org-user-profile.js +0 -1
  48. package/dist/repositories/org-user-profile.js.map +1 -1
  49. package/dist/repositories/organizations.d.ts +3 -4
  50. package/dist/repositories/organizations.js +21 -46
  51. package/dist/repositories/organizations.js.map +1 -1
  52. package/dist/repositories/outbox.d.ts +5 -1
  53. package/dist/repositories/outbox.js +12 -3
  54. package/dist/repositories/outbox.js.map +1 -1
  55. package/dist/repositories/posts.js +1 -1
  56. package/dist/repositories/progress.js +1 -1
  57. package/dist/repositories/roles.d.ts +35 -0
  58. package/dist/repositories/roles.js +244 -0
  59. package/dist/repositories/roles.js.map +1 -0
  60. package/dist/repositories/settings.js +1 -1
  61. package/dist/repositories/subscriptions.js +1 -1
  62. package/dist/schema/assets.d.ts +17 -0
  63. package/dist/schema/assets.js +1 -0
  64. package/dist/schema/assets.js.map +1 -1
  65. package/dist/schema/automations.d.ts +2 -2
  66. package/dist/schema/automations.js +1 -1
  67. package/dist/schema/automations.js.map +1 -1
  68. package/dist/schema/content.d.ts +437 -3
  69. package/dist/schema/content.js +70 -3
  70. package/dist/schema/content.js.map +1 -1
  71. package/dist/schema/discussion.d.ts +18 -1
  72. package/dist/schema/discussion.js +4 -2
  73. package/dist/schema/discussion.js.map +1 -1
  74. package/dist/schema/index.d.ts +4 -3
  75. package/dist/schema/index.js +7 -2
  76. package/dist/schema/index.js.map +1 -1
  77. package/dist/schema/organizations.d.ts +5 -22
  78. package/dist/schema/organizations.js +1 -13
  79. package/dist/schema/organizations.js.map +1 -1
  80. package/dist/schema/roles.d.ts +369 -0
  81. package/dist/schema/roles.js +71 -0
  82. package/dist/schema/roles.js.map +1 -0
  83. package/drizzle/0017_configurable_roles.sql +38 -0
  84. package/drizzle/0018_messages_client_id.sql +2 -0
  85. package/drizzle/0019_events.sql +44 -0
  86. package/drizzle/meta/0017_snapshot.json +9518 -0
  87. package/drizzle/meta/0018_snapshot.json +9557 -0
  88. package/drizzle/meta/0019_snapshot.json +9919 -0
  89. package/drizzle/meta/_journal.json +21 -0
  90. package/package.json +2 -2
@@ -134,14 +134,14 @@ declare const contentItems: import("drizzle-orm/pg-core").PgTableWithColumns<{
134
134
  tableName: "content_items";
135
135
  dataType: "string";
136
136
  columnType: "PgText";
137
- data: "course" | "download" | "community";
137
+ data: "course" | "download" | "event" | "community";
138
138
  driverParam: string;
139
139
  notNull: true;
140
140
  hasDefault: false;
141
141
  isPrimaryKey: false;
142
142
  isAutoincrement: false;
143
143
  hasRuntimeDefault: false;
144
- enumValues: ["course", "download", "community"];
144
+ enumValues: ["course", "download", "community", "event"];
145
145
  baseColumn: never;
146
146
  identity: undefined;
147
147
  generated: undefined;
@@ -1211,6 +1211,440 @@ declare const downloadAssets: import("drizzle-orm/pg-core").PgTableWithColumns<{
1211
1211
  };
1212
1212
  dialect: "pg";
1213
1213
  }>;
1214
+ declare const events: import("drizzle-orm/pg-core").PgTableWithColumns<{
1215
+ name: "events";
1216
+ schema: undefined;
1217
+ columns: {
1218
+ orgId: import("drizzle-orm/pg-core").PgColumn<{
1219
+ name: "org_id";
1220
+ tableName: "events";
1221
+ dataType: "string";
1222
+ columnType: "PgText";
1223
+ data: string;
1224
+ driverParam: string;
1225
+ notNull: true;
1226
+ hasDefault: false;
1227
+ isPrimaryKey: false;
1228
+ isAutoincrement: false;
1229
+ hasRuntimeDefault: false;
1230
+ enumValues: [string, ...string[]];
1231
+ baseColumn: never;
1232
+ identity: undefined;
1233
+ generated: undefined;
1234
+ }, {}, {}>;
1235
+ id: import("drizzle-orm/pg-core").PgColumn<{
1236
+ name: "id";
1237
+ tableName: "events";
1238
+ dataType: "string";
1239
+ columnType: "PgText";
1240
+ data: string;
1241
+ driverParam: string;
1242
+ notNull: true;
1243
+ hasDefault: true;
1244
+ isPrimaryKey: false;
1245
+ isAutoincrement: false;
1246
+ hasRuntimeDefault: true;
1247
+ enumValues: [string, ...string[]];
1248
+ baseColumn: never;
1249
+ identity: undefined;
1250
+ generated: undefined;
1251
+ }, {}, {}>;
1252
+ type: import("drizzle-orm/pg-core").PgColumn<{
1253
+ name: "type";
1254
+ tableName: "events";
1255
+ dataType: "string";
1256
+ columnType: "PgText";
1257
+ data: "event";
1258
+ driverParam: string;
1259
+ notNull: true;
1260
+ hasDefault: true;
1261
+ isPrimaryKey: false;
1262
+ isAutoincrement: false;
1263
+ hasRuntimeDefault: false;
1264
+ enumValues: [string, ...string[]];
1265
+ baseColumn: never;
1266
+ identity: undefined;
1267
+ generated: {
1268
+ type: "always";
1269
+ };
1270
+ }, {}, {
1271
+ $type: "event";
1272
+ }>;
1273
+ title: import("drizzle-orm/pg-core").PgColumn<{
1274
+ name: "title";
1275
+ tableName: "events";
1276
+ dataType: "string";
1277
+ columnType: "PgText";
1278
+ data: string;
1279
+ driverParam: string;
1280
+ notNull: true;
1281
+ hasDefault: false;
1282
+ isPrimaryKey: false;
1283
+ isAutoincrement: false;
1284
+ hasRuntimeDefault: false;
1285
+ enumValues: [string, ...string[]];
1286
+ baseColumn: never;
1287
+ identity: undefined;
1288
+ generated: undefined;
1289
+ }, {}, {}>;
1290
+ description: import("drizzle-orm/pg-core").PgColumn<{
1291
+ name: "description";
1292
+ tableName: "events";
1293
+ dataType: "string";
1294
+ columnType: "PgText";
1295
+ data: string;
1296
+ driverParam: string;
1297
+ notNull: true;
1298
+ hasDefault: true;
1299
+ isPrimaryKey: false;
1300
+ isAutoincrement: false;
1301
+ hasRuntimeDefault: false;
1302
+ enumValues: [string, ...string[]];
1303
+ baseColumn: never;
1304
+ identity: undefined;
1305
+ generated: undefined;
1306
+ }, {}, {}>;
1307
+ thumbnailAssetId: import("drizzle-orm/pg-core").PgColumn<{
1308
+ name: "thumbnail_asset_id";
1309
+ tableName: "events";
1310
+ dataType: "string";
1311
+ columnType: "PgText";
1312
+ data: string;
1313
+ driverParam: string;
1314
+ notNull: false;
1315
+ hasDefault: false;
1316
+ isPrimaryKey: false;
1317
+ isAutoincrement: false;
1318
+ hasRuntimeDefault: false;
1319
+ enumValues: [string, ...string[]];
1320
+ baseColumn: never;
1321
+ identity: undefined;
1322
+ generated: undefined;
1323
+ }, {}, {}>;
1324
+ status: import("drizzle-orm/pg-core").PgColumn<{
1325
+ name: "status";
1326
+ tableName: "events";
1327
+ dataType: "string";
1328
+ columnType: "PgText";
1329
+ data: "draft" | "published" | "canceled";
1330
+ driverParam: string;
1331
+ notNull: true;
1332
+ hasDefault: true;
1333
+ isPrimaryKey: false;
1334
+ isAutoincrement: false;
1335
+ hasRuntimeDefault: false;
1336
+ enumValues: ["draft", "published", "canceled"];
1337
+ baseColumn: never;
1338
+ identity: undefined;
1339
+ generated: undefined;
1340
+ }, {}, {}>;
1341
+ startsAt: import("drizzle-orm/pg-core").PgColumn<{
1342
+ name: "starts_at";
1343
+ tableName: "events";
1344
+ dataType: "date";
1345
+ columnType: "PgTimestamp";
1346
+ data: Date;
1347
+ driverParam: string;
1348
+ notNull: true;
1349
+ hasDefault: false;
1350
+ isPrimaryKey: false;
1351
+ isAutoincrement: false;
1352
+ hasRuntimeDefault: false;
1353
+ enumValues: undefined;
1354
+ baseColumn: never;
1355
+ identity: undefined;
1356
+ generated: undefined;
1357
+ }, {}, {}>;
1358
+ endsAt: import("drizzle-orm/pg-core").PgColumn<{
1359
+ name: "ends_at";
1360
+ tableName: "events";
1361
+ dataType: "date";
1362
+ columnType: "PgTimestamp";
1363
+ data: Date;
1364
+ driverParam: string;
1365
+ notNull: true;
1366
+ hasDefault: false;
1367
+ isPrimaryKey: false;
1368
+ isAutoincrement: false;
1369
+ hasRuntimeDefault: false;
1370
+ enumValues: undefined;
1371
+ baseColumn: never;
1372
+ identity: undefined;
1373
+ generated: undefined;
1374
+ }, {}, {}>;
1375
+ timeZone: import("drizzle-orm/pg-core").PgColumn<{
1376
+ name: "time_zone";
1377
+ tableName: "events";
1378
+ dataType: "string";
1379
+ columnType: "PgText";
1380
+ data: string;
1381
+ driverParam: string;
1382
+ notNull: true;
1383
+ hasDefault: false;
1384
+ isPrimaryKey: false;
1385
+ isAutoincrement: false;
1386
+ hasRuntimeDefault: false;
1387
+ enumValues: [string, ...string[]];
1388
+ baseColumn: never;
1389
+ identity: undefined;
1390
+ generated: undefined;
1391
+ }, {}, {}>;
1392
+ location: import("drizzle-orm/pg-core").PgColumn<{
1393
+ name: "location";
1394
+ tableName: "events";
1395
+ dataType: "json";
1396
+ columnType: "PgJsonb";
1397
+ data: {
1398
+ venue: {
1399
+ name: string;
1400
+ address: {
1401
+ line1: string | null;
1402
+ line2: string | null;
1403
+ city: string | null;
1404
+ region: string | null;
1405
+ postalCode: string | null;
1406
+ country: string | null;
1407
+ } | null;
1408
+ } | null;
1409
+ online: {
1410
+ url: string;
1411
+ details: string | null;
1412
+ } | null;
1413
+ };
1414
+ driverParam: unknown;
1415
+ notNull: true;
1416
+ hasDefault: true;
1417
+ isPrimaryKey: false;
1418
+ isAutoincrement: false;
1419
+ hasRuntimeDefault: false;
1420
+ enumValues: undefined;
1421
+ baseColumn: never;
1422
+ identity: undefined;
1423
+ generated: undefined;
1424
+ }, {}, {
1425
+ $type: {
1426
+ venue: {
1427
+ name: string;
1428
+ address: {
1429
+ line1: string | null;
1430
+ line2: string | null;
1431
+ city: string | null;
1432
+ region: string | null;
1433
+ postalCode: string | null;
1434
+ country: string | null;
1435
+ } | null;
1436
+ } | null;
1437
+ online: {
1438
+ url: string;
1439
+ details: string | null;
1440
+ } | null;
1441
+ };
1442
+ }>;
1443
+ recording: import("drizzle-orm/pg-core").PgColumn<{
1444
+ name: "recording";
1445
+ tableName: "events";
1446
+ dataType: "json";
1447
+ columnType: "PgJsonb";
1448
+ data: {
1449
+ url: string;
1450
+ details: string | null;
1451
+ } | null;
1452
+ driverParam: unknown;
1453
+ notNull: false;
1454
+ hasDefault: false;
1455
+ isPrimaryKey: false;
1456
+ isAutoincrement: false;
1457
+ hasRuntimeDefault: false;
1458
+ enumValues: undefined;
1459
+ baseColumn: never;
1460
+ identity: undefined;
1461
+ generated: undefined;
1462
+ }, {}, {
1463
+ $type: {
1464
+ url: string;
1465
+ details: string | null;
1466
+ } | null;
1467
+ }>;
1468
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
1469
+ name: "created_at";
1470
+ tableName: "events";
1471
+ dataType: "date";
1472
+ columnType: "PgTimestamp";
1473
+ data: Date;
1474
+ driverParam: string;
1475
+ notNull: true;
1476
+ hasDefault: true;
1477
+ isPrimaryKey: false;
1478
+ isAutoincrement: false;
1479
+ hasRuntimeDefault: false;
1480
+ enumValues: undefined;
1481
+ baseColumn: never;
1482
+ identity: undefined;
1483
+ generated: undefined;
1484
+ }, {}, {}>;
1485
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
1486
+ name: "updated_at";
1487
+ tableName: "events";
1488
+ dataType: "date";
1489
+ columnType: "PgTimestamp";
1490
+ data: Date;
1491
+ driverParam: string;
1492
+ notNull: true;
1493
+ hasDefault: true;
1494
+ isPrimaryKey: false;
1495
+ isAutoincrement: false;
1496
+ hasRuntimeDefault: false;
1497
+ enumValues: undefined;
1498
+ baseColumn: never;
1499
+ identity: undefined;
1500
+ generated: undefined;
1501
+ }, {}, {}>;
1502
+ };
1503
+ dialect: "pg";
1504
+ }>;
1505
+ declare const eventAssets: import("drizzle-orm/pg-core").PgTableWithColumns<{
1506
+ name: "event_assets";
1507
+ schema: undefined;
1508
+ columns: {
1509
+ orgId: import("drizzle-orm/pg-core").PgColumn<{
1510
+ name: "org_id";
1511
+ tableName: "event_assets";
1512
+ dataType: "string";
1513
+ columnType: "PgText";
1514
+ data: string;
1515
+ driverParam: string;
1516
+ notNull: true;
1517
+ hasDefault: false;
1518
+ isPrimaryKey: false;
1519
+ isAutoincrement: false;
1520
+ hasRuntimeDefault: false;
1521
+ enumValues: [string, ...string[]];
1522
+ baseColumn: never;
1523
+ identity: undefined;
1524
+ generated: undefined;
1525
+ }, {}, {}>;
1526
+ id: import("drizzle-orm/pg-core").PgColumn<{
1527
+ name: "id";
1528
+ tableName: "event_assets";
1529
+ dataType: "string";
1530
+ columnType: "PgText";
1531
+ data: string;
1532
+ driverParam: string;
1533
+ notNull: true;
1534
+ hasDefault: true;
1535
+ isPrimaryKey: false;
1536
+ isAutoincrement: false;
1537
+ hasRuntimeDefault: true;
1538
+ enumValues: [string, ...string[]];
1539
+ baseColumn: never;
1540
+ identity: undefined;
1541
+ generated: undefined;
1542
+ }, {}, {}>;
1543
+ eventId: import("drizzle-orm/pg-core").PgColumn<{
1544
+ name: "event_id";
1545
+ tableName: "event_assets";
1546
+ dataType: "string";
1547
+ columnType: "PgText";
1548
+ data: string;
1549
+ driverParam: string;
1550
+ notNull: true;
1551
+ hasDefault: false;
1552
+ isPrimaryKey: false;
1553
+ isAutoincrement: false;
1554
+ hasRuntimeDefault: false;
1555
+ enumValues: [string, ...string[]];
1556
+ baseColumn: never;
1557
+ identity: undefined;
1558
+ generated: undefined;
1559
+ }, {}, {}>;
1560
+ assetId: import("drizzle-orm/pg-core").PgColumn<{
1561
+ name: "asset_id";
1562
+ tableName: "event_assets";
1563
+ dataType: "string";
1564
+ columnType: "PgText";
1565
+ data: string;
1566
+ driverParam: string;
1567
+ notNull: true;
1568
+ hasDefault: false;
1569
+ isPrimaryKey: false;
1570
+ isAutoincrement: false;
1571
+ hasRuntimeDefault: false;
1572
+ enumValues: [string, ...string[]];
1573
+ baseColumn: never;
1574
+ identity: undefined;
1575
+ generated: undefined;
1576
+ }, {}, {}>;
1577
+ seq: import("drizzle-orm/pg-core").PgColumn<{
1578
+ name: "seq";
1579
+ tableName: "event_assets";
1580
+ dataType: "number";
1581
+ columnType: "PgInteger";
1582
+ data: number;
1583
+ driverParam: string | number;
1584
+ notNull: true;
1585
+ hasDefault: true;
1586
+ isPrimaryKey: false;
1587
+ isAutoincrement: false;
1588
+ hasRuntimeDefault: false;
1589
+ enumValues: undefined;
1590
+ baseColumn: never;
1591
+ identity: undefined;
1592
+ generated: undefined;
1593
+ }, {}, {}>;
1594
+ displayName: import("drizzle-orm/pg-core").PgColumn<{
1595
+ name: "display_name";
1596
+ tableName: "event_assets";
1597
+ dataType: "string";
1598
+ columnType: "PgText";
1599
+ data: string;
1600
+ driverParam: string;
1601
+ notNull: false;
1602
+ hasDefault: false;
1603
+ isPrimaryKey: false;
1604
+ isAutoincrement: false;
1605
+ hasRuntimeDefault: false;
1606
+ enumValues: [string, ...string[]];
1607
+ baseColumn: never;
1608
+ identity: undefined;
1609
+ generated: undefined;
1610
+ }, {}, {}>;
1611
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
1612
+ name: "created_at";
1613
+ tableName: "event_assets";
1614
+ dataType: "date";
1615
+ columnType: "PgTimestamp";
1616
+ data: Date;
1617
+ driverParam: string;
1618
+ notNull: true;
1619
+ hasDefault: true;
1620
+ isPrimaryKey: false;
1621
+ isAutoincrement: false;
1622
+ hasRuntimeDefault: false;
1623
+ enumValues: undefined;
1624
+ baseColumn: never;
1625
+ identity: undefined;
1626
+ generated: undefined;
1627
+ }, {}, {}>;
1628
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
1629
+ name: "updated_at";
1630
+ tableName: "event_assets";
1631
+ dataType: "date";
1632
+ columnType: "PgTimestamp";
1633
+ data: Date;
1634
+ driverParam: string;
1635
+ notNull: true;
1636
+ hasDefault: true;
1637
+ isPrimaryKey: false;
1638
+ isAutoincrement: false;
1639
+ hasRuntimeDefault: false;
1640
+ enumValues: undefined;
1641
+ baseColumn: never;
1642
+ identity: undefined;
1643
+ generated: undefined;
1644
+ }, {}, {}>;
1645
+ };
1646
+ dialect: "pg";
1647
+ }>;
1214
1648
  declare const communities: import("drizzle-orm/pg-core").PgTableWithColumns<{
1215
1649
  name: "communities";
1216
1650
  schema: undefined;
@@ -1849,5 +2283,5 @@ declare const spaceLinks: import("drizzle-orm/pg-core").PgTableWithColumns<{
1849
2283
  dialect: "pg";
1850
2284
  }>;
1851
2285
  //#endregion
1852
- export { activities, activityAssets, bundleItems, bundles, communities, contentItems, courses, downloadAssets, downloads, modules, spaceLinks, spaceTopics, spaces };
2286
+ export { activities, activityAssets, bundleItems, bundles, communities, contentItems, courses, downloadAssets, downloads, eventAssets, events, modules, spaceLinks, spaceTopics, spaces };
1853
2287
  //# sourceMappingURL=content.d.ts.map
@@ -20,14 +20,15 @@ const contentItems = pgTable("content_items", {
20
20
  type: text("type", { enum: [
21
21
  "course",
22
22
  "download",
23
- "community"
23
+ "community",
24
+ "event"
24
25
  ] }).notNull(),
25
26
  createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
26
27
  updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow().$onUpdate(() => /* @__PURE__ */ new Date())
27
28
  }, (t) => ({
28
29
  pk: primaryKey({ columns: [t.orgId, t.id] }),
29
30
  typeUq: unique().on(t.orgId, t.id, t.type),
30
- typeCk: check("content_items_type_check", sql`${t.type} in ('course', 'download', 'community')`)
31
+ typeCk: check("content_items_type_check", sql`${t.type} in ('course', 'download', 'community', 'event')`)
31
32
  }));
32
33
  const bundleItems = pgTable("bundle_items", {
33
34
  orgId: text("org_id").notNull().references(() => organizations.id),
@@ -201,6 +202,72 @@ const downloadAssets = pgTable("download_assets", {
201
202
  downloadAssetUq: unique().on(t.orgId, t.downloadId, t.assetId),
202
203
  assetIdx: index("download_assets_asset_idx").on(t.orgId, t.assetId)
203
204
  }));
205
+ const events = pgTable("events", {
206
+ orgId: text("org_id").notNull().references(() => organizations.id),
207
+ id: text("id").notNull().$defaultFn(() => genId("contentEvent")),
208
+ type: text("type").$type().notNull().generatedAlwaysAs(sql`'event'`),
209
+ title: text("title").notNull(),
210
+ description: text("description").notNull().default(""),
211
+ thumbnailAssetId: text("thumbnail_asset_id"),
212
+ status: text("status", { enum: [
213
+ "draft",
214
+ "published",
215
+ "canceled"
216
+ ] }).notNull().default("draft"),
217
+ startsAt: timestamp("starts_at", { withTimezone: true }).notNull(),
218
+ endsAt: timestamp("ends_at", { withTimezone: true }).notNull(),
219
+ timeZone: text("time_zone").notNull(),
220
+ location: jsonb("location").$type().notNull().default({
221
+ venue: null,
222
+ online: null
223
+ }),
224
+ recording: jsonb("recording").$type(),
225
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
226
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow().$onUpdate(() => /* @__PURE__ */ new Date())
227
+ }, (t) => ({
228
+ pk: primaryKey({ columns: [t.orgId, t.id] }),
229
+ contentItemFk: foreignKey({
230
+ columns: [
231
+ t.orgId,
232
+ t.id,
233
+ t.type
234
+ ],
235
+ foreignColumns: [
236
+ contentItems.orgId,
237
+ contentItems.id,
238
+ contentItems.type
239
+ ]
240
+ }).onDelete("cascade"),
241
+ thumbnailAssetFk: foreignKey({
242
+ columns: [t.orgId, t.thumbnailAssetId],
243
+ foreignColumns: [assets.orgId, assets.id]
244
+ }),
245
+ thumbnailIdx: index("events_thumbnail_idx").on(t.orgId, t.thumbnailAssetId),
246
+ startsIdx: index("events_status_starts_idx").on(t.orgId, t.status, t.startsAt),
247
+ timesCk: check("events_times_check", sql`${t.endsAt} > ${t.startsAt}`)
248
+ }));
249
+ const eventAssets = pgTable("event_assets", {
250
+ orgId: text("org_id").notNull().references(() => organizations.id),
251
+ id: text("id").notNull().$defaultFn(() => genId("eventAsset")),
252
+ eventId: text("event_id").notNull(),
253
+ assetId: text("asset_id").notNull(),
254
+ seq: integer("seq").notNull().default(0),
255
+ displayName: text("display_name"),
256
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
257
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow().$onUpdate(() => /* @__PURE__ */ new Date())
258
+ }, (t) => ({
259
+ pk: primaryKey({ columns: [t.orgId, t.id] }),
260
+ eventFk: foreignKey({
261
+ columns: [t.orgId, t.eventId],
262
+ foreignColumns: [events.orgId, events.id]
263
+ }).onDelete("cascade"),
264
+ assetFk: foreignKey({
265
+ columns: [t.orgId, t.assetId],
266
+ foreignColumns: [assets.orgId, assets.id]
267
+ }),
268
+ eventAssetUq: unique().on(t.orgId, t.eventId, t.assetId),
269
+ assetIdx: index("event_assets_asset_idx").on(t.orgId, t.assetId)
270
+ }));
204
271
  const communities = pgTable("communities", {
205
272
  orgId: text("org_id").notNull().references(() => organizations.id),
206
273
  id: text("id").notNull().$defaultFn(() => genId("community")),
@@ -302,6 +369,6 @@ const spaceLinks = pgTable("space_links", {
302
369
  contentIdx: index("space_links_content_idx").on(t.orgId, t.contentId)
303
370
  }));
304
371
  //#endregion
305
- export { activities, activityAssets, bundleItems, bundles, communities, contentItems, courses, downloadAssets, downloads, modules, spaceLinks, spaceTopics, spaces };
372
+ export { activities, activityAssets, bundleItems, bundles, communities, contentItems, courses, downloadAssets, downloads, eventAssets, events, modules, spaceLinks, spaceTopics, spaces };
306
373
 
307
374
  //# sourceMappingURL=content.js.map