/*
 * Copyright (c) 2022.
 * Author Peter Placzek (tada5hi)
 * For the full copyright and license information,
 * view the LICENSE file that was distributed with this source code.
 */

import {
    LayoutNavigationComponentInterface,
    LayoutSidebarComponentInterface
} from "~/modules/layout/types";

const LayoutNavigationAdminId : string = 'admin';
const LayoutNavigationDefaultId : string = 'default';

export {
    LayoutNavigationAdminId,
    LayoutNavigationDefaultId
}

export const LayoutNavigation : LayoutNavigationComponentInterface[] = [
    {
        id: LayoutNavigationDefaultId,
        name: 'Home',
        icon: 'fa fa-home',
    },
    {
        id: LayoutNavigationAdminId,
        name: 'Admin',
        icon: 'fas fa-cog',
        requireLoggedIn: true,
        requirePermissions: ['admin_ui_use']
    }
];

export const LayoutSidebars : {[key: string] : LayoutSidebarComponentInterface[]} = {
    admin: [
        {
            name: 'Allgemein',
            type: 'separator',
            requireLoggedIn: true
        },
        {
            name: 'Dashboard',
            type: 'link',
            url: '/admin',
            icon: 'fas fa-tachometer-alt',
            requireLoggedIn: true
        },
        {
            name: 'Realms & Provider',
            type: 'separator',
            requireLoggedIn: true,
            requirePermissions: ['realm_add', 'realm_drop', 'realm_edit', 'provider_add', 'provider_drop', 'provider_edit']
        },
        {
            name: 'Realms',
            type: 'link',
            url: '/admin/realms',
            icon: 'fas fa-university',
            requireLoggedIn: true,
            requirePermissions: ['realm_add', 'realm_drop', 'realm_edit']
        },
        {
            name: 'Providers',
            type: 'link',
            url: '/admin/providers',
            icon: 'fas fa-sign-in-alt',
            requireLoggedIn: true,
            requirePermissions: ['provider_add', 'provider_drop', 'provider_edit']
        },
        {
            name: 'Benutzer & Gruppen',
            type: 'separator',
            requireLoggedIn: true,
            requirePermissions: ['user_add', 'user_drop', 'user_edit', 'role_add', 'role_drop', 'role_edit', 'role_permission_add', 'role_permission_drop']
        },
        {
            name: 'Benutzer',
            type: 'link',
            url: '/admin/users',
            icon: 'fas fa-user',
            requireLoggedIn: true,
            requirePermissions: ['user_add', 'user_drop', 'user_edit']
        },
        {
            name: 'Rollen',
            type: 'link',
            url: '/admin/roles',
            icon: 'fas fa-users',
            requireLoggedIn: true,
            requirePermissions: ['role_add', 'role_drop', 'role_edit', 'role_permission_add', 'role_permission_drop']
        },
        {
            name: 'Berechtingungen',
            type: 'separator',
            requireLoggedIn: true,
            requirePermissions: ['permission_add', 'permission_drop']
        },
        {
            name: 'Berechtigungen',
            type: 'link',
            url: '/admin/permissions',
            icon: 'fas fa-key',
            requireLoggedIn: true,
            requirePermissions: ['permission_add', 'permission_drop']
        }
    ],
    default: [
        {
            name: 'Home',
            type: 'link',
            url: '/',
            icon: 'fas fa-home'
        },
        {
            name: 'Chat',
            type: 'link',
            url: '/chat/rooms',
            icon: 'fas fa-comments',
            requireLoggedIn: true,
        },
        {
            name: 'Sonstige',
            type: 'separator',
            requireLoggedIn: true,
            requireAttribute: {
                incognito: false
            }
        },
        {
            name: 'Kontakte',
            type: 'link',
            url: '/contacts',
            icon: 'fa fa-user-friends',
            requireLoggedIn: true
        },
        {
            name: 'Einstellungen',
            type: 'link',
            url: '/settings',
            icon: 'fas fa-cog',
            requireLoggedIn: true
        },
        {
            name: 'Login',
            type: 'link',
            url: '/login',
            icon: 'fas fa-sign-in-alt',
            requireLoggedOut: true
        },
        {
            name: 'Registrieren',
            type: 'link',
            url: '/register',
            icon: 'fas fa-user-plus',
            requireLoggedOut: true
        }
    ]

};
