Я пытаюсь создать динамические c пункты меню для системы отчетов, у меня есть около 5 основных групп отчетов, в каждой группе может быть другая группа, и, наконец, у нас есть эта группа отчетов,
Something like this:
Finance Reports ---> Daily Reports ----> Payments Report
|> Monthly Reports |> Customers Reports
Я пытаюсь вернуть сложную иерархию в ответе JSON для построения меню. Сценарий будет такой: Вход пользователя ---> получение групп пользователей ---> получение каждой группы групп - -> получить групповые отчеты.
пожалуйста, помогите, чтобы получить необходимую структуру для вышеуказанного сценария.
Схемы, которые я имею:
//ReportsGroups:
const reportsGroupSchema = new mongoose.Schema({
groupLabel: {
type: String,
required: true,
unique: true
},
groupName: {
type: String,
required: true,
unique: true
},
groupId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'ReportsGroup'
},
groupHierarchy: {
type: Number,
required: true
}
},
{
timestamps: true
});
// Reports:
const reportSchema = new mongoose.Schema({
reportLabel: {
type: String,
required: true,
unique: true
},
reportName: {
type: String,
required: true,
unique: true
},
groupId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'ReportsGroups',
required: true
},
storedProcedure: {
type: String,
required: true
}
},
{
timestamps: true
});
//Users Reports:
const userReportSchema = new mongoose.Schema({
groupId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'ReportsGroups',
required: true
},
userId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Users',
required: true
}
},
{
timestamps: true
});