@coursebuilder/adapter-drizzle 0.1.2 → 0.1.4

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 (173) hide show
  1. package/dist/{chunk-QZOBGJSV.js → chunk-2CI3IGR2.js} +4 -4
  2. package/dist/{chunk-ISURSRBK.js → chunk-3RJVKNXB.js} +425 -142
  3. package/dist/{chunk-RVYJDDZD.js → chunk-53266VWH.js} +3 -3
  4. package/dist/{chunk-OIUOQ3TT.js → chunk-57CX5SOI.js} +2 -2
  5. package/dist/{chunk-75V6F7LZ.js → chunk-5HT43CVZ.js} +2 -2
  6. package/dist/{chunk-SFJM6FKE.js → chunk-BX5SO2JG.js} +2 -2
  7. package/dist/{chunk-LSOPFMDB.js → chunk-FNYW3XKR.js} +3 -3
  8. package/dist/{chunk-V6QEDDFG.js → chunk-GLPDG7UE.js} +2 -2
  9. package/dist/{chunk-VNI36MMC.js → chunk-H736K5TN.js} +1 -1
  10. package/dist/{chunk-6CBAFOL3.js → chunk-J4LBG2TH.js} +2 -2
  11. package/dist/{chunk-JD4KFACE.js → chunk-JKOYOL7A.js} +2 -2
  12. package/dist/{chunk-TMQIGK3N.js → chunk-MBB4GIJI.js} +2 -2
  13. package/dist/{chunk-27KREOQW.js → chunk-PJHGIRZM.js} +2 -2
  14. package/dist/{chunk-L2TQQYG4.js → chunk-PPBEA4EM.js} +2 -2
  15. package/dist/{chunk-MYRB6GLJ.js → chunk-Q5WENQT6.js} +3 -3
  16. package/dist/{chunk-H4MXNDWO.js → chunk-V23SCQL7.js} +2 -2
  17. package/dist/{chunk-NZDLUQWP.js → chunk-VDVCCU7D.js} +2 -2
  18. package/dist/{chunk-IN6G6MTW.js → chunk-VXZRMVNY.js} +2 -2
  19. package/dist/chunk-WQ7UXKZC.js +9293 -0
  20. package/dist/{chunk-JKRFXYAR.js → chunk-Y7QZGEPT.js} +2 -2
  21. package/dist/index.d.ts +0 -2
  22. package/dist/index.js +20 -37
  23. package/dist/lib/mysql/index.cjs +1775 -1155
  24. package/dist/lib/mysql/index.cjs.map +1 -1
  25. package/dist/lib/mysql/index.d.cts +6143 -0
  26. package/dist/lib/mysql/index.d.ts +253 -19
  27. package/dist/lib/mysql/index.js +20 -24
  28. package/dist/lib/mysql/schemas/auth/accounts.cjs +73 -57
  29. package/dist/lib/mysql/schemas/auth/accounts.cjs.map +1 -1
  30. package/dist/lib/mysql/schemas/auth/accounts.d.cts +184 -0
  31. package/dist/lib/mysql/schemas/auth/accounts.js +10 -10
  32. package/dist/lib/mysql/schemas/auth/permissions.d.cts +98 -0
  33. package/dist/lib/mysql/schemas/auth/permissions.js +2 -2
  34. package/dist/lib/mysql/schemas/auth/role-permissions.cjs +64 -48
  35. package/dist/lib/mysql/schemas/auth/role-permissions.cjs.map +1 -1
  36. package/dist/lib/mysql/schemas/auth/role-permissions.d.cts +89 -0
  37. package/dist/lib/mysql/schemas/auth/role-permissions.js +11 -11
  38. package/dist/lib/mysql/schemas/auth/roles.cjs +64 -48
  39. package/dist/lib/mysql/schemas/auth/roles.cjs.map +1 -1
  40. package/dist/lib/mysql/schemas/auth/roles.d.cts +100 -0
  41. package/dist/lib/mysql/schemas/auth/roles.js +10 -10
  42. package/dist/lib/mysql/schemas/auth/sessions.cjs +64 -48
  43. package/dist/lib/mysql/schemas/auth/sessions.cjs.map +1 -1
  44. package/dist/lib/mysql/schemas/auth/sessions.d.cts +52 -0
  45. package/dist/lib/mysql/schemas/auth/sessions.js +11 -11
  46. package/dist/lib/mysql/schemas/auth/user-permissions.cjs +65 -49
  47. package/dist/lib/mysql/schemas/auth/user-permissions.cjs.map +1 -1
  48. package/dist/lib/mysql/schemas/auth/user-permissions.d.cts +89 -0
  49. package/dist/lib/mysql/schemas/auth/user-permissions.js +10 -10
  50. package/dist/lib/mysql/schemas/auth/user-roles.cjs +67 -51
  51. package/dist/lib/mysql/schemas/auth/user-roles.cjs.map +1 -1
  52. package/dist/lib/mysql/schemas/auth/user-roles.d.cts +89 -0
  53. package/dist/lib/mysql/schemas/auth/user-roles.js +10 -10
  54. package/dist/lib/mysql/schemas/auth/users.cjs +170 -154
  55. package/dist/lib/mysql/schemas/auth/users.cjs.map +1 -1
  56. package/dist/lib/mysql/schemas/auth/users.d.cts +106 -0
  57. package/dist/lib/mysql/schemas/auth/users.js +10 -10
  58. package/dist/lib/mysql/schemas/auth/verification-tokens.d.cts +60 -0
  59. package/dist/lib/mysql/schemas/auth/verification-tokens.js +2 -2
  60. package/dist/lib/mysql/schemas/commerce/coupon.cjs +180 -17
  61. package/dist/lib/mysql/schemas/commerce/coupon.cjs.map +1 -1
  62. package/dist/lib/mysql/schemas/commerce/coupon.d.cts +172 -0
  63. package/dist/lib/mysql/schemas/commerce/coupon.d.ts +10 -6
  64. package/dist/lib/mysql/schemas/commerce/coupon.js +12 -2
  65. package/dist/lib/mysql/schemas/commerce/merchant-account.d.cts +72 -0
  66. package/dist/lib/mysql/schemas/commerce/merchant-account.js +2 -2
  67. package/dist/lib/mysql/schemas/commerce/merchant-charge.d.cts +108 -0
  68. package/dist/lib/mysql/schemas/commerce/merchant-charge.js +2 -2
  69. package/dist/lib/mysql/schemas/commerce/merchant-coupon.d.cts +84 -0
  70. package/dist/lib/mysql/schemas/commerce/merchant-coupon.js +2 -2
  71. package/dist/lib/mysql/schemas/commerce/merchant-customer.d.cts +84 -0
  72. package/dist/lib/mysql/schemas/commerce/merchant-customer.js +2 -2
  73. package/dist/lib/mysql/schemas/commerce/merchant-price.d.cts +96 -0
  74. package/dist/lib/mysql/schemas/commerce/merchant-price.js +2 -2
  75. package/dist/lib/mysql/schemas/commerce/merchant-product.d.cts +84 -0
  76. package/dist/lib/mysql/schemas/commerce/merchant-product.js +2 -2
  77. package/dist/lib/mysql/schemas/commerce/merchant-session.d.cts +48 -0
  78. package/dist/lib/mysql/schemas/commerce/merchant-session.js +2 -2
  79. package/dist/lib/mysql/schemas/commerce/price.cjs +192 -11
  80. package/dist/lib/mysql/schemas/commerce/price.cjs.map +1 -1
  81. package/dist/lib/mysql/schemas/commerce/price.d.cts +101 -0
  82. package/dist/lib/mysql/schemas/commerce/price.d.ts +7 -2
  83. package/dist/lib/mysql/schemas/commerce/price.js +14 -4
  84. package/dist/lib/mysql/schemas/commerce/product.cjs +230 -9
  85. package/dist/lib/mysql/schemas/commerce/product.cjs.map +1 -1
  86. package/dist/lib/mysql/schemas/commerce/product.d.cts +114 -0
  87. package/dist/lib/mysql/schemas/commerce/product.d.ts +20 -2
  88. package/dist/lib/mysql/schemas/commerce/product.js +12 -2
  89. package/dist/lib/mysql/schemas/commerce/purchase-user-transfer.d.cts +132 -0
  90. package/dist/lib/mysql/schemas/commerce/purchase-user-transfer.js +2 -2
  91. package/dist/lib/mysql/schemas/commerce/purchase.cjs +152 -122
  92. package/dist/lib/mysql/schemas/commerce/purchase.cjs.map +1 -1
  93. package/dist/lib/mysql/schemas/commerce/purchase.d.cts +225 -0
  94. package/dist/lib/mysql/schemas/commerce/purchase.d.ts +2 -1
  95. package/dist/lib/mysql/schemas/commerce/purchase.js +10 -10
  96. package/dist/lib/mysql/schemas/commerce/upgradable-products.cjs +110 -24
  97. package/dist/lib/mysql/schemas/commerce/upgradable-products.cjs.map +1 -1
  98. package/dist/lib/mysql/schemas/commerce/upgradable-products.d.cts +101 -0
  99. package/dist/lib/mysql/schemas/commerce/upgradable-products.js +11 -3
  100. package/dist/lib/mysql/schemas/communication/communication-channel.d.cts +96 -0
  101. package/dist/lib/mysql/schemas/communication/communication-channel.js +2 -2
  102. package/dist/lib/mysql/schemas/communication/communication-preference-types.d.cts +96 -0
  103. package/dist/lib/mysql/schemas/communication/communication-preference-types.js +2 -2
  104. package/dist/lib/mysql/schemas/communication/communication-preferences.cjs +84 -68
  105. package/dist/lib/mysql/schemas/communication/communication-preferences.cjs.map +1 -1
  106. package/dist/lib/mysql/schemas/communication/communication-preferences.d.cts +150 -0
  107. package/dist/lib/mysql/schemas/communication/communication-preferences.js +10 -10
  108. package/dist/lib/mysql/schemas/content/content-contributions.cjs +92 -76
  109. package/dist/lib/mysql/schemas/content/content-contributions.cjs.map +1 -1
  110. package/dist/lib/mysql/schemas/content/content-contributions.d.cts +114 -0
  111. package/dist/lib/mysql/schemas/content/content-contributions.js +10 -10
  112. package/dist/lib/mysql/schemas/content/content-resource-product.cjs +246 -0
  113. package/dist/lib/mysql/schemas/content/content-resource-product.cjs.map +1 -0
  114. package/dist/lib/mysql/schemas/content/content-resource-product.d.cts +101 -0
  115. package/dist/lib/mysql/schemas/content/content-resource-product.d.ts +101 -0
  116. package/dist/lib/mysql/schemas/content/content-resource-product.js +18 -0
  117. package/dist/lib/mysql/schemas/content/content-resource-resource.cjs +67 -51
  118. package/dist/lib/mysql/schemas/content/content-resource-resource.cjs.map +1 -1
  119. package/dist/lib/mysql/schemas/content/content-resource-resource.d.cts +101 -0
  120. package/dist/lib/mysql/schemas/content/content-resource-resource.js +10 -10
  121. package/dist/lib/mysql/schemas/content/content-resource.cjs +116 -62
  122. package/dist/lib/mysql/schemas/content/content-resource.cjs.map +1 -1
  123. package/dist/lib/mysql/schemas/content/content-resource.d.cts +103 -0
  124. package/dist/lib/mysql/schemas/content/content-resource.d.ts +1 -0
  125. package/dist/lib/mysql/schemas/content/content-resource.js +10 -10
  126. package/dist/lib/mysql/schemas/content/contribution-types.d.cts +110 -0
  127. package/dist/lib/mysql/schemas/content/contribution-types.js +2 -2
  128. package/dist/lib/mysql/schemas/content/resource-progress.cjs +1 -1
  129. package/dist/lib/mysql/schemas/content/resource-progress.cjs.map +1 -1
  130. package/dist/lib/mysql/schemas/content/resource-progress.d.cts +84 -0
  131. package/dist/lib/mysql/schemas/content/resource-progress.d.ts +1 -1
  132. package/dist/lib/mysql/schemas/content/resource-progress.js +2 -2
  133. package/dist/lib/mysql/utils.cjs.map +1 -1
  134. package/dist/lib/mysql/utils.d.cts +12 -0
  135. package/dist/lib/mysql/utils.js +1 -1
  136. package/dist/lib/mysql/utils.js.map +1 -1
  137. package/dist/lib/utils.cjs.map +1 -1
  138. package/dist/lib/utils.d.cts +22 -0
  139. package/dist/lib/utils.d.ts +4 -8
  140. package/dist/lib/utils.js +12 -3
  141. package/dist/lib/utils.js.map +1 -1
  142. package/package.json +5 -5
  143. package/src/index.ts +0 -8
  144. package/src/lib/mysql/index.ts +611 -129
  145. package/src/lib/mysql/schemas/auth/user-roles.ts +2 -2
  146. package/src/lib/mysql/schemas/commerce/coupon.ts +20 -4
  147. package/src/lib/mysql/schemas/commerce/price.ts +23 -2
  148. package/src/lib/mysql/schemas/commerce/product.ts +27 -2
  149. package/src/lib/mysql/schemas/commerce/purchase.ts +6 -1
  150. package/src/lib/mysql/schemas/content/content-resource-product.ts +62 -0
  151. package/src/lib/mysql/schemas/content/content-resource.ts +5 -0
  152. package/src/lib/mysql/schemas/content/resource-progress.ts +1 -1
  153. package/src/lib/utils.ts +1 -9
  154. package/dist/chunk-44VDBYFU.js +0 -60
  155. package/dist/chunk-7LAAAEVE.js +0 -379
  156. package/dist/chunk-AFQGYW7Z.js +0 -45
  157. package/dist/chunk-CPE4P26C.js +0 -42
  158. package/dist/chunk-DHYYRN35.js +0 -4679
  159. package/dist/chunk-GFUUJRX7.js +0 -18
  160. package/dist/chunk-O2KKII62.js +0 -381
  161. package/dist/chunk-Y34AIPU7.js +0 -4137
  162. package/dist/lib/pg.cjs +0 -4527
  163. package/dist/lib/pg.cjs.map +0 -1
  164. package/dist/lib/pg.d.ts +0 -496
  165. package/dist/lib/pg.js +0 -11
  166. package/dist/lib/sqlite.cjs +0 -4536
  167. package/dist/lib/sqlite.cjs.map +0 -1
  168. package/dist/lib/sqlite.d.ts +0 -496
  169. package/dist/lib/sqlite.js +0 -12
  170. package/dist/lib/sqlite.js.map +0 -1
  171. package/src/lib/pg.ts +0 -579
  172. package/src/lib/sqlite.ts +0 -562
  173. /package/dist/lib/{pg.js.map → mysql/schemas/content/content-resource-product.js.map} +0 -0
