@coursebuilder/adapter-drizzle
Version:
Drizzle adapter for Course Builder.
78 lines (76 loc) • 2.04 kB
JavaScript
import {
getRolesSchema
} from "./chunk-LPJ2P2KJ.js";
import {
getPermissionsSchema
} from "./chunk-LZHZDFNZ.js";
import {
__name
} from "./chunk-H736K5TN.js";
// src/lib/mysql/schemas/auth/role-permissions.ts
import { relations } from "drizzle-orm";
import { boolean, index, primaryKey, timestamp, varchar } from "drizzle-orm/mysql-core";
function getRolePermissionsSchema(mysqlTable) {
return mysqlTable("RolePermission", {
roleId: varchar("roleId", {
length: 255
}).notNull(),
permissionId: varchar("permissionId", {
length: 255
}).notNull(),
active: boolean("active").notNull().default(true),
createdAt: timestamp("createdAt", {
mode: "date",
fsp: 3
}).defaultNow(),
updatedAt: timestamp("updatedAt", {
mode: "date",
fsp: 3
}).defaultNow(),
deletedAt: timestamp("deletedAt", {
mode: "date",
fsp: 3
})
}, (rp) => ({
pk: primaryKey({
columns: [
rp.roleId,
rp.permissionId
]
}),
roleIdIdx: index("roleId_idx").on(rp.roleId),
permissionIdIdx: index("permissionId_idx").on(rp.permissionId)
}));
}
__name(getRolePermissionsSchema, "getRolePermissionsSchema");
function getRolePermissionsRelationsSchema(mysqlTable) {
const permissions = getPermissionsSchema(mysqlTable);
const roles = getRolesSchema(mysqlTable);
const rolePermissions = getRolePermissionsSchema(mysqlTable);
return relations(rolePermissions, ({ one }) => ({
role: one(roles, {
fields: [
rolePermissions.roleId
],
references: [
roles.id
],
relationName: "role"
}),
permission: one(permissions, {
fields: [
rolePermissions.permissionId
],
references: [
permissions.id
],
relationName: "permission"
})
}));
}
__name(getRolePermissionsRelationsSchema, "getRolePermissionsRelationsSchema");
export {
getRolePermissionsSchema,
getRolePermissionsRelationsSchema
};
//# sourceMappingURL=chunk-3GONHHMY.js.map