@coursebuilder/adapter-drizzle
Version:
Drizzle adapter for Course Builder.
79 lines (77 loc) • 2.33 kB
JavaScript
import {
getProductSchema
} from "./chunk-LPJ2P2KJ.js";
import {
__name
} from "./chunk-H736K5TN.js";
// src/lib/mysql/schemas/commerce/upgradable-products.ts
import { relations, sql } from "drizzle-orm";
import { double, index, json, primaryKey, timestamp, varchar } from "drizzle-orm/mysql-core";
function getUpgradableProductsSchema(mysqlTable) {
return mysqlTable("UpgradableProducts", {
upgradableToId: varchar("upgradableToId", {
length: 255
}).notNull(),
upgradableFromId: varchar("upgradableFrom", {
length: 255
}).notNull(),
organizationId: varchar("organizationId", {
length: 191
}),
position: double("position").notNull().default(0),
metadata: json("metadata").$type().default({}),
createdAt: timestamp("createdAt", {
mode: "date",
fsp: 3
}).default(sql`CURRENT_TIMESTAMP(3)`),
updatedAt: timestamp("updatedAt", {
mode: "date",
fsp: 3
}).default(sql`CURRENT_TIMESTAMP(3)`),
deletedAt: timestamp("deletedAt", {
mode: "date",
fsp: 3
})
}, (crr) => ({
pk: primaryKey({
columns: [
crr.upgradableToId,
crr.upgradableFromId
]
}),
upgradableToIdIdx: index("upgradableFromId_idx").on(crr.upgradableToId),
upgradableFromIdIdx: index("upgradableToId_idx").on(crr.upgradableFromId),
organizationIdIdx: index("organizationId_idx").on(crr.organizationId)
}));
}
__name(getUpgradableProductsSchema, "getUpgradableProductsSchema");
function getUpgradableProductsRelationsSchema(mysqlTable) {
const product = getProductSchema(mysqlTable);
const upgradableProduct = getUpgradableProductsSchema(mysqlTable);
return relations(upgradableProduct, ({ one }) => ({
upgradableTo: one(product, {
fields: [
upgradableProduct.upgradableToId
],
references: [
product.id
],
relationName: "upgradableTo"
}),
upgradableFrom: one(product, {
fields: [
upgradableProduct.upgradableFromId
],
references: [
product.id
],
relationName: "upgradableFrom"
})
}));
}
__name(getUpgradableProductsRelationsSchema, "getUpgradableProductsRelationsSchema");
export {
getUpgradableProductsSchema,
getUpgradableProductsRelationsSchema
};
//# sourceMappingURL=chunk-FPAQINSA.js.map