export interface SysAgentVO {
  /**
   * 用户ID
   */
  userId: string | number;

  /**
   * 区域代码
   */
  areaCode?: string;

  /**
   * 到期时间
   */
  expireDate?: string;

  /**
   * 来源渠道
   */
  sourceChannel?: string;

  /**
   * 帐号状态（0正常 1停用）
   */
  status?: string;

  /**
   * 备注
   */
  remark?: string;

  /**
   * 级联选择器数组
   */
  codeArr?: string[];

  /**
   * 用户基本信息
   */
  userInfo?: {
    userId: string | number;
    tenantId?: string;
    deptId?: string | number;
    userName?: string;
    nickName?: string;
    userType?: string;
    email?: string;
    phonenumber?: string;
    sex?: string;
    avatar?: string;
    status?: string;
    loginIp?: string;
    loginDate?: string;
    remark?: string;
    createTime?: string;
    deptName?: string;
    roles?: any;
    roleIds?: number[];
    postIds?: number[];
    roleId?: number;
    groupId?: string | number;
    areaCode?: string;
    province?: string;
    city?: string;
    district?: string;
  };

  /**
   * 创建时间
   */
  createTime?: string;

  // 保持向后兼容的字段 - 用于列表显示
  userName?: string;
  nickName?: string;
  phonenumber?: string;
  province?: string;
  city?: string;
  district?: string;
}

export interface SysAgentForm extends BaseEntity {
  /**
   * 用户ID
   */
  userId?: string | number;

  /**
   * 区域代码
   */
  areaCode?: string;

  /**
   * 省份
   */
  province?: string;

  /**
   * 市
   */
  city?: string;

  /**
   * 区
   */
  district?: string;

  /**
   * 到期时间
   */
  expireDate?: string;

  /**
   * 来源渠道
   */
  sourceChannel?: string;

  /**
   * 帐号状态（0正常 1停用）
   */
  status?: string;

  /**
   * 备注
   */
  remark?: string;

  codeArr?: string[];
}

export interface SysAgentQuery extends PageQuery {
  /**
   * 用户ID
   */
  userId?: string | number;

  /**
   * 租户编号
   */
  tenantId?: string | number;

  /**
   * 区域代码
   */
  areaCode?: string;

  /**
   * 省份
   */
  province?: string;

  /**
   * 市
   */
  city?: string;

  /**
   * 区
   */
  district?: string;

  /**
   * 到期时间
   */
  expireDate?: string;

  /**
   * 帐号状态（0正常 1停用）
   */
  status?: string;

  /**
   * 授权到期日期范围
   */
  expireDateRange?: string[];

  /**
   * 是否到期
   */
  isExpired?: string;

  /**
   * 创建时间范围
   */
  createTimeRange?: string[];

  /**
   * 授权到期开始时间
   */
  expireDateStart?: string;

  /**
   * 授权到期结束时间
   */
  expireDateEnd?: string;

  /**
   * 创建开始时间
   */
  createTimeStart?: string;

  /**
   * 创建结束时间
   */
  createTimeEnd?: string;

  /**
   * 搜索关键词
   */
  searchKeyword?: string;

  /**
   * 用户状态 (通过user.status传递)
   */
  'user.status'?: string;

  /**
   * 日期范围参数
   */
  params?: any;
}

export interface SysUserForm extends BaseEntity {
  /**
   * 用户ID
   */
  userId?: string | number;

  /**
   * 部门ID
   */
  deptId?: string | number;

  /**
   * 用户账号
   */
  userName?: string;

  /**
   * 用户昵称
   */
  nickName?: string;

  /**
   * 用户类型
   */
  userType?: string;

  /**
   * 用户身份
   */
  identity?: string;

  /**
   * 用户邮箱
   */
  email?: string;

  /**
   * 手机号码
   */
  phonenumber?: string;

  /**
   * 用户性别（0男 1女 2未知）
   */
  sex?: string;

  /**
   * 密码
   */
  password?: string;

  /**
   * 帐号状态（0正常 1停用）
   */
  status?: string;

  /**
   * 备注
   */
  remark?: string;

  /**
   * 角色组
   */
  roleIds?: number[];

  /**
   * 岗位组
   */
  postIds?: number[];

  /**
   * 角色ID (用于表单选择)
   */
  roleId?: string | number;

  /**
   * 代理分组ID
   */
  groupId?: string | number;

  /**
   * 区域代码
   */
  areaCode?: string;

  /**
   * 省份
   */
  province?: string;

  /**
   * 市
   */
  city?: string;

  /**
   * 区
   */
  district?: string;

  /**
   * 级联选择器数组
   */
  codeArr?: string[];
}

export interface SysUserAgentForm {
  /**
   * 用户信息
   */
  user?: SysUserForm;

  /**
   * 代理信息
   */
  agent?: SysAgentForm;
}
