package com.grkj.iscs.model.vo.user

data class RoleListRespVO(
    val total: Long,
    
    /**
     * 列表数据
     */
    val rows: List<SysUserVO>?,

    /**
     * 消息状态码
     */
    val code: Int?,

    /**
     * 消息内容
     */
    val msg: String?
) {
    data class SysUserVO(
        val searchValue: String?,
        val createBy: String?,
        val createTime: String?,
        val updateBy: String?,
        val updateTime: String?,
        val remark: String?,
        val params: Map<String, Any>?,

        val userId: Long?,

        /** 部门ID  */
        val deptId: Long?,

        /** 用户账号  */
        val userName: String?,

        /** 用户昵称  */
        val nickName: String?,

        /** 用户邮箱  */
        val email: String?,

        /** 手机号码  */
        val phonenumber: String?,

        /** 用户性别  */
        val sex: String?,

        /** 用户头像  */
        val avatar: String?,

        /** 密码  */
        val password: String?,

        /** 盐加密  */
        val salt: String?,

        /** 帐号状态（0正常 1停用）  */
        val status: String?,

        /** 删除标志（0代表存在 2代表删除）  */
        val delFlag: String?,

        /** 最后登录IP  */
        val loginIp: String?,

        /** 最后登录时间  */
        val loginDate: String?,

        /** 部门对象  */

        val dept: SysDept?,

        /** 角色对象  */
        val roles: List<SysRoleVO>?,

        /** 角色组  */
        val roleIds: List<Long>?,

        /** 岗位组  */
        val postIds: List<Long>?,

        /** 角色ID  */
        val roleId: Long?,

        val roleKey: String?,

        val admin: Boolean?
    ) {
        data class SysRoleVO(
            val searchValue: String?,
            val createBy: String?,
            val createTime: String?,
            val updateBy: String?,
            val updateTime: String?,
            val remark: String?,
            val params: Map<String, Any>?,

            /** 角色ID  */
            val roleId: Long?,

            /** 角色名称  */
            val roleName: String?,

            /** 角色权限  */
            val roleKey: String?,

            /** 角色排序  */
            val roleSort: String?,

            /** 数据范围（1：所有数据权限；2：自定义数据权限；3：本部门数据权限；4：本部门及以下数据权限；5：仅本人数据权限）  */
            val dataScope: String?,

            /** 菜单树选择项是否关联显示（ 0：父子不互相关联显示 1：父子互相关联显示）  */
            val menuCheckStrictly: Boolean?,

            /** 部门树选择项是否关联显示（0：父子不互相关联显示 1：父子互相关联显示 ）  */
            val deptCheckStrictly: Boolean?,

            /** 角色状态（0正常 1停用）  */
            val status: String?,

            /** 删除标志（0代表存在 2代表删除）  */
            val delFlag: String?,

            /** 用户是否存在此角色标识 默认不存在  */
            val flag: Boolean?,

            /** 菜单组  */
            val menuIds: List<Long>?,

            /** 部门组（数据权限）  */
            val deptIds: List<Long>?
        )
        
        data class SysDept(
            val searchValue: String?,
            val createBy: String?,
            val createTime: String?,
            val updateBy: String?,
            val updateTime: String?,
            val remark: String?,
            val params: Map<String, Any>?,

            val deptId: Long?,

            /** 父部门ID  */
            val parentId: Long?,

            /** 祖级列表  */
            val ancestors: String?,

            /** 部门名称  */
            val deptName: String?,

            /** 显示顺序  */
            val orderNum: String?,

            /** 负责人  */
            val leader: String?,

            /** 联系电话  */
            val phone: String?,

            /** 邮箱  */
            val email: String?,

            /** 部门状态:0正常,1停用  */
            val status: String?,

            /** 删除标志（0代表存在 2代表删除）  */
            val delFlag: String?,

            /** 父部门名称  */
            val parentName: String?,

            /** 子部门  */
            val children: List<SysDept>?
        )
    }
}