/**
 * 认证服务相关 types - 根据后端 VO 和 DTO 转换
 */

// LoginParam - 登录参数
export interface LoginParam {
  /** 登录用户名 */
  username?: string
  /** 登录密码 */
  password?: string
  /** 邮箱 */
  email?: string
  /** 手机号 */
  phone?: string
  /** 微信ID */
  wechatId?: string
  /** 验证码类型 */
  captchaType?: string
  /** 验证码 */
  captcha?: string
  /** 验证码ID */
  captchaId?: string
  /** 登录方式：password/captcha/oauth/wechat_miniprogram */
  loginType?: string
  /** 是否记住我 */
  rememberMe?: boolean
}

// LoginDomain - 登录信息
import type { 
    TbSysUserDTO, 
    TbSysUserInfoDTO, 
    TbSysUserRoleDTO 
} from '../sys/user'

import type { 
    TbSysDeptDTO, 
    TbSysPermissionDTO, 
    TbSysViewDTO 
} from '../sys/permission'

/**
 * 登录返回的领域对象
 */
export interface LoginDomain {
    /** 用户基本信息 */
    user?: TbSysUserDTO
    
    /** 用户详细信息 */
    userInfo?: TbSysUserInfoDTO
    
    /** 用户角色列表 */
    userRoles?: TbSysUserRoleDTO[]
    
    /** 用户部门列表 */
    userDepts?: TbSysDeptDTO[]
    
    /** 用户权限列表 */
    userPermissions?: TbSysPermissionDTO[]
    
    /** 用户视图列表（视图即菜单，用于生成路由和侧边栏） */
    userViews?: TbSysViewDTO[]
    
    /** 访问令牌 */
    token?: string
    
    /** 令牌过期时间 */
    tokenExpireTime?: string | Date
    
    /** 登录时间 */
    loginTime?: string
    
    /** IP地址 */
    ipAddress?: string
    
    /** 登录类型 */
    loginType?: string
}