@@ -47,12 +47,12 @@ export function getUserRolesRelationsSchema(mysqlTable: MySqlTableFn) {
47
47
  user: one(users, {
48
48
  fields: [userRoles.userId],
49
49
  references: [users.id],
50
- relationName: 'role',
50
+ relationName: 'user',
51
51
  }),
52
52
  role: one(roles, {
53
53
  fields: [userRoles.roleId],
54
54
  references: [roles.id],
55
- relationName: 'user',
55
+ relationName: 'role',
56
56
  }),
57
57
  }))
58
58
  }
@@ -1,16 +1,22 @@
1
- import { sql } from 'drizzle-orm'
1
+ import { relations, sql } from 'drizzle-orm'
2
2
  import {
3
+ boolean,
3
4
  decimal,
4
5
  int,
5
6
  json,
6
7
  MySqlTableFn,
7
8
  primaryKey,
8
9
  timestamp,
9
- tinyint,
10
10
  unique,
11
11
  varchar,
12
12
  } from 'drizzle-orm/mysql-core'
13
13
 
14
+ import { getContentResourceProductSchema } from '../content/content-resource-product.js'
15
+ import { getMerchantProductSchema } from './merchant-product.js'
16
+ import { getPriceSchema } from './price.js'
17
+ import { getProductSchema } from './product.js'
18
+ import { getPurchaseSchema } from './purchase.js'
19
+
14
20
  export function getCouponSchema(mysqlTable: MySqlTableFn) {
15
21
  return mysqlTable(
16
22
  'coupons',
@@ -21,9 +27,9 @@ export function getCouponSchema(mysqlTable: MySqlTableFn) {
21
27
  .default(sql`CURRENT_TIMESTAMP(3)`)
22
28
  .notNull(),
23
29
  expires: timestamp('expires', { mode: 'date', fsp: 3 }),
24
- metadata: json('fields').$type<Record<string, any>>().default({}),
30
+ fields: json('fields').$type<Record<string, any>>().default({}),
25
31
  maxUses: int('maxUses').default(-1).notNull(),
26
- default: tinyint('default').default(0).notNull(),
32
+ default: boolean('default').default(false).notNull(),
27
33
  merchantCouponId: varchar('merchantCouponId', { length: 191 }),
28
34
  status: int('status').default(0).notNull(),
29
35
  usedCount: int('usedCount').default(0).notNull(),
@@ -45,3 +51,13 @@ export function getCouponSchema(mysqlTable: MySqlTableFn) {
45
51
  },
46
52
  )
47
53
  }
54
+
55
+ export function getCouponRelationsSchema(mysqlTable: MySqlTableFn) {
56
+ const purchase = getPurchaseSchema(mysqlTable)
57
+ const coupon = getCouponSchema(mysqlTable)
58
+ return relations(coupon, ({ many }) => ({
59
+ bulkCouponPurchases: many(purchase, {
60
+ relationName: 'redeemedBulkCoupon',
61
+ }),
62
+ }))
63
+ }
@@ -1,4 +1,4 @@
1
- import { sql } from 'drizzle-orm'
1
+ import { relations, sql } from 'drizzle-orm'
2
2
  import {
3
3
  decimal,
4
4
  int,
@@ -9,6 +9,9 @@ import {
9
9
  varchar,
10
10
  } from 'drizzle-orm/mysql-core'
11
11
 
12
+ import { getMerchantPriceSchema } from './merchant-price.js'
13
+ import { getProductSchema } from './product.js'
14
+
12
15
  export function getPriceSchema(mysqlTable: MySqlTableFn) {
13
16
  return mysqlTable(
14
17
  'prices',
@@ -21,7 +24,7 @@ export function getPriceSchema(mysqlTable: MySqlTableFn) {
21
24
  createdAt: timestamp('createdAt', { mode: 'date', fsp: 3 })
22
25
  .default(sql`CURRENT_TIMESTAMP(3)`)
23
26
  .notNull(),
24
- metadata: json('fields').$type<Record<string, any>>().default({}),
27
+ fields: json('fields').$type<Record<string, any>>().default({}),
25
28
  },
26
29
  (table) => {
27
30
  return {
@@ -30,3 +33,21 @@ export function getPriceSchema(mysqlTable: MySqlTableFn) {
30
33
  },
31
34
  )
32
35
  }
36
+
37
+ export function getProductRelationsSchema(mysqlTable: MySqlTableFn) {
38
+ const product = getProductSchema(mysqlTable)
39
+ const price = getPriceSchema(mysqlTable)
40
+ const merchantPrice = getMerchantPriceSchema(mysqlTable)
41
+ return relations(price, ({ one, many }) => ({
42
+ product: one(product, {
43
+ fields: [price.productId],
44
+ references: [product.id],
45
+ relationName: 'user',
46
+ }),
47
+ merchantPrice: one(merchantPrice, {
48
+ fields: [price.id],
49
+ references: [merchantPrice.priceId],
50
+ relationName: 'merchantPrice',
51
+ }),
52
+ }))
53
+ }
@@ -1,4 +1,4 @@
1
- import { sql } from 'drizzle-orm'
1
+ import { relations, sql } from 'drizzle-orm'
2
2
  import {
3
3
  int,
4
4
  json,
@@ -8,6 +8,10 @@ import {
8
8
  varchar,
9
9
  } from 'drizzle-orm/mysql-core'
10
10
 
11
+ import { getContentResourceProductSchema } from '../content/content-resource-product.js'
12
+ import { getMerchantProductSchema } from './merchant-product.js'
13
+ import { getPriceSchema } from './price.js'
14
+
11
15
  export function getProductSchema(mysqlTable: MySqlTableFn) {
12
16
  return mysqlTable(
13
17
  'products',
@@ -15,7 +19,8 @@ export function getProductSchema(mysqlTable: MySqlTableFn) {
15
19
  id: varchar('id', { length: 191 }).notNull(),
16
20
  name: varchar('name', { length: 191 }).notNull(),
17
21
  key: varchar('key', { length: 191 }),
18
- metadata: json('fields').$type<Record<string, any>>().default({}),
22
+ type: varchar('type', { length: 191 }),
23
+ fields: json('fields').$type<Record<string, any>>().default({}),
19
24
  createdAt: timestamp('createdAt', { mode: 'date', fsp: 3 })
20
25
  .default(sql`CURRENT_TIMESTAMP(3)`)
21
26
  .notNull(),
@@ -29,3 +34,23 @@ export function getProductSchema(mysqlTable: MySqlTableFn) {
29
34
  },
30
35
  )
31
36
  }
37
+
38
+ export function getProductRelationsSchema(mysqlTable: MySqlTableFn) {
39
+ const product = getProductSchema(mysqlTable)
40
+ const price = getPriceSchema(mysqlTable)
41
+ const merchantProduct = getMerchantProductSchema(mysqlTable)
42
+ const contentResourceProduct = getContentResourceProductSchema(mysqlTable)
43
+ return relations(product, ({ one, many }) => ({
44
+ price: one(price, {
45
+ fields: [product.id],
46
+ references: [price.productId],
47
+ relationName: 'price',
48
+ }),
49
+ resources: many(contentResourceProduct, { relationName: 'product' }),
50
+ merchantProduct: one(merchantProduct, {
51
+ fields: [product.id],
52
+ references: [merchantProduct.productId],
53
+ relationName: 'merchantProduct',
54
+ }),
55
+ }))
56
+ }
@@ -43,7 +43,7 @@ export function getPurchaseSchema(mysqlTable: MySqlTableFn) {
43
43
  bulkCouponId: varchar('bulkCouponId', { length: 191 }),
44
44
  merchantSessionId: varchar('merchantSessionId', { length: 191 }),
45
45
  redeemedBulkCouponId: varchar('redeemedBulkCouponId', { length: 191 }),
46
- metadata: json('fields').$type<Record<string, any>>().default({}),
46
+ fields: json('fields').$type<Record<string, any>>().default({}),
47
47
  },
48
48
  (table) => {
49
49
  return {
@@ -65,6 +65,11 @@ export function getPurchaseRelationsSchema(mysqlTable: MySqlTableFn) {
65
65
  const coupons = getCouponSchema(mysqlTable)
66
66
 
67
67
  return relations(purchases, ({ many, one }) => ({
68
+ redeemedBulkCoupon: one(coupons, {
69
+ fields: [purchases.redeemedBulkCouponId],
70
+ references: [coupons.id],
71
+ relationName: 'redeemedBulkCoupon',
72
+ }),
68
73
  user: one(users, {
69
74
  fields: [purchases.userId],
70
75
  references: [users.id],
@@ -0,0 +1,62 @@
1
+ import { relations, sql } from 'drizzle-orm'
2
+ import {
3
+ double,
4
+ index,
5
+ json,
6
+ MySqlTableFn,
7
+ primaryKey,
8
+ timestamp,
9
+ varchar,
10
+ } from 'drizzle-orm/mysql-core'
11
+
12
+ import { getProductSchema } from '../commerce/product.js'
13
+ import { getContentResourceSchema } from './content-resource.js'
14
+
15
+ export function getContentResourceProductSchema(mysqlTable: MySqlTableFn) {
16
+ return mysqlTable(
17
+ 'contentResourceProduct',
18
+ {
19
+ productId: varchar('productId', { length: 255 }).notNull(),
20
+ resourceId: varchar('resourceId', { length: 255 }).notNull(),
21
+ position: double('position').notNull().default(0),
22
+ metadata: json('metadata').$type<Record<string, any>>().default({}),
23
+ createdAt: timestamp('createdAt', {
24
+ mode: 'date',
25
+ fsp: 3,
26
+ }).default(sql`CURRENT_TIMESTAMP(3)`),
27
+ updatedAt: timestamp('updatedAt', {
28
+ mode: 'date',
29
+ fsp: 3,
30
+ }).default(sql`CURRENT_TIMESTAMP(3)`),
31
+ deletedAt: timestamp('deletedAt', {
32
+ mode: 'date',
33
+ fsp: 3,
34
+ }),
35
+ },
36
+ (crr) => ({
37
+ pk: primaryKey({ columns: [crr.productId, crr.resourceId] }),
38
+ contentResourceIdIdx: index('contentResourceId_idx').on(crr.productId),
39
+ resourceIdIdx: index('resourceId_idx').on(crr.resourceId),
40
+ }),
41
+ )
42
+ }
43
+
44
+ export function getContentResourceProductRelationsSchema(
45
+ mysqlTable: MySqlTableFn,
46
+ ) {
47
+ const contentResource = getContentResourceSchema(mysqlTable)
48
+ const contentResourceProduct = getContentResourceProductSchema(mysqlTable)
49
+ const product = getProductSchema(mysqlTable)
50
+ return relations(contentResourceProduct, ({ one }) => ({
51
+ product: one(product, {
52
+ fields: [contentResourceProduct.productId],
53
+ references: [product.id],
54
+ relationName: 'product',
55
+ }),
56
+ resource: one(contentResource, {
57
+ fields: [contentResourceProduct.resourceId],
58
+ references: [contentResource.id],
59
+ relationName: 'resource',
60
+ }),
61
+ }))
62
+ }
@@ -9,6 +9,7 @@ import {
9
9
 
10
10
  import { getUsersSchema } from '../auth/users.js'
11
11
  import { getContentContributionsSchema } from './content-contributions.js'
12
+ import { getContentResourceProductSchema } from './content-resource-product.js'
12
13
  import { getContentResourceResourceSchema } from './content-resource-resource.js'
13
14
 
14
15
  export function getContentResourceSchema(mysqlTable: MySqlTableFn) {
@@ -44,6 +45,7 @@ export function getContentResourceRelationsSchema(mysqlTable: MySqlTableFn) {
44
45
  const contentResource = getContentResourceSchema(mysqlTable)
45
46
  const users = getUsersSchema(mysqlTable)
46
47
  const contentResourceResource = getContentResourceResourceSchema(mysqlTable)
48
+ const contentResourceProduct = getContentResourceProductSchema(mysqlTable)
47
49
  return relations(contentResource, ({ one, many }) => ({
48
50
  createdBy: one(users, {
49
51
  fields: [contentResource.createdById],
@@ -52,5 +54,8 @@ export function getContentResourceRelationsSchema(mysqlTable: MySqlTableFn) {
52
54
  }),
53
55
  resources: many(contentResourceResource, { relationName: 'resourceOf' }),
54
56
  resourceOf: many(contentResourceResource, { relationName: 'resource' }),
57
+ resourceProducts: many(contentResourceProduct, {
58
+ relationName: 'resource',
59
+ }),
55
60
  }))
56
61
  }
@@ -14,7 +14,7 @@ export function getResourceProgressSchema(mysqlTable: MySqlTableFn) {
14
14
  {
15
15
  userId: varchar('userId', { length: 191 }).notNull(),
16
16
  contentResourceId: varchar('contentResourceId', { length: 191 }),
17
- metadata: json('fields').$type<Record<string, any>>().default({}),
17
+ fields: json('fields').$type<Record<string, any>>().default({}),
18
18
  completedAt: datetime('completedAt', { mode: 'date', fsp: 3 }),
19
19
  updatedAt: datetime('updatedAt', { mode: 'date', fsp: 3 }),
20
20
  createdAt: datetime('createdAt', { mode: 'date', fsp: 3 })
package/src/lib/utils.ts CHANGED
@@ -6,8 +6,6 @@ import { type BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core'
6
6
  import type { AnySQLiteTable, SQLiteTableFn } from 'drizzle-orm/sqlite-core'
7
7
 
8
8
  import type { DefaultSchema as MySqlSchema } from './mysql/index.js'
9
- import type { DefaultSchema as PgSchema } from './pg.js'
10
- import type { DefaultSchema as SQLiteSchema } from './sqlite.js'
11
9
 
12
10
  export type AnyMySqlDatabase = MySqlDatabase<any, any>
13
11
  export type AnyPgDatabase = PgDatabase<any, any, any>
@@ -15,8 +13,6 @@ export type AnySQLiteDatabase = BaseSQLiteDatabase<any, any, any, any>
15
13
 
16
14
  export interface MinimumSchema {
17
15
  mysql: MySqlSchema & Record<string, AnyMySqlTable>
18
- pg: PgSchema & Record<string, AnyPgTable>
19
- sqlite: SQLiteSchema & Record<string, AnySQLiteTable>
20
16
  }
21
17
 
22
18
  export type SqlFlavorOptions =
@@ -26,11 +22,7 @@ export type SqlFlavorOptions =
26
22
 
27
23
  export type ClientFlavors<Flavor> = Flavor extends AnyMySqlDatabase
28
24
  ? MinimumSchema['mysql']
29
- : Flavor extends AnyPgDatabase
30
- ? MinimumSchema['pg']
31
- : Flavor extends AnySQLiteDatabase
32
- ? MinimumSchema['sqlite']
33
- : never
25
+ : never
34
26
 
35
27
  export type TableFn<Flavor> = Flavor extends AnyMySqlDatabase
36
28
  ? MySqlTableFn
@@ -1,60 +0,0 @@
1
- import {
2
- __name
3
- } from "./chunk-VNI36MMC.js";
4
-
5
- // src/lib/mysql/schemas/commerce/coupon.ts
6
- import { sql } from "drizzle-orm";
7
- import { decimal, int, json, primaryKey, timestamp, tinyint, unique, varchar } from "drizzle-orm/mysql-core";
8
- function getCouponSchema(mysqlTable) {
9
- return mysqlTable("coupons", {
10
- id: varchar("id", {
11
- length: 191
12
- }).notNull(),
13
- code: varchar("code", {
14
- length: 191
15
- }),
16
- createdAt: timestamp("createdAt", {
17
- mode: "date",
18
- fsp: 3
19
- }).default(sql`CURRENT_TIMESTAMP(3)`).notNull(),
20
- expires: timestamp("expires", {
21
- mode: "date",
22
- fsp: 3
23
- }),
24
- metadata: json("fields").$type().default({}),
25
- maxUses: int("maxUses").default(-1).notNull(),
26
- default: tinyint("default").default(0).notNull(),
27
- merchantCouponId: varchar("merchantCouponId", {
28
- length: 191
29
- }),
30
- status: int("status").default(0).notNull(),
31
- usedCount: int("usedCount").default(0).notNull(),
32
- percentageDiscount: decimal("percentageDiscount", {
33
- precision: 3,
34
- scale: 2
35
- }).notNull(),
36
- restrictedToProductId: varchar("restrictedToProductId", {
37
- length: 191
38
- }),
39
- bulkPurchaseId: varchar("bulkPurchaseId", {
40
- length: 191
41
- })
42
- }, (table) => {
43
- return {
44
- couponId: primaryKey({
45
- columns: [
46
- table.id
47
- ],
48
- name: "Coupon_id"
49
- }),
50
- couponBulkPurchaseIdKey: unique("Coupon_bulkPurchaseId_key").on(table.bulkPurchaseId),
51
- couponCodeKey: unique("Coupon_code_key").on(table.code)
52
- };
53
- });
54
- }
55
- __name(getCouponSchema, "getCouponSchema");
56
-
57
- export {
58
- getCouponSchema
59
- };
60
- //# sourceMappingURL=chunk-44VDBYFU.js.map