kritsana135-hooray-server
Version:
for server
39 lines (33 loc) • 862 B
JavaScript
import mongoose from "mongoose"
import mongooseDelete from "mongoosejs-soft-delete"
const permission = new mongoose.Schema({
permissionName: {
type: String,
trim: true,
},
code: {
type: String,
trim: true,
},
scopes: [String],
})
const PermissionRole = new mongoose.Schema({
roleKey: { type: String, required: [true, "Role key is required"] },
permissions: [permission],
})
const ApplicationSchema = new mongoose.Schema(
{
_id: { type: mongoose.Schema.Types.ObjectId },
name: { type: String },
appKey: { type: String },
data: Object,
rolePermissions: [PermissionRole],
updatedBy: { type: mongoose.Schema.Types.ObjectId },
},
{
timestamps: true,
}
)
ApplicationSchema.plugin(mongooseDelete)
export default (connection) =>
connection.model("applications", ApplicationSchema, "applications")