<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class AdminPermissionSeeder extends Seeder
{
    public function run(): void
    {
        $now = now();

        $permissions = [
            ['module' => 'user', 'code' => 'admin.user.index', 'name' => '查看用户列表', 'app_id' => null],
            ['module' => 'user', 'code' => 'admin.user.store', 'name' => '新增用户', 'app_id' => null],
            ['module' => 'user', 'code' => 'admin.user.show', 'name' => '查看用户详情', 'app_id' => null],
            ['module' => 'user', 'code' => 'admin.user.update', 'name' => '更新用户', 'app_id' => null],
            ['module' => 'user', 'code' => 'admin.user.destroy', 'name' => '删除用户', 'app_id' => null],
            ['module' => 'user', 'code' => 'admin.user.status', 'name' => '启用/禁用用户', 'app_id' => null],
            ['module' => 'user', 'code' => 'admin.user.reset-password', 'name' => '重置密码', 'app_id' => null],

            ['module' => 'role', 'code' => 'admin.role.index', 'name' => '查看角色列表', 'app_id' => null],
            ['module' => 'role', 'code' => 'admin.role.store', 'name' => '新增角色', 'app_id' => null],
            ['module' => 'role', 'code' => 'admin.role.show', 'name' => '查看角色详情', 'app_id' => null],
            ['module' => 'role', 'code' => 'admin.role.update', 'name' => '更新角色', 'app_id' => null],
            ['module' => 'role', 'code' => 'admin.role.destroy', 'name' => '删除角色', 'app_id' => null],
            ['module' => 'role', 'code' => 'admin.role.permissions', 'name' => '查看角色权限', 'app_id' => null],
            ['module' => 'role', 'code' => 'admin.role.permissions.update', 'name' => '更新角色权限', 'app_id' => null],
            ['module' => 'role', 'code' => 'admin.role.menus', 'name' => '查看角色菜单', 'app_id' => null],
            ['module' => 'role', 'code' => 'admin.role.menus.update', 'name' => '更新角色菜单', 'app_id' => null],
            ['module' => 'role', 'code' => 'admin.role.tree', 'name' => '角色树', 'app_id' => null],

            ['module' => 'menu', 'code' => 'admin.menu.index', 'name' => '查看菜单列表', 'app_id' => null],
            ['module' => 'menu', 'code' => 'admin.menu.store', 'name' => '新增菜单', 'app_id' => null],
            ['module' => 'menu', 'code' => 'admin.menu.show', 'name' => '查看菜单详情', 'app_id' => null],
            ['module' => 'menu', 'code' => 'admin.menu.update', 'name' => '更新菜单', 'app_id' => null],
            ['module' => 'menu', 'code' => 'admin.menu.destroy', 'name' => '删除菜单', 'app_id' => null],
            ['module' => 'menu', 'code' => 'admin.menu.tree', 'name' => '菜单树', 'app_id' => null],

            ['module' => 'permission', 'code' => 'admin.permission.index', 'name' => '查看权限列表', 'app_id' => null],
            ['module' => 'permission', 'code' => 'admin.permission.tree', 'name' => '权限树', 'app_id' => null],

            ['module' => 'config', 'code' => 'admin.config-group.index', 'name' => '查看配置分组', 'app_id' => null],
            ['module' => 'config', 'code' => 'admin.config-group.store', 'name' => '新增配置分组', 'app_id' => null],
            ['module' => 'config', 'code' => 'admin.config-group.update', 'name' => '更新配置分组', 'app_id' => null],
            ['module' => 'config', 'code' => 'admin.config-group.destroy', 'name' => '删除配置分组', 'app_id' => null],
            ['module' => 'config', 'code' => 'admin.config-item.index', 'name' => '查看配置项', 'app_id' => null],
            ['module' => 'config', 'code' => 'admin.config-item.store', 'name' => '新增配置项', 'app_id' => null],
            ['module' => 'config', 'code' => 'admin.config-item.update', 'name' => '更新配置项', 'app_id' => null],
            ['module' => 'config', 'code' => 'admin.config-item.destroy', 'name' => '删除配置项', 'app_id' => null],
            ['module' => 'config', 'code' => 'admin.config-item.batch', 'name' => '批量更新配置项', 'app_id' => null],

            ['module' => 'setting', 'code' => 'admin.setting.index', 'name' => '查看系统设置', 'app_id' => null],

            ['module' => 'attachment', 'code' => 'admin.attachment.index', 'name' => '查看附件列表', 'app_id' => null],
            ['module' => 'attachment', 'code' => 'admin.attachment.upload', 'name' => '上传附件', 'app_id' => null],
            ['module' => 'attachment', 'code' => 'admin.attachment.show', 'name' => '查看附件详情', 'app_id' => null],
            ['module' => 'attachment', 'code' => 'admin.attachment.destroy', 'name' => '删除附件', 'app_id' => null],
            ['module' => 'attachment', 'code' => 'admin.attachment.batch-delete', 'name' => '批量删除附件', 'app_id' => null],
            ['module' => 'attachment', 'code' => 'admin.attachment-group.index', 'name' => '查看附件分组', 'app_id' => null],
            ['module' => 'attachment', 'code' => 'admin.attachment-group.store', 'name' => '新增附件分组', 'app_id' => null],

            ['module' => 'log', 'code' => 'admin.log.index', 'name' => '查看系统日志', 'app_id' => null],
            ['module' => 'log', 'code' => 'admin.log.show', 'name' => '查看系统日志详情', 'app_id' => null],
            ['module' => 'log', 'code' => 'admin.log.download', 'name' => '下载系统日志', 'app_id' => null],
            ['module' => 'log', 'code' => 'admin.log.destroy', 'name' => '删除系统日志', 'app_id' => null],
            ['module' => 'log', 'code' => 'admin.log.clear', 'name' => '清空系统日志', 'app_id' => null],
            ['module' => 'log', 'code' => 'admin.log.stats', 'name' => '查看系统日志统计', 'app_id' => null],

            ['module' => 'operation-log', 'code' => 'admin.operation-log.index', 'name' => '查看操作日志', 'app_id' => null],
            ['module' => 'operation-log', 'code' => 'admin.operation-log.show', 'name' => '查看操作日志详情', 'app_id' => null],
            ['module' => 'operation-log', 'code' => 'admin.operation-log.destroy', 'name' => '删除操作日志', 'app_id' => null],
            ['module' => 'operation-log', 'code' => 'admin.operation-log.clear', 'name' => '清理操作日志', 'app_id' => null],

            ['module' => 'database', 'code' => 'admin.database.index', 'name' => '查看数据表列表', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.structure', 'name' => '查看表结构', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.add-table', 'name' => '创建数据表', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.edit-table', 'name' => '编辑数据表', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.copy-table', 'name' => '复制数据表', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.delete-table', 'name' => '删除数据表', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.optimize', 'name' => '优化数据表', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.repair', 'name' => '修复数据表', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.backup', 'name' => '备份数据表', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.recover', 'name' => '恢复数据表', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.check', 'name' => '查看表数据', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.table-add', 'name' => '添加表数据', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.table-edit', 'name' => '编辑表数据', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.table-delete', 'name' => '删除表数据', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.add-fields', 'name' => '添加字段', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.edit-field', 'name' => '编辑字段', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.delete-field', 'name' => '删除字段', 'app_id' => null],
            ['module' => 'database', 'code' => 'admin.database.field-index', 'name' => '添加字段索引', 'app_id' => null],

            ['module' => 'front-user', 'code' => 'admin.front-user.index', 'name' => '查看前台用户列表', 'app_id' => null],
            ['module' => 'front-user', 'code' => 'admin.front-user.store', 'name' => '新增前台用户', 'app_id' => null],
            ['module' => 'front-user', 'code' => 'admin.front-user.show', 'name' => '查看前台用户详情', 'app_id' => null],
            ['module' => 'front-user', 'code' => 'admin.front-user.update', 'name' => '更新前台用户', 'app_id' => null],
            ['module' => 'front-user', 'code' => 'admin.front-user.destroy', 'name' => '删除前台用户', 'app_id' => null],
            ['module' => 'front-user', 'code' => 'admin.front-user.status', 'name' => '启用/禁用前台用户', 'app_id' => null],
            ['module' => 'front-user', 'code' => 'admin.front-user.reset-password', 'name' => '重置前台用户密码', 'app_id' => null],
            ['module' => 'front-user', 'code' => 'admin.front-user.batch-delete', 'name' => '批量删除前台用户', 'app_id' => null],

            ['module' => 'user-group', 'code' => 'admin.user-group.index', 'name' => '查看用户组列表', 'app_id' => null],
            ['module' => 'user-group', 'code' => 'admin.user-group.store', 'name' => '新增用户组', 'app_id' => null],
            ['module' => 'user-group', 'code' => 'admin.user-group.show', 'name' => '查看用户组详情', 'app_id' => null],
            ['module' => 'user-group', 'code' => 'admin.user-group.update', 'name' => '更新用户组', 'app_id' => null],
            ['module' => 'user-group', 'code' => 'admin.user-group.destroy', 'name' => '删除用户组', 'app_id' => null],
        ];

        foreach ($permissions as &$permission) {
            $permission['create_time'] = $now;
            $permission['update_time'] = $now;
        }

        DB::table('admin_permissions')->whereNull('app_id')->delete();
        DB::table('admin_permissions')->insert($permissions);
    }
}
