# =============================================== # NAVIGATION # =============================================== extend type Query { navigation: NavigationQuery } extend type Mutation { navigation: NavigationMutation } # ----------------------------------------------- # QUERIES # ----------------------------------------------- type NavigationQuery { tree: [NavigationTree]! config: NavigationConfig! } # ----------------------------------------------- # MUTATIONS # ----------------------------------------------- type NavigationMutation { updateTree( tree: [NavigationTreeInput]! ): DefaultResponse @auth(requires: ["manage:navigation", "manage:system"]) updateConfig( mode: NavigationMode! ): DefaultResponse @auth(requires: ["manage:navigation", "manage:system"]) } # ----------------------------------------------- # TYPES # ----------------------------------------------- type NavigationTree { locale: String! items: [NavigationItem]! } input NavigationTreeInput { locale: String! items: [NavigationItemInput]! } type NavigationItem { id: String! kind: String! label: String icon: String targetType: String target: String visibilityMode: String visibilityGroups: [Int] } input NavigationItemInput { id: String! kind: String! label: String icon: String targetType: String target: String visibilityMode: String visibilityGroups: [Int] } type NavigationConfig { mode: NavigationMode! } enum NavigationMode { NONE TREE MIXED }