export interface Staff {
  /**
   * 部门id
   */
  domain_ids: number[]
  /**
   * 部门名
   */
  domain_name: string
  /**
   * 邮箱号
   */
  email?: string
  /**
   * 客户id
   */
  id: string
  /**
   * 手机号
   */
  mobile?: string
  /**
   * 客户名称
   */
  name: string
  /**
   * 职位
   */
  role_ids: string[]
  /**
   * 状态，0=锁定，1=正常
   */
  status: number
  full_range: boolean // 是否可访问所有项目 false时，只能访问身为项目组成员的项目，否则可以访问公司内部的所有项目
  level: number // 数字越大越高，从0开始
}

/**
 * 回复消息内容
 */
export interface StaffListResParams {
  /**
   * 客户列表
   */
  list: Staff[]
  /**
   * 总页数
   */
  page_count: number
  /**
   * 当前页码
   */
  page_no: number
  /**
   * 总条目数
   */
  total: number
}

/**
 * 请求参数内容
 */
export interface StaffListReqParams {
  /**
   * 部门id，如果没有指定，表示账号权限范围内的所有员工
   */
  domain_id?: number
  /**
   * 员工手机号，用于模糊查询
   */
  mobile?: string
  /**
   * 员工姓名，用于模糊查询
   */
  name?: string
  /**
   * 页码，从1开始
   */
  page_no: number
  /**
   * 每页条目数
   */
  page_size: number
}

/**
 * 请求参数内容
 */
export interface ModifyStaffReqParams {
  /**
   * 部门id
   */
  domain_ids?: number[]
  /**
   * 邮箱号
   */
  email?: string
  /**
   * 员工 id
   */
  id: string
  /**
   * 备注
   */
  memo?: string
  /**
   * 客户名称
   */
  name?: string
  /**
   * 密码，md5 32
   */
  pass?: string
  /**
   * 职位
   */
  role_ids?: string[]
  /**
   * 状态，0=锁定，1=正常
   */
  status?: number
  full_range?: boolean // 是否可访问所有项目
  level?: number
}

/**
 * 请求参数内容
 */
export interface AddStaffReqParams {
  /**
   * 部门id，为空时直接放在公司一级下
   */
  domain_ids?: number[]
  /**
   * 邮箱
   */
  email?: string
  /**
   * 手机号，必填，会与微信手机绑定
   */
  mobile: string
  /**
   * 员工名称
   */
  name: string
  /**
   * 初始密码，Md5 32位加密
   */
  pass: string
  /**
   * 职位
   */
  role_ids: string[]
  full_range: boolean // 是否可访问所有项目
  level?: number
}

export interface StaffRoleListResParams {
  roles: { id: string; name: string }[]
}
