<?php
return [
    // Users
    ['GET',  '/admin/users',                    'UserController@index',          'users.view'],
    ['POST', '/admin/users/datatable',          'UserController@datatable',      'users.view'],
    ['GET',  '/admin/users/create',             'UserController@create',         'users.manage'],
    ['POST', '/admin/users',                    'UserController@store',          'users.manage'],
    ['GET',  '/admin/users/{id}/edit',          'UserController@edit',           'users.manage'],
    ['POST', '/admin/users/{id}',               'UserController@update',         'users.manage'],
    ['POST', '/admin/users/{id}/toggle',        'UserController@toggle',         'users.manage'],
    ['POST', '/admin/users/{id}/lock',          'UserController@lock',           'users.manage'],
    ['POST', '/admin/users/{id}/unlock',        'UserController@unlock',         'users.manage'],
    ['POST', '/admin/users/{id}/force-password','UserController@forcePassword',  'users.manage'],
    ['GET',  '/admin/users/{id}/sessions',      'UserController@sessions',       'users.manage'],

    // Roles
    ['GET',  '/admin/roles',                    'RoleController@index',          'roles.manage'],
    ['POST', '/admin/roles/datatable',          'RoleController@datatable',      'roles.manage'],
    ['GET',  '/admin/roles/create',             'RoleController@create',         'roles.manage'],
    ['POST', '/admin/roles',                    'RoleController@store',          'roles.manage'],
    ['GET',  '/admin/roles/{id}/edit',          'RoleController@edit',           'roles.manage'],
    ['POST', '/admin/roles/{id}',               'RoleController@update',         'roles.manage'],
    ['POST', '/admin/roles/{id}/delete',        'RoleController@destroy',        'roles.manage'],

    // Settings
    ['GET',  '/admin/settings',                 'SettingsController@index',      'settings.view'],
    ['POST', '/admin/settings',                 'SettingsController@update',     'settings.manage'],

    // Departments
    ['GET',  '/admin/departments',              'DepartmentController@index',    'staff.view'],
    ['POST', '/admin/departments/datatable',    'DepartmentController@datatable','staff.view'],
    ['POST', '/admin/departments/store',        'DepartmentController@store',    'staff.manage'],
    ['POST', '/admin/departments/{id}/update',  'DepartmentController@update',   'staff.manage'],
    ['POST', '/admin/departments/{id}/delete',  'DepartmentController@destroy',  'staff.manage'],

    // Staff
    ['GET',  '/admin/staff',                    'StaffController@index',         'staff.view'],
    ['POST', '/admin/staff/datatable',          'StaffController@datatable',     'staff.view'],
    ['GET',  '/admin/staff/create',             'StaffController@create',        'staff.manage'],
    ['POST', '/admin/staff',                    'StaffController@store',         'staff.manage'],
    ['GET',  '/admin/staff/{id}',               'StaffController@show',          'staff.view'],
    ['GET',  '/admin/staff/{id}/edit',          'StaffController@edit',          'staff.manage'],
    ['POST', '/admin/staff/{id}',               'StaffController@update',        'staff.manage'],

    // Jobs
    ['GET',  '/admin/jobs',                     'JobController@index',           'settings.manage'],
    ['POST', '/admin/jobs/datatable',           'JobController@datatable',       'settings.manage'],
    ['POST', '/admin/jobs/{id}/toggle',         'JobController@toggle',          'settings.manage'],
    ['POST', '/admin/jobs/{id}/run',            'JobController@run',             'settings.manage'],
    ['GET',  '/admin/jobs/{id}/runs',           'JobController@runs',            'settings.manage'],

    // Audit Log
    ['GET',  '/admin/audit-log',                'AuditLogController@index',      'audit.view'],
    ['POST', '/admin/audit-log/datatable',      'AuditLogController@datatable',  'audit.view'],
    ['GET',  '/admin/audit-log/{id}',           'AuditLogController@show',       'audit.view'],

    // Login Log
    ['GET',  '/admin/login-log',                'LoginLogController@index',      'audit.view'],
    ['POST', '/admin/login-log/datatable',      'LoginLogController@datatable',  'audit.view'],

    // Data Quality
    ['GET',  '/admin/data-quality',             'DataQualityController@index',   'settings.manage'],
    ['POST', '/admin/data-quality/rules/datatable','DataQualityController@rulesDatatable','settings.manage'],
    ['POST', '/admin/data-quality/issues/datatable','DataQualityController@issuesDatatable','settings.manage'],
    ['POST', '/admin/data-quality/rules/store', 'DataQualityController@storeRule','settings.manage'],
    ['POST', '/admin/data-quality/rules/{id}/update','DataQualityController@updateRule','settings.manage'],
    ['POST', '/admin/data-quality/issues/{id}/action','DataQualityController@issueAction','settings.manage'],
    ['POST', '/admin/data-quality/scan',        'DataQualityController@scan',    'settings.manage'],

    // Import
    ['GET',  '/admin/import',                   'ImportController@index',        'import.execute'],
    ['POST', '/admin/import/upload',            'ImportController@upload',       'import.execute'],
    ['POST', '/admin/import/{id}/validate',     'ImportController@validate',     'import.execute'],
    ['POST', '/admin/import/{id}/execute',      'ImportController@execute',      'import.execute'],
    ['POST', '/admin/import/datatable',         'ImportController@datatable',    'import.execute'],

    // Export Log
    ['GET',  '/admin/export-log',               'ExportLogController@index',     'export.execute'],
    ['POST', '/admin/export-log/datatable',     'ExportLogController@datatable', 'export.execute'],

    // Recycle Bin
    ['GET',  '/admin/recycle-bin',              'RecycleBinController@index',    'settings.manage'],
    ['POST', '/admin/recycle-bin/datatable',    'RecycleBinController@datatable','settings.manage'],
    ['POST', '/admin/recycle-bin/{id}/restore', 'RecycleBinController@restore',  'settings.manage'],
    ['POST', '/admin/recycle-bin/{id}/purge',   'RecycleBinController@purge',    'settings.manage'],

    // Lookups
    ['GET',  '/admin/lookups',                  'LookupController@index',        'settings.manage'],
    ['POST', '/admin/lookups/categories/datatable','LookupController@categoriesDatatable','settings.manage'],
    ['POST', '/admin/lookups/values/datatable', 'LookupController@valuesDatatable','settings.manage'],
    ['POST', '/admin/lookups/values/store',     'LookupController@storeValue',   'settings.manage'],
    ['POST', '/admin/lookups/values/{id}/update','LookupController@updateValue', 'settings.manage'],
    ['POST', '/admin/lookups/values/{id}/delete','LookupController@deleteValue', 'settings.manage'],

    // Translations
    ['GET',  '/admin/translations',             'TranslationController@index',   'settings.manage'],
    ['POST', '/admin/translations/datatable',   'TranslationController@datatable','settings.manage'],
    ['POST', '/admin/translations/save',        'TranslationController@save',    'settings.manage'],

    // Form Numbers
    ['GET',  '/admin/form-numbers',             'FormNumberController@index',    'settings.manage'],
    ['POST', '/admin/form-numbers/datatable',   'FormNumberController@datatable','settings.manage'],
    ['POST', '/admin/form-numbers/store',       'FormNumberController@store',    'settings.manage'],
    ['POST', '/admin/form-numbers/{id}/issue',  'FormNumberController@issue',    'settings.manage'],

    // Sequences
    ['GET',  '/admin/sequences',                'SequenceController@index',      'settings.manage'],
    ['POST', '/admin/sequences/datatable',      'SequenceController@datatable',  'settings.manage'],
    ['POST', '/admin/sequences/{id}/update',    'SequenceController@update',     'settings.manage'],
    ['POST', '/admin/sequences/{id}/reset',     'SequenceController@reset',      'settings.manage'],

    // System Health
    ['GET',  '/admin/system-health',            'SystemHealthController@index',  'settings.view'],
];