import type { PageParam } from '@/api'

/** 应用成员角色 */
export type AppRole = 'owner' | 'admin' | 'developer' | 'viewer'

export interface AppUser {
  id?: number
  appId?: number
  userId?: number
  username?: string
  avatar?: string
  role?: AppRole
  inviteBy?: number
  inviteTime?: string
  inviteExpireTime?: string
  sortNumber?: number
  status?: number
  inviteStatus?: number // 0-正常(直接加入), 1-待确认, 2-已拒绝
  tenantId?: number
  createTime?: string
  updateTime?: string
  // 关联字段（来自 sys_user）
  nickname?: string
  userAvatar?: string
  phone?: string
  // 关联字段（来自 app_product）
  productName?: string
  productCode?: string
  icon?: string
}

export interface AppUserParam extends PageParam {
  appId?: number
  userId?: number
  role?: string
  status?: number
  username?: string
}

/** 用户在某应用中的权限信息（check-access / accessible 接口返回） */
export interface AppPermissionInfo {
  appId: number
  productName: string
  productCode?: string
  icon?: string
  role: AppRole
}

/** check-access 接口返回 */
export interface CheckAccessResult {
  accessible: boolean
  isPlatformDeveloper: boolean
  apps?: AppPermissionInfo[]
}
