/**
 * @description 用户相关类型定义
 * @author yslg
 * @since 2025-10-06
 */

import { BaseDTO } from '../base';
import { SysDept } from '../dept';
import { SysRole } from '../role';
/**
 * 系统用户
 */
export interface SysUser extends BaseDTO {
  /** 用户名 */
  username?: string;
  /** 密码（不应在前端显示） */
  password?: string;
  /** 邮箱 */
  email?: string;
  /** 手机号 */
  phone?: string;
  /** 微信ID */
  wechatID?: string;
  /** 用户状态 0-正常 1-禁用 */
  status?: number;
}

/**
 * 用户详细信息
 */
export interface SysUserInfo extends BaseDTO {
  /** 用户ID */
  userID?: string;
  /** 真实姓名 */
  realName?: string;
  /** 昵称 */
  nickname?: string;
  /** 头像URL */
  avatar?: string;
  /** 性别 0-未知 1-男 2-女 */
  gender?: number;
  /** 出生日期 */
  birthday?: string;
  /** 个人简介 */
  bio?: string;
  /** 地址 */
  address?: string;
}

/**
 * 用户VO - 用于前端展示
 */
export interface UserVO extends BaseDTO {
  /** 用户名 */
  username?: string;
  /** 邮箱 */
  email?: string;
  /** 手机号 */
  phone?: string;
  /** 微信ID */
  wechatID?: string;
  /** 用户状态 0-正常 1-禁用 */
  status?: number;
  /** 真实姓名 */
  realName?: string;
  /** 昵称 */
  nickname?: string;
  /** 头像URL */
  avatar?: string;
  /** 性别 0-未知 1-男 2-女 */
  gender?: number;
  /** 学习等级 */
  level?: number;
  /** 部门名称 */
  deptName?: string;
  /** 角色名称 */
  roleName?: string;
  /** 出生日期 */
  birthday?: string;
  /** 个人简介 */
  bio?: string;
  /** 地址 */
  address?: string;
}

/**
 * 用户部门角色关联
 */
export interface SysUserDeptRole extends BaseDTO {
  /** 用户ID */
  userID?: string;
  /** 部门ID */
  deptID?: string;
  /** 角色ID */
  roleID?: string;
}

export interface UserDeptRoleVO extends BaseDTO {
  /** 单个用户信息 */
  user?: SysUser;
  /** 用户列表 */
  users?: SysUser[];
  /** 部门列表 */
  depts?: SysDept[];
  /** 角色列表 */
  roles?: SysRole[];
  /** 用户部门角色关联列表 */
  userDeptRoles?: SysUserDeptRole[];
}