import { RouterView } from 'vue-router';

export default {
    path: '/account',
    name: 'Account',
    meta: {
        title: 'users',
        icon: 'face',
        moduleName: 'Account',
        keyBinding: 'u',
    },
    component: RouterView,
    redirect: { name: 'AccountMain' },
    menus: {
        main: [
            'AccountList',
            'AccountAliasList',
            'AccountRoles',
            'AccountAccounts',
            'AccountLdap',
            'AccountSamba',
            'AccountAcls',
            'AccountConnections',
        ],
        card: [
            'AccountBasicData',
            'AccountInheritedRoles',
            'AccountMailForwarding',
            'AccountMailAlias',
            'AccountPrivileges',
            'AccountLog',
        ],
    },
    children: [
        {
            path: '',
            name: 'AccountMain',
            component: () => import('src/components/common/VnSectionMain.vue'),
            redirect: { name: 'AccountList' },
            children: [
                {
                    path: 'list',
                    name: 'AccountList',
                    meta: {
                        title: 'list',
                        icon: 'view_list',
                    },
                    component: () => import('src/pages/Account/AccountList.vue'),
                },
                {
                    path: 'role-list',
                    name: 'AccountRoles',
                    meta: {
                        title: 'roles',
                        icon: 'group',
                    },
                    component: () => import('src/pages/Account/Role/AccountRoles.vue'),
                },
                {
                    path: 'alias-list',
                    name: 'AccountAliasList',
                    meta: {
                        title: 'alias',
                        icon: 'email',
                    },
                    component: () => import('src/pages/Account/AccountAliasList.vue'),
                },
                {
                    path: 'acls',
                    name: 'AccountAcls',
                    meta: {
                        title: 'acls',
                        icon: 'check',
                    },
                    component: () => import('src/pages/Account/AccountAcls.vue'),
                },
                {
                    path: 'accounts',
                    name: 'AccountAccounts',
                    meta: {
                        title: 'accounts',
                        icon: 'accessibility',
                        acls: [{ model: 'Account', props: '*', accessType: '*' }],
                    },
                    component: () => import('src/pages/Account/AccountAccounts.vue'),
                },
                {
                    path: 'ldap',
                    name: 'AccountLdap',
                    meta: {
                        title: 'ldap',
                        icon: 'account_tree',
                        acls: [{ model: 'LdapConfig', props: '*', accessType: '*' }],
                    },
                    component: () => import('src/pages/Account/AccountLdap.vue'),
                },
                {
                    path: 'samba',
                    name: 'AccountSamba',
                    meta: {
                        title: 'samba',
                        icon: 'preview',
                        acls: [{ model: 'SambaConfig', props: '*', accessType: '*' }],
                    },
                    component: () => import('src/pages/Account/AccountSamba.vue'),
                },
                {
                    path: 'connections',
                    name: 'AccountConnections',
                    meta: {
                        title: 'connections',
                        icon: 'share',
                    },
                    component: () => import('src/pages/Account/AccountConnections.vue'),
                },
                {
                    path: 'acl-form',
                    name: 'AccountAclForm',
                    component: () => import('src/pages/Account/Acls/AclFormView.vue'),
                },
            ],
        },
        {
            name: 'AccountCard',
            path: ':id',
            component: () => import('src/pages/Account/Card/AccountCard.vue'),
            redirect: { name: 'AccountSummary' },
            children: [
                {
                    name: 'AccountSummary',
                    path: 'summary',
                    meta: {
                        title: 'summary',
                        icon: 'launch',
                    },
                    component: () => import('src/pages/Account/Card/AccountSummary.vue'),
                },
                {
                    name: 'AccountBasicData',
                    path: 'basic-data',
                    meta: {
                        title: 'basicData',
                        icon: 'vn:settings',
                    },
                    component: () =>
                        import('src/pages/Account/Card/AccountBasicData.vue'),
                },
                {
                    name: 'AccountInheritedRoles',
                    path: 'inherited-roles',
                    meta: {
                        title: 'inheritedRoles',
                        icon: 'group',
                    },
                    component: () =>
                        import('src/pages/Account/Card/AccountInheritedRoles.vue'),
                },
                {
                    name: 'AccountMailForwarding',
                    path: 'mail-forwarding',
                    meta: {
                        title: 'mailForwarding',
                        icon: 'forward',
                    },
                    component: () =>
                        import('src/pages/Account/Card/AccountMailForwarding.vue'),
                },
                {
                    name: 'AccountMailAlias',
                    path: 'mail-alias',
                    meta: {
                        title: 'mailAlias',
                        icon: 'email',
                    },
                    component: () =>
                        import('src/pages/Account/Card/AccountMailAlias.vue'),
                },
                {
                    name: 'AccountPrivileges',
                    path: 'privileges',
                    meta: {
                        title: 'privileges',
                        icon: 'badge',
                    },
                    component: () =>
                        import('src/pages/Account/Card/AccountPrivileges.vue'),
                },
                {
                    name: 'AccountLog',
                    path: 'log',
                    meta: {
                        title: 'log',
                        icon: 'history',
                    },
                    component: () => import('src/pages/Account/Card/AccountLog.vue'),
                },
            ],
        },
    ],
};
