import type { FormRules } from 'element-plus'

export const rules = (menuForm: any, iconOptions: any[]): FormRules => {
    return {
        // 1. 菜单名称：必填 + 长度限制
        name: [
            { required: true, message: '请输入菜单名称', trigger: 'blur' },
            { min: 2, max: 20, message: '菜单名称长度在 2 到 20 个字符之间', trigger: 'blur' }
        ],
        // 2. 父级菜单：必填（默认0，无需手动填）
        parentName: [{ required: true, message: '请选择父级菜单', trigger: 'change' }
        ],
        // 3. 路由路径：必填 + 格式校验（以/开头，仅包含字母/数字/下划线/斜杠）
        path: [
            { required: true, message: '请输入前端路由路径', trigger: 'blur' },
            { pattern: /^\/[a-zA-Z0-9_\/]+$/, message: '前端路由路径必须以/开头，仅包含字母、数字、下划线和斜杠', trigger: 'blur' }
        ],
        // 4. 后端路由：可选，但填了就必须是指定范围（匹配你提供的后端路由列表）
        api: [
            {required: true, message: '请输入后端路由', trigger: 'blur' }
        ],
        // 5. 图标名称：可选，但填了就必须是指定范围（匹配你提供的图标列表）
        icon: [
            {required: true, message: '请选择图标名称', trigger: 'blur'}
        ],
        // 6. 排序：必填 + 数字 + 最小值0
        sort: [
            { required: true, message: '请输入排序值', trigger: 'blur' },
            { type: 'number', min: 0, message: '排序值必须是大于等于0的数字', trigger: 'blur' }
        ],
        // 7. 菜单类型：必填（单选框默认1，无需手动选）
        type: [
            { required: true, message: '请选择菜单类型', trigger: 'change' },
            { type: 'number', enum: [1, 2], message: '菜单类型只能是1（菜单）或2（按钮）', trigger: 'change' }
        ],
        // 8. 状态：必填（单选框默认1，无需手动选）
        status: [
            { required: true, message: '请选择状态', trigger: 'change' },
            { type: 'number', enum: [1, 2], message: '状态只能是1（启用）或2（禁用）', trigger: 'change' }
        ]
        
    }
}