64 lines
1.1 KiB
JavaScript
64 lines
1.1 KiB
JavaScript
import { model, Schema, Types } from "mongoose";
|
|
|
|
const moduleSchema = new Schema({
|
|
module: {
|
|
type: String,
|
|
required: true,
|
|
enum: [
|
|
"branch",
|
|
"role",
|
|
"designation",
|
|
"department",
|
|
"user",
|
|
"profile",
|
|
"access",
|
|
"team",
|
|
"task",
|
|
"target",
|
|
"salary",
|
|
"vendor",
|
|
"expense",
|
|
"product",
|
|
"invoice",
|
|
"partner",
|
|
"activity",
|
|
"location",
|
|
"assignment",
|
|
"inventory",
|
|
"inventoryLog",
|
|
],
|
|
},
|
|
permission: {
|
|
type: String,
|
|
required: true,
|
|
enum: ["read", "write", "authorize", "delete"],
|
|
},
|
|
});
|
|
|
|
const schema = new Schema({
|
|
name: {
|
|
type: String,
|
|
required: true,
|
|
},
|
|
modules: {
|
|
type: [moduleSchema],
|
|
required: true,
|
|
},
|
|
keys: {
|
|
type: [String],
|
|
required: true,
|
|
enum: ["accounts", "admin", "sales", "field", "hr", "logistics"],
|
|
},
|
|
createdBy: {
|
|
type: Types.ObjectId,
|
|
required: true,
|
|
ref: "user",
|
|
},
|
|
createdOn: {
|
|
type: Date,
|
|
required: true,
|
|
},
|
|
});
|
|
|
|
export default model("role", schema);
|