import { BaseVO, BaseDTO } from "../base";
import { PermissionVO } from "./permission";

export interface SysUserVO extends BaseVO {
    /** 用户ID */
    userId?: string;
    /** 用户编码 */
    usercode?: string;
    /** 密码（敏感信息，仅用于创建/修改） */
    password?: string;
    /** 邮箱 */
    email?: string;
    /** 手机 */
    phone?: string;
    /** 微信ID */
    wechatId?: string;
    /** 用户状态 */
    status?: string;
    /** 用户类型 */
    userType?: string;
    /** 用户名 */
    username?: string;
    /** 头像 */
    avatar?: string;
    /** 性别 */
    gender?: number;
    /** 等级 */
    level?: number;
    /** 身份证号 */
    idCard?: string;
    /** 地址 */
    address?: string;
    /** 用户部门角色列表 */
    deptRoles?: UserDeptRoleVO[];
    /** 用户角色权限列表 */
    rolePermissions?: PermissionVO[];
    /** 用户视图权限列表 */
    viewPermissions?: PermissionVO[];
}

export interface UserDeptRoleVO extends BaseVO {
    /** 用户ID */
    userId?: string;
    /** 密码 */
    password?: string;
    /** 邮箱 */
    email?: string;
    /** 手机 */
    phone?: string;
    /** 微信ID */
    wechatId?: string;
    /** 用户状态 */
    status?: string;
    /** 用户类型 */
    userType?: string;
    /** 头像 */
    avatar?: string;
    /** 用户名 */
    username?: string;
    /** 性别 */
    gender?: number;
    /** 等级 */
    level?: number;
    /** 身份证号 */
    idCard?: string;
    /** 地址 */
    address?: string;
    /** 部门ID */
    deptId?: string;
    /** 部门名称 */
    deptName?: string;
    /** 父级部门ID */
    parentId?: string;
    /** 部门描述 */
    deptDescription?: string;
    /** 角色ID */
    roleId?: string;
    /** 角色名称 */
    roleName?: string;
    /** 角色描述 */
    roleDescription?: string;
    /** 角色作用域 */
    scope?: string;
    /** 所属部门ID */
    ownerDeptId?: string;
    /** 角色状态 */
    roleStatus?: boolean;
}

// DTO 类型

// TbSysUserDTO - 系统用户DTO（创建和更新）
export interface TbSysUserDTO extends BaseDTO {
    /** 用户ID */
    userId?: string;
    /** 用户编码 */
    usercode?: string;
    /** 密码 */
    password?: string;
    /** 邮箱 */
    email?: string;
    /** 手机（加密） */
    phone?: string;
    /** 手机号哈希 */
    phone_hash?: string;
    /** 微信ID */
    wechatId?: string;
    /** 用户状态 */
    status?: string;
    /** 用户类型 */
    userType?: string;
}

// TbSysUserInfoDTO - 系统用户信息DTO
export interface TbSysUserInfoDTO extends BaseDTO {
    /** 用户ID */
    userId?: string;
    /** 头像 */
    avatar?: string;
    /** 性别 */
    gender?: number;
    /** 用户名称 */
    username?: string;
    /** 等级 */
    level?: number;
    /** 身份证号 */
    idCard?: string;
    /** 地址 */
    address?: string;
}

// TbSysUserRoleDTO - 系统用户角色关系DTO
export interface TbSysUserRoleDTO extends BaseDTO {
    /** 用户ID */
    userId?: string;
    /** 角色ID */
    roleId?: string;
}