menu.prisma 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. enum MenuType {
  2. DIRECTORY
  3. MENU
  4. SUBMENU
  5. BUTTON
  6. }
  7. model Menu {
  8. id Int @id @default(autoincrement())
  9. parentId Int? @map("parent_id")
  10. title String
  11. status Boolean @default(true)
  12. type MenuType
  13. order Int
  14. // existing
  15. frontendAuth String? @unique @map("frontend_auth")
  16. // NEW (optional, all nullable)
  17. parent Menu? @relation("MenuToChildren", fields: [parentId], references: [id])
  18. children Menu[] @relation("MenuToChildren")
  19. path String? @map("path") // route.path (full)
  20. name String? @map("name") // route.name
  21. icon String? @map("icon") // meta.icon
  22. redirect String? @map("redirect")
  23. component_key String? @map("component_key")
  24. meta Json?
  25. // action flags (0,1,2)
  26. canView Int @default(0)
  27. canCreate Int @default(0)
  28. canUpdate Int @default(0)
  29. canDelete Int @default(0)
  30. roleMenus RoleMenu[]
  31. apiPermissions ApiPermission[]
  32. createTime DateTime @default(now()) @map("create_time")
  33. updateTime DateTime @default(now()) @updatedAt @map("update_time")
  34. @@map("sys_menu")
  35. }